Firmware zelf compileren
Deze pagina legt uit hoe u MeshCore-firmware zelf compileert vanaf de broncode. Dat is handig als u een andere firmwarevariant wilt bouwen dan de kant-en-klare builds van de MeshCore Flasher, of als u instellingen wilt aanpassen (bijvoorbeeld frequentie of WiFi). De instructie is bedoeld voor gebruikers die vertrouwd zijn met een terminal en met git.
Wat hebt u nodig?
- Python 3 en PlatformIO – Installeert u in stap 1.
- Git – Installeert u in stap 2 indien nodig.
- Windows: WSL (Windows Subsystem for Linux) met Python; in stap 1 en 2 staat hoe u dat installeert.
- Optioneel: Visual Studio Code met de PlatformIO-uitbreiding.
Stap 1: Python-omgeving en PlatformIO
Open een terminal. Op Windows: installeer eerst WSL via de Windows-functie 'Windows Subsystem for Linux' en open daarna een WSL-terminal.
Linux of WSL – Installeer de benodigde pakketten:
sudo apt update
sudo apt install libpython3-dev python3-venv
macOS – Sla de bovenstaande apt-commando's over; Python 3 is meestal al geïnstalleerd.
Maak een virtuele omgeving aan en installeer PlatformIO:
python3 -m venv meshcore
cd meshcore && source bin/activate
pip install -U platformio
Daarna staat het commando pio ter beschikking.
Stap 2: Broncode ophalen
Zorg dat Git geïnstalleerd is (bijv. sudo apt install git op Linux of in WSL als dat nog niet het geval is). Clone daarna de MeshCore-repository en ga naar de map:
git clone https://github.com/meshcore-dev/MeshCore.git
cd MeshCore
U werkt nu in de hoofdmap van het project.
Stap 3: Beschikbare firmwaretypen bekijken
MeshCore heeft per apparaat verschillende build targets (omgevingen): bijvoorbeeld Companion, Repeater of Room Server voor een specifiek board.
Voer in de MeshCore-hoofdmap uit:
sh build.sh list
U krijgt dan een lijst van alle omgevingsnamen. Kies een omgevingsnaam die past bij uw apparaat en het type firmware (bijv. repeater, companion, room server). De naam is vaak iets als Heltec_v3_repeater of RAK_4631_repeater.
Stap 4: Eén firmware bouwen
Vervang <omgevingsnaam> door de naam uit de lijst (bijvoorbeeld RAK_4631_repeater of Heltec_v3_repeater). Voer in de terminal uit:
pio run -e <omgevingsnaam>
Voorbeeld voor een RAK4631-repeater:
pio run -e RAK_4631_repeater
Als het bouwen goed verloopt, eindigt het commando zonder foutmelding.
Waar vindt u de gebouwde firmware?
Na een geslaagde build staat de firmware in een map onder .pio/build/. De mapnaam is dezelfde als de omgevingsnaam.
Voorbeelden:
- RAK_4631_repeater:
.pio/build/RAK_4631_repeater/– Daar vindt u onder meerfirmware.zip(of een ander bestand dat u op het apparaat flasht). - Andere varianten: kijk in
.pio/build/<omgevingsnaam>/naar het bestand dat u normaal gebruikt om te flashen (bijv..bin,.hexoffirmware.zip).
Zie de subsectie hieronder om de firmware naar het apparaat te flashen.
Firmware flashen
Sluit het apparaat op USB aan. Voer in de MeshCore-hoofdmap uit (met dezelfde omgevingsnaam als waarmee u hebt gebouwd):
pio run -e <omgevingsnaam> -t upload
PlatformIO bouwt zo nodig opnieuw en schrijft daarna de firmware naar het apparaat.
De frequentie (en andere LoRa-instellingen) hoeft u niet voor het bouwen in te stellen; dat kunt u ook achteraf doen tijdens het configureren van het apparaat (bijvoorbeeld via de seriële console of de webconfig). Wilt u toch een andere standaardfrequentie in de firmware hebben? Open dan platformio.ini in de hoofdmap, zoek in de sectie [arduino_base] de regel met LORA_FREQ en pas de waarde aan (bijv. 869.525 voor Nederland/UK/EU, 910.525 voor VS/Canada, 915.8 voor Australië/Nieuw-Zeeland). Bouw daarna opnieuw.
Meerdere firmwares tegelijk bouwen (build.sh)
In de MeshCore-hoofdmap staat het script build.sh waarmee u in één keer alle firmwares van een bepaald type kunt bouwen. Voer sh build.sh help uit voor een volledig overzicht. Enkele voorbeelden:
- Alle repeater-firmwares:
sh build.sh build-repeater-firmwares - Alle companion-firmwares:
sh build.sh build-companion-firmwares - Alle room server-firmwares:
sh build.sh build-room-server-firmwares - Eén specifieke target:
sh build.sh build-firmware RAK_4631_repeater
De exacte targetnaam kunt u zien met sh build.sh list.
Optioneel: WiFi-Companion (bijv. Heltec v3)
Companion-firmware voor WiFi (zoals op de Heltec v3) staat niet als kant-en-klare build op de Flasher. U moet dan zelf compileren en uw WiFi-gegevens in de broncode zetten.
- Open het
platformio.ini-bestand van uw variant, bijv.variants/heltec_v3/platformio.ini. - Zoek de regels met
WIFI_SSIDenWIFI_PWD(of vergelijkbare namen). - Vul daar uw netwerknaam en wachtwoord in.
- Bouw de bijbehorende WiFi-companion-omgeving (bijv.
Heltec_v3_companion_radio_wifi) metpio run -e <omgevingsnaam>. - Flash de gebouwde firmware naar het apparaat.
Bewaar geen wachtwoorden in gedeelde repository's; gebruik deze methode alleen voor uw eigen build.
Zie ook
- Meshcore versies - Overzicht van alle firmware versies
- Repeater via CLI configureren - Repeater instellen na het flashen
- CLI Commando's - Commando referentie
- Mesh instellingen repeater - Repeater instellingen