О! А я, как обещал, затарился-таки камерой, чтобы поразбираться с проектом камеры для бесконечного таймлапса. Теперь будем ждать когда дойдут руки до прошивки. Вы молодец. У вас пока дела делаются интенсивнее, а у меня только железо приехало. Доведу проект до работающего варианта - скину чего где приобретать и как настраивать.
Если кто хочет помочь ссылками и советами, то железо - LicheeRV Nano со штатной камерой. Там гнездо для MicroSD, блютус, вайфай и линукс внутри, плюс, вроде как, полноценный USB-host поддерживается через OTG. Ещё есть звук какой-то на борту и куда подключать шлейфы экрана и тач-сенсора, но для моего проекта не понадобится.
Ну и как водится:
Характеристики
Актуальные вопросы: - Может есть рекомендации по образам и софту для таймлапса? - Как лучше подключить вспышку? - Есть на примете готовый софт с веб-админкой для удобной настройки WiFi и параметров съёмки? - Вроде бы модуль умеет сам заряжать LiIon-банку. Думаю припаять от одноразового вейпа. Будут подводные камни, или не стоит заморачиваться с бесперебойностью работы? - Собираюсь синхронизировать кадры на десктоп с помощью rsync, чтобы по http-не городить выкачку. Так-то я мог бы и по ssh и как угодно, но хочется же сделать чтобы не специалистам тоже без напрягов понятно было как пользоваться... Может есть виндовые решения для синхронизации со стороны десктопа удобные для не сильных пользователей? - На данном этапе легко добавить датчиков. 18b20 легко для температуры, но стоит ли добавлять датчик давления? Или модуль готовый взять для температуры-влажности? Может есть небольшие недорогие отдельные датчики CO₂ о которых я не слыхал? Делитесь, пожалуйста, ссылками на то, что пробовали, или о чем слышали хорошее.
Пока в некоторых из перечисленных вопросоав ориентируюсь на этот гайд. Пока что затраты составили примерно ~1100₽ за камеру и ~1800₽ за LicheeRV. Наверно на текущем этапе бюджет приближается к тому, что можно было купить старую цифромыльницу Canon из тех, у которых через флешку хакается прошивка и можно запилить таймлапс камеру без колхоза, однако для неё не понятно как избегать бликов от вспышки на стекле банки или на оконном стекле.
Да, RPi не относится, но тема близкая. Если что - выпните из сообщества, буду искать другое подходящее.
- Сельское хозяйство — датчики влажности почвы, автоматический полив.
- Медицина — носимые устройства для отслеживания состояния здоровья.
- Транспорт — системы умного транспорта, GPS-трекеры, подключённые автомобили.
С помощью MicroComm можно легко организовать связь со своим устройством через интернет:
отправлять команды на устройство удалённо,
получать ответы с результатами выполнения,
видеть полную историю: что отправляли, когда, какой был ответ и были ли ошибки.
Кроме того, устройство может присылать собственные логи — а в будущем вы сможете работать с ними через API (например, для аналитики или отладки).
Всё это работает «из коробки»: не нужно страивать серверы, писать бэкенд или разбираться со сложными протоколами. Просто создаете устройство на сайте, выбираете подходящий клиент и управляете своим устройством через веб или API.
В основном работаю с Python, поэтому написал клиент для ESP32 на MicroPython.
Пожалуй, все мы с вами любим диковинные гаджеты из 2000-х годов, когда производители всё ещё пытались удивить пользователя некой изюминкой. Таким необычным устройством был и предок современных планшетов — MID SmartQ V7, где за цену в 150$, производитель предлагал неплохое железо, приятный дисплей и целых три предустановленных операционных системы!
Что было «под капотом» у первых планшетов и что умел «дедушка» современного iPad с Android, Ubuntu и Windows CE «на борту» — читайте в сегодняшней подробной статье!
❯ Предыстория
Планшеты — достаточно интересный класс устройств, который за всё время существования пережил недоступность, подъём и даже в какой-то степени забвение. Их история началась ещё в конце 80-х годов с выходом GRiDPad 1900, который представлял из себя небольшой x86-компьютер с полноценным HDD, резистивным тачскрином и MS-DOS на борту:
Планшет хоть и был популярен в узких кругах, но до массового рынка ему было ещё далеко — стоимость в 3 750$ была по карману далеко не каждому заинтересованному пользователю. Однако в 90-х годах концепция планшетов и приближенных к ним устройств только развивалась. Сначала вышел Apple Newton в 1993 году по цене в 990$, а в 1996 году — уже и доступный КПК Palm Pilot 1000 по 299$.
И хотя Pilot — это именно КПК, чаще всего их использовали для тех же целей, что и современные планшеты
Но настоящий бум случился в 2005 году, когда Nokia на LinuxWorld Summit представила принципиально новое устройство — 770 Internet Tablet. Как становится ясно из названия, этот гаджет был предназначен для серфинга в интернете, однако благодаря Linux-дистрибутиву Maemo, он мог выполнять и другие функции обычного компьютера.
Дело в том, что в отличии от той же самой Motorola, которая использовала MontaVista Linux в своих телефонах на платформе EZX, Nokia сразу позиционировала свои гаджеты как открытые и созданные специально для гиков. После выхода устройства, Nokia опубликовала SDK для портирования существующих и разработки новых программ — благодаря чему список доступного софта постоянно расширялся и даже спустя 20 лет после релиза, коммьюнити Maemo всё ещё поддерживает их!
Знакомый форм-фактор, приемлемая цена в 350 долларов и умеренная популярность всей линейки N-таблетов заложили первый кирпичик в фундамент современных планшетов.
В 2008 году Intel представляет новое семейство энергоэффективных процессоров под названием Atom, а параллельно с ними концепцию MID — Mobile Internet Device, то есть портативных компьютеров с возможностью выхода в сеть. И вот тут-то началось!
В Китае MID очень понравилась местным производителям гаджетов и некоторые из них начали разрабатывать и выпускать самые разные, порой даже диковинные серийные устройства — нетбуки-трансформеры, нетбуки-телефоны, планшеты-слайдеры... и конечно же привычные нам планшеты без физических кнопок!
Прототип MID от Intel
К 2010 году на рынке мобильных чипсетов случился бум: новые процессоры выходили буквально каждые полгода, их функционал и производительность росли обратно пропорционально цене. Чипы ОЗУ и флэш-памяти тоже стремительно дешевели, а TN-TFT дисплеи пристойного разрешения уже стоили отнюдь не как крыло от Боинга. Воспользовавшись моментом, несколько китайских компаний представили как минимум 3 модели, которые выбрались за пределы локального рынка в Китае. Одним из таких был и герой сегодняшней статьи — SmartQ V7!
В 2010 году успех Android всё ещё не был очевиден. Некоторые производители продолжали продвигать свои платформы (например Bada), да и для Android ещё было разработано не так много полезного софта. Поэтому когда перед инженерами встал выбор операционной системы, они долго не думали... и решили установить в одно устройство целых три ОС: Android, Ubuntu и Windows CE, а для переключения между ними написали собственный загрузчик!
О SmartQ V7 я узнал в начале этого года, когда исследовал китайские барахолки. Мне даже удалось раздобыть один экземпляр к себе в коллекцию, но из-за особенностей загрузчика (о которых мы поговорим позже), я окирпичил свой экземпляр... Но затем на мои поиски этого устройства откликнулся пользователь с 4pda под ником spbplus (его канал на Дзене) и согласился безвозмездно отправить мне гаджет, за что ему огромное спасибо!
Полноразмерный USB 2.0, HDMI, разъем зарядки как у Nokia и ножка — неотъемлемые атрибуты гаджетов тех лет!
Давайте же по классике разберем наше устройство и узнаем, что здесь скрывается «под капотом»!
❯ Что внутри?
В конструктивном плане гаджет выполнен очень необычно. И дело не только в дизайне и наличию ножки, но и сборке: сразу видно, что бюджеты на разработку и производство устройства были очень сильно ограничены.
Разбирается гаджет несложно, но весьма хитро: сначала необходимо открутить 4 винта с обратной стороны корпуса и расщелкнуть фронтальную панельку. А далее начинаются основные «приколы» бюджетного инжиниринга: плата с фронтальными кнопками буквально приклеена к средней части корпуса, а к ней вручную припаяны как SMD-кнопки, так и межплатный шлейф вместе с проводами питания подсветки дисплея. При этом никто даже не заморачивался с отмывкой флюса — и так сойдет!
Из-за материала плёнки, как дисплей не вытирай — всё равно будут оставаться небольшие пылинки!
Материнская плата отделена от дисплея той самой средней частью корпуса, которая крепится на 5 винтов и две клипсы. И самое забавное то, что по материалу средняя часть напоминает первые опыты в 3D-печати: всё очень примитивно и несимметрично, из-за чего плату немного перекашивает уже с завода. Под дисплеем спрятано 3 потайных винта и при их откручивании надо быть предельно осторожным: если дисплей зайдет уголком за ушко, то есть немалый шанс случайно порвать его шлейф.
Уже виднеется обвязка процессора!
Материнская плата также вытаскивается вместе с средней частью корпуса и аккумулятором, но с этим никаких проблем уже нет: риск что-то повредить минимален. При взгляде на плату устройства сразу приходит понимание, почему этот гаджет стоил 150 долларов: максимальная интеграция всей периферии в один чип:
В качестве сердца устройства, здесь используется система на кристалле TeleChips TCC8902, которая состоит из одного ARM1176-ядра, работающего на частоте 800МГц, контроллера DDR2-памяти, видеоускорителя Mali-200 (в отличии от Mali-400, о существовании Mali-200 слышали единицы), а также периферийных контроллеров по типу USB, SPI, I2C, UART. Помимо этого, TCC8902 поддерживает вывод видео на множество разных источников, начиная от HDMI, заканчивая NTSC/PAL.
Выше процессора расположилась микросхема EEPROM-памяти AT88 производства Atmel. Что на ней хранится — мне неизвестно, вполне возможно что ID чипа или, что гораздо хуже, конфигурация NAND-контроллера (программаторы под эти чипы очень дорогие, а у меня «запорота» именно она).
Столько всего в одном маленьком чипе!
Чуть правее процессора расположилось два чипа оперативной памяти производства Samsung, объёмом по 128МБ каждый. В целом, 256МБ были стандартным объёмом ОЗУ почти для всех портативных гаджетов тех лет. Даже в первом iPad был именно такой объём оперативной памяти!
Почти на самом верху платы расположился чип NAND флэш-памяти производства всё той-же Samsung, объёмом в 2ГБ. В целом, это объём характерный для MP3-плееров и совсем неясно, как на таком чипе уживаются аж три операционные системы!
А вот у Galaxy Tab 7.0 было аж 512МБ оперативной памяти!
Слева расположился аудиокодек Wolfson WM8987G, отвечающий за вывод и запись звука, а также усилитель для стереодинамиков. Чуть ниже расположился чип M1530DM, выполняющий роль повышающего DC-DC преобразователя для подсветки дисплея, а рядом с коннектором шлейфа дисплея расположился неопознанный контроллер питания, который также выполняет функции чарджера.
В качестве дисплея используется классическая 60 pin RGB матрица. Такую можно достать с многих планшетов тех лет!
Питает весь планшет литий-ионный аккумулятор с номинальным напряжением в 3.7В, что несвойственно для планшетов тех лет. Обычно ставили две последовательно соединенные банки. Интересно то, что аккумулятор до сих пор держит заряд и не вздулся — даже спустя 15 лет после выхода планшета на рынок. Достойный результат!
Вот и весь конструктив планшета. Как известно, всё гениальное — просто. И планшет, который в отличии от конкурентов, стоил всего 150$ — это тоже своего рода достижение и шедевр технологической мысли! Ну, что у него внутри мы узнали, а как он проявлял себя на практике? Давайте включим и узнаем!
❯ Включаем...
После включения планшета, нас встречает меню загрузчика (местный аналог BIOS) аж с тремя системами на выбор. Но помимо выбора ОС, здесь есть дополнительная менюшка с настройками загрузки системы, где можно отрегулировать объём памяти для видеоускорителя (я такого вообще больше нигде не видел на мобильных устройствах).
Однако с этим загрузчиком был определенный нюанс. Дело в том, что большинство V7'ых и V5'ых, которые можно найти сейчас на вторичке, частично окирпиченные. Из-за своеобразного механизма разметки разделов, для установки обновленных версий Android, WinCE и Linux требовалось обновление загрузчика — так называемая смена с «синего» на «фиолетовый». Однако планшет никак не был защищен от даунгрейда прошивки, что превращало его в кирпич при попытке установить старый загрузчик поверх обновленного.
На втором экземпляре SmartQ V7 у меня грузился только Android, остальные две системы не работали, но подготовка флэшки с обновленными образами WinCE и Ubuntu решила проблему (и сломала Android, а в веб-архиве архив битый). Скачать образы ОС можно здесь, для установки достаточно лишь скопировать их в корень SD-карты и включить планшет с зажатой кнопкой действия.
Изначально я решил загрузиться в Ubuntu и она сюда портирована довольно неплохо. В качестве рабочего стола используется модифицированная оболочка OpenBox с пакетом дополнительного софта. Производительность системы не впечатляет, но совсем уж «лагодромом» гаджет назвать нельзя. А вот за что его можно поругать — так это за резистивный тачскрин, который с годами начал выдавать фантомные нажатия (и дело не в грязи под рамками)...
Как сюда пропатчить KDE2?
При разработке девайса, SmartQ явно оглядывалась на идейного вдохновителя — Nokia 770 Internet Tablet. Многие элементы интерфейса повторяют Maemo, но при этом, как и в прародителе, пользователь никак не ограничен в модификации своего собственного устройства. Прямо из менюшки можно открыть терминал, запатчить sources.list и накатить deb-пакеты из репозитория с помощью apt.
Но если пользователь был новичком, он мог поставить пакеты с помощью GUI-программы. Не Ubuntu Store, но тоже ничего.
По строке Hardware в ядре, мы сразу видим куда идут корни устройства — к референсной плате Telechips!
Впрочем, несмотря на явно гиковское направление данного гаджета, он вполне подходил и рядовому пользователю. Из коробки были доступны самые разные программы, включая просмотр документов (для чтения книг), текстовый редактор и медиаплеер VLC. Путём установки устройства на ножку и подключения хаба в полноценный USB 2.0-разъём, можно было получить почти полноценный самостоятельный компьютер, а если подключить его к телевизору с помощью HDMI — так вообще медиацентр с выходным разрешением в 1080p!
Для подключения к сети, в планшете есть Wi-Fi. Однако если возможности подключится к точке доступа не было, к планшету можно было подключить самый обычный 3G-модем и работал он не только в Linux, но и Android! Правда, аккумулятор в таком случае высаживался ещё быстрее!
Ну и куда-же без браузера! В качестве основного здесь используется Midori на базе движка WebKit. Но несмотря на то, что я успешно подключился к сети, мне не удалось открыть ни Linux.org.ru, ни OpenNet — сайт, который открывает даже PocketIE. К сожалению, сборок Chromium под ARMv6 в те годы не было, а FireFox будет слишком медленным, так что наш максимум — это Dillo.
Как перестать намеренно убирать TLS 1.2 — так это "безопасность", а как показывать заглушки доменов - так это хоть на IE 1.0!
Далее я загрузился во вторую из трёх доступных систем — Windows CE. И вот здесь картина была менее радужной, поскольку порт WinCE на Evaluation-board был ну очень кривым. Например, при переключении режима USB из Client в Host — планшет зависал, а тачскрин работал некорректно и откалибровать его возможности не было из-за кривой реализации драйвера (он эмулирует мышь, а не реализует стилус, как должно быть).
Но к теме Windows CE на планшетах мы обязательно с вами вернемся немного позже, ведь помимо SmartQ V7, был ещё один планшет с возможностью загрузки нескольких ОС. И имя ему — ePad Zenithink ZT-180!
❯ Заключение
Вот такая статья про интересный гаджет из далекого 2010 года у нас с вами получилась. И хотя на первый взгляд кажется, что установка сразу 3-х ОС — странное решение, однако в годы когда на рынке мобильных систем ещё не было однозначного лидера — это было логично, ведь производитель предоставлял пользователю полную свободу действий над своим устройством.
Если вы хотите поддержать блог материально, то это можно сделать используя форму ниже. всем большое спасибо!
А если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет — подписывайтесь на мой Telegram-канал «Клуб фанатов балдежа», куда я выкладываю бэкстейджи статей, ссылки на новые статьи и видео, а также иногда выкладываю полезные посты и щитпостю. А ролики (не всегда дублирующие статьи) можно найти на моём YouTube канале.
Как вам SmartQ V7?
Очень важно! Разыскиваются девайсы для будущих статей!
Друзья! Я ищу подделки на брендовые смартфоны 2009-2015 года выпуска. Многие из них работают на весьма интересном железе и об их моддинге я бы мог сделать интересный контент. Особо разыскиваются подделки Apple iPhone и HTC (по типу HD2 и Touch Diamond 2)на Windows Mobile и Android, а также Samsung Galaxy. Также представляют моддерский интерес первые смартфоны Xiaomi из серии Mi, Meizu (ещё на Exynos) и телефоны Motorola на Linux (например, EM30, RAZR V8, ROKR Z6, ROKR E2, ROKR E5, ZINE ZN5, о которых я хотел бы подготовить отдельные статью и видео, поскольку они работали на очень мощных для своих лет процессорах, поддавались серьезному моддингу и были способны запустить даже Quake.
Большое спасибо читателям и зрителям за подгоны, без вас контент бы не выходил! Связаться со мной можно в тг monobogdan.
Когда-нибудь похожий терминал будет показывать логотип RobCo.
Продолжаем серию наших пикабу-передач про вторую жизнь старого терминала. Зачем?... Потому что вещи 90х обладают сладким флером ностальгии. Во второй части я обещал рассказать про физическую часть переходника(я, наконец, заказал плату, но пока не спаял).
Вид сзади. Нас интересует порт справа - DB15.
Как я уже рассказывал в предыдущей статье - в данных терминалах нет никаких средств связи, кроме порта(и, видимо, приёмо-передатчика) Twinax (LPT не в счет). Этот магический протокол работает таким образом, что терминал это всегда исключительно slave (в 90е еще можно было так называть), а "головная" часть находится на стороне майнфрейма. Забегая вперед - именно этот майнфреймм мы и будем эмулировать.
Вот такой шкафчик пришлось бы поставить дома, чтобы вернуть работоспособность терминалу без новых технологий. И всё это было слабее смартфона, через который вы, вероятно, читаете эту статью.
Перво-наперво, информацию о таких старых девайсах можно поискать в библиотеке IBM. Однако определенное время назад там произошел сбой, а бекапы, как мы знаем, для слабаков - часть старой документации была утеряна. Тем не менее, для пытливых умов рекомендую сайт bitsavers.
Документации по терминалу - кот наплакал. Но на самом деле всю работу за меня сделал некий inbolmie с форума deskthority - отличный форум для любителей старого железа и не только. Он собрал данные по однотипным терминалам и установил, что поскольку они работают по протоколу twinax, значит есть определенная унификация и ВСЕ терминалы, поддерживающие данный протокол будут работать через конвертер. На всякий случай оставлю ссылку на первоисточник.
Как получился этот терминал.
Документацию в 90х писали не то, что сейчас - тогда подразумевалось, что пользователь с паяльником может полностью восстановить не рабочее устройство. В описании терминала 5250 было указание на модуль работы с протоколом twinax и ссылка на процессов DP8344. Проц старый, но нас интересует не он(мы же не на сайте oldje (извините)), а описание принципа работы и характеристики:
Проц старый и понимает только ассемблер. Последний раз я асму держал в руках 15 лет назад и возвращаться к ней не очень хочется. После изучения доступной на битсейвере инфы, можно прийти к выводу, что:
Не надо изобретать свою плату, можно использовать схему 25-ти летней давности, повторив её - компоненты должны стоить копейки(о, как я ошибался).
нужен микроконтроллер, который будет конвертить из твинакса в "нормальный" вид
Конвертер конвертером, но нужен "заменитель майнфрейма", который и будет конечной точкой подключения терминала.
В исходной статье автор отказался от использования Raspbery Pi в качестве мозга конвертора, потому что порты GPIO работают куда медленнее 2Мгц и не вытянут семплинг, а еще там будет линукс, который чтобы заставить работать напрямую с портами(чтобы повысить быстродействие)-то еще развлечение. Следующим вариантом был FPGA, но для людей без опыта работа с данной микросхемой вообще не очевидна. Может быть, второе устройство я сделаю как раз на FPGA - оно бы решило все проблемы с быстродействием. В общем, автор статьи на дескторити решил взять Teensy 4.0 600Мгц, но данная микруха в 2025м в Москве(с доставкой) стоит порядка 4к (напомню, весь терминал 11к) и игрища с ней в мои финансовые планы не входят. По этому я выбрал китайский аналог AT32F403ACGU7 - похожая по характеристикам(медленнее) плата с процом частотой 240Мгц и стоимостью 280р на Али. Зачем нам такая частота для протокола и скоростей 90х? Как я уже говорил, twinax (да окончит Бог-Машина его циклы) работает на 2Мгц, это значит, что по теореме Котелькова мы должны считывать (дискредитировать, или как там) сигнал с частотой минимум 4Мгц. Однако, микроконтроллер не может на каждый такт выполнять команду, одна команда занимает несколько тактов, а нам, я предвижу, понадобится не одна команда для считывания сигнала. В общем, пол-палец-потолок было установлено, что 240Мгц частоты должно хватить впритирку для считывания сигнала от терминала.
Так же в исходной статье, аффтар предлагает конвертер втыкать через USB в современный комп с линуксом, где будет крутиться скрипт, отсылающий шелл на USB.
Мы же с вами схему немного изменим - конвертер будет подключаться не по USB, а по UART (есть в моём контроллере) и не к PC, а к Orange Pi, где тоже есть UART. Таким образом мы оставим терминал "мобильным" - просто к нему прибавится небольшая коробочка. На Оранж Пи я уже поставил Убунту, а это значит, что можно будет через SSH\cli (напомню, терминал ТЕКСТОВЫЙ, никакого графония) подключаться куда угодно. Плюс, я же хочу сделать подобие терминала RobCo из Falllout 4, а для кастомизации баша есть просто тонна утилит.
Про благословленный Омниссией интерфейс twinax можно почитать тут. Всё равно лучше википедии никто не расскажет:
The data transmission is half-duplex, balanced transmission, at 1 Mbit/s, on a single shielded, 110 Ω twisted pair. [...] Twinax is a bus topology that requires termination to function properly. Most Twinax T-connectors have an automatic termination feature. [...]
Signals are sent differentially over the wires at 1 Mbit/s (1 μs/bit ± 2%), Manchester coded, with preemphasis.[...] to provide preemphasis, for the first 250 ns (1/4 bit time) after a signal is driven low, the negative signal line is driven to −1.6 V. [...] The two wires are denoted A and B. To encode a 0 bit, A>B for the first half of the bit time, and A<B for the second half. A 1 bit is the opposite. Thus, each signal line is driven low for either 500 or 1000 ns at a time, of which the first 250 ns is emphasized. This is a picture of the teoric waveforms from the DP8344 datasheet.
"Манчестерский" код в протоколе Twinax
Как вы можете видеть, достаточно хитрожопое кодирование - нет "современного" логического уровня(самый нижний график), "единица" кодируется переходом от единицы на ноль в середине бита, а "ноль" - с нуля на единицу, плюс второй провод двух проводного кабеля твинакс дает тот же сигнал но с отставанием на 250 наносекунд (график В относительно графика А). Именно для считывания этого сигнала нам и нужен такой быстрый процессор.
Вообще микроконтроллер должен справиться играючи с задачей кодирования в "манчестерский" код (физическая среда передачи Ethernet, между прочим), нам всего-лишь нужна обвязка.
Из пиндосских не очень секретных материалов получаем данную схему.
Тяяяк....
Одна SN75110A и одна SN75112 нужны для генерации форм сигнала на линках А и В (между прочим, терминал "лупит" на 152м своим сигналом).
Одна LM361 - аналоговый компаратор - для восстановления манчестерского сигнала путем вычитания канала А из В и вывода результата с цифровым уровнем 3В.
Несколько И, НЕТ, XOR микрух для логического склеивания.
Дальнейшими деталями сигнала грузить вас не буду, если хотите - читайте исходную статью.
Вот такую принципиальную схему я составил в итоге:
1/2
Сначала моя схема, потом исходная.
Отличий особо не заметно, верно? Схему я переделывал в EasyEDA - китайском каде, очень рекомендую. Ну тут понятно, я не менял элементы, если совпадал форм фактор, но микрухи 30ти летней давности в условиях санкций стоят как чугунный мост, по этому где мог, я постарался сделать замену. (опишу в следующей статье)
1/2
Сначала исходная схема, потом моя.
Для удешевления пришлось заменить ряд элементов и изменить их форм фактор - вместо DIP14 изначально, поставить SOP14 - как я буду это паять, я пока не представляю. Но... Элементы закуплены, плата в производстве, как только попадет в мои потные ручки - дам знать.
Ну и на последок:
Статья была написала на клавиатуре 8bitdo C64 - если хотите сравнение с IBBM Model M, 8BitDo model M и 8BitDo C64 - черканите в комменты, пожалуйста - мне бы такая статья пригодилась до того, как я всё это купил, а вам - не знаю еще.
UPD:
Теорема, конечно же, Котельникова. Но мне чаще попадалась под английским именем.
А вот ошибка в дискретизации - неудачная попытка пошутить. Спасибо вам за внимательность!
Долго я только читал, но вот решил излить свой опыт по одной, на мой взгляд, интересно самоделке - конвертер twinax в "нормальный вид". Заранее извиняюсь за длиннопост.
Это будет серия статеечек по причине, что оборудование еще не готово физически и охватить все вместе в одном посте - нереально.
Забегая вперед - вот план:
Вводная статья "за жизнь"
Аппаратная часть
Программная часть
Начну издалека - я жуткий ретроград. Мне нравятся старые вещи (не все), а ведь я сам еще даже не "в возрасте". Может быть это какая-то ностальгия - ведь моё детство пришлось на "швятые 90е" с бытовавшей там техникой, а может, опять же, детские воспоминания слаще и приятней... Но тем не менее, когда берешь в руку старую вещь, часто чувствуешь "качество". Не секрет, что многие компании в век индустриального прогресса до определенного момента делали вещи всё качественнее и качественнее, но потом смекнули, что если делать хорошо, то никто не будет покупать новый топар, в замер старого. Есть, конечно, исключения, но в целом это так. Вот и у меня по одному(а может и всем вместе) признаку теплится нежная любовь к стилю и виду компьютерной и иной техники 90х... Теплый "кремовый цвет, 50 оттенков серого, незабываемый клик механической клавиатура......
В общем, довела меня нелегкая на пути механических клавиатур до покупки знаменитой и неповторимой модели М от IBM.
IBM Model M собственной персоной
ПРобовал я разные свитчи, разные клавиатуры, кейкапы, но все форума в унисон твердили, что все современные клавы - жалкое подобие механического отклика ТОЙ САМОЙ, первой клавиатуры. Да и цвет один из моих любимых.... В общем, не долго думая, полез я на всем известный сайт купи-продай за ней, родимой. Сразу скажу, что на момент начала 2025го года, такие вот игрушки за редким исключением торгуются по 12к плюс-минус. Цена кусачая, но было решено её уплатить, чтобы закрыть гештальт. И какого же было моё удивление, когда вместо клавиатуры, за те же деньги, я нашел целиковый древний терминал в удобовариваемом виде.
IBM InfoWindow II 3486
Основная цель изначально была в клавиатуре, так что решено было брать и заодно поизучать вопрос использования данного текстового терминала для современных прикладных задач, а именно, подключения к linux машинам через SSH.
Изучение вопроса показало, что документации на терминал - кот наплакал. Из официального - только marketing reference guide, из которого ясно, что терминал текстовый, подключается к майнфрейму по протоколу twinax, можно воткнуть специальную терминальную версию клавиатуры в спецпорт и ps\2 мышку сверху.
На фото тот самый терминал с клавиатурой с 122 клавишами и "майнфрейм" семейства AS\400
Превращать свою квартиру в музей ретро техники я пока не готов(ну почти), да и данный майнфрейм достать в России - задача не тривиальная, по этому было решено гуглить дальше. Всякие попытки подключения старых клавиатур(а у меня она не одна) давно и прочно привели меня на форум deskthority. Там я и нашел статью святого человека про конверсию протокола общения терминала с майнфреймом (Twinax).
Давайте пробежимся в двух словах по тому, что написал тот достойный муж. Во-первых, терминал работает в блочном режиме, а не ASCII, то есть вариантов подключить его как "монитор", "клавиатуру" напрямую нет. Во-вторых, система взаимодействия протокола twinax подразумевает master-slave конфигурацию (именно такую, как в 90е - только потом слово slave было выпилено из документации), где slave - это именно терминал и сам он ничего инициализировать не может, ему нужен пинок от майнфрейма. В четвертых, на самом терминале нет, например, сетевого или ком-порта, к нему можно подключить либо майнфрейм, либо принтер. ****ие пироги (как говорил майор Нечаев из Atomic Heart).
Получается, что единственно рабочий вариант - это воссоздать ответную часть терминала - майнфрейм и эмулировать его команды на терминал. Сделать это можно тремя способами:
Найти Майнфрейм
Воссоздать плату с использованием микроконтроллера
Воссоздать плату с использованием FPGA
Первый вариант не реализуем. Третий вариант для меня rocket science, но, я бы хотел попробовать попозже. Остается вариант воссоздания платы на микроконтроллере.
Документацию в 90е вели моё почтение - подразумевалось, что ты должен с помощью руководства по эксплуатации починить неработающий майнфрейм, перепаять при надобности.
Аппаратную часть мы рассмотрим в следующей статье, а вот вам схема из описания специально разработанного для twinax процессора для затравочки:
DP8433
Аппаратные вопросы рассмотрим в следующем посте.
А вот такого примерно хочется достичь (терминал IBM 5251) - чтобы старый монохром и новый ssh.
Подержите моё пиво... Два года усердно развиваем свой программно-хардварный проект: с нуля разработали и запрограммировали, стали резидентами Сколково и выстроили собственное производство. И что мы постоянно слышим? "Фу, Китай!", "Да я такое за вечер на Arduino соберу!" (wat?), "Украли идею и выдаёте за своё", "Распил бюджетных денег"... тоже подгорает.
Давайте по-порядку:
"Украли идею" – мы никогда не скрывали, что идея не уникальная и взята у канадской компании Activate Games после вирусных видео на пикабу. Только мы сфокусировались конкретно на пиксельном полу собственной разработки и сделали большой упор на IT-составляющую: разработали уникальную систему разработки игр на Lua (пост с околонулевым рейтингом); строим свою, можно сказать, мини CRM для управления локациями; сделали механизм автоматизированной доставки обновлений и мониторинга состояния всех устройств сети и т.д. Но идею цветного пола, конечно, украли, хер поспоришь.
"Разработка говно, я могу лучше" (но мне лень) – да пожалуйста, делайте! Мы будем только рады коллегам по цеху и новым конкурентам! Но за два года появилась только одна команда, кто сами сделали похожий продукт. Снимаю перед ними шляпу, ребята достойные инженеры. Остальные просто пытаются перепродавать Китай, т.к китайцы быстро прочухали фишку и просто заваливают рынок своим оборудованием... только вот софт у них говно и игр почти нет.
"Производство в Китае, значит не ваше" – таковы реалии, что в РФ подобное производство делать просто нерентабельно, невозможно тягаться с Китаем. Но кто-нибудь вообще представляет, как сложно организовать закупку и производство десятка комплектующих, сборку конечного изделия и всю логистику внутри чужой страны? Производство печатных плат, датчиков, кабелей, литьё нескольких видов собственных корпусов и т.д. А после этого пройти сертификацию и официальную таможню РФ? Да, мы возим свой продукт в белую, слабо? Вот и не*уй. Тут же, собственно, по мнению обывателя, и идёт "распил" бюджетных денег в виде субсидий Сколково на таможенные пошлины.
А начинали с абсолютного нуля в пыльном гараже, выпиливая и шлифуя первые пиксели из дерева (пост). И также никто не видит сотни бессонных ночей отладки (ТГ пост) и ночные обновления софта, чтобы утром люди пришли играть на чуть более качественный продукт. Прямо сейчас как раз не сплю, потому что выкатываю важное обновление.
"Зарабатываете миллионы на хайповой теме" – из-за того, что мы открыто публикуем все финансы в телеграм канале (график прошлого года), у людей складывается впечатление, что мы неплохо зарабатываем. Но по факту, мы практически всё реинвестируем обратно в проект и наращиваем команду. За два года мы ещё ДАЖЕ НЕ ВЕРНУЛИ свои вложения (а вложили на старте порядка 7 млн личных средств). У меня, как и у партнёра, есть обычная работа, которая позволяет кормить семью. А бизнес это так, для души. Ни о каких яхтах речи не идёт. Месяц назад вот впервые выбрались вместе на неделю в Териберку на кайтах покататься. Успех ящитаю.
В заключение желаю всем разработчикам искренне "болеть" своим делом и не останавливаться, открыто делиться своими наработками и проще реагировать на хейт. Нас мало, но мы в тельняшках! В нашей стране очень большой инженерный потенциал, но, к сожалению, ботаном всегда было быть не круто и это планомерно подавлялось окружением с детства, но ситуация с современными айтишниками сильно меняет текущие устои, что не может не радовать!
Я сам вышел из таких "ботанов": в школе увлекался программированием, после института устроился обычным инженером на завод, позже ушел в айти за деньгами. Сейчас развиваю свой проект с абсолютного нуля, о котором сам же лично рассказываю в телеграм канале, в том числе со всеми финансовыми подробностями становления бизнеса.
Кому интересно, тг канал @pixel_quest, имею право. По возможности стараюсь писать про техничку и детали разработки, но не всегда хватает времени и действительно интересного материала, становится всё больше и больше рутины, а откликов читателей не так много.
Сервер автоматизации СА-02м с модулем питания и модулями расширения
Описание Сервера автоматизации СА-02м
СА-02м без разъемов, с разъемами, с led индикацией
Питается от 24 вольт постоянного тока через торцевой разъем от модуля питания МП-02м. Там же в торцевых разъемах (слева и справа по одному) расположены RS-485, к которым можно подключить модули расширения МР-02м для увеличения количества входов\выходов (дискретные, аналоговые). Устройство на базе одноплаточника с "камнем" Allwinner A40i. Установлен Armbian + Linux 6.1.0-rc6. Оперативной памяти 512 Мб, eMMC на 8 Гб, чего вполне достаточно для диспетчеризации 5 000 тегов в MasterSCADA4D (по информации о нагрузочных тестах СА-02м в ООО "МПС Софт").
Нагрузка при 500 тегах в MasterSCADA4D
Проект приточных установок в MasterSCADA4D
У сервера автоматизации СА-02м на борту 5 RS-485, один из которых с гальванической развязкой (изолированный). При установке системы диспетчеризации появляется возможность опрашивать различное инженерное и сетевое оборудование по протоколам МЭК 61850, МЭК 60870-5-104, Modbus RTU, Modbus TCP, OPC UA, SNMP, MQTT, BACnet, Profinet, Меркурий и других, что позволяет создать локальную систему учета электроэнергии, управлять системами вентиляции и кондиционирования воздуха, освещением, отоплением и т.д.
Так же есть возможность установить SCADA Каскад, Simple-SCADA, CoDeSys, NodeRed, OpenHab, Home Assistant и любое другое совместимое ПО.
Сервер автоматизации СА-02м с модулями расширения. Шкаф АСУ ТП
Подключили сервер автоматизации СА-02м к модулю питания МП-02м-24, подключили модули расширения, разработали проект диспетчеризации в MasterSCADA4D с нужной логикой работы и загрузили его. Подключились на web по IP и управляете нужным оборудованием через графический интерфейс. Затем добавили счетчики электроэнергии и реализовали энергоучет.
Воткнули USB модем, настроили подключение к серверу, так как это все в контейнере за пол версты от офиса и кабель не проложить до него. Потом добавили интеграцию с телеграм и начали получать уведомления на телефон. Добавили модуль с LoRaWAN для беспроводных датчиков и связи с другим контейнером. По SNMP добавили пару серверных стоек, для большего спокойствия, и можно идти на новогодние праздники.
Передумали, зашли под админкой, поставили CoDeSys с Control Basic M лицензией, и используете, как ПЛК. Нужно для дома - NodeRed и Home Assistant.
Ссылки, идеи
Будем рады Вашим идеям, предложениям и содействию по расширению функционала и возможностей СА-02м.
Обычно Android-устройства принято считать "бесполезными" через 5-10 лет после выхода. Особенно, это касается бюджетных моделей, которые "не тянут" современные сервисы или те девайсы, которые по каким-то причинам физически пострадали в процессе своей жизни. Но пока одни выкидывают смартфоны и планшеты, считая их электронным хламом и засоряя мир, другие стараются найти применение всему подряд и оказывается, что Android-устройства ещё вполне себе могут оказаться полезными. Однако порой необходимо реализовать автоматическое включение устройства при подключения к зарядке и вот здесь многие впадают в ступор - ведь замкнуть кнопку включения зачастую недостаточно! В сегодняшнем материале я расскажу свои кейсы запитывания устройств от блоков питания, а также реализацию автовключения на разных чипсетах. Интересно? Тогда добро пожаловать под кат!
❯ Как и зачем?
Вероятно, читатель спросит мол "зачем 10-летние Android устройства могут быть нужны?". И если немного призадуматься, то можно прийти к выводу, что действительно гаджеты прошлых лет могут быть достаточно полезными во многих сферах, причём не только планшеты, но и Android-смартфоны. И помимо реализации чего-то "стандартного" на манер красивых Android-часов с будильником или, например, мультимедиа станции а-ля iPod, есть ещё множество интереснейших кейсов, в которых можно использовать такие устройства. Я лично собрал для себя несколько:
HMI-панель: это умные программируемые дисплейные модули, которые могут выводить ту или иную информацию с микроконтроллеров или любых других устройств на экран. Благодаря 10-дюймовому планшету можно сделать очень удобное переключение режимов работы каких-то устройств, либо сделать показ информации с различных датчиков в помещении в реальном времени. Никто не мешает и в машину такой планшет поставить для сбора информации о двигателе.
У Android-устройств перед классическими HMI-дисплеями есть огромное преимущество: наличие 3D-ускорителя и возможность выводить красивые визуалиации и графики, а также анимацию. В будущем проекте со своей машиной - "ВАЗ 2110", я покажу как использовать планшет в таких целях на практике.
Сбор данных: у микроконтроллеров слишком маленький объем встроенной Flash-памяти, чтобы хранить какие-то большие датасеты и строить из них статистику. Конечно можно подключить MicroSD... но ведь ко всем сразу не будешь по отдельной флэшке подключать, да и MicroSD отнюдь невечные при постоянной перезаписи данных - и здесь приходит на помощь такой планшет. eMMC обычно значительно более выносливая через MicroSD, с неё можно достать данные (при отсутствии шифрования), а мощный процессор планшета вполне может ещё и обрабатывать приходимые данные и куда-то отправлять. Вполне полезно!
Использование как одноплатника: я писал об этом недавно статью. Во многих бюджетных планшетах разведен UART на плате, к которому есть доступ из пользовательского окружения и даже Java-приложений! Таким образом, можно общаться с микроконтроллерами по проводному интерфейсу, или напрямую дергать ножками микроконтроллера реализовав прошивку-прослойку для МК.
Нестандартные применения: ну, тут я просто хотел похвастаться своим проектом с превращением планшета в игровую консоль с помощью внешнего микроконтроллера :)
Так что, как мы с вами видим, устройства прошлых лет отнюдь не бесполезны и при определенной смекалке мы можем им дать вторую жизнь и приспособить для работы на каком-нибудь объекте. Понятное дело что что-то серьёзное на них никто вешать не будет, но например панель заказа нямки в чебуречной или что-то на манер ГУ в машине - почему бы и нет?
Однако порой возникает задача реализовать авто-старт устройства при подключении смартфона к зарядке или вообще реализация автономной схемы питания. Автономная схема питания реализуется относительно легко: порой можно кинуть 5В от блока питания на VBat (плюсовой и минусовой контакт АКБ) напрямую. КП у MediaTek, имеют пороговое напряжение на аккумуляторе до 5.5-5.6В и не выгорают. Но это рискованно, если БП плохой и произойдет скачок - есть шанс того, что окажется пробитой обвязка/КП/ключи (вход со стороны USB обычно защищен от такого). Лучше всего использовать DC-DC преоразователь на ~4.2В с током от 1.5-2А.
А вот с авто-стартом вопрос интереснее. Всё зависит от реализации этой самой кнопки включения и от чипсета: например, на смартфонах Sony с чипами Qualcomm иногда достаточно лишь сдуть кнопку включения и замкнуть её контакты перемычкой: всё будет работать без каких-либо проблем. Но на некоторых смартфонах, зажатая кнопка включения будет уводить устройство в циклический ребут каждые 10 секунд, что может быть неприемлемо.
Несколько месяцев назад, читатель под ником @A1f подогнал мне китайский iPhone 7 Plus на Android - всё как я и люблю :) Девайс был рабочий, однако после того, как читатель отдал его в сервис, у него по каким-то причинам потерялось пару винтов, оказалась сломана кнопка включения на шлейфе, а смартфон не заряжался...
Ну, с зарядкой вопрос я решил быстро: китайские айфоны иногда используют свои "Lighting'и", несовместимые с оригиналом и которые не могут заряжатьоригинальный айфон. Благо в комплекте был пожухлый оригинальный кабель, который я разобрал и припаял всё обратно. Теперь и USB, и зарядка работают нормально!
С кнопкой вопрос был интереснее: хотя найти такую на шлейфе и кинуть с неё перемычки - дело 5 минут, я лёгких путей не искал и решил сделать автостарт при подключении к зарядке - как и на оригинальном айфоне :)
И, как вы уже поняли, просто так поставить перемычку на контакте Power и массу не получится - смартфон будет постоянно уходить в ребут. Поэтому я сдампил загрузчик с помощью SP Flash Tool и начал ковырять его в IDA Pro, благо устройство не требует разблокировки этого самого загручзика. Способ рабочий для многих устройств на MediaTek, в том числе и некоторых 67xx (возможно придется разблокировать загрузчик), а на устройствах с другими чипсетами алгоритм может быть +- похожим, но если нет возможности напрямую вмешаться в загрузчик, можно сделать авто-загрузку патчем boot.img.
❯ Реверсим и патчим
Для реализации автозагрузки, необходимо пропатчить загрузчик. В устройствах на чипсетах MediaTek их два - первый Preloader, который занимается первичной инициализацией периферии и ОЗУ, а второй - lk, который инициализирует дисплей, грузит ядро Linux и передаёт ему управление. В сети уже давно лежат слитый исходный код и Preloader, и lk, так что с их изучением проблем не возникнет, идея общая у всех устройств.
Итак, что-же происходит при включении смартфона? lk определяет так называемый режим загрузки, в зависимости от которого меняется раздел, с которого грузится ядро (boot или recovery), а также параметры передаются ядру (atags). В процессе работы lk и перед загрузкой ядра, перед тем как показать анимацию зарядки, загрузчик проверяет нажата ли кнопка включения - и если да, то быстренько перезагружает устройство в обычный режим.
Да, всё так легко! Таким образом, нам остаётся лишь пропатчить условие с проверкой кнопки включения, дабы смартфон считал что кнопка нажата тогда, когда она по факту не нажата. В IDA Pro, lk загружается с смещением памяти в 0x0, а найти нужную инструкцию нам поможет зацепка в виде отладочной строки. IDA Pro сразу строит все xref'ы и обращения к строкам, так что найти нужные данные не составит труда. Ищем "[%s] PowerKey Pressed in Kernel Charging Mode Before Jumping to Kernel, Reboot Os" и смотрим все обращения к адресу памяти, с которого начинается строка.
Чуть выше метода вызова printf, можно найти наше условие, которое начинается с инструкции CMP R0, #0. Сразу после него идёт инструкция BNE, которая бранчит код и продолжает загрузку системы в режиме "зарядки". Нам остаётся лишь заменить её на NOP в hex-редакторе в той-же IDA Pro и система сразу после попытки включится в режиме зарядки уйдет в ребут и перезагрузится в обычном режиме, будто мы просто включили смартфон с кнопки!
Прошиваем наш новый lk:
И видим, что всё работает! :)
❯ Второй способ
Если возможности пропатчить загрузчик нет, в дело вступает второй способ, заключающийся в патче boot.img - раздела с ядром устройства и ramdisk'ом, в котором содержаться скрипты для инициализации устройства (*.rc). Всё дело в том, что даже при зарядке смартфон загружает ядро Linux, первоначальный рамдиск и в зависимости от режима загрузки запускает либо app_process (главныйй процесс в Android), стартуя загрузку системы, либо специальную программу, которая часто называется charger и находится в /system/bin/ (иногда в самом boot.img).
На смартфонах с разными чипсетами реализация этого способа может сильно отличаться, однако приведу пример с смартфонами Sony Erisson из 2011 года (у меня есть Xperia Play с сломанной кнопкой включения). Там устройство начинает выполнение скрипта init.rc, тот в свою очередь запускает init.semc.rc и на этапе инициализации запускает программу chargemon, которая выводит анимацию зарядки, отключает смартфон, если кабель вытащили и слушает нажатие кнопки включения, продолжая процесс загрузки, если пользвоатель зажал кнопку включения. Соответственно, весь фикс - закомментировать эту строку :)
#exec /system/bin/chargemon
В случае MTK, можно попробовать ещё пропатчить init.rc, дабы он продолжал загрузку системы даже в случае подключения кабеля в режиме зарядки. Способов много, главное проявить смекалку и не бояться разбираться в чём-то непонтяном :)
❯ Заключение
Как видите, ничего сложного в реализации автоматического старта устройства нет. Где-то можно обойтись перемычкой на кнопку включения, где-то патчем boot.img, а где-то и патчем загрузчика. Но тем не менее, это вполне возможно на практике и позволяет делать такие приколюхи, как я со своим китайским айфоном :)
Надеюсь, материал вам был интересен и полезен! Пишите, нужно ли вам было реализовать что-то подобное и как это делали в комментариях!
Друзья, если у вас есть подобные китайчики и вы не разделяете желания пытаться вдохнуть в них жизнь, но выбрасывать их жалко — можете задонатить их мне :) Как сами видите — девайсы попадают в хорошие руки. Из недавнего — я взял нерабочую, утопленную китайскую копию 14 Pro Max из под СЦ в качестве основного смартфона. Также у меня есть канал в Telegram, куда я выкладываю бэкстейджи статей, различные заметки о ремонте, моддинге, программировании и реверс-инжиниринге и свои мысли, а также ссылки на свои новые статьи и видео. Кому интересно — залетайте!
Интересный материал?
Если вы постоянный читатель, смотрите ли вы мой YouTube-канал?
Статья подготовлена при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, чтобы не пропускать новые статьи каждую неделю!