/SmartResponseXE-Memos

Мои заметки по SmartResponseXE

SmartResponseXE-Memos

Оглавление

Чем интересено это устройство? Тем что построено на основе микроконтроллера ATmega128RFA1, у него есть встроенная клавиатура и замечательный монохромный дисплей. А чем же интересен микроконтроллер (ATmega128RFA1)? Он имеет встроенный передатчик работающий по стандарту ZigBee. И к тому же, эти железки (SmartResponseXE) есть в асортименте на Ebay, т.к. в своё время их закупали в больших количествах в школы, а сейчас продают по 10$ за пару штук.

Ссылки/Документация

Схемы добытые путём реверс инженеренгом и зоркими глазами - https://github.com/fdufnews/SMART-Response-XE-schematics

Оригинальный datasheet на чип ATmega128RFA1 (5mb!) - https://github.com/gc986/SmartResponseXE-Memos/blob/main/docs/ATmega128RFA1_Datasheeta.pdf

SparkFun

Репозиторий для Arduino, по управлению клавиатурой и экраном для SmartResponseXE - https://github.com/bitbank2/SmartResponseXE (копия в текущем репозитории "archive/SmartResponseXE-master.zip")

Мой форк репозитория управления клавиатурой и экраном для SmartResponseXE - добавил функции для попиксельного рисования квадратов и линий - https://github.com/gc986/SmartResponseXE

Переделка SmartResponseXE в Arduino-SmartResponseXE

Чтобы переделать терминал сбора данных SmartResponseXE в Arduino, нужно немного доработать само ус-во (вывести на ружу порты для программирования платы), и залить загрузчик. После этого, ус-во будет вести себя как обычный прокаченный Arduino, с дисплеем, клавиатурой и беспроводным интерфейсом.

Ниже приведёна последовательность разбора устройства. Устройство собрано на редкость хорошо, все пазы на месте, прямо такое антивандальное ус-во для использования в школах. Теме не менее будьте аккуратны при разборе, и не забудьте про винтик под батарейным блоком:

1

2

3

4

5

6

7

8

9

10

Подключение к ISP (загрузка прошивки)

Для загрузки прошивки в микроконтроллер терминала, я пользуюсь страндартным интерфейсом ISP. Для него вынесена специальная площадка для подключения. Для удобства работы с интерфейсом,я предлагаю подпаять провода для дальнейшего подключения к программатору.


Для подключения и использую стандартные провода для макетирования, предварительно отрезав крайнюю часть. Очень удобно что в корпусе терминала есть технологические отверстия. В них удобно протянуть провода и закрутить в узел чтобы в дальнейшем они не имели шанс быть выдернутыми.


После того как вы припаяите провода, у вас может получиться следующий результат:

Нехватка прав при попытке прошить плату в Linux с помощью avrdude

Если при попытке прошить SmartResponseXE в Linux с помощью avrdude вы сталкиваетесь с ошибкой нехватки прав:

avrdude: usbdev_open(): cannot open device: Permission denied

То вам помогут вот эти команды:

echo "SUBSYSTEM==\"usb\", MODE=\"0660\", GROUP=\"$(id -gn)\"" | sudo tee /etc/udev/rules.d/00-usb-permissions.rules
sudo udevadm control --reload-rules

! Переподключите программатор/устройство и только после этого новые правила вступят в силу !

Данные команды делает вашего пользователя Linux неограниченным пользователем USB устройств. С точки зрения безопасности это плохо, так как любой код запущенный от вашего имени будет иметь неограниченный доступ к USB устройствам, но с другой стороны ничего лучше не получилось сделать, так как разработчики avrdude работают с данными USB устройства напрямую, в обход стандартного протокола работы с USB. (оригинал snapcrafters/arduino#10)

Особенности технической реализации SMART Response XE (клавиатура+uart)

Нога пятого столбца клавиатуры (клавиши 5, T, G, V), подключены на порт реализующий интерфейс подключения UART, поэтому одновременное использование UART и клаиватуры невозможно в нормальном режиме (при нажатии на клавиши пятого столбца будут происходить сробатывания десятого ряда клавиатуры, например при нажатии на клавишу T, систему будет определять что нажата клавиша P)