Цветовое кодирование? Нет, не слышал!

Узнал сегодня замечательное про вот этот ролик с странно ведущим себя Ту-154:

Оказывается, дело в том, что была перепутана полярность подключения чего-то в автоматической бортовой системе управления. Видите что-то нехорошее?

Ну правда же, логично — красный к красному, зеленый к зеленому, желтый к желтому? Но нет, надо наоборот, вот так:

Там, правда меленько-меленько буковками подписаны названия цепей (что-то вроде 1ЭЦ3, 2ЭЦ3) — но кто их разберет?

Стрижи размножаются почкованием

Ну, про разделение «Стриж-телематики» на «Современные радиотехнологии» и «Вавиот» все более-менее интересующиеся всяким там IoT слышали — а тем временем этот бразильский сериал получил продолжение, на всяких сайтах с вакансиями очень активно лезет изо всех щелей некий «Феникс» — https://fenix.link/. Генеральным директором там некая Ахмадишина — что заставляет заподозрить, что период полураспада «Стрижа» составляет примерно 2-3 года.

Пора забыть про спичечные коробки

Психанул и заказал в «Электронщике» 144 номинала резисторов (ряд Е24, 6 диапазонов) и 32 номинала конденсаторов (ряд Е6, 5 диапазонов и еще что-то по мелочи) по 100 штук, все типоразмера 0603. Засунуть все это решил не в спичечные коробки (несерьезно), но и не в полноценную кассетницу (для этого маловато деталей будет) — а в Комусовскую визитницу на 320 мест. Все удовольствие обошлось примерно в 3000 рублей.

И как художник художникам

Хочу поделиться маленькой, но приятной находкой из книжки Питера ван дер Линдена Expert C Programming: Deep C Secrets. Вот такой набор макросов позволяет буквально «рисовать» черно-белые картинки прямо в коде:

#define X )*2+1
#define _ )*2
#define s ((((((((0 /* For building glyphs 8 bits wide */

Например, вот так выглядит символ 8*8 для какого-нибудь знакогенератора:

const uint8_t letter[] = {
/* 0xB8 */
s _ X _ X _ _ _ _,
s _ _ _ _ _ _ _ _,
s _ X X X _ _ _ _,
s X _ _ _ X _ _ _,
s X X X X X _ _ _,
s X _ _ _ _ _ _ _,
s _ X X X _ _ _ _,
s _ _ _ _ _ _ _ _,
};

Чтобы не забыть

graphic-lcd

Удобную штуку для конвертации картинок в формат для монохромных LCD можно найти тут:

https://www.skaarhoj.com/FreeStuff/GraphicDisplayImageConverter.php

Кстати, про «локаторы» в макдачной

Ездил на днях забирать заказ из ЧиДа на Волгоградке, ну и зашел в макдачку. Там сейчас в связи с ковидом перешли на раздачу заказов официантами, а чтобы официант вас нашел — выдают «локатор». Сидел, скучал — и от нечего делать крутил локатор в руках. На донышке у него оказалась надпись с FCC ID, загуглил (а была бы отвертка — мог бы и разобрать!) — и оказалось, что внутри стоит Bluetooth-маячок:

https://hackaday.com/2018/08/22/fcc-filing-reveals-tasty-hardware-mcsecrets/

Маячок, кстати говоря, сделан на очень неплохом микроконтроллера — по ссылке пишут, что это nRF52832, это 32-битный ARM Cortex-M4F с тактовой частотой 64 МГц, 512 кБ флеш-памяти и 64 кБ оперативной. Лет 30 назад компьютер с такими характеристиками… нет, особо не впечатлил бы, памяти маловато, но вот под ограничения COCOM точно попал бы! А вот сейчас неслабые такие вычислительные мощности заняты исключительно тем, что раз в несколько секунд кидают по Bluetooth пакетик «Я маячок такой-то!».

Думаю, еще лет через 10-15 такой же фигней будет заниматься микрокомпьютер с памятью под несколько гигабайт и полноценным Linux или что там будет модно. Такой вот он, прогресс в вычислительной технике.

Как перестать ржать?

long-hui

Ну и отдельный вопрос — кто додумался поставлять продукцию таких смешных китайцев в Россию?

Курс по интернету свищей

Читаю тут твитор — и натыкаюсь на очередной фейспалм @meowthsli:

«Эволюция промышленного интернета вещей: катализатор новых открытий в текущих реалиях…»

— Круто! Сколько открытий сделано?
— Пока нисколько

https://twitter.com/meowthsli/status/1320389183794532353

Загуглил, нашел на хабре состоящую на 90% из воды статью:

https://habr.com/ru/company/otus/blog/524966/

Впрочем, это даже не главное ее содержание — весь этот поток сознания был написан ради ссылки на курс «IoT-разработчик» на платформе Otus:

https://otus.ru/lessons/iot-dev/

Уже где-то на этапе чтения «программы курса» я почувствовал, что пытаются впарить говно — точнее, «облачную платформу Rightech». Ну в самом деле — о каком IoT можно говорить, когда «по окончании курса вы будете уметь», например, «строить системы датчиков/исполнительных элементов, используя микроконтроллер Arduino и эмуляторы, в том числе самописные», или «создавать программы на Python, обеспечивающие функциональность IoT для одноплатного компьютера Raspberry Pi»? Я не поленился и даже попробовал пройти вступительный тест — скажу сразу, ржал аки конь. Чего стоит, например, такой вопрос:

Какая технология не обеспечивает возможность подключения беспроводных устройств к другим устройствам на расстоянии более 1500 м?

— и варианты ответа:

  • Bluetooth
  • Wi-Fi
  • Туманные вычисления
  • Сотовая связь

Уровень понимания авторами технологий непосредственно «Интернета вещей» демонстрирует вот такой вопрос:

Имеется датчик, поддерживающий LoRaWAN, передающий на шлюз (gateway) данные о температуре (в диапазоне от -100 до 100 C с точностью до градуса) со скоростью 1 байт/с. Затем данные передаются на роутер со скоростью 100 байт/с, после чего направляются на сервер, для хранения и последующего анализа, со скоростью 10 байт/с. Вычислите время, с точностью до сотых долей секунды, необходимое для пересылки одного измерения температуры, если показания температуры кодируются одинаковым, минимально возможным количеством бит.

Ребята где-то слышали, что LoRa по современным понятиям чудовищно, невообразимо медленная — но именно слышали, без особого понимания. Об 1 байте в секунду речь там все-таки не идет (особенно в LoRaWAN, где особо медленные виды модуляции все же стараются не использовать).

Особенно шедеврально выглядит вопрос про блок-схему:

idiot-block

Готовы ответить, не подбрасывая монетку? Точнее, угадать, что думал автор?

Какое отношение к IoT имели вопросы про Javascript — точнее, про «JavaScript на уровне понимания стрелочных функций, функций map, filter, reduce» — я вообще сказать затрудняюсь. Точнее, догадываюсь — курс будет посвящен в основном работе с «облачной платформой Rightech» (и немного про Arduino и Raspberry на уровне «купите датчики на алиэкспресс»).

И вишенка на торте — прослушать курс, составленный корифеями IoT из Rightech вы можете за скромную сумму — всего 52500 рублей:

idiot-price

И еще про The Things Network

А вы знаете, что если вы будете пользоваться этой фигней, то придет [Роскомнадзор] и сделает вам [Роскомнадзор] в извращенной форме? Чуваки заявляют о поддержке российского частотного плана для LoRaWAN — ну или во всяком случае есть такая опция в настройках сети — но на самом деле все гораздо хуже. Достаточно посмотреть лишь на две записи в логе, возникающие при попытке join-а устройства в сети:

ttn-frequency

Строчка внизу — передача Join Request от устройства, выполняется на одном из двух обязательных российских каналов (у нас это 868,9 и 869,1 МГц), тут все правильно — а вот через 5 секунд ему отвечают в RX Window 2 на совершенно нерусской частоте! Частота 869,525 МГц фигурирует в европейском частотном плане, но не в российском, у нас частоты «для неспециализированных устройств малого радиуса действия» — от 868,7 до 869,2 МГц. Соответственно, для RX2 в российском частотном плане прописана частота 869,1 МГц (совпадающая с одной из частот для Join, это немного неудобно, но не смертельно). Почему TTN решил забить на это все — непонятно.

А классную штуку Миландр сделал

Загибаем пальцы:

— Процессорное ядро RISC-V, 60 МГц, 3,0 Coremark/МГц;
— 256 Кб Flash;
— 112 Кб ОЗУ;
— 5*UART, 3*SPI, I2C, 4 блока таймеров, куча АЦП;
— аппаратные криптоблоки (не только AES, но и ГОСТовские «Кузнечик» и «Магма»).

https://habr.com/ru/post/518138/

Интересно, конечно, что там в итоге получится с ценой и доступностью — но вообще неплохой повод обратить внимание на RISC-V.

Про эти ваши облака

Вот тут твиттерские деды-программисты кряхтят, что современная молодежь совсем обленилась и не может сделать, скажем, элементарный софт для хранения заметок — и даже приводят примерное время, когда все пошло не так — 2012 год. Так вот, дело не в том, что кто-то обленился — дело в том, что для современных моделей монетизации софта его качество вовсе не имеет значения, а важны две совершенно других вещи:

— можно ли продать пользователям рекламу;
— можно ли продать кому-то данные пользователей.

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

https://habr.com/ru/company/globalsign/blog/523974/

Даже не стесняются писать такое, например:

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

И если рассматривать любой интернет-проект с такой точки зрения — можно ли продать кому-то пользовательские данные — то взгляд на мир становится совершенно другим.

Я бы, наверное, так не возмущался бы, если бы не потратил выходные на поиск простого способа подключить несколько датчиков с использованием LoRaWAN. Вроде бы «открытый протокол», все красиво — но как только ищещь работающие примеры, то вместо простых локальных и недорогих решений — уровня «возьми Raspberry Pi и поставь ChirpStack» вылезает модный облачный The Things Network.

Про «профессиональные сообщества» в рунете

Вот почитываю я иногда, скажем, хабр, или форумы по электронике, или что-то в таком духе — и обратил внимание на такую вот вещь — профессиональный уровень участников вот таких «тематических» сообществ никогда не растет. Возьмем, например, любой форум ардуинщиков — и что десять, что пять лет назад, что сейчас увидим в списке обсуждаемых одни и те же темы (как подключить светодиод, например). Возьмем тусовку посерьезнее, плотно сидевшую на AVR десять лет назад — и увидим все те же AVR и иногда робкие попытки «освоить» что-то типа STM32 (на уровне «возьми CubeMX и потыкай мышкой»). Интересно, а чем это объясняется?

Supra, но не Toyota

Прекрасный рассказ о том, как перепродавцы китайского дерьма российский B-бренд электроники Supra попытался влезть в поставки оборудования на конвейер автозаводов:

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

Надо бы тоже поворчать

Вот есть такая операционная система для микроконтроллеров всяких под названием RIOT, «дружелюбная операционная система для Интернета Вещей»:

https://www.riot-os.org/

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

Но вот попался мне в руки какой-то датчик температуры и влажности из серии DHT (популярной среди ардуинщиков) — и нет бы сказать человеку «брось каку»! Нет, я как дурак взялся помочь запустить этот датчик в RIOT-е. Как можно понять из истории этого всего, драйвер писали три немецких программиста:

https://github.com/RIOT-OS/RIOT/commits/master/drivers/dht

С момента, когда код драйвера попал в эту помойку каталог с драйверами внешних устройств RIOT-а, и вплоть до самого недавнего времени, драйвер был абсолютно непригоден для какого-либо нормального использования. Я не шучу — с 29 мая 2015 года вплоть до 19 июля 2019 в коде драйвера присутствовал бесконечный цикл, в который мы попадали, если датчик решал заглючить или отвалиться. Ну вы представляете себе «умную теплицу» в исполнении типичного ардуинщика? Китайские датчики с алиэкспресса, гнилые провода, повышенная температура и влажность, …

При всем при этом RIOT — система с кооперативной многозадачностью, бесконечные циклы в ней приводят к тому, что ваше устройство наглухо зависает — и все из-за отвала одного сраного проводочка! При этом нельзя сказать, что в код драйвера никто не заглядывал — заглядывали, исправляли, добавили пустые скобки в бесконечном цикле, поправили фамилию одного из авторов — работа кипела!

Ну и скажите теперь, можно ли пользоваться системой, в которой четыре года (!) живет вот такой драйвер, которым попросту нельзя пользоваться (вопрос о том, можно ли пользоваться купленными на алиэкспрессе датчиками, отложим на потом)?

Замах на рубль, удар на копейку

Послушал тут один закрытый вебинар про «поиск уязвимостей в устройствах IoT». Ну думал, расскажут про всякие там хитрости с чисто иотшными радиопротоколами, нюансы по поиску в RAM замороженного в жидком азоте микроконтроллера ключей шифрования и все такое — но нет, половина вебинара была посвящена тому, как найти UART с линуксовой консолью на плате какого-то несчастного вайфайного роутера (в процессе выяснив, что GND в разъеме с выводами того UART нет, а ее надо искать еще где-то на плате), а вторая половина — про нюансы перехвата сообщений от линуксовых же устройств и мобильных приложений к облачному серверу.

Если к первому IoT еще можно как-то притянуть за уши, то второе — вообще к нему отношения не имеет. Заодно удивляет представление программистов о том, что на любом устройстве с какой-то network connectivity непременно должен быть Линукс. Нет, это совсем не так.

К электронщикам вопрос

А нет у вас фоточки с «крестиком» из монтажного провода поверх перепутанных при разводке платы линий Rx и Tx?