esp32-nmea2000-obp60/lib/obp60task
Thomas Hooge 318a218470 Integrate changes from master 2025-08-19 09:11:51 +02:00
..
fonts Reorganized fonts and changed Ubuntu-font to 8bit version 2025-07-08 15:19:07 +02:00
images Change xbm file header to fix strange accesspoint behaviour 2025-07-26 20:22:07 +02:00
utils Tool for creating JSON from configuration file 2025-08-05 12:07:07 +02:00
.gitignore Created autobahn page 2024-11-02 18:11:43 +01:00
.gitpod.Dockerfile Add Gitpod 2023-12-20 10:43:11 +01:00
.gitpod.yml Add run script for compiling 2023-12-20 10:55:43 +01:00
AS5600.cpp Correct splitting between OBP60 and OBP40 hardware 2025-01-20 21:21:58 +01:00
AS5600.h Backup 2022-03-17 22:04:23 +01:00
BoatDataCalibration.cpp Integrate changes from master 2025-08-19 09:11:51 +02:00
BoatDataCalibration.h Calibration for data types COG, SOG added 2025-05-25 17:42:50 +02:00
ColorTo3Byte.h Delete FastLED and implement DMA to SPI for all RGB leds 2024-09-20 13:25:11 +02:00
ConfigMenu.cpp Integrated config menu into system page 2025-08-03 21:18:08 +02:00
ConfigMenu.h Integrated config menu into system page 2025-08-03 21:18:08 +02:00
Graphics.cpp Integrated config menu into system page 2025-08-03 21:18:08 +02:00
Graphics.h Integrated config menu into system page 2025-08-03 21:18:08 +02:00
GxEPD2_420_GDEY042T81.cpp.txt Add CPU speed for config. Modify display refresh with temp compensation 2024-09-26 17:57:43 +02:00
LedSpiTask.cpp Fixed SD card initialization and added some code to system page 2025-08-13 17:41:06 +02:00
LedSpiTask.h Add friendly color names to color class for system page display 2025-07-31 14:23:11 +02:00
OBP60Extensions.cpp Added page method leavePage() for e.g. cleanup and storage code 2025-08-14 15:11:13 +02:00
OBP60Extensions.h Added page method leavePage() for e.g. cleanup and storage code 2025-08-14 15:11:13 +02:00
OBP60Formatter.cpp Integrate changes from master 2025-08-19 09:11:51 +02:00
OBP60Hardware.h Fixed SD card initialization and added some code to system page 2025-08-13 17:41:06 +02:00
OBP60Keypad.h Fix LiPo battery level and sensor pad 2025-01-25 18:04:58 +01:00
OBP60QRWiFi.h Finalize switch to epd pointer instead if getdisplay() 2025-08-05 08:52:45 +02:00
OBPDataOperations.cpp Integrate changes from master 2025-08-19 09:11:51 +02:00
OBPDataOperations.h Integrate changes from master 2025-08-19 09:11:51 +02:00
OBPRingBuffer.h Integrate changes from master 2025-08-19 09:11:51 +02:00
OBPRingBuffer.tpp Integrate changes from master 2025-08-19 09:11:51 +02:00
OBPSensorTask.cpp Code cleanup 2025-08-14 12:50:18 +02:00
OBPSensorTask.h Move buffer handling to obp60task; reset OBPSensorTask; add true wind calculation 2025-07-19 00:26:37 +02:00
ObpNmea0183.h Fix for problems with reboots by using GPS modul (was not correct implemented) 2022-03-17 13:54:44 +01:00
PageAIS.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageAnchor.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageAutopilot.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageBME280.cpp Move config code into page constructors and some code cleanup 2025-08-14 09:12:56 +02:00
PageBarograph.cpp Adapt barograph page to current code 2025-08-15 10:46:59 +02:00
PageBattery.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageBattery2.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageClock.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageCompass.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageDST810.cpp Move config code into page constructors and some code cleanup 2025-08-14 09:12:56 +02:00
PageEPropulsion.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageFluid.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageFourValues.cpp Added page method leavePage() for e.g. cleanup and storage code 2025-08-14 15:11:13 +02:00
PageFourValues2.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageGenerator.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageKeelPosition.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageOneValue.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageRollPitch.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageRudderPosition.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageSixValues.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageSkyView.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageSolar.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageSystem.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageThreeValues.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageTwoValues.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageVoltage.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageWhite.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageWind.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageWindPlot.cpp Integrate changes from master 2025-08-19 09:11:51 +02:00
PageWindRose.cpp Code cleanup 2025-08-14 12:50:18 +02:00
PageWindRoseFlex.cpp Integrate changes from master 2025-08-19 09:11:51 +02:00
PageXTETrack.cpp Code cleanup 2025-08-14 12:50:18 +02:00
Pagedata.h Code cleanup 2025-08-14 12:50:18 +02:00
README Adapt barograph page to current code 2025-08-15 10:46:59 +02:00
RTClib.cpp Fix warnings 2024-11-20 10:42:38 +01:00
RTClib.h Fix warnings 2024-11-20 10:42:38 +01:00
TODO Code cleanup 2025-08-14 12:50:18 +02:00
config.json Merge branch 'barograph' into extended 2025-08-15 09:46:12 +02:00
config_obp40.json Integrate changes from master 2025-08-19 09:11:51 +02:00
extra_task.py Some modifications to avoid AP connection problems 2025-08-06 11:36:05 +02:00
gen_set.py Moved to c++17 and espressif32 @ 6.9.0, fixed waypoint boatdata code 2025-08-06 14:05:58 +02:00
hbuffer.cpp First design experiments for barograph 2024-12-21 10:25:53 +01:00
hbuffer.h First design experiments for barograph 2024-12-21 10:25:53 +01:00
imglib.cpp Added missing imglib files 2024-12-22 14:10:46 +01:00
imglib.h Added missing imglib files 2024-12-22 14:10:46 +01:00
index.js Integrate changes from master 2025-08-19 09:11:51 +02:00
movingAvg.cpp Add moving average for battery values in OBPSensorTask 2022-03-25 18:19:14 +01:00
movingAvg.h Add moving average for battery values in OBPSensorTask 2022-03-25 18:19:14 +01:00
obp40.conf Added INI style device configuration files 2025-08-05 11:21:57 +02:00
obp60.conf Added INI style device configuration files 2025-08-05 11:21:57 +02:00
obp60task.cpp Integrate changes from master 2025-08-19 09:11:51 +02:00
obp60task.h Correct splitting between OBP60 and OBP40 hardware 2025-01-20 21:21:58 +01:00
partition_table.txt Modify files for Gitpod 2025-01-21 16:32:40 +01:00
platformio.ini Fixed SD card initialization and added some code to system page 2025-08-13 17:41:06 +02:00
qrcode.c E-Ink display runs 2022-02-03 17:43:30 +01:00
qrcode.h E-Ink display runs 2022-02-03 17:43:30 +01:00
run_install_tools Rename file 2025-05-07 16:50:41 +08:00
run_obp40_s3 Changes 2025-03-04 21:37:55 +01:00
run_obp60_s3 Modify files for Gitpod 2025-01-21 16:32:40 +01:00

README

Development information
=======================

This file contains some hints concerning building the firmware as well as
developing and debugging it.

Coding style
------------
WIP
Please format your new code the same as already existing code.
Preprocessor directives go to column zero.


Git commands
------------
Some useful commands are

git status
git fetch upstream
git diff --name-status upstream/master
git checkout upstream/master platformio.ini

# how to reset my Repo to match norbert's status

git remote add upstream https://github.com/norbert-walter/esp32-nmea2000-obp60
git fetch upstream
git checkout master
git reset --hard upstream/master  
git push origin master --force


New pages
---------
To create a new page for OBP60 the following steps are necessary:

  1. Create a page under /lib/obp60task/PageXXXX.cpp. You can use a simple
     page e.g. PageOneValue.cpp as template
  2. Set page name in PageXXXX.cpp on file name
  3. Register new page in /lib/obp60task/obp60task.cpp in function
     'registerAllPages'
  4. Add new page in /lib/obp60task/config.json for each page type 
     or use  gen_set.py to auto-generate the relevant section of
     config.json. For further information on that  read the comments
     in gen_set.py.
  5. Copy the changes in config.json to config_obp40.json and rename
     strings accordingly. E.g. obp60 to obp40.

Using Gitpod
------------

Warning: You have to register with gitpod!

Open web page:
https://gitpod.io/#https://github.com/norbert-walter/esp32-nmea2000-obp60/tree/master/lib/obp60task

Input in terminal:
cd /workspace/esp32-nmea2000-obp60
bash /workspace/esp32-nmea2000-obp60/lib/obp60task/run_installing_tools
bash /workspace/esp32-nmea2000-obp60/lib/obp60task/run_obp60_s3
bash /workspace/esp32-nmea2000-obp60/lib/obp60task/run_obp40_s3

Compile result for OBP60:
/workspace/esp32-nmea2000-obp60/.pio/build/obp60_s3/bootloader.bin
/workspace/esp32-nmea2000-obp60/.pio/build/obp60_s3/firmware.bin
/workspace/esp32-nmea2000-obp60/.pio/build/obp60_s3/partitions.bin

/workspace/esp32-nmea2000-obp60/.pio/build/obp60_s3/obp60_s3-all.bin
/workspace/esp32-nmea2000-obp60/.pio/build/obp60_s3/obp60_s3-dev<yyyymmdd>-all.bin
/workspace/esp32-nmea2000-obp60/.pio/build/obp60_s3/obp60_s3-dev<yyyymmdd>-update.bin

/workspace/esp32-nmea2000-obp60/.pio/build/obp60_s3/obp60_s3-all.bin, ready to flash to offset 0x0000

Compile result for OBP40 (CrowPanel 4.2):

/workspace/esp32-nmea2000-obp60/.pio/build/obp40_s3/bootloader.bin
/workspace/esp32-nmea2000-obp60/.pio/build/obp40_s3/firmware.bin
/workspace/esp32-nmea2000-obp60/.pio/build/obp40_s3/partitions.bin

/workspace/esp32-nmea2000-obp60/.pio/build/obp40_s3/obp40_s3-all.bin
/workspace/esp32-nmea2000-obp60/.pio/build/obp40_s3/obp40_s3-dev<yyyymmdd>-all.bin
/workspace/esp32-nmea2000-obp60/.pio/build/obp40_s3/obp40_s3-dev<yyyymmdd>-update.bin

/workspace/esp32-nmea2000-obp60/.pio/build/obp40_s3/obp40_s3-all.bin, ready to flash to offset 0x0000

Compilation issues
------------------
? Error while linking: "undefined reference to `registerPageXXX'"
: Check if the required page is enabled for current board/environment: #if defined ...

Debugging tool
--------------

log.txt = text file with error messages from terminal console

tools/decoder.py -p ESP32S3 -t ~/.platformio/packages/toolchain-xtensa-esp32s3/ -e .pio/build/obp60_s3/firmware.elf log.txt