Большинство современных плат микроконтроллеров используют Python, чаще MicroPython или CircuitPython. Тем, кто хочет более лёгковесное решение, но не готов отказываться от REPL и отсутствия компиляции, стоит присмотреться к Lua.

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

Этот пробел и пытается заполнить BrisbaneSilicon, небольшая полупроводниковая компания из Брисбена, своей платой ELM11-Feather. Это плата, совместимая с форм-фактором Feather и исполняющая Lua нативно.

Фактически это версия в форм-факторе Feather более ранней платы ELM11 от той же компании, и сейчас на Crowd Supply запущена краудфандинговая кампания.

Ключевые характеристики

ELM11-Feather
ELM11-Feather
  • Поддерживаемые языки: Lua (уровень приложений), C (драйверы), SystemVerilog/VHDL (аппаратура), всё на одной плате
  • Чип: GOWIN FPGA (отдельного процессорного ядра нет, ПЛИС исполняет всё)
  • Ввод-вывод: 23 контакта, каждый можно настроить как GPIO, PWM, UART, SPI или I²C
  • ОЗУ: 1 МБ
  • Размеры: 22.86 × 64.65 × 4.85 мм (0.9 × 2.54 × 0.191 дюйма)
  • Вес: 5.2 г
  • Форм-фактор: совместим с Feather, работает с существующими модулями FeatherWings

Цена ELM11-Feather — 39 долларов.

Но главная изюминка не столько в характеристиках, сколько в архитектуре. На плате нет традиционного микроконтроллера. Вместо него работает ПЛИС GOWIN с двухъядерной конфигурацией, где на каждом ядре запущен независимый REPL Lua. В этом и состоит хитрость. Благодаря тому, что Lua исполняется на ПЛИС, а не на фиксированном МК, BrisbaneSilicon может открыть пользователю для модификации весь стек, включая аппаратный уровень.

Каждый из 23 контактов можно настроить как GPIO, PWM, UART, SPI или I²C, что даёт гораздо больше гибкости по сравнению с платами, где зашито фиксированное количество интерфейсов каждого типа. Также на плате есть 1 МБ ОЗУ, аппаратный сторожевой таймер, 5 программируемых светодиодов и встроенный контроллер заряда LiPoly на 500 мА с индикатором. Всё это умещается в компактном корпусе Feather (22.86 × 64.65 × 4.85 мм, вес 5.2 г). Совместимость с Feather означает, что плата без доработок устанавливается в экосистему дополнительных модулей FeatherWing.

Полноценная программируемость стека

BrisbaneSilicon называет это “Full-Stack Programmability”, и это ключевое преимущество платы. Задумка в том, что один и тот же продукт можно расширять сразу на трёх уровнях: прикладной уровень работает на Lua, уровень драйверов — на C, а аппаратный уровень — на VHDL/SystemVerilog через подключаемый “аппаратный оверлей”.

На практике это означает, что пользователь может разработать собственный аппаратный модуль (например, квадратурный энкодер), написать для него драйвер на C, а затем использовать его в скриптах Lua как простую функцию quadrature_encoder_speed(). При этом для каждого уровня не требуется отдельный инструментарий, потому что собственная среда разработки BrisbaneSilicon, Arvore, построена так, чтобы объединить все три.

ELM11-Feather в среде разработки
ELM11-Feather в среде разработки
Arvore позволяет создавать проекты, загружать их и расширять API Lua в одном интерфейсе; бета-версия уже доступна для скачивания. Тем, кто не хочет вручную устанавливать аппаратный оверлей, поможет экран настройки в IDE. Пуристы, предпочитающие работать из командной строки, тоже не останутся в стороне: этот путь по-прежнему работает.

BrisbaneSilicon сообщает, что аппаратные схемы и API прошивки будут опубликованы под лицензией MIT после завершения кампании и начала производства.

В сравнении с несколькими другими платами из той же категории:

  • pico2-ice (RP2350 + ICE40UP5K): больше GPIO и ОЗУ, но нет встроенного скриптового языка, а цена выше.
  • Adafruit Feather STM32F405: дешевле, но нет ПЛИС и возможности расширения на аппаратном уровне.
  • Adafruit HUZZAH32 (ESP32): лучшее время автономной работы, но значительно меньше вариантов ввода-вывода и отсутствует сквозной конвейер от скриптов до аппаратуры.

Цена и доступность

ELM11-Feather
ELM11-Feather
Краудфандинговая кампания ELM11-Feather стартует на этой неделе на Crowd Supply.

Поддержать на Crowd Supply

Плата стоит 39 долларов. Стоимость доставки пока не указана, как и точная дата отправки. Компания сообщает, что уже изготовила и протестировала небольшую партию из 5 плат до начала основного производства, что даёт чуть больше уверенности, чем обычно на старте кампаний. Единственный риск, отмеченный разработчиками, связан с доступностью компонентов GOWIN FPGA и чипа BL702.