Адъ меломана: NB Linux USB DAC DSD support

DSD (dsf) on linux native support, mpd (0.20.11) + cantata, DSD support (DOP transport). Играет “нативно”, через USB-транспорт, DSD64 и DSD128, чип TI DSD1796, транспорт XMOS U8,  малопригодный и неудобоваримый усилитель для наушников, чистопородный китаец, одним словом 😉

К счастью, в современном ядре (4.9-4.13) есть все, что нужно для работы данного устройства, никаких патчей или сложных поисков в интернетах не потребовалось – mpd суть умеет “запихать” Native DSD, да вот только устройство не умеет его переварить (пока я так думаю).

NB version magic mismatch / linux kernel module dev

“Внезапно”, при допиливание модуля snd-usb-audio:

[58937.838365] snd_usb_audio: version magic '4.9.60-ARCH+ SMP mod_unload ARMv6 p2v8 ' should be '4.9.60-1-ARCH SMP mod_unload ARMv6 p2v8 '

Ядро, понятно, не кастомное, мне лень.

RC NB Heli-X Joystick Calibration for Linux

Problem statement: HUGE deadzone with Heli-X Sim on NG ACE-RC (possible on any other input device).

Solution is here, carefuly read all about calibration process, jstest-gtk-git works fine for me, as described.

Write your own udev rules (in my case, /dev/input/js* changes time to time):

[ilyxa@wombat ~]$ cat /etc/udev/rules.d/97-acerc.rules 
SUBSYSTEM=="input", ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="70bd", ACTION=="add", RUN+="/home/ilyxa/bin/jscal.sh"
[ilyxa@wombat ~]$ 

Script (make your own, this is VERY important, do not forget #!/bin/sh ;), also this is not good idea to run udev script from user writeable file):
[ilyxa@wombat ~]$ cat bin/jscal.sh 
#!/bin/sh
[[ $DEVNAME == *"js"* ]] && jscal -s 6,1,0,128,128,6882750,6882750,1,0,128,128,6882750,6882750,0,0,0,0,1,0,127,127,6972136,6795626,1,0,127,127,6972136,6795626 $DEVNAME
[ilyxa@wombat ~]$ 

That’s all, folks, now your heli is very aggressive and impressive as expected 😉

DRAFT MCU nuttx

ArduinoTM LogoDRAFT v0.1: nuttx+stm32f103 – Быстрый старт с nuttx и дешевым контроллером stm32f103.

Чтобы не забыть процесс развертывания/инсталляции, записываю, глядишь, кому еще пригодится.

Ставим Arch Linux (я развернул в VirtualBox). Пользователь создан, sudo установлен и настроен – я не затрагиваю настройки ни виртуальной машины, ни собственно ОС, предполагаю, что эти настройки уже сделаны.

Можно не отшивать на виртуалке (соотв. можно не ставить пакеты openocd/gdb – но тут есть нюансы в отладке), я забираю файл на локальную машину (машина с виртуалкой находится ну совсем не под боком 😉 ) – использую scp (с настроенным natpf). Исходники правлю на локальной машине (macOS, откровенно влом возиться с кросс-компиляторами), иногда на другой машине, иногда вообще на виртуальной же Windows. Среда разработки Geany, иногда vim (syntastic снес, достало каждый раз править), обязательно развернуты локальные репозитории + OpenGrok (пока ничего удобнее и проще под домашний серверок найти не удалось).

Ставим дополнительные пакеты.

ZFS on Linux

В принципе, оно работает:

[root@orca ilyxa]# uname -a && pacman -Q zfs-dkms-git spl-dkms-git
Linux orca 4.4.3-1-ARCH #1 SMP PREEMPT Fri Feb 26 15:09:29 CET 2016 x86_64 GNU/Linux
zfs-dkms-git 0.6.5_r172_g048bb5b-1
spl-dkms-git 0.6.5_r45_g18d2f56-1

Hyperion EOS 720 SDUO3 over Wi-Fi (ser2net)

Вносим кое-какие очевидные поправки в этот замечательный док:

Hyperion EOS 720 SDUO3 over Wi-Fi

Для начала – выкидываем (помогаем себе развидеть это!) все упоминания про socat, кстати, есть хорошо работающий вариант с тем же socat и соотв. патчами для поддержки RFC 2217, но сейчас не об этом 😉

Далее, ставим ser2net:

apt-get install ser2net

Далее, прописываем файл к-ции /etc/ser2net.conf, удаляя несколько строк (если же в силу своей ну по сути неподьемной лени нам влом удалять даже четыре строки из файла к-ции – спешу заверить – ничего фатального даже при таковом действе – не случится 😉 ) и добавляя по сути одну:

2000:telnet:600:/dev/ttyS0:9600 8DATABITS NONE 1STOPBIT banner
2001:telnet:600:/dev/ttyS1:9600 8DATABITS NONE 1STOPBIT banner
3000:telnet:600:/dev/ttyS0:19200 8DATABITS NONE 1STOPBIT banner
3001:telnet:600:/dev/ttyS1:19200 8DATABITS NONE 1STOPBIT banner

2217:raw:600:/dev/ttyUSB0:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS

Перезагружаем RPi (sudo reboot), ser2net по умолчанию уже поднимается (через /etc/rc3.d/S01ser2net )

Далее с Virtual Serial Port по уже накатанному сценарию отсюда.

Hyperion EOS 720 SDUO3 over Wi-Fi Remote Monitoring

Версия (если таковая имеется) документа/статьи – 0.02, работает мониторинг через HCDS, управление – не работает или работает не так, как ожидается работает после правильной развяки по питанию RPi. Цель – разобраться с протоколом и накатать нечто для веб-морды на RPi, подключенному к заряднику напрямую, без дополнительных БП и прочего. Начало истории здесь.

Пока только один канал (CH1), отображение вольтажа пака, побаночного вольтажа, тока заряда. Фактически доступен канал 2, сопротивление пака и побаночное сопротивление.

Через релюшки – управление включением-выключением зарядника (в процессе), аналогично сделаю “вывешивание” аварии по набору условий.

Hyperion EOS 720 SDUO3 over Wi-Fi

Версия (если таковая имеется) документа/статьи – 0.01, работает мониторинг через HCDS, управление – не работает или работает не так, как ожидается. Цель – разобраться с протоколом и накатать нечто для веб-морды на RPi, подключенному к заряднику напрямую, без дополнительных БП и прочего.

Итак, вводная – хочется снимать графики и управлять зарядной станцией Hyperion EOS 720i Super DUO3 по “воздуху”. Изначально прочитал правильную статейку о правильной конвертации для работы с bt. Ну я-то кнопконажиматель, а не паятель – обычно куда бы я не применил пОяльник заканчивает свою жизнь примерно одинаково – в р-не помойки 😉 (ну почти).

Далее сколько-то текста, картинки и комментарии