Несколько дней назад в сети появилась информация о проекте по созданию DIY устройства на Lisp c очень высокой автономностью. При условии регулярного использования девайса (не круглосуточного, но все же несколько часов в день) автор обещает автономность на уровне двух лет. Что это за проект, с чего все началось и с какой целью он был создан? Давайте посмотрим.

Как все начиналось


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

Ну а поскольку такого девайса в природе не нашлось, то Андреас решил сделать его сам. Начал он с прототипа на плате Adafruit NRF52840 Express. По его словам, все работало неплохо, нажатия кнопок клавиатуры считывались без особых проблем. Но все же возможностей этой платы не хватало для задуманного проекта, поэтому было решено перейти на Sparkfun Artemis ATP с 48 пинами GPIO, благодаря чему функциональность резко расширилась. А энергопотребление после оптимизации — сильно снизилось.



На данный момент девайс в собранном виде потребляет 13,2 мВт, что крайне мало — заряда батареи действительно должно хватит на несколько лет при таком раскладе. Во многом это удалось именно благодаря плате SparkFun RedBoard Artemis ATP на базе SoC Ambiq Apollo3.

Характеристики устройства


Список относительно небольшой. Вот характеристики девайса:
  • Sharp Memory in Pixel LS044Q7DH01
  • Процессор Arm Cortex-M4F с частотой работы 96 МГЦ.
  • Объем ОЗУ — 364 КБ.
  • Накопитель — 1 МБ.
  • Кавиатура — Happy Hacking Keyboard Lite 2.
  • Аккумулятор — 12000 мА*ч.
  • Допонительные возможности — солнечная батарея, целый ряд коннекторов и разъемов.


Автор замечает, что на старте возникла проблема с работой SPI, а именно — с разъемом камеры. Он опробовал бувально сотни различных комбинаций параметров, но успеха не достиг. Лишь спустя время решение пришло само собой — сканирование нажатий клавиатуры с определенным паттерном.

Часть кода для решения этой задачи автор одолжил у создателей Lisp, его можно найти по вот этому адресу.



Ну а что касается ОС, то автор решил использовать PotatOS — модифицированный порт uLisp (Lisp, разработанный специально для микроконтроллеров). Программы для PotatOS можно писать прямо на девайсе. Например, Эриксен уже написал и запустил игру Змейка. Она прекрасно работает.

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



Проблем изначально было много, но основная — невозможность считывать нажатия кнопок. Откуда проблема? Непонятно. В итоге автор опробовал Arduino pinMode и вызовы digitalWrite / digitalRead, но все это работало медленно, крайне медленно, хотя и верно. В частности, автор планировал сканировать нажатия клавиш с с частотой примерно 500 раз в секунду. Но ничего не получилось.

Сохранение ссылок и прямой их вызов помог решить эту проблему. Так, автор сократил время сканирования до 1 мс на сканирование. Сейчас сканирование занимает примерно 25% загрузки процессора.

Стоит отметить, что с самого начала автору сильно мешало отсутствие проверки ошибок. Если в коде, который он вводил, возникала какая-либо проблема, REPL аварийно завершал работу, и все приходилось перезапускать из консоли. К счастью, он наткнулся на сообщение на форуме uLisp. Там коллектив расширил более раннюю версию uLisp, добавив некоторую базовую обработку ошибок.



А что сейчас?


В целом, компания достаточно быстро решила все «детские проблемы», включая энергопотребление


Тестирование энергопотребления системы



Какие изменения введены в новой версии?
  • Исправлена ошибки, из-за которой нажатие клавиш направления значительно увеличивало энергопотребление. Код сканирования клавиатуры теперь также работает намного быстрее.
  • Изменена схема подачи питания на SD-карту. Для этого используются контактные площадки GPIO Apollo3. Достоинство решения в том, что оно позволяет полностью отключать питание, когда картане используется, что очень помогает. Это снизило максимальное наблюдаемое среднее энергопотребление до 2 мА, поэтому автор в итоге и заявил о 2 годах автономной работы.
  • Опубликован исходный код на — он несколько неполный. Также есть также исправления ошибок и оптимизации ядра Artemis Arduino и библиотек Adafruit GFX/Sharp Memory Display, которые еще не опубликованы. Их еще предстоит опубликовать
  • На странице проекта размещен список компонентов, который должен включать все материалы, необходимые для создания такого ПК.
  • Переписан текстовый редактор, чтобы использовать структуру данных списка строк. Задержка при редактировании теперь снижена до 40 мс для файлов разумного размера. Измерения проводились путем подсчета кадров в режиме замедленной съемки со скоростью 240 кадров в секунду.
  • Теперь можно редактировать файлы размером до 30 КБ без угрозы «вылета».
  • Интегрирован простой код для UXN. UXN — это спецификация виртуальной машины, созданная коллективом художников Hundred Rabbits. Теперь PotatoP может запускать жестко закодированные программы UXN и выводить вывод с консольного устройства UXN на дисплей. В ближайшее время планируется закончить реализацию вывода графики для этого, чтобы иметь возможность запускать коллекцию игр и программ на своем компьютере.



Что дальше?


На данный момент все более-менее неплохо работает. Автор выложил свой YouTube ролик, который быстро стал популярным (он чуть выше по тексту). Многие зрители его канала сейчас — добровольные помощники.

Возможно, эти тексты тоже вас заинтересуют:

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

Сам автор говорит, что сейчас удалось сделать многое. Но он продолжает работу — планирует еще сильнее снизить энергопотребление, а также установить дополнительные солнечные батареи.

Комментарии (30)


  1. Arhammon
    00.00.0000 00:00
    +1

    Первое, что бросается в глаза, это полная параллель с настоящими ноутбуками - там тоже снижали-снижали электропотребление... и в итоге - как 10 лет назад ноутбуки работали 2-4 часа от большой батареи, так и сейчас 2-4 часа но уже от маленькой батареи.


    1. nobletracer
      00.00.0000 00:00

      Попробуйте рассмотреть офисные ноутбуки нормальных брендов. 4 года назад Делл на 13 дюймов держал батарею минимум 6 часов. Если снизить яркость, то 8.


      1. Arhammon
        00.00.0000 00:00

        Применительно к типовым 15,6 с видеокартой именно 2-4 часа под нагрузкой и с адекватной яркостью. 14 дюймовые вроде 6 часов тоже могли, но на тот момент довольно редкие звери.

        Асеровский 10" полупланшет вообще 18 часов новый работал, правда там по обему 2 батарейки 70% аппарата. 13" раскладушка посовременнее тоже 8 ч работает, но это все таки не аналоги полноценных ноутбуков.


        1. yatanai
          00.00.0000 00:00
          +1

          Сейчас можно найти ноуты "энергосберегающей" серии и получить 10ч работы без подзарядки. Минусы, что лагает ибо явно мощностей не хватает.


        1. hw_store
          00.00.0000 00:00

          у меня 12,5" машина с процессором i5 2520M работала от стандартной 6-элементной батареи 5-5,5 часов, сейчас в среднем на 3-3,5 часа хватает. 2014 год выпуска, в [ежедневной] эксплуатации с марта 2017. Ворд, эксель, почта, фотошоп, гугельхром. При просмотре ютуба, конечно, надолго не хватает.


      1. dhaluza
        00.00.0000 00:00

        Thinkpad x13s Windows +arm 16 512 20 часов.


    1. lordleto
      00.00.0000 00:00
      +4

      не знаю не знаю...4-6 часов от батарейки, против 1,5-3 раньше. Самые эпичные были это нетбуки от асуса в 2010х, которые выдавали до 12 часов автономки.
      Формально сейчас можно с собой обычный повербанк таскать - если не хватает батарейки. Дешево и универсально.


    1. PsihXMak
      00.00.0000 00:00

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


      1. Arhammon
        00.00.0000 00:00

        Больше приходилось выключать энергосбережение в 0, чтоб офисные машинки хоть как-то шевелились. Никто не спорит, что энергопотребление ноутбуков под нагрузкой сократилось раза в 2, а в простое наверно на порядок. Но и батарейки усохли порой до 30Вт/ч, хотя 15 лет назад расширенная батарейка это примерно 100Вт/ч. И как-только появляется нагрузка просто деление емкости на чистую мощность ставит все на свои места. Это практический смысл для производителя 3-4 ячейки в 2 раза дешевле 6-8 штук. А для описанного в статье, просто челедж. Судя по 2мА довольно удачно выполненный, у меня МК просто включающий светодиод в собачьей миске при отсутствии воды потребляет не сильно меньше. Я даже помню расстраивался и хотел переделать - но 99,9% потребления и полезного функционала это сами светодиоды и внутренний перфекционист был побеждён...


        1. nafikovr
          00.00.0000 00:00

          дело в том что появился выбор. нынче можно взять ноут с батареей 30Вт*ч и весом чуть больше килограмма, или же 2.5кг с батареей под 100Вт*ч. второй вариант скорее всего будет жить столько же и иметь заметно большую производительность, но при включении умеренного энергосбережения сравняется с "облегченным" вариантом по производительности и даст большой прирост к производительности.

          На относительном безрыбье я год назад взял ноутбук на ryzen 5 с теплопакетом в районе 15Вт весом 1.4кг и не испытываю дискомфорта ни по времени автономной работы, ни по производительности. Если пытаться на таком обрабатывать большие объемы данных, он конечно проживет от батареи не больше пары часов и не впечатлит производительностью, но при кратковременной нагрузке типа сборки C++ показывает себя отлично.


    1. Zhbert
      00.00.0000 00:00

      как 10 лет назад ноутбуки работали 2-4 часа от большой батареи, так и сейчас 2-4 часа но уже от маленькой батареи

      У меня мак спокойно около двух рабочих дней от батарейки работает без подзарядок — это часов 8-10 с докерами, компилянием и прочим.


    1. mirrik
      00.00.0000 00:00
      -1

      Хорошо, что вы живёте где-то далеко и вам никто Mac на M1 том же не показывал, который влёгкую 8+ часов офисной работы тянет.


  1. None_of_your_business
    00.00.0000 00:00
    +7

    А это не одна и та же новость? https://habr.com/ru/news/t/721256/


  1. FirstEgo
    00.00.0000 00:00
    +4

    Самому не раз приходил в голову подобный вопрос - почему же мы отказались от носимых устройств с низким энергопотреблением? А ведь их было немало - начиная от прекрасной линейки ноутбуков на досе HP LX, которая работать могла НЕДЕЛЮ в с газом в пол, заканчивая превосходными КПК Palm m100, m105, m125 (имхо, лучшее носимое устройство), например. Последние, к слову, без подсветки могли прожить до месяца (!!!) от двух качественных мизинчиков. Для пальма также была вполне эргономичная и компактная клавиатура, которая превращала КПК в отличную печатную машинку. При кулибинском энтузиазме из этого же пальма УЖЕ можно сделать ноутбук с двенадцатью батарейками/аккумуляторами АА, или, ударившись в иную концепцию получения энергии, взять алюминиевую банку, обмотать медной проволокой и, смазав смесью из угля и бертолетовой соли (из серы от спичек можно сделать), сделав гальванический элемент из мусора, получить постапокалиптичный комп. Я в детстве, когда был летом в деревне, вспомнив урок физики сделал батарейку из монеток для тетриса, когда в нем свои сели. Если звук отключать, то всё было отлично! Мне до зубовного скрежета обидно то, что ветку развития малопотребляющей энергоэффективной электроники бросили в угоду мощности, которая не особо то и всем нужна. Простите, больная тема, накипело...


    1. centralhardware2
      00.00.0000 00:00
      +4

      Потому что никому не хочется отказываться от возможности работать в тяжелых программах и полноценной ос? Я вполне верю что из M1 можно выжать неделю автономно работы, но мне это не нужно если я не могу запустить idea или отпендерить проект в Final Cut Pro


      1. vassabi
        00.00.0000 00:00
        +1

        в этом месте должно быть новое возрождение нетбуков\терминалов для доступа на мейнфрейм - носимое, легкое и долгоживущее оборудование для того чтобы "запустить idea или отпендерить проект в Final Cut Pro" на большой машинке, подключенной к электросети.


        1. centralhardware2
          00.00.0000 00:00

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


          1. Vladimirsencov
            00.00.0000 00:00

            Да мест таких немного. Но в них основном живёт основная масса людей, которым это нужно. С другой стороны там и электричество есть.


            1. centralhardware2
              00.00.0000 00:00

              Это вы так с ноги разделили всех на живущих в дефолт сити и всех остальных?


        1. Yan0T
          00.00.0000 00:00

          Так и поступаем.. берется какой-нибудь t-серии thinkpad, с двумя батареями. Ставится на энергосбережение,подключается по rdp\vpn\etc к рабочей машине - и вперед.


      1. FirstEgo
        00.00.0000 00:00
        +1

        Так я же и не говорю отказываться! Мне жаль что таких устройств почти не делают.

        Кнопочные телефоны же до сих пор продаются наряду со смартфонами потому что кому-то до сих пор нужен надежный аппарат для разговора с минимумом функций и зарядкой не на день. Также, имхо, такие устройства как реально ПРОСТОЙ но функциональный текстовый процессор сегодня были бы очень кстати. Например для авторов, журналистов, студентов даже! А про программирование.... Помнится здесь на Хабре лет, эдак десять назад, я читал статью как паренёк писал игру для мобилы на мобиле. И то была обычная моторолла. Конечно, универсальность - это хорошо, но она, зачастую, вынуждает идти на компромиссы. Также и в случае со смартфонами - в нём есть всё что нам нужно, но, как в серии Ералаша с крутыми часами - "Куда пошёл? Батарейки не забудь!" - носим с собой хоть и не чемоданы, но повербанк есть почти у каждого второго.


        1. pbw
          00.00.0000 00:00

          Также, имхо, такие устройства как реально ПРОСТОЙ но функциональный текстовый процессор сегодня были бы очень кстати.

          И такие устройства все же существуют. Да, потребляют конечно не 13 милливатт.

          пишущая машинка pomera

          Traveler – современный аналог пишущей машинки


          1. FirstEgo
            00.00.0000 00:00

            Traveler - ещё куда ни шло, автономность вменяемая, хотя по цене ноутбука (299$) я бы покупать её не стал. А вот Pomera это просто фейл по автономности. Две батарейки на сутки... Так реально проще смарт без симки с отключенным вай-фаем использовать и мини-клавиатурой. Проживёт от аккума, если и меньше, то не на много)

            Опять же, как я говорил - комбо palm m100 + его складная клавиатура выигрывают как по стоимости, так и по автономности. Только он появился двадцать лет назад, а сегодня подобной замены ему нет.


            1. zuek
              00.00.0000 00:00

              Свой старый смарт, который в штатном режиме (WiFi+4G+BT+NFC) не держал и суток, после "списания" перевёл в "автономный режим" и бросил на подоконник... каково же было моё удивление, когда спустя неделю, я по привычке нажал боковую кнопку, чтобы глянуть время, и он помимо времени показал остаток заряда в районе 30%! Из чего я сделал вывод, что смартфоны основную часть заряда тратят на беспроводные коммуникации. Возможно, я ошибаюсь, но предлагаю самостоятельно провести подобный эксперимент...


            1. DragD
              00.00.0000 00:00

              Эмм, а ничего, что у трейвелера время работы меньше, чем у померы?
              15 часов против 20.
              + помера питается от банальных пальчиковых батареек


      1. Zhbert
        00.00.0000 00:00
        -1

        Я вполне верю что из M1 можно выжать неделю автономно работы, но мне это
        не нужно если я не могу запустить idea или отпендерить проект в Final
        Cut Pro

        Судя по тестам всяких ютуберов, маки прошки 2023 года спокойно рендерят в файналкате 8к видео по 6-8 часов от батарейки. Про идею — тут я посыл не понял. У меня голанд на нем спокойно работает как самолет.


        1. centralhardware2
          00.00.0000 00:00
          +1

          Я прямо не замерял конечно сколько времени живет m1 при рендере от батареи, но слабо верится что он сможет 8 часов. С включенным энергосбережением может быть конечно


  1. slonopotamus
    00.00.0000 00:00

    максимальное наблюдаемое среднее энергопотребление

    Ммм... Что?


    1. Tarakanator
      00.00.0000 00:00

      Я так понял N раз замерил среднее энергопотребление, и выбрал наибольшее значение.


  1. Zhbert
    00.00.0000 00:00
    +2

    автор планировал сканировать нажатия клавиш с с частотой примерно 500 раз в секунду

    Кошмар какой. Расскажите ему кто-нибудь про прерывания...