company_banner

Psion 5mx и аппаратные развлечения с linux


    Многие из вас знают легендарный КПК Psion 5mx. Он был необыкновенно популярен и был мечтой многих гиков того времени. Карманный клавиатурный КПК, легко помещается в карман. Работает от двух пальчиковых батареек, одной кнопкой полностью обесточивается. Имеет на борту CF (и на моей практике спокойно переваривал объёмы в 8 ГБ!). Машинка опередившая время.

    В своё время, много лет назад у меня был ряд экспериментов: ставил на эту машинку linux, немного реверсил железо и пытался вывести её в люди в интернет. Что-то из этого удалось, что-то нет. В этой статье расскажу всё как есть. Пост будет гиковским, но немного сумбурным потому, что именно так я бодался с этой железкой.

    «Ты помнишь, как всё начиналось»...



    Некоторое время назад, у меня одновременно появилось два удивительных аппарата, легенды клавиатурных КПК: Это Psion 5MX и Jornada 720. Про Jornada пока нечего сказать, хотя этот КПК достоин памятника, а вот про любовь с легендарным Зышщт (это не опечатка) опишу в этом посте. Напомню параметры этого КПК (спасибо f15)

    Процессор: ARM710T 36 Мгц
    Оперативная память: 16 МБ (32 МБ в модели 5mx Pro)
    Слот расширения: Compact Flash (до 2 ГБ — это не правда, 8 кушает)
    Порты: RS232, IrDA
    Экран: 640x240, 16 оттенков серого, 133x50 мм
    Звук: встроенный микрофон, монофонический динамик
    Габариты: 170x90x23 мм
    Вес: 354 грамма с батарейками

    Не буду расписывать о том, какой это удивительный КПК, какие у него возможности и т.п. Вот шикарный пост "Лучший в мире клавиатурный КПК" и там можно детально почитать о самой железяке.

    Лично для меня штатная ОС не представляла большого интереса. Поигрался с несколькими программами, они в результате захотели денег, и я плюнул на это всё безобразие. Вот подборочка софта по теме, а сайт www.mypsion.ru до сих пор жив! Мне по настоящему было интересна работа linux на данном КПК. Посмотрите на его параметры: ARM7 36 МГц (тридцать шесть!), 16 МБ ОЗУ. Разве что в месте на жёстком диске мы не ограничены (забегая вперёд скажу, что у меня было 4 ГБ основной жёсткий и 4 ГБ под репозитории). Это прям минимальный набор для старта, и что Linux там работает? Вы не поверите, но полноценный Debian!


    Всё началось вот с этого поста, где HurrTheDurr писал код и прошивал микроконтроллеры AVR с такого вот КПК. Да, это overkill, но зато как реально круто!

    Одной из особенностей и проблем данного КПК, что единственный интерфейс для связи с внешним миром был UART. Да, там заявлена ещё IrDA, но по факту и схемотехнически это был один и тот же интерфейс, который переключался одним битом. Одновременно IrDA и COM-порт работать не могли. Это главное бутылочное горлышко, которое мне сильно подпакостило. Вот диаграмма из даташита на процессор. Фактически даташит — это схема Psion 5 MX.


    Как видно из документации RS-232 и IrDA — это один и тот же интерфейс UART.

    ARM7100 also contains a IrDA (Infra-red data association) SiR protocol encoder. Optionally, this encoder can be switched in to the Tx and Rx signals so they can be used to drive an infra-red interface directly. For more details on the IrDA SiR protocol, see the appropriate document detailing this protocol standard. If the SiR protocol encoder is enabled, the UART Tx line is held in the passive state and transitions of the modem status or the Rx line will have no effect.

    Не зря заостряю на этом внимание, любая установка пакета превращалась в квест.

    Прежде чем мы поедем дальше, в процессе экспериментов у меня для опытов появилось две машинки Psion 5mx: у одного не работал COM-порт (скорее всего выгорел на уровне процессора), но кое-как работала IrDA и работал интерфейс CF-карты, у другого работало всё, кроме интерфейса CF (поэтому для опытов с linux он был не пригоден). Так же потом у меня появилась материнская плата вариации Psion Ericsson, которая так и не смогла запустить на своём борту linux. Короче говоря, полноценного рабочего КПК у меня в руках никогда не было, поэтому это был своеобразный квест боли и унижений.

    Как поставить linux на эту крошку?


    Удивительно, что обычно по старому железу ходишь по тысячам битых ссылок. Но даже сегодня все ссылки работают, и вполне можно пройти весь этот джедайский путь, если есть железо. Сам linux для Psion живёт вот тут. Там же и подробнейший мануал по установке.

    Если вот совсем кратко, то минимально для установки достаточно CF на 256 МБ. Но лично я рекомендую взять флешку на 8 гигов, 4 из которых отвести под репозитории. Для его загрузки запускается Arlo — это загрузчик, который устанавливается на досовский раздел. Все файлы обитают вот тут.


    Та самая флешка, с образом linux

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

    В результате я психанул, разбил флешку на два раздела (точнее на три, на первом раздел dos, для загрузчика). И во втором разделе сделал локальный репозиторий. И 4 гига всех возможных пакетов там чудесно разместились.

    В результате можно даже установить gcc и не спешно писать свои программы.


    Реверс инжиниринг железа Psion


    Для тех кто, как и я решиться заниматься реверс инжинерингом psion есть несколько полезных реcурсов. Главный — это конечно Service Manual. Крайне полезный документ по разборке и работе.

    Так получилось, что подсветка на этом экземпляре Psion была практически умершей. И я думал, какие способы её заменить. Существует в китае электролюминесцентная бумага, из которой можно сделать готовую подсветку. Для этого я решил отреверсить схемотехнику питания подсветки. Существует большой проект нашего соотечественника, который реверсил Psion Revo (это более дешёвая версия Psion, по моему даже без CF). И у него есть сайт, на удивление даже живой. Там он увеличивал количество ОЗУ, реверсил сигналы и т.п. И я взял его мануал по реверсу материнской платы. Всяко рекомендую ознакомиться всем небезразличным к железу. Для меня наибольший интерес представляла табличка разъёма LCD. Обращаю внимание, что у меня несколько другая модификация, но информация оказалась мне полезной.


    Меня интересуют те сигналы, которые не используются в данной модификации Псиона. Для этого разбираем Psion.


    Разбираем наш Psion 5 MX и можем посмотреть материнскую плату внутри.



    Любопытно, свободные площадки под ОЗУ, и флешка вместо ПЗУ. Т.е. гипотетически можно записать за место оси свою операционку. Если вы посмотрите гайды, то экран расползается бутербродом. И шлейф от экрана один.


    Тут два шлейфа, но один глухой. А экран выполнен моноблоком. И с другой стороны выглядит вот так:


    Тыльная сторона экрана в терминальной стадии разборки


    Экран внутрях

    На материнке видать кучу-просто тонны тестовых падов. Но из-за нехватки времени оставил их прозвонку другим любителям старины. Уверен на сто процентов, что там есть свободные пины PIO, которые можно использовать. Но я решил сосредоточиться на проблеме подсветки и отреверсить её.
    В общем с подсветкой суть такова, я уже приводил табличку с реверсом Ревы. И там был разъём дисплея такой же как у Psion 5 mx и в данной табличке отсутствовала информация о контактах подсветки (у ревы нет подсветки). Оглядев плату, находим рядом стоящую с разъёмом микросхему HV823, беглое прозванивание дало результат, что одна ножка (26) идёт прямо на неё. Гуглим даташит на данную микросхему. И опа, оказывается, что эта микросхема как раз отвечает за подсветку. Согласно установленным делительным резисторам, скорее всего схема подключения следующая:


    При дальнейшей прозвонке схема совпала полностью (индуктивность и ёмкость измерить нечем), выглядит всё так:


    Сверим всё приборами.


    Амплитуда составила 65 В, а вот синхронизировать изображение на осцилоскопе не удалось, поэтому снимал значения уже с фотографии:


    Осцилограмма 10 В/дел ,1 мс/дел

    Частота вышла 250 Гц, что меня смутило. Решил проверить частотомером (ну мало ли, глазам не верю). В результате вот такие тёплые ламповые значения:


    Значение на тёплом ламповом дисплее в кГц, и равно 252 Гц.

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

    Результирующая табличка выглядит вот так:


    Короче говоря, параметры подсветки 65 В на 250 Гц.

    После этого, я начал в китае искать EL-панель размером 144х62 мм, с такими параметрами питания. Самое забавное, что стоимость таких панелей порядка 1500-1800 рублей (если брать А4 под резку), и в Китае заказывать не сильно дешевле, как ни странно.

    Но судьба распорядилась иначе, и у меня появилась новая подсветка и ещё материнская плата от Psion Ericsson MC 218.


    Новая материнка и подсветка.

    Лёгким движением руки Psion превращается в Ericsson


    Было бы грешно не попробовать заменить материнскую плату с одного КПК на другой. Тем более, что внешне их было не отличить. Это материнская плата от КПК Ericsson MC 218. Как я понял — это просто какая-то модификация прошивки, а так по сути это тот же самый Psion (но не тот же).


    Две материнки. Угадай где какая.

    Больше всего боялся забыть где какая материнка. Как две капли, но отличие есть в форме кнопочек. В остальном — полное совпадение. Встала как влитая. Первый запуск дрожащими руками:


    О мой бог! Интересно jar-ы работают?

    После окончательной загрузки выглядит всё вот так:


    Делал очень большую ставку на данную материнскую плату, так как там нормальный разъём CF и рабочий СОМ-порт, в общем будет счастье. Но, увы… Оказалось что система не видит больших CF-носителей. Ни 2, ни 4, ни 8 ГБ :(. Пришлось мать менять обратно. Была даже мысль махнуть ПЗУ с одной материнки на другую, но тогда не было опыта. А сегодня нет КПК для экспериментов.
    Поясню, почему важно было видеть большие CF: Linux работал только на них.

    Выходим в интернет


    Как вы помните, у меня фактически был единственный аппарат с linux на борту, но даже у него не работал СОМ-порт. Мне удалось даже спаять СОМ-портовый шнурок (по этой схеме), но конкретно с этой моделью он не работал. Скорее всего, там не работал именно пин процессора.


    Самодельный шнурок для Psion 5MX

    При том, при прозвонке оказалось, что не работает только одна линия TX. То есть принять данные он может, а вот отдать — нет. Пришлось искать другие варианты.

    Для этого я начал разбираться с IrDA. Изначально пробовал IrDA такого типа.


    Но в Linux на ПК работать с таким ИК-портом было практически невозможно, это боль и унижение. Вообще подсистему IrDA под линукс писали бутиратовые наркоманы, и понять без веществ как ей пользоваться было ровным счётом невозможно, и такое ощущение, что её не дописали и просто бросили за ненадобностью.

    Поэтому начал искать другие варианты. Мне удалось найти очень необычный ИК-порт, который по сути делал UART по ИК-каналу, без всяких высоких материй, что мне было и нужно. Там было всего две микросхемы: FT232BM (USB-COM) и MCP2120.


    Удивительный пепелац, практически самоделка на ЛУТ, но оказалась полноценным решением. Его тоже пришлось реверсить и разбираться, что же с ним не так, и на каких скоростях он работает. Оказалось, что он может работать только на скорости 9600.


    То есть по факту это выглядело как работа с UART, и на стороне КПК Psion под Linux я тоже работал с UART (только ИК-порта), и да, оно даже работало!


    И да, не сверхстабильно (чуть сдвинул и всё), но это таки работало! Надо было ещё корректно выставлять DTR и RTS для этого поделия, но я справился.


    В результате мы получили нульмодемное соединение, как оно есть. И помню, что я потратил ещё пару недель чтения мануалов, чтобы нульмодемное соединение вывести в люди. И создал ppp-соединение с помощью, по моему программы wvdial (не помню точно), HurrTheDurr не подскажешь? Ну суть в том, что эта штука, которая не знала даже что такое интернет, в него вышла!


    Простите за мыльное фото...

    Крутость фотографии выше просто зашкаливающая. Дальше мы сделали jabber чат с HurrTheDurr (оба с Psion 5 mx), и порадовались успеху.

    Чем кончилось дело?


    Pison очень крутая штука, но выводить его в интернеты по средством компьютера большей мощности было как-то странно, что ли. И я долго искал возможность вывести его с помощью esp8266. И даже на hackaday встречал вот такой любопытный проект. Проблема в том, что непонятно как заставить работать esp8266 как ppp-модемное соединение. Искал много проектов, которые могли бы это реализовать, но не нашёл. Так и плюнул на эту затею. В результате в приступе очередной хандры роздал бесплатно все свои железки и больше к этому вопросу не возвращался…

    Хотя, мне честно интересно, как вывести через СОМ-порт устройство в wifi, и чтобы решение по размеру помещалось бы прямо в корпус Psion. Хотя идеи, конечно же есть (например SD-WIFI-карта).

    Если говорить о linux для Psion, то проект конечно сырой, и где-то даже глючный. Но он был рабочим, и им даже можно было пользоваться, при должном терпении (на 36 МГц надо иметь большое и крепкое терпение). Короче говоря, если вы хотите развлечься как гик, вы знаете что делать.

    Полезные ссылки по теме:



    RUVDS.com
    VDS/VPS-хостинг. Скидка 10% по коду HABR

    Комментарии 40

      +7
      Вроде есть проект esp32ppp.
        0
        Был бы живой Psion на руках, я бы попробовал.
        +1
        Спасибо!
          +1
          Спасибо за спасибо!
          +1
          Такие ИК-порты уже сами стали ретрожелезом. Последние драйверы были под WinXP. У самого дома лежит iRmate 410W, была идея связать его с Сяомишным пультом через эмулятор Андроид. Но не смог заставить работать ни на современных Linux, ни на Windows 10 с компонентой IrDA.
          Очень интересные статьи у вас об устройствах!
            0
            IrDA умер так и не успев толком родиться. Но тогда стандарта Bluetoth не существовало, вот и делали этакие штуки. Но в линукс стек IrDA и вправду очень наркоманский.
              +3

              Ну как умер, я очень долгое время ходил в интернет с ноута через IrDA Siemens ME45 (о, этот телефон — отдельная песня) когда GPRS появился. Сколько было часов в аське Miranda проведено через это железо...


              ИК-линк был вполне стабилен, работал с метра или около, на повороты в пределах 10-20 градусов особо не реагировал.

                +2

                7руб за мегабайт gprs...

                  +1
                  Безлимит от МТС за 60рублей в месяц.
                    +1
                    ICQ в виде jar на motorola c380, смс-уведомления о почте. Царский 3 метровый провод mini-usb<-->usb (чтоб на окно трубку положить можно было). 7р./мегабайт
                    Отключить картинки, установить соединение, загрузить страницу, отключить соединение, читать. А еще говорили, что наше поколение не читает. ХА! Да мы только читать и могли :-)
                      +1
                        +1
                        Вы конечно хотели сказать «давно»? :-)
                        Это сейчас нам надо много мегабит, чтобы «всего» 5 секунд подождать пока страница загрузится. А тогда веб-мастера были скромнее и не пользовали over9999 скриптов на странице в 1 абзац. Так что пообщаться, поучиться было можно и с теми скоростями. Но да, кино посмотреть онлайн или там песенку какую скачать — это только на работе с выделенкой и безлимитом и по договоренности с админом чтоб ночью комп оставить с flashget'ом (помните такой менеджер загрузок который умел в много потоков качать утилизируя канал по максимуму?).
            +1

            Как я люблю такие вещи! Был у меня такой псион, а много позже Nokia n810. Удивительно удобные устройства когда привыкаешь. Жаль что такого больше не делают.

              +1
              Почему не делают, к любому смартфону подключаешь клаву по bluetooth и вот тебе оно. Есть и современные модели с встроенной клавой типа Nokia n810. Можно и линукс накатить, типа Ubuntu Touch.
                +2
                Вот начиная с этого «подключаешь по bluetooth» уже не оно.
                +1

                Вот ещё девайс на подобную тему: https://store.planetcom.co.uk/collections/devices/products/gemini-pda-1

                  +1
                  Вот такая игрушка есть. Как раз авторы вдохновение черпали у псиона.

                  image


                  Под него кроме андройдов есть Debian, Kali Linux и еще несколько разных дистров. В принципе у меня старая моделька, а так авторы сейчас третью генерацию делают и она уже вполне юзабельной должна получиться. Кроме этого есть F(x)pro — тоже Qwerty-балалайка, но там клавиатура уже под печать большими пальцами, а тут вполне можно набирать слепым 10-пальцевым методом

                    0
                    А что за моделька?
                      +1

                      Это Gemini PDA. Когда-то поддержал кампанию на indiegogo, но девайсине так и не нашел применения, кроме как потыкаться в игрушку. Сейчас у plantecomputers идет сбор уже на третью генерацию этих девайсов и судя по всему вот эту версию уже можно будет полноценно использовать как смартфон. Правда опять на борту MTK без нативной поддержки HDMI :(

                  +3

                  А не пробовали прямо на плате к ногам tx rx uart'a подключаться? Сдох ведь скорее не пин процессора, а передающая часть преобразователя uart / rs232

                    +1

                    Пробовал, поэтому утверждаю о сгоревшем пине процессора

                      +2
                      Что там вообще между процессором и разьемом? Процессоры обычно работают с TTL-уровнями, а наружу же торчит двуполярный 232C. Обычно этот преобразователь уровней и горел при горячих подключениях.
                    +1
                    у одного не работал COM-порт (скорее всего выгорел на уровне процессора)

                    Чрезвычайно маловероятно, что пин "выпускали в люди" напрямую. Даю 145%, что сгорела микросхема преобразователя lvTTL <-> COM.

                      0

                      Можете давать сколько влезет, но преобразователь был первым, что я проверил

                        +2
                        Но там же даже на схеме написано, что IrDA через тот же самый UART подключен. Если TTL выгорел, как ИК-порт работал?
                          0

                          Пины IrDA и UART разные. На самом деле дискуссия бессмысленная. Устройства нет, тогда было устройство и со всей своей приборной базой я установил, что сгорел пин.

                            +1
                            Вглядитесь внимательно в схему — UART-то один(но он глубоко внутри), но выхода наружу два — на RS-232(выгорел) и на IrDA(LED & PhotoDiod — исправен).
                        +1
                        Автор молодец, очень интересно! Это не один из них был в крепком орешке?)
                          0
                          В Терминатор-2.
                            0
                            Там был другой аппарат, который тоже разбирали на хабре.
                              +2

                              Там был Atari Portfolio, более рарная и ныне абсолютно бесполезная железяка

                            +1
                            Ностальгично. )) Была такая машинка в 2000х… В интернет родную систему выводил через ик-порт в связке с мобилой. Достаточно шустро получалось. С Linux тогда поиграл, но не более того. Тормозной он был дюже. По форм-фактору и времени жизни от батареек — лучшая машинка которая когда-либо была. Впоследствии осознал желание иметь полноценную Linux машинку и пересел на Zaurus, но это уже другая история.)))
                              +3
                              К слову о таком форм-факторе, вот такая современная реинкарнация идеи с полноценным линуксом на борту была анонсирована буквально на днях www.clockworkpi.com/devterm
                                +2

                                Возможно для выхода в инет проще будет использовать сотовый модем: со стороны Псиона будет как раз СОМ порт, а все остальное РРР модем уже сам будет делать неважно как

                                  0
                                  В сотовом модеме также как и в обычном, обеспечивается физическое соединение, а PPP будет до провайдера через это физическое соединение. Можно купить любую китайскую звонилку с 3G и попробовать. Хотя, на современных звонилках только USB, а COM-порты эмулируются звонилкой. Но ещё существует в них bluetooth, а со стороны Пшина можно использовать аппаратный адаптер BT-to-Serial. Хотя… у автора же физический COM-порт не работал; но вообще можно бы попробовать, имея на руках живой Пшин.
                                  +1
                                  Я на своем Зышщт-е поменял три шлейфа экрана — по $70…
                                  Как вспомню, так вздрогну ))
                                    +1
                                    Сами меняли? Помню был какой то товарищ который их делал или заказывал где-то. Тысячи полторы-две стоил шлейф. А потом надо было пройти квест и отвезти его другому товарищу который его припаял. После этого Зышщт прожил еще два года и был продан.)
                                      +1
                                      Нет, менял у продавца в Киеве, хотя, после второй замены уже были мануалы по кустарной пайке, но там было все так ненадежно…
                                      А какие «Червячки» были, м-м-м… ))
                                    +1
                                    Имеет на борту CF (и на моей практике спокойно переваривал объёмы в 8 ГБ!)
                                    А чего сложного? IDE-интерфейс, однако, до 128 Гб скорее всего карточки поймет.
                                      0
                                      То что аппаратно интерфейс поддерживает до 128 ГБ, не означает что идёт поддержка на уровне ОС. Например, когда я поставил материнскую плату от Ericsson, то больше 256 МБ она не видела.

                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                    Самое читаемое