15 KiB
Заливка прошивки
Источник: Wiki LightHub (lazyhome.ru), страница «заливка_прошивки». Снапшот от 2026-10-02.
Заливка уже откомпилированной прошивки
В первую очередь необходимо скачать сам проект.
Это можно сделать либо с использованием утилиты git:
git clone https://github.com/anklimov/lighthub.git
Либо, если у вас она не установлена - открываем https://github.com/anklimov/lighthub Далее, нажимаем зеленую кнопку "Clone or download" Выбираем пункт "Download ZIP", скачиваем и распаковываем архив
Переходим в директорию lighthub-master/compiled/<требуемая_платформа> (список платформ выше)
Подключаете плату USB кабелем к компьютеру (кроме платформы NRF52 - там программирование только при помощи специального устройства JLink, об этом позже)
В диспетчере устройств находите порт, на который села плата (например, com3) корректируете номер порта в файле upload.bat, который находится в директории, в которую вы вошли
Запускаете файл на выполнение (если выдается запрос "нажмите любую клавишу" - нажимаете) Прошивка должна загрузиться в ваш контроллер.
Компиляция и заливка с использованием platformio + Atom или VSC
Проект создан с использование Platformio , аналога Arduino IDE.
Сперва необходимо скачать Visual Studio Code или Atom, установить Platformio в качестве плагина. В интернете много материалов и видеоуроков на эту тему. Скорее всего потребуется установить клиент Git (Для Windows https://git-scm.com/download/win).
Далее, как и в предыдущем случае, необходимо скачать сам проект. Проект создан с использование Platformio , аналога Arduino IDE.
Это можно сделать либо с использованием утилиты git:
git clone https://github.com/anklimov/lighthub.git
Либо, если у вас она не установлена - открываем https://github.com/anklimov/lighthub Далее, нажимаем зеленую кнопку "Clone or download" Выбираем пункт "Download ZIP", скачиваем и распаковываем архив
В Atom или VSC выбираем пункт "Открыть директорию" (Open Folder), и указываем директорию lighthub.master (или в директорию lighthub если использовался git)
Далее, выбираем файл platformio.ini и раскомментариваем в нем нужный вам вариант платформы (платы) в пункте env_default (убираем ; перед строкой, содержащей нужную платформу, добавляем - перед строкой, содержащей ненужные платформы)
NEW - если используете среду VSC (рекомендуется) - то можете ничего не комментировать/раскомментировать а просто выбрать нужную платформу в меню "switch PlatformIO Project environment" (нажмите на Default (lighthub) в самом низу экрана)
Для платформы DUE: обязательно придется найти фаил variant.cpp по пути
.platformio/packages/framework-arduinosam/variants/arduino_due_x
и вставить в него последней строкой следующую строку
void USART0_Handler(void) __attribute__((weak));
сохранить.
(К сожалению, внести это простое изменение в штатный репозиторий arduino не удалось никому из тех, кто создавал Pull request)
Нажимаем кнопку "Build" Platformio скачивает все нужные библиотеки и компилирует код. Возможно придется несколько раз повторить эту операцию, так как по непонятным причинам, platformio может выдавать ошибки, не скачав какую-то библиотеку.
Если компиляция прошла успешно, можно подключить плату USB кабелем и нажать кнопку Upload
Компиляция и заливка с использованием platformio. Вариант командная строка
Для того что бы прошить плату в первую очередь необходимо скачать сам проект https://github.com/anklimov/lighthub и установить Platformio
-
Если Вы считатет себя джедаем и не ищете легких путей то работать с платформио можно через командную строку. Для этого нужно:
- установить Python 2.7,
- установить git.
-
Модифицировать PATH. идем: мой компьютер->правой кнопокой мыши вызываем контекстное меню->свойства->в появившемся окне "переменные среды"-> в окне "Системные переменные" выбираем переменную Path ->изменить->добавляем строку
;C:\Python27;C:\Python27\Scripts
- Установить Platformio открываем командную строку (поиск в "Пуске" cmd.exe) вводим команду
pip install -U platformio
Учтите, что Platformio установится по умолчанию в папку пользователя С:\Пользователи\Имя пользователя\.platformio Python 2.7 не поддерживает кириллицу, если имя пользователя написано кириллицей, необходимо скопировать папку Platformio в корень диска C:\ и изменить путь к рабочему каталогу в фале platformio.ini (который находится в ранее скачанной папке lighthub-master), указав после строки [platformio] следующую строку: home_dir = C:\.platformio
Сохраняем файл. Открываем папку lighthub-master, в строке отображающей путь вводим cmd и нажимаем enter или же выбираем папку в командной строке любым другим способом.
Для платформы DUE: обязательно придется найти фаил variant.cpp по пути
.platformio/packages/framework-arduinosam/variants/arduino_due_x
и вставить в него последней строкой следующую строку
void USART0_Handler(void) __attribute__((weak));
сохранить.
Далее вводим pio run -e <платформа>
Вариант <платформа> выберете в зависимости от используемой аппаратной платформы.
; Arduino Mega compact build + Ethernet shield Wiznet 5X00, 1-wire, thermostates.
; mega2560slim
; Another Arduino Mega compact build without 1-wire, DMX, but with OTA
; OPTIBOOT bootloader required! https://github.com/MCUdude/MegaCore
; mega2560-optiboot
; Arduino Mega + Ethernet shield Wiznet 5100
; mega2560-5100
; Arduino Mega (Ethernet shield Wiznet 5X00, DMX, Artnet)
; mega2560
; LightHub controller HW revision 2.1 and above (Wiznet 5500 CS on pin 53)
; Если у вас плата LightHub версии 2.1 или более новая + DUE - используйте эту конфигурацию
; **lighthub21**
; Arduino DUE + Ethernet shield Wiznet 5X00
; Предпочтительный вариант для DUE с Ethernet Shield (не для платы LightHub), базированный на универсальном драйвере
; **due**
; ESP 8266
; **esp8266-wifi**
; ESP-32
; **esp32-wifi**
; ESP-32-C3
; **esp32c3-wifi**
; M5Stack core (ESP32 based)
; m5stack
; Controllino
; controllino
; STM32 board + ENC28j60 network
; stm32-enc2860
; STM32 board (olmexino) with WIZNET 5X00 network
; stm32
; STM32 board, no IP (LightSpot)
; stm32-noip
; NRF52 board + Wiznet 5x00 network
; nrf52840
Примечание (сверка с кодом, 2026-10-02): в оригинальном тексте wiki список целей в этом блоке был устаревшим — там фигурировали
mega2560slim-5100,mega2560-5500,due-5100,due-5500иnrf52840-5500, а отсутствовалиnrf52840,mega2560,mega2560-optiboot,esp32c3-wifi,stm32,stm32-noip. Список выше восстановлен по фактическим окружениям изplatformio.ini.
Пример: "due" - это плата Arduino DUE + Ethernet Shield на чипе Wiznet-5X00 (универсальный драйвер)
В общем случае, используйте варианты без указания 5100 или 5500 - в этом случае будет использован универсальный драйвер Wiznet
Если плата LightHub версии 2.1 или выше то используйте опцию "lighthub21"
Проект должен скомпилироваться без ошибок.
ЧАСТО Platformio выдает ошибки на ровном месте (не находит какие-либо файлы). В этом случае, повторный запуск компиляции часто решает эту проблему
Если ошибок нет вводим pio run -e <платформа> -t upload
Программа должна залиться в аппаратную платформу.
Если возникли ошибки: Попробовать очистить папку с библиотеками .piolibdeps и .pioenv удалив все их содержимое
Использование Arduino IDE для компиляции и заливки прошивки
Это достаточно трудоемкий процесс, который требует, чтобы вы вручную установили массу библиотек в IDE. platformio - намного более гибкое и профессиональное средство - лучше и проще использовать его. Если для кого-то будет важно освоить именно этот метод - пишите, мы пополним инструкцию.
Если возникают проблемы - пишите на форуме или в группу Телеграмм
(Вы, также, можете улучшать эту инструкцию)
Сверка с кодом (2026-10-02)
Фактические окружения (env) в platformio.ini:
| env | Платформа / описание | Папка в compiled/ |
|---|---|---|
due |
Arduino DUE, универсальный Wiznet-драйвер | due/ |
lighthub21 |
LightHub HW rev 2.1+ (Wiznet 5500, CS на пине 53), DUE | lighthub21/ |
mega2560 |
Arduino Mega + Wiznet 5X00, DMX, Artnet | mega2560/ |
mega2560slim |
Mega компактная сборка + Wiznet, 1-wire, термостаты | mega2560slim/ |
mega2560-optiboot |
Mega компактная + OTA (нужен OPTIBOOT) | Mega2560-optiboot/ |
mega2560-5100 |
Mega + Ethernet Wiznet 5100 | mega2560-5100/ |
esp8266-wifi |
ESP8266 (Wi-Fi) | esp8266-wifi/ |
esp32-wifi |
ESP32 (Wi-Fi) | esp32-wifi/ |
esp32c3-wifi |
ESP32-C3 (Wi-Fi) | esp32c3-wifi/ |
m5stack |
M5Stack (ESP32) | m5stack/ |
nrf52840 |
NRF52840 + Wiznet 5x00 | nrf52840/ |
controllino |
Controllino (AVR) | controllino/ |
stm32 |
STM32 (olmexino) + WIZNET 5X00 | stm32/ |
stm32-enc2860 |
STM32 + ENC28J60 | stm32-enc2860/ |
stm32-noip |
STM32, без IP-стека (LightSpot) | — (папки нет) |
(Также в platformio.ini есть служебные env Upload_ISP и fuses_bootloader для прошивки OPTIBOOT — они не являются целевыми сборками.)
Папки в compiled/: controllino, due, DUE_16u2_reflash, esp32-wifi, esp32c3-wifi, esp8266-wifi, lighthub21, m5stack, mega2560, mega2560-5100, Mega2560-optiboot, mega2560slim, nrf52840, nrf52840-5500, stm32, stm32-enc2860, tools.
Расхождения wiki ↔ кода:
- Список целей в wiki устарел: упоминаются несуществующие env
mega2560slim-5100,mega2560-5500,due-5100,due-5500. В текущемplatformio.iniих нет — для DUE и Mega используется универсальный Wiznet-драйвер (due,mega2560). Список в тексте исправлен по факту (см. примечание выше). nrf52840-5500в wiki указан как env, вplatformio.iniтакого env нет (есть толькоnrf52840), но вcompiled/папкаnrf52840-5500/присутствует — вероятно, это отдельная уже скомпилированная сборка, не являющаяся отдельным env.stm32-noip— есть вplatformio.ini, но готовой папки вcompiled/нет.DUE_16u2_reflash/вcompiled/— утилита для перепрошивки USB-чипа 16u2, не целевая сборка.- Замечание о DUE: инструкция про правку
variant.cpp(добавлениеvoid USART0_Handler(void) __attribute__((weak));) актуальна — в репозитории собственногоlighthub/variant.cppнет, используется вариант DUE из пакета PlatformIOframework-arduinosam.