Проект на github-е
Характеристики получившегося устройства:
39x40x7 двухслойная плата (надо бы сделать 4-слойный вариант, меньшего размера, и с элементами на одной стороне, чтобы можно было обратную сторону использовать для сенсорных площадок, что позволит просто приклеивать плату к обратной стороне лицевой панели)
Использует 2S (две ячейки последовательно) литиевые аккумуляторы, что безопаснее, проще намотка спиралей и легче найти маленькие легкие батареи среди тех, которые предназначены для RC-моделей
Встроенный boost-регулятор для зарядки от USB (с балансным портом, для гарантии неперезарядки одной из ячеек)
Сенсорные кнопки (не нужно делать дырки в корпусе, достаточно наклеить кусочки фольги с обратной стороны и надпись/рифленую поверхность с лицевой)
Дешевые компоненты — всего один чип STM32F373C8T6 (стоит от $3 за штуку) и несколько недорогих MOSFET-ов
100+ ватт мощность (теоретическая — ближе даже к 200, но не испытывал)
128x64 0.96" OLED экран (хорошо видно на свету, всего $4)
Фонарик на двух 70mA белых светодиодах (реально полезная опция в устройстве, которое всегда под рукой)
Софт поддерживает:
Титан, никель (ni200), NiFE30, нержавейку 316L и 304 для спиралей с термоконтролем
Режим ограничения мощности («variwatt»), от 0.5 ватта до максимальной (с коррекцией относительно напряжения батареи)
Режим медленного старта для предотвращения «стрельбы» и пережигания тонких спиралей
Почти все важные параметры изменяются через меню настройки (с сохранением во flash-памяти)
Текущие проблемы/планы:
Сделать поддержку варианта схемы с дросселем спирали (настоящая стабилизация тока спирали и повышенная частота термоконтроля)
Исправить режим сна (не смог разобраться окончательно), пока что жрет 3-4 миллиампера, что разрядит 500 мАч батарею за несколько дней
PID-регулятор вышел у меня какой-то кривой и плохо настроенный (из-за проблем с отладкой по USB не смог нормально подобрать коэффициенты)
Плату надо переделать чуток, поменьше и с обратной стороной только для сенсоров
Поддержку маленьких дисплеев
Оптимизировать размер firmware (уже упирается в лимит 60 килобайт) :(
Разобраться с отладкой по USB (STM-овские библиотеки до ужаса кривые и оно часто глючит)
Комментарии (27)
hdg_79
18.04.2016 08:25+1Вы бы хоть написали в начале статьи — ЧТО ЭТО ЭЛЕКТОРННАЯ СИГАРЕТА. Я тоже понял это только из коментариев.
nafikovr
18.04.2016 08:32+1Однако, основной недостаток в виде «импульсного» режима парения остался. Так что планы на развитие правильные.
vasimv
18.04.2016 13:46Это спорный момент. Габариты серьезно увеличивает (на плате с дросселем и диодом шоттки — оно занимает почти четверть платы), а смысл очень спорный. Все-таки температурная инерция спирали довольно высокая, при частоте импульсов больше килогерца — особой разницы не будет. Спираль же все равно прогревается неравномерно, внутренние слои будут запасать энергию (аналогично дросселю, фактически) и постепенно отдавать на охлаждаемую жидкостью поверхность. Но попробую, конечно, чисто из-за возможности держать частоту опроса под 10 килогерц.
nafikovr
18.04.2016 14:01на голый пвм выведенный на спираль очень много жалоб со стороны вейперов. не знаю конечно на сколько они обоснованы, но осмелюсь предложить свои доводы.
1 — инерция спирали все же недостаточна на относительно низких частотах и происходит плавание мощности/температуры в ощутимых пределах (возможно достаточных для легких гариков). особенно ощутимо будет на материалах применяемых для ТК.
2 — «линейная» стабилизация (имею в виду нету, которая действительно линейная, а импульсную, на выходе которой что то близкое к постоянке) позволит производить корректные измерения во время нагрева, что опять же положительно скажется на контроле как мощности, так и температуры.
3 — как раз таки из-за неравномерности прогрева спирали загоняя заведомо большую мощность короткими импульсами теоретически мы можем усугубить локальный перегрев спирали.
4 — добавление дросселя позволит сделать повышающе-понижающий преобразователь и запитаться от одного традиционного элемента питания. ИМХО это самый важный момент. даже если не будет желания отказаться от 2s батареи, такой преобразователь снизит пиковые токи на малых сопротивлениях
AVKinc
18.04.2016 09:23А есть еще подобные проекты открытые?
Ставить STM как-то не комильфо под такие задачи.vasimv
18.04.2016 10:02Я не видел. Есть мой же проект на ардуине — https://geektimes.ru/post/268872/, но там точности АЦП не хватает. Учитывая, что в современных вейпинг-модах уже давно cortex-m0/m4 применяют, стм-ки — нормальный выбор. Ну и мне давно хотелось его изучить, так что выбор был очевиден. :)
nafikovr
18.04.2016 10:40F3 может и не комильфо, но я бы F0-F1 поставил не задумываясь. А что предложите вы?
alexover
18.04.2016 10:24А какова точность замера сопротивления спирали? И не могли бы вкратце рассказать идею замера? Некогда были попытки сконструировать что-то подобное, до железа так и не дошло. Все упиралось в измерение сопротивления ниже 1Ом с высокой точностью, просто подать сигнал с порта и ацп замерить падение напряжения уже не выйдет.
vasimv
18.04.2016 10:50Теоретическая — примерно две тысячных ома (16-битный АЦП с vref=1.8, 15 ом второе плечо делителя). Приборов соответствующих нет, к сожалению, чтобы проверить. На практике, при частоте единичных измерений в несколько сотен герц — больше сотой ома не получить, там слишком много факторов (вплоть до помех от touch sense-контроллера и уплывания из нагрева ключа и «эталонного» резистора в цепи делителя, которым меряем). Можно, конечно, добавить подсчет среднего арифметического из нескольких измерений, но тогда будут проблемы для регулятора температуры из-за возрастающей инерционности.
alexover
18.04.2016 11:20А, вот оно что «16-битный АЦП с vref=1.8», я то на меге восьмой пробовал замерять. И там просто сделать делитель, пустить 5в, да замерить падение не проходило.
vasimv
18.04.2016 12:09Oversampling можно делать (делаем n^2 измерений, потом делим сумму на n — получаем n дополнительных разрядов). Медленно, зато точно. Но для вейпинга это совершенно не подходит, так как меняется слишком быстро.
alexover
18.04.2016 12:46Спасибо за наводку, почитаю. Я за термокотролем не гнался, а для обычного вариватта возможно этот метод подойдет.
vasimv
18.04.2016 13:15Как обычно, налажал с математикой — https://en.wikipedia.org/wiki/Oversampling. 2^(2*n) измерений и делить на 2^n (сдвигать вправо на n разрядов). Шумы в аналоговой части, разумеется, должны быть меньше того чего хотим получить в итоге.
HerrDirektor
Bypass еще нужно, для экстремальных намоток на дрипки :)
vasimv
В смысле — полную мощность на спираль? В режиме никеля на любых других спиралях оно примерно так и будет работать.
vasimv
А, что я несу-то… Достаточно в режиме variwatt выставить мощность больше чем текущая мощность спирали. Оно же повышать не умеет, будет полную на спираль подавать (ну, почти, минус десятые процента, для циклов контроля сопротивления). :)
HerrDirektor
ИМХО проще выделить это в отдельный пункт меню, как у джоек сделано — BYPASS и наваливаешь на дрипке :)
А вообще интересный агрегат, спасибо, очень любопытно было ознакомиться :)