Open-source open-hardware TC/«variwatt» мод для вейпинга на STM32

Так как мой предыдущий мод на ардуине имел много ограничений, а также в плане самообразования — я решил сделать новую версию на STM32F373C8T6. Это мой первый проект на STM32, в нем довольно много недоработок. Надеюсь, кого-нибудь еще заинтересует, и мы сможем сделать его лучше!

Проект на 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

    0
    Bypass еще нужно, для экстремальных намоток на дрипки :)
      0
      В смысле — полную мощность на спираль? В режиме никеля на любых других спиралях оно примерно так и будет работать.
        0
        А, что я несу-то… Достаточно в режиме variwatt выставить мощность больше чем текущая мощность спирали. Оно же повышать не умеет, будет полную на спираль подавать (ну, почти, минус десятые процента, для циклов контроля сопротивления). :)
          0
          ИМХО проще выделить это в отдельный пункт меню, как у джоек сделано — BYPASS и наваливаешь на дрипке :)
          А вообще интересный агрегат, спасибо, очень любопытно было ознакомиться :)
        +3
        Вряд ли кто-то 10 лет назад подозревал, что в будущем мы будем программировать сигареты…
          +3
          Только сейчас до меня дошло, что это электронная сигарета, блин…
          0
          А куда эти 100 ватт деваются? Неужели почти все в корпус уходят, а не в горло?
            0
            Большая часть — на испарение жидкости, разумеется.
              0
              Действительно, что-то я затупил
              0
              В испарение жидкости в основном. Часть — в корпус :)
              +2
              Каждый раз, когда кто-то использует ярлыки к пинам вместо нормальных соединений(там где это возможно), на земле умирает котёнок :'(
                0
                Да я обычно котят экономлю. Но тут уж больно страшная сеть получилась бы.
                +1
                Вы бы хоть написали в начале статьи — ЧТО ЭТО ЭЛЕКТОРННАЯ СИГАРЕТА. Я тоже понял это только из коментариев.
                  +1
                  Однако, основной недостаток в виде «импульсного» режима парения остался. Так что планы на развитие правильные.
                    0
                    Это спорный момент. Габариты серьезно увеличивает (на плате с дросселем и диодом шоттки — оно занимает почти четверть платы), а смысл очень спорный. Все-таки температурная инерция спирали довольно высокая, при частоте импульсов больше килогерца — особой разницы не будет. Спираль же все равно прогревается неравномерно, внутренние слои будут запасать энергию (аналогично дросселю, фактически) и постепенно отдавать на охлаждаемую жидкостью поверхность. Но попробую, конечно, чисто из-за возможности держать частоту опроса под 10 килогерц.
                      0
                      на голый пвм выведенный на спираль очень много жалоб со стороны вейперов. не знаю конечно на сколько они обоснованы, но осмелюсь предложить свои доводы.
                      1 — инерция спирали все же недостаточна на относительно низких частотах и происходит плавание мощности/температуры в ощутимых пределах (возможно достаточных для легких гариков). особенно ощутимо будет на материалах применяемых для ТК.
                      2 — «линейная» стабилизация (имею в виду нету, которая действительно линейная, а импульсную, на выходе которой что то близкое к постоянке) позволит производить корректные измерения во время нагрева, что опять же положительно скажется на контроле как мощности, так и температуры.
                      3 — как раз таки из-за неравномерности прогрева спирали загоняя заведомо большую мощность короткими импульсами теоретически мы можем усугубить локальный перегрев спирали.
                      4 — добавление дросселя позволит сделать повышающе-понижающий преобразователь и запитаться от одного традиционного элемента питания. ИМХО это самый важный момент. даже если не будет желания отказаться от 2s батареи, такой преобразователь снизит пиковые токи на малых сопротивлениях
                    0
                    А есть еще подобные проекты открытые?
                    Ставить STM как-то не комильфо под такие задачи.
                      0
                      Я не видел. Есть мой же проект на ардуине — https://geektimes.ru/post/268872/, но там точности АЦП не хватает. Учитывая, что в современных вейпинг-модах уже давно cortex-m0/m4 применяют, стм-ки — нормальный выбор. Ну и мне давно хотелось его изучить, так что выбор был очевиден. :)
                        0
                        F3 может и не комильфо, но я бы F0-F1 поставил не задумываясь. А что предложите вы?
                        0
                        А какова точность замера сопротивления спирали? И не могли бы вкратце рассказать идею замера? Некогда были попытки сконструировать что-то подобное, до железа так и не дошло. Все упиралось в измерение сопротивления ниже 1Ом с высокой точностью, просто подать сигнал с порта и ацп замерить падение напряжения уже не выйдет.
                          0
                          Теоретическая — примерно две тысячных ома (16-битный АЦП с vref=1.8, 15 ом второе плечо делителя). Приборов соответствующих нет, к сожалению, чтобы проверить. На практике, при частоте единичных измерений в несколько сотен герц — больше сотой ома не получить, там слишком много факторов (вплоть до помех от touch sense-контроллера и уплывания из нагрева ключа и «эталонного» резистора в цепи делителя, которым меряем). Можно, конечно, добавить подсчет среднего арифметического из нескольких измерений, но тогда будут проблемы для регулятора температуры из-за возрастающей инерционности.
                            0
                            Упс, что-то совсем плохой стал, ровно на порядок больше точность. :)
                              0
                              А, вот оно что «16-битный АЦП с vref=1.8», я то на меге восьмой пробовал замерять. И там просто сделать делитель, пустить 5в, да замерить падение не проходило.
                                0
                                Oversampling можно делать (делаем n^2 измерений, потом делим сумму на n — получаем n дополнительных разрядов). Медленно, зато точно. Но для вейпинга это совершенно не подходит, так как меняется слишком быстро.
                                  0
                                  Спасибо за наводку, почитаю. Я за термокотролем не гнался, а для обычного вариватта возможно этот метод подойдет.
                                    0
                                    Как обычно, налажал с математикой — https://en.wikipedia.org/wiki/Oversampling. 2^(2*n) измерений и делить на 2^n (сдвигать вправо на n разрядов). Шумы в аналоговой части, разумеется, должны быть меньше того чего хотим получить в итоге.
                            0
                            Класс!

                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                            Самое читаемое