As reported by @jstockdale, when writing coloured logs we were
writing the full string, including a null terminator. This caused
issues for programs consuming our logs. The fix as identified is
not to write the null.
Fixes https://github.com/meshtastic/firmware/issues/5945
* Space out periodic broadcasts of modules automatically
* Add warning for function usage
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Remove prefs first
* Remove file first
* Remove truncate
* No longer needed
* Missed a param
* That wasn't supposed to be there
* Remove vestigal lfs assert
* Durr
* * Update RAK9154 sensor to tx remote power telemetry
* remove uf2 script, pio run does that inline
* move sensor module to correct position
* disable LED and Accelerometer code on rak2560
* trunk fmt
* mention epaper variant
* attention, revert, revert
* Enable Environment Telemetry of these values
* fix float values
* fix detection of lark weather station
* fix unit tests and add support for Dfrobot rain gauge
* fix name display on bootup
* fix gauge init logic
* trunk fmt
* Rework of CH341 HAL
* Applied trunk fmt
* revert serial reading
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
* Initial commit of a fuzzer for Meshtastic.
* Use a max of 5 for the phone queues
* Only write files to the temp dir
* Limitless queue + fuzzer = lots of ram :)
* Use $PIO_ENV for path to program
* spelling: s/is/to/
* Use loopCanSleep instead of a lock in Router
* realHardware allows full use of a CPU core
* Ignore checkov CKV_DOCKER_2 & CKV_DOCKER_3
* Add Atak seed
* Fix lint issues in build.sh
* Use exception to exit from portduino_main
* Separate build & source files into $WORK & $SRC
* Use an ephemeral port for the API server
* Include CXXFLAGS in the link step
* Read all shared libraries
* Use a separate work directory for each sanitizer
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Initiate magenetometer based compass calibration from button presses
- only active for BMX160 accelerometers on RAK_4631
- replace automatic calibration on power on with button triggered
calibration
- set 5 presses to trigger 30s calibration
- set 6 presses to trigger 60s calibration (useful if unit is not
handheld, ie vehicle mounted)
- show calibration time remaining on calibration alert screen
* Fix non RAK 4631 builds
- exclude changes from non RAK 4631 builds
- remove calls to screen when not present
* Fix build on RAK4631_eth_gw
- exclude all compass heading updates on variant without screen
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Allow GPIO0; check for conflict with user button
* Guard for no BUTTON_PIN; handle portduino
* Portduino settings: attempt two
We don't really need to #include radio code here just to check if the pin is RADIOLIB_NC. We're only interested if scanAndSelect pin matches user button pin, but they won't match if user button is RADIOLIB_NC.
* Portduino attempt 3: glue