Начинаем неделю с нового экспоната виртуального музея советской бытовой техники sovtech.su. Сегодня это снова радиоточки. Первая - Октава. Выпускалась новосибирским заводом низковольтной аппаратуры в период 1953-1962.
Фотографировал я, а фото обработал @AthosLaFere за что скажем ему спасибо. На фото он исправил дефект ткани, жаль в реальности это не просто:
Корпус из карболита, на фото в профиль видно уклоны матрицы. В интернете есть фото корпусов из пластика белого цвета.
Конкретно этот я купил на Авито за небольшие деньги, поскольку корпус был в отличном состоянии. Часто от солнца карболит теряет блеск и разрушается. А здесь, словно он пролежал где-то под крышей вдали от солнца все это время.
Но ткань, к сожалению, время не щадит, и она потеряла прочность, видны разрывы. Это Акустическая ткань, или "Радиоткань", совмещает в себе эстетичность и рыхлое плетение, чтобы не мешать проходу звука. При реставрации приходится подбирать внешне похожую ткань.
А вот причина низкой цены - ее заливало водой, вероятно она лежала в гараже и крыша протекала - фанера расклеилась. Но на удивление динамик оказался живой.
Вторая радиоточка из 80х. Это Арман -302, произведенная КзылТУ.
Ее звучание примерно соответствует виду, удивительно сравнить со старыми.
Разработчики предусмотрели отверстия для крепления и так и сяк, но не предусмотрели варианта "на один гвоздик".
Надпись "для радио" многих не останавливала, и втыкали их в сеть 220В с последующей поломкой.
На резисторе логотип козьмодемьянского завода "потенциал", ныне выкуплен Шнайдер Электрик, и сей логотип можно видеть на розетках, выключателях от Шнайдера, весьма неплохих по качеству.
Всем донатившим на новый комьютер - низкий поклон, я проапгрейдился и частичка этих средств сейчас в планке памяти)
В наше время эталоном плавности и производительности среди мобильных устройств принято считать iPhone. Действительно, инженеры Apple проделали довольно большую работу по оптимизации скорости отрисовки и плавности интерфейса, однако не одним iPhone мы были едины!
В 2004 году, Palm выпустила уникальный смартфон, который сочетал в себе привычный интерфейс, широкий функционал, невероятную производительность и... эмулятор M68k. Я решил разобраться, в чём-же заключается его главный секрет и готов рассказать вам о Treo 650 во всех подробностях!
Для ЛЛ: особая архитектура ОС
❯ Предыстория
Устройства Palm всегда были уникальными и концептуально отличались от других карманных компьютеров. Пока другие производители гнались за самым мощным железом и функционалом, Palm делала акцент на обратную совместимость программ, высокую производительность и синхронизацию с ПК. История портативных гаджетов Palm начинается с КПК Pilot 1000, который вышел в 1996 году и стал одним из первых действительно массовых гаджетов в таком форм-факторе.
Pilot 1000 отдаленно напоминал современные смартфоны: у него был интерфейс, адаптированный для работы стилусом или пальцем, функционал органайзера, а также возможность установки сторонних программ и синхронизации с ПК. При этом у Palm'ов была одна очень интересная особенность: для ввода текста предлагалось использовать не виртуальную клавиатуру, а развитую технологию рукописного ввода Graffiti, которая стала визитной карточкой компании на протяжении долгих лет! Внутри Pilot'а был современный для тех лет процессор Motorola MC68328, работавший на частоте 16МГц и целых 128КБ оперативной памяти, а розничная цена составляла всего 299$, что обеспечило популярность модели и интерес со стороны разработчиков софта.
Прототип Pilot 1000, представляющий из себя Breakout-плату для MC68328!
После успеха Pilot 1000, Palm продолжила развивать линейку КПК на всё той-же аппаратной платформе, постепенно проводя её апгрейды: сначала вышел Pilot Personal/Professional с поддержкой модема от 3Com, затем Pilot III с 2МБ оперативной памяти, подсветкой экрана и ИК-портом, а годом позже и флагманский Palm VII с доступом к интернету с помощью сети Mobitex. К 2000 году для PalmOS вышло довольно много различного софта, причём большинство было платным и для его покупки надо было выписывать чек или покупать физическую копию на диске.
К 2001-ому году, Palm начала терять позиции на рынке карманных компьютеров из-за появления Microsoft PocketPC: операционная система на базе Windows CE имела многозадачность, позволяла легко портировать программы с ПК благодаря схожему API и поддерживала самые разные архитектуры процессоров. Несмотря на то, что устройства на PPC были значительно дороже, многие пользователи отдавали предпочтение именно им — и с этим нужно было что-то делать.
Маленькое инженерное чудо!
В марте 2001 года компания представила новую модель — m505, которая отличалась наличием 16-битного цветного дисплея, новым процессором Motorola Dragonball VZ, работавшем на частоте 33МГц и целыми восемью мегабайтами оперативной памяти, а также новой операционной системой PalmOS 4.0. Кроме этого, компания начала лицензировать PalmOS сторонним производителям, благодаря чему появилась линейка самобытных КПК Sony CLIÉ.
Однако уже в 2002 году, сомнительные перспективы низкочастотных процессоров Dragonball и устаревшей архитектуры m68k были очевидны для Palm и они решились на рискованный шаг: в новой линейке Tungsten они решили перейти на процессоры TI OMAP с архитектурой ARM. Но как тогда быть с уже существующим софтом, который распространялся на дисках? Правильно — встроить эмулятор m68k (PACE) в новую систему PalmOS 5.0 «Garnet»!
И если на первый взгляд эта затея кажется глупой, вы просто сравните Dragonball VZ и TI OMAP 1510:
Ядро: M68EC000 (корни идут от CMOS-версии M68k из 1985 года) vs ARM925T (почти самое современное ядро ARM на момент появления Tungsten, современнее только ARM926E)
Частота: 33МГц vs 144МГц
MIPS (число миллионов инструкций в секунду): 5.4 MIPS vs ~159 MIPS
Кэш-память: Отсутствует vs 16КБ для инструкций и 8КБ для данных
Таким образом, программы для m68k на ARM Palm'ах работали не хуже, чем на оригинальных устройствах, однако с SDK для новых устройств был очень неприятный нюанс...
В том же 2002 году, Palm выпустила первое устройство, где отошла от концепции рукописного ввода и установила полноценную QWERTY-клавиатуру — Tungsten W. Влияние BlackBerry на тенденции бизнес-устройств в те годы было очевидным, поэтому Palm разработали не просто КПК, а целый коммуникатор — с собственным радиомодулем, дисплеем высокого разрешения и... почему-то всё тем-же процессором Dragonball VZ!
Пс, если кому-то Tungsten W не нужен или вы хотите его продать — пните в комментариях пожалуйста. Можно даже нерабочий — ремонтировать такие штучки для меня одно удовольствие!
На то время процессор в Tungsten W казался малость устаревшим... Но сейчас я понимаю — по сути это один из немногих смартфонов с процессором m68k помимо Motorola Accompli!
А через год компания Handspring, созданная выходцами из Palm, представила своё собственное видение смартфона на PalmOS — Treo 600, который является кровным братом Treo 650, о котором мы с вами сегодня и поговорим. Но перед тем, как переходить к обзору устройства — мы с вами сначала его разберём и узнаем, что у него скрывается «под капотом» — здесь действительно есть на что посмотреть!
Свой Treo 650 я купил на китайской онлайн-барахолке примерно за 1.900 рублей вместе с кабелем, а выкупить и привезти его в Россию мне помогли подписчики Роман, Андрей и сервис YouCanBuy, за что вам огромное спасибо.
❯ Что внутри?
Разборка начинается с снятия задней крышки и выкручивания шести винтиков по периметру устройства. Однако перед разборкой я сразу обратил внимание на необычный 6-пиновый АКБ, который явно напоминал HTC'шные аккумуляторы тех лет. Главная их особенность в том, что на BMS (плата защиты) распаяны дополнительные чипы для обмена информацией о модели аккумулятора, его заряде, температуре и другие необходимые данные. Если запитать коммуникатор HTC тех лет от «лабораторника» просто подключив плюс и минус, то гаджет скорее всего включится, но драйвер контроллера питания не даст разрешение на старт зарядки и в меню не будет виден индикатор уровня заряда.
Владельцы HTC Gene/O2 Xda Mini II поймут...
После разборки нас встречает «бутербродная» плата и до боли знакомая схемотехника. К сожалению, в процессе эксплуатации гаджет залили водой — на защитных экранах и контактах видны следы лёгкой коррозии, а на тест-поинтах и пятачках не распаянных SMD-компонентов — заметные потемнения.
Где-то я это уже увидел... Но пока это всё ещё лишь предположения
Начнём пожалуй с верхней части бутерброда — платы, на которой виднеется слот под сим и IMEI. Крепится она на двух винтах и подключена с помощью разъёма штырькового типа. Думаю всем читателям уже очевидно, что это GSM-модем устройства, однако даже такая банальная вещь реализована здесь весьма необычным способом. Дело в том, что в коммуникаторах нулевых, использование внешних модемов было отнюдь не редкостью. В тех-же самых устройствах RoverPC и O2 можно было встретить внешние платы-модемы Telit, припаянные к основной плате методом поверхностного монтажа. Однако здесь, судя по всему, если радиочасть устройства выходила из строя, можно было самому просто поменять плату с модемом на другую и продолжать пользоваться смартфоном как ни в чем не бывало!
Конструктивно модем достаточно прост и построен на относительно распространенной компонентной базе тех лет:
В качестве Baseband-процессора процессора используется система на кристалле Broadcom BCM2132. На самом деле, этот SoC самодостаточен и способен в одиночку выполнять практически все функции необходимые для простого кнопочного телефона. Состоит он из одного ядра ARM926EJ, способного работать на частоте до 74МГц, DSP-сопроцессора на архитектуре Teaklite, контроллера дисплея, камеры, SD-карт, NAND-флэшек, а также шин общего назначения — I2C, SPI, UART, USB.
Чуть правее расположилась так называемая eMCP-микросхема Spansion S71PL032JA0, которая в одном корпусе содержит как оперативную, так и флэш-память, позволяя значительно сэкономить место на плате. Объём памяти скромный — 2МБ PSRAM и 4МБ NOR-памяти. Классика!
Выше процессора находится чип Infineon PMB6258, которыйвыполняет задачи RF-фронтэнда или трансивера. Простыми словами, именно он ответственен за преобразование аналогового сигнала с антенны в цифровой пакет, который затем обрабатывает DSP в Baseband'е. Справедливо и обратное: когда Baseband подготовил GSM-пакет, он отсылает его в трансивер, а тот «пускает» его в эфир!
Рядом с PMB6258 расположился чип PMB2259, который выполняет роль VGA-драйвера или же усилителя сигнала. Вполне возможно, что это некий предусилитель, поскольку рядом с флэш-памятью скрывается ещё один безымянный GSM-усилитель.
Принципиальная схема трансивера в паре с бейсбендом Infineon S-Gold
С модемом закончили, здесь всё стандартно. Пора разбирать и изучать гаджет дальше: вытаскиваем шлейф клавиатуры и видим очень интересный парт-номер...
HTC... Ну мало-ли, в те годы они были крупным ODM и OEM-производителем, может Palm Treo просто собирали на их заводах?!
После снятия защитных экранов сомнений больше не осталось: рядом с процессором расположился чип производства самой HTC — 30H80049. Точное его назначение мне неизвестно, но по опыту с другими коммуникаторами этого вендора осмелюсь предположить, что он выполняет роль контроллера питания. Поскольку чипы HTC используются только в собственных разработках компании — становится очевидным, что аппаратную часть Palm Treo разработал именитый тайваньский производитель! Кто бы мог подумать?
Также косвенно это подтверждает тот факт, что кроме PalmOS были Treo с Windows Mobile на борту, а как известно — HTC один из главных производителей устройств на WM.
Далее мы видим сердце основной части устройства — топовый для своих лет чипсет Intel PXA270. На самом деле, о крутости этого процессора можно рассказывать часами, чипы на базе микроархитектуры XScale были легендарными в гиковских и промышленных кругах благодаря хорошей документации, отличной производительности и наличию порта Linux. Но давайте по порядку:
Одно ARMv5-совместимое ядро, построенное на собственной микроархитектуре Intel XScale, способное работать на частоте до 624МГц. Также PXA270 поддерживал набор SIMD-инструкций Wireless MMX (олды смахнули слезу, услышав знакомую аббревиатуру).
32 килобайта L1-кэша инструкций + 32 килобайта L1-кэша данных.
Возможность выполнения до 800 миллионов инструкций в секунду (MIPS) при максимальной рабочей частоте.
Контроллеры шин общего назначения: UART, I2C, SPI, USB.
Периферийные модули для управления DRAM, NAND и NOR-памятью, а также контроллер SD-карт.
Контроллеры клавиатуры, дисплея, ШИМ, GPIO и даже встроенный RTC...
64МБ встроенной NOR-памяти типа StrataFlash
И всё это будучи изготовленным на 180нм техпроцессе!
Чуть ниже процессора расположился один-единственный чип SDRAM-памяти производства Infineon объёмом в 32МБ, а также микросхема NAND-памяти M-Systems объёмом аж в 64МБ. Одна флэшка под систему, вторая под пользовательские данные — где такое ещё можно увидеть?!
Над процессором можно заметить микросхему Broadcom BCM2035, которая выполняет роль Bluetooth-контроллера.
Около разъёма можно наблюдать ещё два «питальника» устройства: ШИМ-контроллер MAX1887, а также контроллер зарядки аккумулятора MAX1874E. Чуть ниже расположилась неизвестная микросхема, судя по характерной для Sony маркировке — это контроллер дисплея.
Не менее интересен и сам дисплей смартфона — это крупная 2.8" матрица Sony ACX533AKM с разрешением аж в 320x320, выполненная по технологии TFT-LCD (LTPS). По меркам 2004 года это очень большое разрешение для кнопочного устройства, примерно как в наше время 4K в смартфоне!
Лично меня удивляет тот факт, что на шлейфе присутствует нетипично-большое количество обвязки и в первую очередь внешняя микросхема формирования BIAS-напряжения (контрастности) TI TPS65110, который обычно встроен в сам кристалл дешифратора. Кроме того, похоже что сразу на шлейфе распаян драйвер подсветки — такое тоже встретишь не часто!
Ну что-ж, теперь мы знаем, что у Treo 650 находится «под капотом». На самом деле, у смартфона достаточно необычный даже по меркам тех лет конструктив, местами он напоминает плату самого первого коммуникатора от HTC — Wallaby и именно благодаря этой характерной преемственности, я сразу же понял откуда идут корни устройства!
С оценкой аппаратной части устройства мы закончили, давайте перейдем к программной!
❯ PalmOS — это чудо?
После включения нас встречает калибровка тачскрина, диалог первоначальной настройки и наконец главный экран. У Treo была интересная особенность: концепции рабочего стола в привычном понимании у него могло и не быть, а главным экраном являлось меню приложений, которое было разделено на несколько подгрупп.
В отличии от современников на Windows Mobile, Treo работает невероятно быстро. Почти все приложения открываются моментально и сразу готовы к работе, никаких экранов загрузки, ANR и тормозящих интерфейсов — всё работает так, как в новом iPhone сразу после покупки. И хотя iPhone куда более плавный, чем Treo 650, в некоторых кейсах смартфон от Palm показывает себя не хуже, а то и лучше какого-нибудь iPhone 15 на самой последней iOS!
За такой впечатляющей производительностью скрывается сразу две архитектурные тайны PalmOS. Первая заключается в том, что система от Palm «однозадачная» — и в ней одновременно может работать только один процесс, а для реализации отложных задач предлагается использовать кооперативную многозадачность и события. На самом деле, в ядре системы есть потоки и задачи, однако API для них задокументировано плохо, а планировщик включается лишь по запросу. Таким образом, приложению доступно практически всё процессорное время без необходимости делить его на кванты.
Вторая тайна удивит вас не меньше: помните в начале статьи я рассказывал о встроенном эмуляторе m68k — PACE? Дело в том, что Palm по каким-то причинам не успела портировать системные приложения на ARM и поэтому почти все системные и сторонние программы написаны для архитектуры m68k и выполняются в эмуляторе, сохраняя при этом невероятную производительность! А секрет здесь прост: дело в том, что PACE эмулирует только само процессорное ядро, но не весь КПК Palm. Когда программа вызывает системную функцию, эмулятор её перехватывает и вызывает соответствующую нативную реализацию для ARM.
По такой-же концепции написан эмулятор PPSSPP, а также слой совместимости с x86 в Windows 10 for ARM. По сути, это превращает нативные m68k-приложения в что-то типа интерпретируемых...
Интересно также то, что у PalmOS по сути и не было концепции файловой системы. Приложения хранили свои данные в собственных базах данных, которых могло быть несколько, а сделано это было для упрощения процесса синхронизации с компьютером. Для этого у Palm'ов была очень удобная программа — HotSync. С её помощью производился процесс авторизации пользователя, устанавливался софт (но никто не мешал устанавливать программы с SD-карты), делались бэкапы, а также переносились мультимедийные файлы.
Процесс синхронизации
Не менее интересна реализация сетевого стека в Palm'е, которая позволяет прицепить PPP вообще к любым портам в Treo. Сеть через UART? Пожалуйста. Сеть через ИК-порт — тоже без проблем. Сеть через BT или модем 3Com от модели 1998 года? Вообще без проблем! Можно было подключить даже Wi-Fi модуль в формате SDIO-карточки!
Однако в современном интернете у Treo 650 уже всё не так хорошо. К почтовым серверам с SSL он подключится не может, а браузер даже OpenNet не открывает. Это очень грустно...
Зато у Treo 650 всё хорошо с играми. В своё время известный мобильный издатель Astraware портировал на PalmOS многие Shareware-хиты нулевых. Здесь есть полноценная Zuma, Raging Thunder, классические игры Atari, арканоиды, головоломки и множество других игр из нулевых. Не все они работают идеально быстро (в том числе из-за необходимости эмуляции m68k), но поиграть было во что!
А для тех, кому не хватает нативных приложений, есть экзотическая Java-машина от IBM с поддержкой MIDP 2.0. Благодаря ей появляется возможность играть в легендарные игры для J2ME-телефонов, если они не используют специфичное API по типу 3D...
❯ Заключение
Вот такими были смартфоны Palm в начале нулевых годов. По правде сказать, Treo контрастирует на фоне Windows Mobile и Symbian-смартфонов не только невероятной производительностью, но и весьма странными архитектурными решениями. Уж чего-чего, но однозадачную ОС в смартфоне 2006 года точно не ожидаешь встретить, когда даже в самых недорогих и простых кнопочниках трудится полноценная RTOS!
Однако Treo 650 кажется диковинкой только в наше время. В те годы это было желаемое устройство для тех, кому необходимо много переписываться, читать и даже играть... Надеюсь, вам было интересно!
А если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет — подписывайтесь на мой Telegram-канал «Клуб фанатов балдежа», куда я выкладываю бэкстейджи статей, ссылки на новые статьи и видео, а также иногда выкладываю полезные посты и щитпостю. А ролики (не всегда дублирующие статьи) можно найти на моём YouTube канале.
Что думаете о Palm Treo 650/680?
Что думаете о сравнении производительности с iPhone?
Что думаете о таком формате статей?
Если вам понравилась статья...
И у вас появилось желание что-то мне задонатить (например прикольный гаджет) - пишите мне в телегу или в комментариях :) Без вашей помощи статьи бы не выходили!
В этой статье я хочу рассказать об одной интересной компьютерной мыши, выпущенной отечественным производителем в далёком 1991 году. Помимо уникального дизайна, мышь содержит в себе ряд электронных компонентов, которые мы увидим. Также расскажу о проблеме, которая сгубила этого «грызуна», но я всё-таки не теряю надежды его воскресить. Будут детальные фото составляющих компонентов с описанием внутренней начинки этого интересного устройства, а в роликах вы увидите вскрытие «капсулы времени».
Сразу оговорюсь об использованном в заголовке названии данной мыши.
Официальное название — «Устройство ввода НВ 03.049.003». Выпущенное в 1991 году промышленным объединением «Комета», данный манипулятор иногда называют по наименованию производителя — «Комета», а еще в силу округлой формы — «Колобком». Подчеркну, что это неофициальные, «народно-обиходные» названия, и в паспорте устройства этих упоминаний нет. Но мне нравится название «Колобок»; думаю, в современном мире производитель вполне сам бы мог дать такое яркое название своему продукту. С другой стороны, зачем всё сворачивать к игровой форме? Строгое «УВ НВ 03.049.003» отражает серьёзное время. Вот прилагаемый изготовителем паспорт, я приведу его полностью.
1/3
По результатам чтения паспорта мы видим, что мышь подключается посредством интерфейса RS-232C, то есть в стандартный COM-порт.
Итак, начнем с внешнего вида, постепенно добираясь до внутреннего устройства.
Внешний вид
Распаковка «мыши»:
Разборка «мыши»:
Помимо самого корпуса и согласно паспорту устройства, присутствуют два разъема — DIN5 (слева) и db9 (справа):
DB9 крупным планом — это интерфейсный разъем, подключаемый в порт RS-232:
DIN-5 вставляется в материнскую плату в разрыв клавиатуры AT, обеспечивая питание 5В, потому что, как мы увидим дальше, питание через RS-232 на «мышь» не подаётся.
Интерфейсный разъём в разборе, к нему подходят всего три провода, выглядит так:
Номинал резистора можно увидеть на экране мультиметра, чуть менее 1 кОм:
Теперь самый главный вопрос: зачем я разобрал «мышь» и вообще полез туда? Как вы, наверное, догадались, первоначальное подключение к компьютеру и переборка пары десятков мышиных драйверов (не шучу) ни к чему не привели — «мышь» не работала.
Цель данной статьи — найти единоМЫШленников, которые могут помочь. В чём конкретно, расскажу по мере повествования.
Разобранная «мышь» выглядит так:
Итак, рассмотрим составляющие элементы.
Микросхема КР1816ВЕ39 — это однокристальная 8-разрядная микро-ЭВМ, не содержащая ПЗУ.
Само ПЗУ (EPROM) КР573РФ5, организация памяти 16 Кбит (2К x 8). Кварцевое окошко для УФ-стирания заклеено толстой черной изоляцией толщиной 0,5мм.
Микросхема К555ИР22 — это восьмиразрядный регистр хранения информации, тактируемый импульсом. Логика работы приведена по ссылке.
Микросхема К561ЛН2 — это шесть логических элементов НЕ с буферным выходом.
Микросхема К561ТЛ1 содержат 4 элемента 2И-НЕ с триггерами Шмитта на входах.
Плюс ко всему мы видим кварцевый резонатор, три микровыключателя, несколько постоянных и 4 подстроечных резистора. А так же две КМ-ки.
Печатная плата держится на пластиковом основании при помощи маленьких саморезов.
Маленькие «ролики-штанги». Как можно видеть, в соединяющей несущей высверлены отверстия, сквозь которые при вращении роликов происходит циклический засвет оптопары.
Оборотная сторона печатной платы, содержащей оптопары (в красных кружочках). Как мы видим, ножки элементов оптопар, «одеты» во фторопластовые трубочки (изолирующие кембрики).
Оборотная сторона корпуса мыши. Здесь мы видим три выпуклых металлических элемента, обеспечивающих вспомогательное скольжение по поверхности.
Как я уже говорил, нерабочая «мышь» не давала мне покоя. Начал я с измерения питания на выводах микросхем. Напряжение поступало, коротких замыканий обнаружено не было. Корпуса микросхем чуть заметно грелись — совсем немного, ощущал пальцами. Что делать, я не знал. Поиски принципиальной схемы, к сожалению, не увенчались успехом, поэтому я был бы рад помощи с этим. Но пока схемы нет, я решил выпаять ПЗУ. И здесь, как мне кажется, началась вторая существенная проблема.
Выпаять микросхему, как оказалось, не сложно, но и не просто. Паяльный фен не использовал, каким припоем было запаяно ПЗУ — я не знал. Вот процедура извлечения:
Сплав «Розе» имеет более низкую, чем у оловянно-свинцового припоя, температуру плавления. По технологии он наносится на выпаиваемые ножки микросхем с целью разбавления припоя и проникновения в отверстия печатной платы. Существующий припой был удалён при помощи оловоотсоса, и нанесён сплав «Розе».
Прошу строго не судить, но в определённый момент всё выглядело так:
ПЗУ слегка встало «на дыбы»:
И с другой стороны:
Результат:
После демонтажа ПЗУ и приведения платы в порядок, вот такой вид. Дорожки, не отслоились, металлизация отверстий не нарушена:
Что мы имеем:
Для чего все это? Конечно сделать дамп при помощи программатора:
Читаем:
И вот какой у меня получился дамп:
ПЗУ чиста, как после полного стирания УФ-лампой. Дамп улетучился, утёк — никакой микропрограммы. ПЗУ как новое. Всегда сохраняйте дампы своих ретро-гаджетов! Без них в один прекрасный момент ваш девайс может превратиться в бездушную железку.
Всё. На этом я понял, что нужно искать рабочую «мышь-донора» либо дамп для загрузки в ПЗУ. Собственно, поиск принципиальной схемы и донора и является целью написания данной статьи.
Чтобы больше не возиться с пайкой платы, на место ПЗУ я установил «кроватку».
Но еще не всё...
Возвращаясь к названию «Колобок», хочется выразить своё двоякое мнение. С одной стороны, не хочется нести некорректную информацию в ноосферу знаний. А с другой стороны, что вы скажете на нижеизложенный факт?
В загрузочном образе-сборке советской операционной системы «Альфа-ДОС», являющейся клоном MS-DOS 3.2, содержится драйвер мыши КОЛОБОК.КНД. Его можно увидеть вверху списка.
Запустив данный драйвер, мы видим следующее:
Оно и понятно: в COM-порт не вставлен разъём заведомо неисправной мыши.
Но и это ещё не всё. Я нашёл второй экземпляр драйвера «Колобка». Он называется «GMAUS.COM». Ему безразлично, подключена мышь в порт или нет. Без лишних вопросов он загружается резидентом в оперативную память, и при повторном запуске, проверяя наличие уже запущенной копии, «Колобок» отвечает: «программа уже готова».
Размер файлов немного отличается. Мы увидели, что существуют как минимум две модификации драйвера «КОЛОБКА».
Разные размеры файлов
Файлы различаются
Резюмируя, «Колобок» жив в программном коде. Файл в образе «Альфа-ДОС» датируется 1 августа 1988 г., а мой экземпляр мыши — декабрём 1991 года. В каком году начато серийное производство данных мышей, найти информацию не удалось. Под какую мышку написан драйвер «КОЛОБОК.КНД», можно только предполагать.
Итак, «Колобок» всё же был. Но катиться ли ему по столу дальше — решать вам, уважаемые читатели. Дело — за принципиальной схемой, дампом ПЗУ и накопленными вами знаниями и опытом.
Мой «Колобок» пока не готов... Если сможете помочь, пишите советы в комментариях.
Начинаем неделю с нового экспоната в виртуальном музее советской бытовой техники sovtech.su. Сегодня это радиоточки. Первая - "волга-3".
Карболитовый корпус, сетка из полистирола
Внутри типовая начинка громкоговорителя для радиотрансляционной линии. Но резистор низкоомный и включен последовательно с динамиком.
Вероятно так сделали, чтобы полностью производить компоненты на заводе, а не зависеть от смежников - намотать проволоку проще, чем нанести надежное проводящее покрытие высоокомного переменного резистора.
Вторая радиоточка - от артели грамплатмасс. Она тяжелая, за счет массивного магнита динамика. Сам корпус был в весьма плачевном состоянии, поэтому я покрыл его шелаком в процессе реставрации.
Видно следы ремонта - провод МГТФ явно внесен позднее, как и переменный резистор (по характерной выстамповке он похож на СП1)
Дабы оживить радиоточку и не вандалить ее начинку сделал небольшой плеер с трансформатором и ретроплейлистом с архивными записями с сайта "старое радио".
Фоткал я, обработал фотки @AthosLaFere, за что говорим ему большое спасибо.
Наверняка многие читатели слышали о самой дешевой консоли на маркетплейсах — «Sup». На первый взгляд, это устройство — чудо чудное: цветной дисплей приличного разрешения, целых 500 игр в комплекте, аккумулятор и даже дополнительный геймпад, и всё это за какие-то 400 рублей в розницу.
Обычный человек просто подумает мол «очередной масс-маркет по типу Тетриса» и пройдет мимо. Однако моя гиковская душа очень хотела узнать, в чём же заключается тайна самой дешевой консоли на Озоне и я решил заглянуть «под капот»… Поверьте, внутри гораздо интереснее, чем кажется на первый взгляд!
❯ Предыстория
Консоль Sup заполонила виртуальные полки магазинов примерно в 2019 году и сразу же стала мегахитом. Полноценная ретро-консоль с кучей встроенных игр всего за 300–400 рублей явно метила в конкуренты «Тетрису» по массовости, однако в технологическом плане была куда более продвинутой, чем её предшественник из 90-х. Несмотря на то, что сейчас Sup, вероятно, одна из самых продаваемых ретро-консолей, её богатая история тоже тянется с тех самых 90-х годов…
Как известно, основные игры в Sup — это различная классика времен NES, разбавленная играми «собственной» китайской разработки по типу портов Angry Birds и хаков уже существующих игр. С учетом того, что самопальные игры зачастую более «цветастые», чем родные с NES, у многих складывается впечатление, что это самый обычный эмулятор, а особо пытливые умы при разборке находили микросхему флэш-памяти и все вопросы касательно реализации у них отпадали. Но первое впечатление порой очень обманчивое, ведь Sup — аппаратный клон NES! Но давайте по порядку.
История разработки клонов Famicom (далее по тексту — «Фамиклонов») берёт своё начало примерно в 1990–1991 году. В те годы, микроэлектронная промышленность Тайваня развивалась семимильными шагами: в стране активно выпускались x86-компьютеры, ноутбуки в разных конфигурациях, различная оргтехника и всё это по относительно доступной цене. Помимо устройств на готовой компонентной базе, в Тайване также разрабатывались и производились микросхемы — как клоны существующих чипов, так и собственные разработки. Самыми крупными производителями были UMC и Holtek.
Завод UMC в Тайване
Holtek в основном производил ASIC'и для конкретных задач (к примеру контроллеры PS/2 и USB-клавиатур), а также очень недорогие 4х-битные микроконтроллеры с масочной ROM-памятью, которые использовались в устройствах по типу органайзеров и наручных часов. Однако венцом творения гаджетов на базе МК от Holtek можно считать культовую консоль нашего детства — ведь HT-943E5 использовался в том самом Brick Game!
Фото от @Azya
UMC же в те годы занималась клонами оригинальной японской консоли. В её R&D центрах были разработаны клоны центрального процессора Ricoh RP2A03 на ядре 6502, а затем и PPU («видеокарта», предок современных GPU) 2C02G, что позволило выпускать «фамиклоны», которые довольно сильно были похожи на оригинальную консоль. Это были те самые «трушные» многочиповые «Денди», за которыми гоняются коллекционеры!
Сводный братик NES, собранный на почти стандартной компонентной базе
Однако как я уже сказал выше, полупроводниковая промышленность Тайваня тогда очень быстро развивалась и ближе к середине 90-х годов, UMC освоила настолько малый техпроцесс, что умудрилась засунуть вообще весь NES в один-единственный чип UM6578F, который называется системой на кристалле (SoC). Только представьте себе: процессор, звуковой чип, видеочип, память — и всё это в небольшом кристалле, который стоит относительно недорого... Это настоящее технологическое чудо!
Одна из первых известных систем на кристалле — UM6578F, которая также производилась и другими компаниями (по лицензии?)
Но UMC и на этом решили не останавливаться. UM6578F был не просто клоном оригинального Famciom, это был серьёзный апгрейд оригинальной аппаратной платформы. Например, добавилась поддержка 16-цветного режима для спрайтов, полноценного 8-битного PCM-звука (к примеру, почти вся MP3-музыка кодирует 16-битный PCM-поток) помимо классических генераторов волн, а также расширен объём оперативной и видеопамяти до целых 10КБ — это в ПЯТЬ раз больше, чем на оригинальной консоли! Причины такого апгрейда просты: во-первых, в те годы власти Китая ввели заградительные пошлины на импорт электроники, поэтому домашние x86-компьютеры были доступны отнюдь не всем. Им на замену пришли относительно доступные компьютеры по типу «Сюбора», которые совмещали в себе как клавиатуру и набор обучающего софта вместе с интерпретатором BASIC'а, так и игровую консоль. А во-вторых — небольшие китайские компании выпускали свои собственные коммерческие игры без лицензии от Nintendo и расширенные возможности новых фамиклонов могли значительно увеличить комплексность выпускаемых игр.
Относительно современный «Сюбор-ноутбук» — примерно 2001 год
Время шло, наступил 2001 год, клоны SEGA и Famicom не теряли своей актуальности и продолжали взращивать второе поколение — детей 90-х, а в городе Чжубэй появляется компания VRT Technology, которая занимается разработкой и проектированием фамиклонов. Но в отличие от конкурентов, VRT в плане апгрейдов оригинальной платформы пошла ещё дальше и превратила NES в нечто вроде очень продвинутого микроконтроллера: их чипы научились выводить изображение не только на телевизор, но и на ЖК-дисплеи, был серьёзно доработан АЛУ — появилась возможность аппаратного умножения и ДЕЛЕНИЯ (чего не было даже в ARM) 16-битных чисел, ядро 6502 было разогнано с 1 МГц до целых 5, объём ОЗУ увеличен с 2 КБ до 8 для основного процессора и 4 для PPU, а также были добавлены контроллеры SPI, UART, АЦП и GPIO.
В одной из ревизий чипа даже есть возможность работы с SPI-флэшками!
Ко всему прочему, VRT умудрилась сделать некое подобие MMU с шиной OneBUS, благодаря чему стало возможным хранить игры на самой обычной параллельной ROM или NOR-памяти, без необходимости установки отдельного памяти чипа для PPU. Компания даже выпустила отдельный SDK для своих консолей с компилятором C, статическими библиотеками для общения с периферией и специальным эмулятором. Но вот нюанс — все чипы этого производителя поставлялись без корпуса, а приобрести их в свободной продаже нельзя, поэтому определить точную маркировку сложно...
Скриншот из документации на плату для разработчиков. Как видно, даже здесь процессор поставляется в виде System on Module
Но казалось бы... прошло столько лет, NES давным-давно неактуальна и VRT наверняка сменила профиль или вообще закрылась, а её чипы можно найти только в старых клонах и в Sup наверняка используется что-то другое... Если бы не одно но: судя по документам, бескорпусные чипы поставляются в блистере и имеют определенный срок годности. Дело в том, что они не припаиваются к плате, а приклеиваются «пузом» к текстолиту, затем их пины привариваются к дорожкам, а далее они покрываются компаундом для защиты от внешних факторов. У самих кристаллов срока годности нет, однако у клея — около 3х-4х месяцев, после чего кристаллы можно выбрасывать (в случае чипов VRT конечно, не думаю что там оптовая цена превышает 3-4 рубля за штучку), так как вряд-ли кто-то будет выделять целую линию для нанесения нового клеевого слоя на копеечные кристаллы...
Та самая каелька
В начале года я рассказывал об ещё одном китайском чуде инженерной мысли — относительно новом телефоне Kechaoda с встроенным аппаратным клоном NES, где использовался точно такой-же чип от VRT, только с поддержкой SPI-флэшек и дисплеев с шиной 8080. Учитывая огромные объёмы производства Sup и подобных ей консолей, можно сделать вывод что VRT всё ещё существует, заказывает производство новых партий и возможно даже продолжает дорабатывать свои клоны NES... Спустя 40 лет после выхода оригинальной консоли!
А далее по традиции блога я предлагаю разобрать Sup и посмотреть, что же у него находится под капотом. Уверяю вас, мой экземпляр в какой-то степени уникален!
❯ Что внутри?
Консоль разбирается очень просто: необходимо вытащить аккумулятор и выкрутить 6 винтиков с обратной части устройства, после чего крышка отходит без каких либо защелок. Внутри нас встречает толстенная однослойная плата, которая, к слову, довольно грамотно разведена инженерами. В наши дни, для серийных ЭВМ это большая редкость, но здесь авторы решили максимально сэкономить, местами используя большие резисторы-нулевики в качестве перемычек.
С правой верхней стороны расположен блок, отвечающий за питание консоли и зарядку аккумулятора. Здесь всё стандартно для таких простых устройств: защитный диод на VBat, линейный регулятор на 3.3В в корпусе SOT-23 под маркировкой 662K, а также парочка ключей, вероятно составляющие часть схемы чарджера. Схема зарядки аккумулятора здесь, судя по всему, настоящая и его основная логика расположилась в кристалле под компаундом.
Опытные читатели уже могли заметить уникальность моей ревизии: вместо чипа памяти в BGA-корпусе поверх SoM, здесь используется самая обычная NOR-флэшка в корпусе TSOP58 объёмом в 16МБ. Это значит, что теоретически я могу её сдуть, слить дамп с помощью программатора и попытаться подсунуть в него свои игры... Если вам был был бы интересен контент такого формата — дайте знать в комментариях!
Чуть ниже флэши расположилось сердце устройства — неизвестный кристалл, который с вероятностью 99% разработан VRT. Дело в том, что безвредно декапсулировать такие чипы нельзя, они с большой вероятностью трескаются, так что конкретную модель чипа мы возможно сможем узнать только изучив дамп. Левее процессора расположился кварц на 20МГц, который тактирует остальную периферию.
В качестве дисплея здесь используется безымянная матрица разрешением примерно в 240x320 с параллельным интерфейсом MIPI DBI (8080). Иными словами, здесь используется такой-же дисплей, как в классических кнопочных телефонах и DIY-самоделках. Я не пробовал подключать этот дисплей к микроконтроллер, но уверен, что если посидеть пару дней с лог. анализатором, то можно без проблем найти все сигнальные линии параллельной шины по стандартизированным командам DBI :)
Также вы могли заметить MicroUSB-разъём с верхней части устройства, который используется для зарядки. Однако здесь используются и три дополнительные сигнальные линии — D+, D- и ID, однако служат они для подключения второго геймпада, а не к ПК. Фактически это не USB, а сигнальные линии оригинального геймпада NES — Latch, Data и Clock.. такое вот нецелевое, но практичное использование разъема!
И... это всё! Да, вот такая простейшая, но при этом достаточно продуманная схемотехника и конструктив. Несмотря на дешевизну, убить этот гаджет в аппаратном плане очень сложно, его самое слабое место — это дисплей.
❯ Включаем...
После включения консоли нас встречает меню выбора языка в многоигровке. Список игр довольно обширный и ограничивается не только классикой, зачастую под непонятными названиями, но и самопальными китайскими играми. Однако здесь есть одна важная особенность: поскольку клоны VRT реализуют шину OneBus, они поддерживают только маппер MMC3, что здорово снижает число поддерживаемых игр.
В большинстве игр копирайты намеренно подрезаны, скорее всего чтобы можно было без проблем продавать консоли на маркетплейсах. Поскольку это аппаратный клон, здесь нет инпутлага и всё работает точь в точь как на оригинальной консоли, в том числе и игры для других регионов. Например ром Super Mario Bros. здесь почему-то от другого региона, из-за чего работает слишком быстро.
Звук у консоли в целом неплохой, однако у части Sup'ов не работает треугольный канал APU, из-за чего звуки и музыка в некоторых играх искажены. С чем это связано - доподлинно неизвестно, но думаю вы и сами понимаете, что контроль качества у таких чипов наверняка минимальный!
Поскольку у консоли нет Fuel Gauge (микросхемы для определения уровня заряда аккумулятора, обычно она сложнее чем просто АЦП-вольтметр) как класса, при разрядке АКБ сначала начинает тухнуть подсветка, затем утихать звук, а в произвольные моменты времени консоль может просто зависнуть (сохранений тут нет). Забавно то, что подсветка подключена напрямую к VBat (плюсу аккумулятора) и её яркость плавно снижается, обратно пропорционально заряду аккумулятора, однако такое решение "в лоб" также прямо пропорционально напряжению АКБ увеличивает потребление. Если у вас меткий глаз - сможете определить уровень заряда по тусклости :)
В процессе работы консоль потребляет аж 200мА при самом высоком уровне звука на среднем заряде аккумулятора, 170мА при 10% громкости и будет потреблять ещё меньше, если снизить подсветку дисплея путем установки линейного регулятора с выходным напряжением в 3.3В (потребление снизится до ~130мА, добавив минимум час игры от АКБ). Само процессорное ядро довольно экономичное, так что я до сих пор не понимаю, почему его не выпустили как конкурента атмеги с продвинутыми графическими и звуковыми возможностями. Родной аккумулятор хоть и имеет размеры BL-4C, на практике имеет емкость в 300-400мАч максимум, поэтому есть смысл поискать оригинальный аккумулятор от Nokia: с ним консоль сможет проработать 5-6 часов без подзарядки.
Минимальное напряжение, при котором консоль работает стабильно - 2.6В, практически без подсветки. Учитывая дропаут на линейном регуляторе, фактически процессор способен работать и на 2.4В, а возможно и ещё ниже!
Заключение
В заключении мне хотелось бы сказать, что Sup — это по факту шедевр инженерной и технологической мысли. Судите сами: полноценная ЭВМ с цветным дисплеем, звуком, памятью, большим количеством игр и даже аккумулятором, и всё это буквально за 5$. Большинство читателей наверняка посчитает это устройство одноразовым мусором, однако для меня, как для прожженного гика, это маленькое портативное чудо!
Надеюсь, вам было интересно узнать тайну Sup'а. О том, что в руках у вас не эмулятор, а настоящий аппаратный клон, только очень сильно прокачанный наверняка известно не всем... Если вам понравилась статья и вы хотите помочь мне финансово, можно воспользоваться формой доната выше. Донаты идут на контент - оборудование и всякие DIY-гаджеты. А ещё мне можно подарить какой-нибудь прикольный гаджет, о котором выйдет статья. Доставку я оплачу :)
А если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет — подписывайтесь на мой Telegram-канал «Клуб фанатов балдежа», куда я выкладываю бэкстейджи статей, ссылки на новые статьи и видео, а также иногда выкладываю полезные посты и щитпостю. А ролики (не всегда дублирующие статьи) можно найти на моём YouTube канале.
Что думаете о Sup?
Попробуем замоддить такую штучку?
Как вам статья?
Очень важно! Разыскиваются девайсы для будущих статей!
Друзья! Для подготовки статей с разработкой самопальных игрушек под необычные устройства, объявляется розыск телефонов и консолей! В 2000-х годах, китайцы часто делали дешевые телефоны с игровым уклоном — обычно у них было подобие геймпада (джойстика) или хотя бы две кнопки с верхней части устройства, выполняющие функцию A/B, а также предустановлены эмуляторы NES/Sega. Фишка в том, что на таких телефонах можно выполнять нативный код и портировать на них новые эмуляторы, чем я и хочу заняться и написать об этом подробную статью и записать видео! Если у вас есть телефон подобного формата и вы готовы его задонатить или продать, пожалуйста напишите мне в Telegram (@monobogdan) или в комментарии. Также интересуют смартфоны-консоли на Android (на рынке РФ точно была Func Much-01), там будет контент чуточку другого формата :)
Кроме того, я ищу подделки на брендовые смартфоны 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 E6, ZINE ZN5, о которых я хотел бы подготовить отдельные статью и видео, поскольку они работали на очень мощных для своих лет процессорах, поддавались серьезному моддингу и были способны запустить даже Quake.
Большое спасибо читателям и зрителям за подгоны, без вас контент бы не выходил!
Недавний небольшой блэкаут в моём городе очередной раз выявил типичную проблему в моей большой распределённой по разным домам и городам семье (жена, дочь, сестра, родители, племяшки...).
Оказывается почти все повербанки и фонарики, которые есть на хозяйстве в каждый любой неожиданный критический момент оказываются разряженными, забытыми, и потерянными где-то где угодно.
Также почти все почему-то предпочитают (мне этого не понять) жить со смартфонами, которые ПОСТОЯННО перебиваются на последних процентах заряда. Да, я, очевидно, параноик и душный тип, раз занудствую постоянно и набил всем оскомину своим нытьём на счет того, что литий от таких режимов деградирует и теряет ёмкость, что надо быть готовыми к непредвиденным ситуациям и т.д.
Когда непредвиденные ситуации наступают, снова ныть на тему "Говорил я вам, не послушали... так и получилось" - это только усиливать раздражение и отторжение.
Хочется решить проблему технически, по лучшим заветам ТРИЗ.
Так вот, я считаю, что все устройства с аккумуляторами должны уметь ныть о том, что их нужно заряжать. Нужно чтобы было проще поставить устройство на зарядку, чем отмахнуться. Нужно, чтобы вырабатывалась привычка ставить на зарядку всё после использования, а не когда приспичит и уже поздно.
Что для этого нужно?
У каждого устройства есть свои нюансы. Давайте сперва про повербанки. Нужно, чтобы они попискивали когда "голодные". Нужно, чтобы попискивания были сперва ненавязчивыми и отключались нажатием кнопки на предсказуемое количество времени. Как будильник в режиме "дремать". Ведь не всегда есть объективная возможность поставить девайс на зарядку. Возможно имеет смысл привязать попискивания к уровню окружающего шума, тогда устройство не будет мешать спать, но утром, когда в квартире начнётся движение, заявит о себе.
Надо исходить из того, что люди не нарочно забивают на зарядку своих девайсов, просто эти девайсы не умеют своевременно и достаточно ненавязчиво напоминать о себе. Слишком навязчивые приборы будут замьючены, а снова включить напоминалку все конечно же забудут.
То же касается и смартфонов, гарнитур, смарт-часов и прочего.
Всё, что имеет на борту блютус, может примерно "понимать" в какой локации и ситуации оно находится. "Нытьё" этих приборов можно сделать "умным", чтобы не давать сигналы о необходимости зарядки когда прибор: - лежит в рюкзаке или кармане - лежит на полочке среди ночи и никому не захочется просыпаться и срочно вставать его подключать - находится в локации, где никогда не ставилось на зарядку
С другой стороны вполне своевременно было бы напомнить о необходимости подключения если: - прибор достаточно разряжен и только что принесён в локацию, где его обычно заряжают - прибор только что использовали и вот положили где-то на территории локации, где есть зарядка и прибор заряжался раньше
Достаточно пикнуть пару разочков в нужный момент, и пользователь скажет спасибо за напоминание. Достаточно не доставать пользователя своим занудным "жрать хочу" когда нет никакой удобной возможности подключить прибор на зарядку, и пользователь никогда не выключит эту функцию напоминания.
В связи с этим, кстати, хочу спросить всеведущих пикабушников, есть ли на примете приложения с такой функциональностью? Я пока не находил ничего, отвечающего на 100% приведённым выше нехитрым требованиям.
Повторюсь. Надо напоминать пользователю о необходимости зарядки в своей машине, дома, на работе, но только когда это актуально: устройство не используется, лежит не в кармане, вокруг не спят.
Если для смартфона такая функция реализуется чисто программно, то в повербанки это имеет смысл "имплантировать" на аппаратном уровне. К примеру это можно было бы реализовать с помощью микроконтроллера типа ESP32 c bluetooth и wifi на борту. Добавить к нему mems-датчик вибрации, и этого будет достаточно, чтобы реализовать практически всё перечисленное.
Ещё я не понимаю, почему не распространена регистрация повербанков через bluetooth на смартфонах хозяев для облегчения их поиска, контроля за их зарядом, для уведомлений о статусе жизненных показателей батарей и т.д.. Какой-нибудь условный ESP32-с6 достаточно компактен, чтобы не обременить повербанк своим наличием.
Если у кого есть на примете хорошие открытые проекты DIY-повербанков - делитесь, пожалуйста. Если попадётся совместимый с моей природной рукожопостью, то попробую реализовать и расширить описанными выше функциями.
И на счет приложения. Если нет готового идеального и у вам загорелось на вайб-кодить такое на досуге, то тоже не поленитесь отписаться. С удовольствием поучаствую в разработке или потестирую. К сожалению у самого руки не дойдут до этого стопицотого проекта в моей записной книжке пет-проектов никогда в этой и паре последующих жизней.