Zigbee Sonoff Zigbee Bridge pro
Sonoff Zigbee Bridge Pro
Задача - отвязать от всяких облаков, вся работа должна проходить локально
Что нужно
- паяльник/припой/флюс
- переходнтк на TTL (5 вольт спалит нахуй все) )(https://microcontrollerslab.com/ftdi-usb-to-serial-converter-cable-use-linux-windows/)
- Провода/гребенки если хочется сделать разборное соединение
Пайка
Распаять гребенку что бы было проще жить (конечно надо было обточить но руки-крюки)
Подключение
У меня вот такой (плюс/минус) конвертер с USB на 3.3/5v Serial
В случае с ESP требуется уровеь 3.3V - выбрать на плате джампером, проверить вольтметром
Подключаю вот так:
На что тут смотреть:
- Синими стрелками помечена земля - важно что бы GPIO0 был подключен к земле, это переводит плату в режим прошивки. Если это не сделать, то загрузится текущая прошивка
- RX/TX подключается крест на крест, выход RX одной платы к TX другой (очевидно конечно)
- Земля общая (тут она включена в макетную плату и от нее на 2 точки - GPIO0 и GRN на бридже)
- Питание у меня подается отдельно от ноута на конвертер и отдельно от блока питания на бридж. Есть инструкции где советуют брать питание 3.3V с конвертера, но у меня в таком режиме бридж уходит в циклическю перезагрузку
Проверка
Если плата работает в обычном режиме то в minicom (имя порта /dev/tty.usbserial-A5XK3RJT
будет отличаться от системы к системе и похоже зависит от серийника конвертера)
то при загрузке покажет что-то вот такое, светодилот мигает
Welcome to minicom 2.8 OPTIONS: Compiled on Nov 18 2022, 07:58:18. Port /dev/tty.usbserial-A5XK3RJT, 16:23:45 Press CTRL-A Z for help on special keys ets Jul 29 2019 12:21:46 rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:4 load:0x3fff0034,len:6976 ho 0 tail 12 room 4 load:0x40078000,len:13072 load:0x40080400,len:3896 entry 0x40080688 {V���c��Vj���k{�����j{��WBj{��W�c��FZc�����c��vc��B�Bn��c��B�NBJB�"��Bv�JZJj{�҇�NBBB�"��B�BJJj?{��B�OBCJԦ��B҄BJjj{V�vc�����j{���J�Rfnj�{����V�fBK�{���j�JfO��{�����r?Jj�{����VJfJJ�{�����J�b[��{V���Ncj�����jZ�������ets Jul
Если все сделано верно и плата в режиме прошивки то в миникоме видно что-то такое (светодиод горит постоянно)
rst:0x1 (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2)) waiting for download
Софт
- Установить из brew:
brew install esptool
- или руками https://github.com/espressif/esptool/releases
Определение типа платы
esptool.py --port /dev/cu.usbserial-A5XK3RJT flash_id
(у меня в системе использование /dev/tty.usbserial-A5XK3RJT и /dev/cu.usbserial-A5XK3RJT ведет к одинаковым результатам хотя формально это 2 разных устройства)
esptool.py v4.7.0 Serial port /dev/cu.usbserial-A5XK3RJT Connecting....... Detecting chip type... Unsupported detection protocol, switching and trying again... Connecting... Detecting chip type... ESP32 Chip is ESP32-D0WD-V3 (revision v3.0) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None Crystal is 40MHz MAC: 0c:dc:7e:32:81:fc Uploading stub... Running stub... Stub running... Manufacturer: 5e Device: 4016 Detected flash size: 4MB Hard resetting via RTS pin...
@esp_tool -pCOM5 -b115200 -a0x0000 -s0x100000 -or esp82XX.bin
Бекап прошивки
esptool.py -b 115200 --port /dev/tty.usbserial-A5XK3RJT read_flash 0x000000 0x400000 soboff_bridge_pro_original_software.bin
- Адреса
0x000000 0x400000
ожначают читать все 4М (а размер флеша указан выше)
esptool.py v4.7.0 Serial port /dev/tty.usbserial-A5XK3RJT Connecting... Detecting chip type... Unsupported detection protocol, switching and trying again... Connecting... Detecting chip type... ESP32 Chip is ESP32-D0WD-V3 (revision v3.0) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None Crystal is 40MHz MAC: 0c:dc:7e:32:81:fc Stub is already running. No upload is necessary. 2097152 (100 %) 2097152 (100 %) Read 2097152 bytes at 0x00000000 in 196.8 seconds (85.3 kbit/s)... Hard resetting via RTS pin...
Скачалось 2М, хотя размер флеша выше писал 4М
ls -lsah soboff_bridge_pro_original_software.bin 4096 -rw-r--r-- 1 mmazur staff 4.0M May 12 17:34 soboff_bridge_pro_original_software.bin
Очистка флеша перед записью
esptool.py --port /dev/tty.usbserial-A5XK3RJT erase_flash
esptool.py v4.7.0 Serial port /dev/tty.usbserial-A5XK3RJT Connecting...... Detecting chip type... Unsupported detection protocol, switching and trying again... Connecting... Detecting chip type... ESP32 Chip is ESP32-D0WD-V3 (revision v3.0) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None Crystal is 40MHz MAC: 0c:dc:7e:32:81:fc Uploading stub... Running stub... Stub running... Erasing flash (this may take a while)... Chip erase completed successfully in 13.8s Hard resetting via RTS pin...
Прошивка
http://ota.tasmota.com/tasmota32/release/tasmota32-zbbrdgpro.factory.bin
(http://ota.tasmota.com/tasmota32/release/)
Файл:Tasmota32-zbbrdgpro.factory.bin
esptool.py --port /dev/tty.usbserial-A5XK3RJT write_flash 0x0 ~/Downloads/tasmota32-zbbrdgpro.factory.bin
esptool.py v4.7.0 Serial port /dev/tty.usbserial-A5XK3RJT Connecting.... Detecting chip type... Unsupported detection protocol, switching and trying again... Connecting... Detecting chip type... ESP32 Chip is ESP32-D0WD-V3 (revision v3.0) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None Crystal is 40MHz MAC: 0c:dc:7e:32:81:fc Uploading stub... Running stub... Stub running... Configuring flash size... Flash will be erased from 0x00000000 to 0x003fffff... Compressed 4194304 bytes to 1807535... Wrote 4194304 bytes (1807535 compressed) at 0x00000000 in 160.9 seconds (effective 208.6 kbit/s)... Hash of data verified.
Прошивка чипа ZigBee (отдельно от основной платы)
Отдельно следует прошить чип который реализует собественно протокол Zigbee.