Inhaltsverzeichnis
OBP60
siehe auch:
- Quellen für die Firmware:
https://github.com/norbert-walter/esp32-nmea2000-obp60 - Quellen für die Dokumentation:
https://github.com/norbert-walter/obp60-v2-docu
- Virtueller OBP60 auf dem Raspberry
- OBP40: Entwicklungssystem für Enthusiasten
Firmware
Erstellen der Firmware unter Linux lediglich mit PlatformIO Core.
- Abhängigkeiten installieren (als root)
apt-get install python3-venv
- PlatformIO installieren (als normaler Benutzer)
- Installer herunterladen:
curl -fsSL -o get-platformio.py https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py
oder
wget -O get-platformio.py https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py
- Installer ausführen
python3 get-platformio.py
- Installer kann anschließend gelöscht werden
rm get-platformio.py
- Quellen von OBP von Github holen
git clone https://github.com/norbert-walter/esp32-nmea2000-obp60.git
- Firmware erstellen
cd esp32-nmea2000-obp60 ~/.platformio/penv/bin/pio run
- Firmware erstellen und auf das Gerät laden
~/.platformio/penv/bin/pio run -t upload
Hinweise
Die beim ersten Lauf heruntergeladenen Bibiotheken werden nicht automatisch aktualisiert. Um die Versionen zu aktualisieren muß das manuell gestartet werden:
pio pkg update
- Wenn PlatformIO wegen einer Python-Bibliothek auf einen Fehler läuft, kann diese in der virtuellen PlatformIO-Umgebung (nach-)installiert werden:
source ~/.platformio/penv/bin/activate pip install intelhex deactivate
Linux / USB
Herstellen einer USB-Kabelverbindung. Systemprotokoll:
usb 3-1: new full-speed USB device number 7 using xhci_hcd usb 3-1: New USB device found, idVendor=303a, idProduct=1001, bcdDevice= 1.01 usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 3-1: Product: USB JTAG/serial debug unit usb 3-1: Manufacturer: Espressif usb 3-1: SerialNumber: 11:22:33:44:55:66 cdc_acm 3-1:1.0: ttyACM0: USB ACM device usbcore: registered new interface driver cdc_acm cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Anpassen der Schnittstellengeschwindigkeit auf Standardwerte von OBP60
stty -F /dev/ttyACM0 speed 115200
Ausgabe der empfangegen Daten
cat < /dev/ttyACM0
oder
picocom -b 115200 --imap lfcrlf /dev/ttyUSB0 CTRL-a, CTRL-q beendet das Programm
Entwicklung
Seite erstellen
Page<Name>.cppanlegenconfig.jsonanpassen:page<n>type / listerweitern um den Namenobp60task.cpp/registerAllPageserweitern um neue Seite
Konfiguration
Informationen in config.json.
Felder
nameVariablennamelabelFeldtext in GUItypebooleanstringpasswordnumberarraylistfilterxdr
defaultStandardwertdescriptionAnleitungstext welcher hinter dem Fragezeichen-Button angezeigt wirdcategoryEin- aufklappbare Konfigurationskategorie in der GUIcapabilitiesFiltermöglichkeit: ein- ausblenden je nach Hardwarecheckgesonderte Überprüfung aktivierencheckMinMaxcheckApPasscheckApIpcheckNetMaskcheckAdminPasscheckRMCtcheckPortcheckIpAddresscheckMCAddresscheckSSIDcheckXDRcheckSystemName
min,maxWertebereich eingrenzenlistAuswahlliste für die Werte, StringsconditionBedingungen zur Anzeige
Im Projekt kann es mehrere Dateien geben, die beim Erstellen zu einer einzigen Konfiguration zusammengefügt werden.
Über Capabilities können Konfigurationsoptionen ein- oder ausgeschaltet werden,
je nach Hardware. Die möglichen Werte werden über DECLARE_CAPABILITY eingestellt.
Momentan in obp60task.h.
Mit Capabilities ist es nicht möglich eine Einstellung mit verschiedenen
Standardwerten vorzubelegen. Dazu müssen je nach PlatformIO-Environment verschiedene
Konfigurationsdateien verwendet werden.
Screenshots
Im Browser
http://192.168.15.1/api/user/OBP60Task/screenshot
Oder über die console
wget --content-disposition http://192.168.15.1/api/user/OBP60Task/screenshot
Sonstiges
Kopplung an obppilot
- pypilot siehe
Schriften konvertieren
- Basis ist eine BDF-Schrift
- In Fontforge kann diese geladen und bearbeitet werden
- Mehrere Zeichen selektieren: Datei / Skript ausführen
fontforge.activeFont().selection.select(("ranges", None), 0x80, 0xffff) - Kodierung / Glyphen trennen und entfernen
- Anschließend unter neuem Namen speichern
- In C-Code konvertieren mit z.B.
bdf2adafruit.py- Es ist Nacharbeit per Hand erforderlich
