SimpleTesla v1.23: Инструкция к программной части

SimpleTesla
Приветствую!
Позвольте начать с того, что я очень рад вас здесь видеть – т.к. описанный ниже продукт создавался и тестировался на протяжении не одного года, пройдя буквально через 23 версии перед тем как предстать перед нами в нынешнем виде.



В данной инструкции мы подробнейшим образом пройдёмся по программным возможностям приложения SimpleTesla, а так же работающей с ним в паре прошивки контроллера STM32F100C8.

Данный текст стоит воспринимать не как статью, которую нужно прочитать от корки до корки, а именно как инструкцию – описывающую малейшие подробности функционала и аспектов работы. По которой, я надеюсь – вы сумеете получить ответы на любые интересующие вас вопросы, и максимально освоить функционал нашего приложения. :)

Функционал и структура системы ST v1.23

Перед тем как уходить в подробности – вот краткий список возможностей системы ST:

  • Обеспечение беспроводной связи через канал BT;
  • Регулируемый burst-mode прерыватель;
  • MIDI-воспроизведение с поддержкой 6-голосной полифонии;
  • Ограничитель выхода для безопасного воспроизведения полифонии на DRSSTC;
  • Доступ к файловой системе устройства для хранения MIDI-файлов;
  • Синтезаторные эффекты ADSR/LFO/Portamento/Pitchbend;
  • Функция загрузки обновления и беспроводной прошивки МК;
  • Телеметрия температур, индикация системных событий;
  • Настраиваемая термозащита;
  • Настраиваемая защита по току(OCD);
  • QCW режим, генерация пилообразного сигнала;
  • Оптический MIDI-вход с поддержкой выбора канала;

С годами развития меню получилось достаточно разветвлённым, его структуру можно посмотреть на следующей картинке, и да – мы пройдёмся по каждому(!) из пунктов. Устраивайтесь поудобнее. :)



Установка приложения

Перед тем как начать обзор – приложение нужно установить.
Самым «простым» способом является установка из репозитория Google Play, оно официально доступно:
play.google.com/store/apps/details?id=org.tqfp.simpletesla2&hl=en_US

Но лично я предпочитаю производить установку оффлайн, с карты памяти. Скачать файл .APK можно здесь:
simpletesla.ru/wp-content/uploads/2019/01/SimpleTesla_v1.22.zip
Не забудьте в настройках Android разрешить установку приложений из «неизвестных источников».

Connection menu

Это первое, что увидит пользователь после запуска – меню подключения к Bluetooth-устройствам:



Убедитесь что устройство включено, и нажмите Connect – откроется список спаренных BT-устройств, и кнопка "Scan for devices".
Нажмите эту кнопку, и Android-устройство начнет поиск – продукты SimpleTesla по умолчанию могут называться «SI Tesla», «SSTC Tesla», «ST3 Tesla», «ST2 Tesla», или же просто «Tesla» в более старых версиях(v1.22 и ранее).
Стандартный пароль: «1234».

Поиск новых BT-устройств медлителен, и может занять вплоть до 15-30 секунд. Однако, подключившись в первый раз приложение запомнит адрес BT-устройства и можно будет моментально подключаться кнопкой "Connect to previous".

Заметка: На отдельных телефонах модуль HC-06 может в первый раз обнаружиться под именем "Null", но достаточно подключиться и тот всегда будет отображать правильное название.

Interrupter menu

Меню программируемого прерывателя, его функционал повторяет «Interrupter with Burst Mode» от Стива Варда на 3-х 555 таймерах, являющийся классикой для любого койлера. :) stevehv.4hv.org/drsstc_interrupter.htm

Позволяет задать произвольную ширину импульса срабатывания трансформатора Теслы, и частоту повторения этих импульсов.


Pulse Width, он же PW. Данный ползунок задает ширину импульса в микросекундах.
Frequency. Задает частоту повторения импульсов.

В этом же меню можно активировать т.н. burst-mode режим – при этом непрерывный поток импульсов будет прерываться, и Тесла начнет выдавать разряд «пачками».

Modify duty cycle, он же Mod. duty. Процент от непрерывного потока импульсов, который будет допускаться на выход.
Когда этот ползунок выставлен на 100% – burst-mode по факту отключен, т.к. проходят все импульсы.
Modified frequency. Частота, с которой будет прерываться поток импульсов. Она же – частота с которой будут срабатывать пачки.

Здесь же есть кнопка "On/Off" – включает Теслу с заданными параметрами прерываетеля.
И "Pulse" – выдаёт единичный импульс шириной с параметр ползунка PW.
Последнюю очень удобно использовать для проверки работоспособности Теслы, например есть ли разряд в принципе, и нет ли пробоя между первичкой или вторичкой.

MIDI-interrupter menu

Проигрыватель позволяет открывать MIDI-файлы из файловой системы Android-устройства, для этого необходимо нажать строку названия, или же самую верхнюю строку.

Вторая строка сверху – это выбор трека. Любой MIDI-файл может содержать до 16-ти треков, играющих до 16-ти нот одновременно. Плеер позволяет выбрать один из треков, и играть до 6-ти нот в один момент.

Плеер имеет полноценную строку прогресса, которая отображает длину MIDI-файла, ход, и позволяет нажатием перепрыгивать в любую часть файла.

Ползунок Power выступает в роли регулятора громкости, и отвечает за ширину импульса.
Дабы безопасно воспроизводить высокочастотные ноты, а так же смешивать их при полифонии – ширина импульса может динамически изменяться дабы удерживать заполнение в пределах duty limit(подробней в разделе настроек).

Заметка: В отдельных случаях есть смысл уменьшить Power, если при большом количестве одновременно играющих нот они могут не умещаться в пределах duty limit. На практике это звучит как если бы играли только низкочастотные ноты – достаточно немного убавить мощность и остальные ноты станут отчётливыми.



Хотя в сети есть огромное количество MIDI-файлов – не все из них напрямую совместимы с трансформаторами Теслы.
Идеален тот файл, где все ноты находятся на одном треке, и где не более чем 6 нот играют одновременно.
Если различные инструменты разбросаны по разным трекам или нот слишком много – необходимо отредактировать MIDI-файл в редактора(например MIDI Editor). Убрать как можно больше нот дабы мелодия по прежнему звучала правильно, и выделить все ноты как относящиеся к одному треку.



Пример воспроизведения MIDI на SimpleTesla SSTC:

Синтезаторные эффекты
Отдельно стоит расказать о ползунках ADSR, Portamento, и LFO.
Они реализуют стандартные эффекты в музыке, и позволяющие сделать звучание больше похожим на реальные инструменты – например заставить Теслу играть как будто это скрипка. Рассмотрим подробней. :)

ADSR
Attack-Decay-Sustain-Release — это "огибающая зависимости ширины импульса от времени".
Более простым языком – эффект обеспечивает импульс мощности при старте ноты, задает уровень при котором она удерживается, и плавное затухание при отпускании. Как если нажать на клавишу пианино… Но так, эффект ADSR присущ большинству реальных музыкальных инструментов, и если подмешать его в Теслу – она уже не будет звучать как Nokia 3310.

Вот так это выглядит на графике, из которого и истекает первоначальное техническое определение ADSR:


Замечательный туториал по ADSR:

Дабы отключить эффект ADSR и получить классическое прямоугольное прерывание – нужно выкрутить ползунок Sustain на максимум, а Attack, Decay, и Release на минимум.

Portamento
Это весьма простой эффект, он обеспечивает плавный частотный переход между нотами – т.с. разжевывая их между собой. Работает только в одноголосом режиме(voices = 1).

LFO
Вот это ещё один замечательный эффект, позволяющий придать Тесле живое звучание.
Low Frequency Oscillator, его проще всего описать на примере голоса оперной певицы.
Заметьте как она поёт высокочастотные ноты, но их часта и амплитуда имеют низкочастотные затухания:

LFO на примере голоса:

Именно этот эффект и обеспечивает LFO, причем он массово присутствует в музыке, и особенно в скрипичных инструментах. Настроек у LFO не мало, так что рассмотрим их:
Type. Выбор между прямоугольным и треугольным режимом.
Прямоугольный(слева) резко переключает звучащую ноту между её реальной частотой/амплитудой и пониженной, в то время как треугольный(справа) это делает плавно, как в реальных инструментах/голосе.
Frequency. Частота самого низкочастотного осциллятора.
PW Mod. Он же pule-width modifier – задает влияние LFO на ширину импульсов. Воспринимайте его, как если бы тот дёргал ползунок Power. :)
F Mod. Он же frequency modifier – задает влияние LFO на текущую частоту ноты.

Pitch bend
Эффект плавного отклонения от частоты ноты.
На данный момент он управляется pitchbend-сообщениями в самом MIDI-файле.

Если вам понравились действующие настройка синт. эффектов – в самом конце меню MIDI-плеера есть кнопка "Save as defaults", тесла запомнит положение всех ползунков и начнет подгружать его при следующих запусках.

Вкладка More

Это 4-я и последняя вкладка общего меню – здесь находятся настройки, индикаторы телеметрии, меню обновления, и краткие сведения о программе. Пока что мы пропустим Settings и пойдем дальше по списку:



Update Firmware

С ранних версий была реализована функция обновления прошивки.
Дабы проверить, есть ли обновление – Android-устройство должно быть подключено к интернету.
Кнопка "Check for Update" скачает последнюю версию и предложит прошить микроконтроллер.



Как это работает:
Реализована функция весьма занятно, приложение подключается к нашему FTP серверу и скачивает соответствующую своей версии прошивку. Одинаковые приложение и прошивка нужны затем, что из-за изменений в протоколе разные версии могут быть несовместимы, но это же и позволяет пользователю откатываться на прошивки предыдущих версий, просто установив нужную .apk'шку и «обновившись».
На телефон прошивка скачивается в зашифрованном виде, и передаётся по BT в STM'ку, где бутлоадер принимает её страница за страницей, дешифрует, проверяет на целостность и записывает во флешу поверх старых данных.
Игнорируется только поле настроек, дабы те сохранялись после обновления на новую версию.
Технически, если отключить питание во время процедуры – это может привести к повреждению прошивки, но даже в таком случае бутлоадер остаётся, включая возможность подключится и попробовать залить прошивку заново.
В целом, процесс показал себя как очень надёжный, так что не стоит бояться обновлять прошивки ваших продуктов ST. :)

Measurements

Это legacy-менюшка, в которой отображается телеметрия c имеющихся в устройстве датчиков:
  • ST3. Термодатчик на IGBT + термодатчик на 310В электролитах;
  • ST SSTC. Термодатчик на IGBT + измерение напряжения с импульсного блока питания(UVLO);
  • SI. Термодатчик на IGBT;
  • ST2. Сенсоры отсутствуют.


На данный момент менюшка телеметрии малоактуальна, т.к. температуру/напряжение можно вывести на самих экранах Interrupter/MIDI-Interrupter и следить за данными в реальном времени.

Однако, есть определённый плюс в том чтобы отключить реалтаймовую телеметрию – она дополнительно загружает BT-канал, что на практике выливается в задержку отклика приложения.
Если же отключить отображение измерений – отклик приложения в меню прерывания/MIDI-плеера станет моментальным.

About

В данной менюшке можно посмотреть какой версии ваше приложение, в каком году оно было выпущено, а так же инициалы замечательных людей которые его сделали. :)


На данный момент актуальная версия Android-приложения – v1.24, вышедшее в июне 2020-го года.
Актуальная прошивка – v1.23, вышедшая в марте 2019-го. Она совместима с v1.24 приложением.

Стоит отдать дань уважения Сергею BSVi, который самостоятельно начал этот проект в далёком феврале 2013-го, и по сегодняшний день ответственный за разработку львиной части программного обеспечения.
Ваш покорный слуга Евгений NEYi присоединился к проекту в 2015-м году, и с того момента ответственен за разработку аппаратной части, механику, документацию, закупку компонентов, производство, техподдержку, а так же тестирование разработок. :)

Settings

Перейдем к настройкам, обзор которых занимает добрую половину инструкции.
Её первые 2 пункта отвечают за выставление диапазонов программируемого прерывателя:

Max pulse width — максимальная ширина импульса PW в меню прерывателя;
Max frequency — максимальная частота повторения импульсов.


Duty limit

Ограничение коэффициента заполнения сигнала – это глобальный параметр, ограничивающий ширину заполнения как в режиме простого прерывателя, так и при воспроизведения MIDI с плеера.
Так как это коэффициент – доступные значения могут быть от 0(выход отключен) и до 1(допускается CW на выходе).

Подробнее:
Для примера, в SSTC можно выставить ограничитель на 0.5, что не даст MIDI-плееру выдать прямоугольник с более чем 50% заполнением.

Для установок DRSSTC стоит выставить 0.05(или максимум 0.1) – DR'ки в принципе нельзя гонять на большем заполнении, т.к. из-за огромной добротности первички в ней могут не успевать затухать осцилляции. В самом опасном случае DR'ка может запуститься в CW, если например большое количество полифонических нот наложаться друг на друга – это моментально приведет к взрыву силовой части.

Duty limit имеет приоритет выше любых других настроек. Для примера, если выставить диапазоны прерывателя так чтобы тот мог выдавать CW(например 1000 Гц, 1000 uS) – заполнение перестанет увеличиваться(на SS'ке с duty limit в 0.5) после перевала за отметку в 500 Hz 1000 uS. Увеличивая частоту дальше начнет сужаться ширина импульса в 1000 uS дабы удержать выходной сигнал в допустимых рамках.
При ползунках 1000 uS и 1000 Hz выкрученных на максимум – прерыватель ST будет выдавать 1000 Гц 500 uS. :)

Так же, если посмотреть немного с другой стороны – duty limit ограничивает выходную мощность установки.
Если типичная SSTC потребляет около 2 кВт в CW(100% заполнение), то при 0.5 duty limit её мощность никогда не выйдет за предел в 1 кВт, в т.ч. при проигрывании самых «тяжелых» MIDI-файлов.

Disable touchscreen

Отдельные модели Android-устройств могут быть чувствительны к электромагнитному полю, что выражается в рандомных нажатиях кнопок на экране. Такие модели попадаются редко, но дабы и на них можно было запустить приложение – была добавлена функция отключения тач-скрина во время работы Теслы.


Дабы отключить Теслу – следует нажать кнопку громкости "вниз".

Заметка: На самых современных устройствах кнопки управления Android могут быть сенсорные, или вообще быть отрисованы на том же тач-скрине. Если такой телефон в добавок чувствителен к наводкам, то управлять им Теслами не рекомендуется.

Keep alive

Данная функция решает проблему потери связи между управляющим приложением и BT-модулем во время работы Теслы.
Активировав этот флаг – приложение ST начнет постоянно слать keep-alive команды, а прошивка STM32 будет их ожидать.
Если во время работы поток команд прекратится – трансформатор тут же прекратит работу.

Это весьма полезная функция безопасности, т.к. раньше выйдя из радиуса действия BT-связи установка продолжала работать, и отключить её было никак кроме как из розетки… В таком случае Тесла била пользователя с сетевой вилки молнией, что не очень приятно. Даже скажем совсем не приятно. :)

Interrupt source

У ST может быть 3 источника прерывания:



MIDI over Bluetooth only. В данном случае управление осуществляется по каналу Bluetooth, обычно при помощи программы SimpleTesla под Android.
Существует так же возможность управления по BT с ПК, однако приложение Windows не более чем экспериментальное и требует значительной доработки. Оптический вход в данном случае отключен;

MIDI over Bluetoooth and optics. В этом режиме включается оптический приемник, что позволяет принимать MIDI-данные по оптоволокну, например с пианино-синтезатора или ПК.
При этом есть возможность одновременного подключения по BT дабы задавать настройки во время работы.

Подробней об одновременном подключении можно посмотреть здесь:

Direct optical input. В приложении v1.23 данный режим просто повторяет сигнал с оптического входа.
Стоит осознавать риск, что если подать непрерывный поток света – это может взорвать DRSSTC, если у таковой не реализована функция токовой защиты(в ST3 такая есть).

Coil Type

Прошивка ST может управлять 3-мя типами трансформаторов Теслы:



DRSSTC. Режим для управления двухрезонансными трансформаторами, они же Dual Resonant Solid State Tesla Coil. В данном случае доступны ограничительные настройки для безопасного воспроизведения MIDI;

SSTC. Режим для управления обычными твердотельными трансформаторами, они же Solid State Tesla Coil.
Настройки, касающиеся DRSSTC в меню MIDI затемнены, и по умолчанию выставлены на бесконечность.
Это позволяет на любой частоте иметь одинаковое заполнение, например 50%;

QCW DRSSTC. Режим для квази-непрерывных установок, они же Quasi-Constant Wave Dual Resonant Solid State Tesla Coil.

MIDI Settings

Это весьма большой раздел, настраивающий аспекты работы MIDI-плеера.



Use note volume
У каждой MIDI-ноты имеется параметр velocity, грубо означающий скорость с которой вы нажали на клавишу пианинки.
Если данная опция активирована – ST будет воспроизводить каждую ноту с учетом её «громкости», отталкиваясь так же от положения ползунка volume в MIDI-плеере.
Отключив эту функцию каждая нота будет воспроизводиться с громкостью 100%.

Ограничительные настройки для DRSSTC
Для безопасного воспроизведения MIDI на установках DRSSTC была реализована функция ограничения ширины импульса в зависимости от частоты ноты. Это необходимо, т.к. первичный контур в двухрезонансных установках накачивается импульсами одинаковой ширины(обычно до 120 us), и при росте частоты соответственно растет заполнение.
Это критичный параметр, который необходимо держать в пределах 5% – чем в свою очередь обеспечивается надежность при воспроизведении любого MIDI-трека.

Ограничитель включает в себя следующие параметры:
Corner frequency. Пороговая частота, после которой начинает снижаться ширина импульса;
PW at corner frequency. Ширина импульса до превышения пороговой частоты;
Max. frequency. Максимально допустимая частота, ноты превышающие эту частоту будут игнорироваться;
PW at max frequency. Ширина импульса при воспроизведении максимальной частоты.


В случае воспроизведения полифонических MIDI-файлов ширину импульсов так же контролирует ранее рассмотренная настройка duty limit, не давая большому количеству импульсов наложиться друг на друга.

Voices
Данный параметр касается полифонии, и ограничивает количество одновременно воспроизводимых нот.
Макс. количество – 6 нот, оно упирается в количество таймеров у контроллера STM32F100.
Если выставить 1 ноту – MIDI плеер станет монофоническим, как на версиях прошивки v1.14 и более ранних.

Обычно, стоит искать золотую средину, т.к. 6 играющих нот одновременно сделают звук грязным, но при этом многие мелодии и в принципе не звучат без 3-х одновременных нот и или даже более.
Хороший вариант это специально подгонять MIDI-треки в редакторе, по возможности удаляя все ненужные ноты.

Но для организации идеального звучания – нужно чтобы несколько установок играли MIDI в одноголосном режиме. При отсутствии смешивания нот любой шум полностью пропадает. Управляется такой оркестр при помощи оптики, с ноутбука.

Loop MIDI
Если этот флаг выставлен – MIDI-трек будет крутиться по кругу.

MIDI Channel
Эта фича позволяет управлять целым оркестром из трансформаторов Теслы, используя всего 1 USB-MIDI кабель.
Протокол MIDI уже поддерживает адресацию до 16-ти инструментов, и каждый может играть до 16-ти нот одновременно.
Опция MIDI Channel задает то какой трек будет играть наш отдельный трансформатор.

Дабы организовать одновременное воспроизведение на нескольких трансформаторах – потребуется ноутбук с MIDI-редактором(они же Digital Audio Workstation), подойдет Steinberg Nuendo, FL Studio, или даже простой MIDI Editor.
Главное чтобы программа могла редактировать и воспроизводить MIDI на внешний выход.

Дабы подключить трансформаторы к ПК – нужен USB-MIDI шнур, выглядящий обычно вот так:

Это стандартное USB-устройство, так что воткнув шнурок в ПК тот сразу должен определится и добавить аппаратные MIDI вход и выход, которые так же отобразятся в программах DAW.
Всё что вам осталось – подключить оптоволоконный кабель к MIDI-шнурку. Как это сделать я вкратце описал вот тут.

Max Power
Данный параметр ограничивает ползунок громкости в MIDI-плеере.
Это может пригодится в режиме SSTC, где примерно на первых 20% громкости та уже выходит на слышимый максимум.

OCD Settings

Настройка ограничителя по току, он же Overcurrent Detector.
Играет очень важную защитную функцию на установках DRSSTC, включая наши ST2 и ST3.

OCD требуется, т.к. при ударах в землю ток через силовые IGBT-транзисторы значительно возрастает, обычно в 2-3 раза относительно работы молнии в воздух. Мощные токи приводят к деградации транзисторов, что со временем ухудшает их параметры и рано или поздно приводит к взрыву силовой части. Чего нам хотелось бы избежать, не правда ли? :)

Меню OCD представляет из себя калькулятор для используемого токового трансформатора, и принимает следующие параметры:


Curent limit. То, при каком токе через ключи сработает токовая защита.
Очень важно не завышать этот параметр, выставляя в аккурат немного выше тока работы молнии в воздух.

Для примера:
На SimpleTesla 3 ток через ключи при работе в воздух – около 250А, если выставить ниже то OCD начнет срабатывать сама по себе.
Получается, рекомендуемое значение тока – это 260А.
Выставив это значение выше вы не получите разряд большего размера – просто токовый пик при разряде в землю будет выше, что соответствует большему нагреву, и большему урону транзисторам если токовый пик выходит за рекомендуемые даташитные пределы.

Да, если вам зачем-то понадобится отключить OCD – это можно сделать записав 0 в данный параметр.

OCD Burden. Здесь указывается резистор в миллиОмах, который стоит на выходе токового трансформатора. Например, у ST3 стоит резистор 1500 мОм. У ST2 – 3300 мОм.

OCD transformer ratio. Здесь указывается количество витков у вашего токового трансформатора.
У ST3 это 200 витков, у ST2 – 300 витков.

Пример расчетов токового трансформатора:
Из параметров OCD Burden и OCD Transformer Ratio считается коэффициент преобразования вашего токового трансформатора, или иными словами – сколько он выдаст вольт на каждые протекающие 100А в первичке(этот же ток течет через IGBT транзисторы).
Считается оно по формуле: E=R*I(N1/N2).
Где E = напряжение, R = нагрузочный резистор в омах, I = количество ампер, N1 = витков в первичке токового трансформатора(обычно 1), и N2 = количество витков токового трансформатора. Если посчитать для ST3, то выходит 1.5*100(1/200) = 0.75V, столько выдаст тамошний токовый транс на 100А в первичке.

Почитать подробней о токовых трансформаторах можно в соответствующей статейке.

Работает OCD через цифро-аналоговый преобразователь STM'ки(он же DAC).
Например, если мы выставим OCD в 260А(оптимальное для ST3) – DAC STM'ки выдаст постоянные 1.95В, которые уже можно завести на компаратор и сравнивать с тем то выдает трансформатор тока через транзисторы.
Если напряжение с ТТ выше напряжения на DAC – это по факту превышение выставленного нами порога Current limit. Компаратор выдаст единицу на МК и тот отключит прерывание вплоть до следующего цикла.

Этой фичей можно воспользоваться в том числе на SimpleInterrupter, где ножка DAC выведена и может использоваться. Либо для для постройки пользовательских DR'ок с SI, где можно будет регулировать OCD через менюшку приложения, либо в связке с SimpleDriver v2.3 где имеется вход для DAC.

На SimpleTesla SSTC функция OCD не используется, там защита от закорота вторки реализована через FBA(анализатор обратной связи), о котором будет рассказано в отдельной статье.

QCW Settings

Настройка диапазонов меню QCW-прерывателя.
Max Ramp length – максимальная длина зубца пилы.
Max QCW frequency – максимальная частота повторений зубцов.



Если в меню Coil Type выбрать режим QCW DRSSCT – стандартное меню прерывателя заменит собой QCW-прерыватель, дающий на выходе PWM-сигнал с плавно нарастающим заполнением:



Отфильтровав данный сигнал можно получить аналоговый пилообразный сигнал с паузой – пригодный для управления QCW-установками на основе Buck или Phase-Shift технологии.

PWM-сигнал на выходе составляет 93.6 kHz, его можно отфильтровать RC-цепочкой 2-го порядка, состоящей из 4.7 kOhm и 10 nF – это даст плавныё рост от 0 и до 5V:



Спадающий фронт получается не моментальным, занимая около 300 uS, но в топологии QCW это не оказывает негативного влияния, т.к. образование мечевидного разряда зависит от восходящего фронта.

Thermal Protection

В данном меню настраивается термозащита – она позволяет прекратить работу при достижении пороговой температуры, дабы предотвратить перегрев и последующий взрыв электронных компонентов.
Наиболее полно эта функция используется в ST3, где имеется 2 датчика температуры: на IGBT-транзисторе полумоста, и на электролите сетевого питания. Настройки выглядят вот так:



IGBT threshold. Максимально допустимая температура на IGBT;

IGBT hysteresis. Гистерезис для температурного порога IGBT, или проще – то насколько температура должна упасть после срабатывания термозащиты по IGBT, перед тем как МК снова разрешит работу.
Для примера, оптимальная температура срабатывания для IGBT это 70ºC, а гистерезис можно сделать в 20 градусов.
Т.е. нагревшись до 70-ти градусов установка отключится, и включится обратно только на 50-ти ºC.

Cap threshold. Максимально допустимая температура на электролитических конденсаторах.

Из-за мощнейшего импульсного тока на установках DRSSTC – сетевые электролиты могут медленно, но верно нагреваться до весьма значительных величин. Вплоть до +100ºC если DR'ка будет работать 30 минут и более. Дабы предотвратить деградацию сетевых электролитов и даже их возможный взрыв – рекомендуется выставить термозащиту на 60ºC.

Cap hysteresis. Гистерезис температурного порога электролитов. Сетевые конденсаторы медленно прогреваются, и ещё медленнее остывают – в идеале дать им остыть хотя бы до 40ºC перед тем как продолжать работу;

Reset after cooling. Если выставлен этот флаг – трансформатор продолжит работать после того как охладится до нужной температуры.
При помощи неё можно заставить работать Теслу «по кругу», дни и дни напролёт.
Однако, использовать эту функцию мы не рекомендуем – не редки случаи когда кто-то может подойти к остывающей установке и получить заряд бодрости когда та внезапно включится. :)

Show temperatures. Если включено – телеметрия будет отображаться в реальном времени, показывая температуру, напряжение, и статус прямово время работы Теслы. Очень удобная штука, но может несколько затормозить отклик меню прерывателя и MIDI-проигрывателя.

Undervoltage protection

Меню настройки Undervoltage Lockout на SimpleTesla SSTC, оно же UVLO.
Эта функция следит за напряжением низковольтного импульсного блока питания, и не даст трансформатору запуститься если появится просадка напряжения от номинального.

Это пригодится на случай какой-либо неполадки, например если питание просядет с номинальных 14V до 5V. Система по прежнему запустится, т.к. STM'ка питается от 3.3В через стабилизатор… Но подключившись к такой установке и запустив её – произойдет взрыв силовых транзисторов, т.к. управляясь напряжением 5V те не будут до конца открываться и перегреются менее чем за секунду.
Такая ситуация крайне маловероятна, но рас защита от неё есть – рассмотрим пункты менюшки:


On voltage. Напряжение, свыше которого будет разрешена работа трансформатора. Для ST SSTC это 14V;

Hysteresis. Значение, до которого напряжение может просесть во время работы перед тем как установка уйдет в режим защиты.
Большинству IGBT нужно как минимум 12V для полноценного открытия;

UVLO divider. Контроллер STM32F100 питается от 3.3V – он не может измерить своим АЦП напряжения вроде 14V, он сгорит. :)
По этому подключать напряжение нужно через резисторный делитель. В данном параметре указывается коэффициент деления, где 1 это отсутствие деления, а 0.5 это деление напряжения на 50%. В ST SSTC стоят 10k и 1k резисторы, так что коэффициент получается «0.09».

Bluetooth Settings

В данной менюшке настраиваются параметры BT-модуля:


Device name. Имя BT-устройства при поиске. При первом включении или при сбросе настроек выставляется сокращенное имя продукта, будь то ST2, ST3, SI, ST SSTC, или «Unknown device»;

Device bluetooth PIN. Пароль, который вводится при подключении к BT-устройству.

Menu password

Если вы хотите ограничить доступ к меню настроек – это можно сделать при помощи данной опции.


Настройки каждого прибора строго индивидуальны, и если изменять их без знания внутреннего устройства и принципов работы – есть вероятность выставить неправильные параметры, чем вывести прибор из строя.

Пароль меню может пригодится если вы одалживаете или сдаёте трансформатор Теслы в аренду.
Некоторые продавцы даже предпочитают продавать устройства с запароленными настройками, дабы уменьшить вероятность выхода продукта из строя в следствии экспериментов.

Это более чем можно понять – я сам бывал в ситуациях, когда пользователь взрывал установку и после стоял до последнего, заверяя мол «она сама бахнула», в то время как меню настроек отчётливо говорило что он гонял установку вне допустимых для неё параметров. Предоставив аргумент можно услышать нечто на подобии «а почему эти настройки тогда доступны, рас ими установку можно взорвать?». :D

В общем, есть люди которые сами напрашиваются на ограничения. Но как бы не был высок соблазн – всё таки у нас противоположный подход, в том числе касательно готовых устройств. Мы предоставляем пользователю полную свободу действий и выбора, при условии что он знает что делает, и принимает на себя ответственность за последствия.

Дополнительный функционал

Кроме пунктов меню так же присутствуют следующие функции:

Статусные коды




Сброс к заводским настройкам

ST можно откатить на заводские настройки – это может быть полезно если вы забыли пароль к BT-модулю или меню настроек, а так же чтобы вернуться к рекомендуемым настройкам для своего устройства.

Чтобы осуществить сброс – необходимо выключить устройсто на базе ST, найти на плате хедер под названием SWD(используется для прошивки контроллера STM32F100C8), и закоротить на нем отверстия F и V(они же Function и Voltage). Это удобно сделать пинцетом, после чего нужно снова включить устройство.



На старте МК проверяет состояние ножки Function, и если она подтянута к 3.3V(линия Voltage) – произойдет сброс, о чем сообщит статус 3 раза отмигав светодидом. Подождите пока статус не изменится на Initialization OK, после чего с устройством можно работать.

Управление синтезаторными эффектами через оптокабель

В случае подключения ноутбука или пианино-синтезатора через оптических вход – параметрами ADSR/Portamento/LFO можно управлять с помощью стандартных MIDI-сообщений. Можно настроить энкодеры на пианино-синтезаторе или ползунки в программе ПК для управления интересующим эффектами:


Возможные неполадки и способы их устранения

За годы разработки и эксплуатации было замечено не мало «особенностей в работе».
Дальше следует список, который надеюсь поможет вам в случае каких-либо нештатных ситуаций:

1. Не видит продукт ST при поиске BT-устройств.
Модуль HC-06 в редких случаях может капризничать при первом поиске – это лечится удалением на телефоне всех спаренных BT-устройств и повторным поиском. Как вариант можно перезагрузиться и так же передёрнуть питание на продукте ST.
После первого удачного обнаружения и подключения – эта проблема больше никогда не возникнет;

2. При подключении отказывает в доступе.
На пункте «Identifying» происходит проверка, совместимо ли подключаемое устройство с программой ST – при этом они обмениваются ключами и те должны совпасть друг с другом(т.н. handshake, или «рукопожатие»).
Если подключиться из программы ST например к телефону, наушникам и т.д. – приложение не получит ответного кода и просто выдаст ошибку.
Если вы например перепаяли модуль HC-06 на новый – эта ошибка так же будет возникать, т.к. новый модуль не инициализирован. Чтобы тот проинициализировался(выставился baud-rate и т.д.) – нужно провести описанный выше «сброс до фабричных настроек».

3. На старом устройстве не работает Google Play и отсутствует File Manager.
Это не беда, файл .APK так же можно установить через браузер телефона. Запишите файл установщика «SimpleTesla.apk» в корень карты памяти, запустите стандартный браузер и введите это в строке адреса сайта: «file:///sdcard/SimpleTesla.apk».
Таким методом можно запускать любые файлы по любому адресу без наличия файловых менеджеров.

4. SI при включении не мигает светодиодом на BT модуле, и тот не обнаруживается.
Это известная штука, связанная с особенностью BT-модуля – возникает если запитать SimpleInterrupter не от резкого скачка напряжения, а плавно нарастающей пилой.
Дело в том что HC-06 состоит из BT-чипсета BC417(питание от 1.8+ вольт) и внешней флеш-памяти 29LV800CBXBI-70G(питание от 3.3 вольт). При плавном подъёме напряжения блютузный МК включается раньше своей памяти и инициализируется неправильно(BT не работает!), хотя по прежнему правильно рапортует уже нашей STM'ке что всё OK. Вот и выходит что статус в норме, а BT-модуль ни мигает, ни выдаёт сигнал в эфир.
Дабы избежать проблемы – питальник 5V для SI должен обеспечить хотя бы 400 мА импульсного тока на старте, и так же по входу питания SI не должно быть жирных электролитов.

5. При запуске отдельных MIDI-треков приложение ST падает;
Это известный баг, который будет исправлен в следующей версии приложения.
Вылет приложения происходит если у MIDI-файла имеются пустые треки без нот – их можно легко удалить в любом редакторе MIDI, например MIDI Editor.

6. При каждом старте настройки сбрасываются на фабричные.
Это крайне редкий случай, возникший всего раз за период в несколько лет – по сути он представляет собой фабричный сброс STM'ки на каждом старте, который происходит сам по себе.
Случай лечится только заменой STM'ки, т.к. сброс вызван сгоревшей ножкой на линии FUNC.

7. Устройство при старте моргает статусом, будто сработала термозащита.
Возможна проблема с термодатчиком, один из контактов закоротился на радиатор – необходимо отпаять термодатчик(в этом случае температура равна -80°C) и проверить пропало ли ложное срабатывание термозащиты.
Если да – необходимо пересобрать термодатчик. Если нет – проверить резистор и конденсатор в цепи срабатывающего термодатчика. Если и это не помогло – могла сгореть ножка АЦП у STM'ки, это плохой случай.
Термозащиту можно отключить в настройках, дабы установка работала без неё – но отремонтировать проблему можно только заменой STM'ки.

8. Во время работы отпадает связь BT на ST SSTC.
Отпало заземление с удерживающих корпус шпилек, от чего те «висят в воздухе» и ловят наводки с Теслы.
Шпилька рядом с модуем BT передаёт наводки уже на саму HC-06 и та может сбрасываться.
Лечится проверкой мультиметром, что каждая из шпилек подключена к земле. Землю можно найти на 3-м контакте разъёма сетевого питания.

9. Устройство испустило волшебный дым и более не подаёт признаков жизни.
Это плохой случай. :)
Если у вас возникли аппаратные неполадки с устройством, и вы не имеете представления что дальше делать – всегда можно написать на форуме, или мне на E-mail, указанный в конце статьи.
Я обязательно постараюсь ответить – выдав инструкции к действию, и по необходимости прислав нужные компоненты для ремонта. Зачастую с неисправностью может справится сам пользователь, но если неполадка серьёзная – так же есть вариант прислать устройство мне на ремонт.

Планы на будущее

Даже в нынешнем виде можно придумать массу способов улучшить нашу систему. :)
Из планов – было бы круто реализовать следующие пункты, большие и маленькие:

1. Сделать открытым цифровой протокол связи с STMкой;
Эту штуку нас просили очень много раз, но для этого придется немного переписать протокол дабы сделать его более user-friendly.
Однако, когда это будет сделано – всегда можно будет написать управляющую программку под любую операционку.
Например, нам не раз предлагали сделать операционку под iOS, что неплохо расширило бы спрос к нашим продуктам в США.:)

2. Написать полноценное управляющее приложение для Windows;
Если честно, я не фанат смартфончиков и взамен предпочитаю ходить с ноутбуком на Windows + телефоном вроде Nokia 3310. :)
В добавок, наличие виндового приложения защитило бы платформу ST от ежегодного обновления Android, для которых постоянно приходится что-то исправлять;

3. Перейти на более современный BT-модуль;
Совсем недавно появилась нативная поддержка MIDI over Bluetooth в последних редакциях BT-протокола.
Это сильно бы упростило подключение трансформаторов к ПК и позволило бы отказаться от необходимости в оптоволокне при подключении оркестра. Однако здесь спорно, т.к. радиус действия у классического BT 2.0 – 25 метров, в то время как у BLE – 10 метров.;

4. Вернуть функцию защиты по Direct Input;
В монофонических версиях прошивки(v1.14 и ранее) была очень крутая фича – мониторинг входного сигнала в режиме Direct Input и его фильтрация относительно настроек прерывателя. Это позволяло подавать на оптический вход любой мусор и быть уверенным что он не причинит вреда системе.
Функция была отключена при переходе на полифонию дабы освободить максимальное количество тамеров… Однако со временем стало понятно, что 6-й голос полифонии практически ничего не решает, а вот фичу входного фильтра было бы круто и вернуть;

5. Добавить поддержку 2-го температурного датчика в SI.
Если он есть – тогда почему не добавить? Сейчас он не только не выведен на платке SimpleInterrupter, но и отключен программно;

6. Добавить смешивание многотрековых MIDI-файлов при воспроизведении с телефона.
В идеале править каждый файл, по-честному смешивая все треки в один… Однако ничего не мешает сделать дабы воспроизводимые MIDI с телефона играли все треки одновременно;

7. Добавить функцию удаления MIDI-файлов;
Это было бы очень удобно. :)

Заключение

Надеюсь вы рады использовать продукты SimpleTesla, и что вам очень пригодилась эта инструкция.
Не поверите как много времени заняло её написание. :)

Вероятно я мог упустить некоторые моменты, так что если вы не найдете ответа на свой вопрос – напишите его в комментариях, или же мне на почту: eugene.negrobov@gmail.com

-Евгений NEYi и Сергей BSVi

6 комментариев

avatar
Вот это молодцы!
avatar
Скоро ещё на английском подкатит версия. :)
Я правда сейчас застрял – пока писал инструкцию распродались все SI, и новая партия будет не раньше чем через месяц.
Сейчас приходится по старинке запаивать платки, но благо скилл на месте – за день получается сделать и отправить 16 платок SI, без особого экстрима.
Прикольно кстати, что даже 100 штук прерывателей сделать занимает недели 2-3 на стороне, а самому сделать это неделя.
Но когда сам паяешь – это забирает все силы, и есть смысл сложить операцию на кого-то другого, делая взамен что-нибудь конструктивное в плане развития.
avatar
По заявкам трудящихся был расширен раздел о QCW-режиме. :)

Добавил осциллограммы PWM-пилы на выходе SI, описал как её можно отфильтровать,
и так же добавил осциллограмму отфильтрованной аналоговой пилы.
avatar
Работа проделана глобальная, а у трудящихся еще заявки :)
Не плохо бы в настройках QCW кроме ограничения максимальной длительности рампы добавить и ограничение минимальной:)
avatar
Я правильно понял, что с катушкой из Китая ваше приложение не работает — не идентифицируется при попытке коннекта и миди-файлы не читает?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.