Все заметки цикла Бракованные Детали собраны из контента одноимённого канала, куда я активно писал в 2021 году.
Mixtape Alpha — портативная, цифровая шумелка сделанная в форме аудиокассеты.
1 Или он, наоборот, должен быть на минималках?
Кроме микроконтроллера ATmega328 и его скудной обвязки на борту ничего нет. Low-Fi на максималках1. В качестве органов управления выступают контактные площадки на плате.
2 Look-up table, в случае с синтами читай “wavetable”.
Есть 4 разных «голоса», плюс 4 разных эффекта. Контактные площадки нот внизу и 6 захардкоженных аккордов на отдельных площадках расставленных кольцом. Есть минимальная автоматизация через запись последовательности нажатия этих аккордов при помощи кнопок rec/erase. Ещё есть возможность редактировать LUT2 через PureData с последующей интеграцией получившейся таблицы в прошивку. Довольно неудобная реализация, но, всё-равно, считаю за фичу.
Даже не буду рассказывать как его соурсил и собирал: настолько всё тривиально.
💸 Посмотреть цены 2021 года на свой страх и риск 💸
- 1 481 ₽ компоненты в ЧИД
- 500 ₽ Платы в JLC
- ВСЕГО 1 981₽
Моё внимание этот синтезатор привлёк простотой своего взвешенного интерфейса. Однако, после первого подхода к нему я получил сущее разочарование, как тогда в детстве, когда пытался намотать спящего ужа на удочку.
После сборки и прошивки он вроде бы работал, но провести за ним хотя бы 10 мин было пыткой.
Я тогда подумал: «всё дело в резистивной тач-поверхности». Это такой дизайн, когда площадки следят за изменением сопротивления, когда их замыкают пальцами. Это старый и дешевый концепт, но раньше я никогда не имел с ним дела и был уверен, что он просто на столько плох.
3 А ещё такие прикосновения иногда отсвечивали в аудиотракт порождая дикого уровня пики в районе 10 кГц.
Каждый раз когда я пытался что-то там «нажать», происходило что угодно, кроме того, что нужно. Иногда пэды не срабатывали при сильном нажатии, а иногда срабатывают когда к ним ещё не прикоснулся. Иногда срабатывали дважды в зависимости от того как долго их замыкаешь и с какой стороны держишь плату3. В общем, это как играть на синтезаторе и пытаться не утонуть в море киселя одновременно.
А ещё устройство работает от 3V батарейки-таблетки CR2032. Но питанием управляет сам микроконтроллер через отдельную ногу, поэтому при первой установке батареи эта штука сама включается вне зависимости от того в каком положение находится выключатель. Такое проектирование на компромиссах.
В канале я тогда назвал этот девайс пустой тратой атмег. Единственным устройством из списка, которое я бы точно не рекомендовал к сборке.
Второй подход и выводы
В какой-то момент, несколько дней спустя, устройство попалось мне под руки и после короткого осмотра, убедившись в том, что оно отменно собрано, я написал письмо автору. Авторше. Авторке. В общем девчонке, которая проектировала его схемотехнику.
Видимо, мой вопрос избыточно описывал ситуацию и после трёхдневного молчания Jie Qi ответила, что я выставил неправильные фьюзы во время прошивки, поэтому МК работал в 8 раз медленнее, чем должен бы.
Никогда такого не было и вот опять!
В прошлый раз похожие проблемы я решал с Arpie , но там сразу было очевидно, что девайс работает медленнее, чем нужно. В случае с Mixtape Alpha понять это оказалось непросто и кроме того: фьюзы это первое что я проверил.
Дело в том, что какими именно должны быть фьюзы вообще нигде не указано. Косвенно на них намекают строчки в исходниках, но сами биты не опубликованы. Уж не знаю почему так.
Если будете собирать, то вот правильный набор:
-U lfuse:w:0xE2:m -U hfuse:w:0xD9:m -U efuse:w:0xFF:m
От дефолтового значения, которое по умолчанию залито в ATmega328, отличается только lfuse.
Разумеется, после перепрошивки всё заработало, как нужно. Исчез шум на высоких, светодиоды перестали мерцать. Появилась 16 голосная полифония и заработал физмодельный движок на нейросетках. Даже тач-поверхности стали отзывчивыми, но до нормального интерфейса им всё-равно далеко.
⚠️ Каменты в режиме эксперимента. Нужна регистрация на GitHub и необходимо дать разрешение боту Giscus. Если это неприемлемо, можно комментировать прямо на GitHub.