Скажем дружно “привет, stcdude”

Прошло некоторое время, с тех пор как были последние подвижки над этой проблемой, но сейчас уже начинает что-то вырисоввываться.
Я оказался полным идиотом и несколько дней потратил на брутфорс поиск нестандартного полинома дл CRC-16 и как-то недоглядел, что это чексуммой оказалась простая сумма байт в посылке в порядке BIG ENDIAN. ну а после задача развалилась и стала тривиальной, протокол оказался прост как три копейки одной монетой. отдельное время потребовалось на написание пары дешевых, но очень сердитых парсеров на луа, которые мне живехонько сварганили базу данных по контроллерам STC, их меджикам, а после дополнили это инфой из CDB файла от Keil’а Сейчас это тупо табличка луашная, которую просто обновлять вмерживая в нее инфу. Не шибко чистое решение для бд, но пока сойдет. А уж будет тормозить – переедем на sqlite.
Ладно, мой ‘proof-of-concept’ код, который пока только и умеет, что запрашивать инфо пакет и декодировать его, и то не полностью, в действии можно увидеть ниже:

[necromant@lamia stcdude]$ ./stcdude -d ./mcudb/stc12x.lua -p /dev/ttyUSB1 -i
STC ISP Tool. (c) Necromant 2012
Using mcudb file: ./mcudb/stc12x.lua
Loading mcudb ./init.lua
Done with result 0
Loading mcudb ./mcudb/stc12x.lua
Done with result 0
Using /dev/ttyUSB1 @ 19200
fd is 3
Waiting for an infopacket from MCU...
 --- 8< ---
Part name:       STC12C5A32S2
Magic bytes:     D170
IRAM size:       256 (0x100) bytes
XRAM size:       1024 (0x400) bytes
IROM size:       32768 (0x8000) bytes
Tested ops: FixMe: implement reading of tested ops
Description:
        8051-based microcontroller with 1T(1-clock) High-Speed Core,
        Dual DPTR, 36-44 I/O Lines, 2 Timers/Counters, 2 PCA Timers,
        Alternative build-in oscillator,
        Independent Baud Rate Generator, Programmable Clock-Out,
        32K bytes flash ROM, 1280 bytes data RAM,
        On-chip EEPROM, 2 UARTs, WDT, ISP/IAP, A/D, CCP/PWMm
--- 8< ---

Все остальное - в этапе напилинга, копания показали, что существует по меньшей мере 3 вариации ISP протокола, так что мы далеки от полной поддержки всего, что только есть. Но их добавить будет уже просто. Желающие отведать чудной препреальфы могут сходить взять копию с моего шитхаба.

Flytouch II: первая пачка хаков

Оная таблетка валялась у меня уже больше года. Особо я ей не пользовался, пока не решил сделать ее куском своей бортовой электроники для авто. А именно, навигатором и войсбоксом при помощи мой апликухи NetTTS. А для каждодневного применения, я думал добыть себе другой планшетник из солнечного китая.
Итак, поехали, первая пачка хаков, решающая проблемы, которые мне встретились.
(далее…)

Леды!11

В общем работаю над автокрутилкой йотовской антенны. На прошлый выходных завел шаговое двигло на attiny2313 и uln2003a. Движок от хдд не прокатил – оказался 3хфазным бесколлекторным, который без лишнего геморроя не подключишь к простенькому контроллеру. Потому я использовал его вместо подшипника. Всю конструкцию оставил на даче на доработку, а попутно, уже дома сооружаю светодиодное оформление этого чуда инженерной мысли. Проблема в том, что пинов мало осталось свободных, а светодиодов навешать хочется много.
Но тут на помощь пришли регистры 74HCT273. Их мне отсыпали по 4ре рубля в честь распроджажи, в то время как сдвиговые были по десятке. Будучи человеком жадным, я соединил выход предыдущего со входом следующего, получил сдвиговый геристр. Вообще как пример в учебнике. Проверяем через LPT и обожемой! оно работает.
Ну все, теперь только закончить антенну….

Necromant’s Hack-o-Kit, v 0.1

(см. картинку под катом)
Идея эта витала у меня в голове достаточно давно, но за реализацию я взялся недавно. Итак, ТЗ является таким: портативный комплект со всем необходимым хардварьному хакеру. Программатор биосов и еепромов, анализатор логики, конвертер ттл уровня, сканер баудрейтов и находильщик пинов жтага в одном флаконе. Звучит страшно? а по мне в самый раз.
Итак, реализация.
Имея на руках acer n311, о котором я писал ранее, с проблемой отваливающегося проца, по причине которой им едва ли можно пользоваться не зафиксировав его в какому-нибудь ином корпусе, я решил его использовать как интерфейс управления всем этим добром. Соответственно, линукс, QT embedded, и управление самопайками по последовательному порту, который так кстати можно распаять из кредла. Кредл я разобрал, и электронику с батарейкой вмуровал в новый корпус. Кредл не только случит для заряда батареи кпкшника, но и заряжает вторую батарею, которая используется для питания самопальной обвязки. На картинке одна из первых фоток этого треша:

асер, кредл с батарейкой, max232a на куске макетки, платка на базе авр, которая должна будет служить походным i2c интерфейсом, программатором авров и детектором баудрейта неизвестных уартов. Еще на маленькой платке 7 светодиодов с назначением которых я не определился – просто гпио незаюзанные оставались.
Так как SD карты воткнуть будет проблематично – в дело вступает одна из первых версий моего SD extender’a. Его назначение – сделать возможным втыкать SD карты не отрывая кпк от коробке, к которой он будет приклеен.
Ну и hires картинка, конечно:
смотреть
И вот небольшой апдейт (напаял свитчер питания, закрепил и напаял экстендер.)
смотреть