* Turn off vscode cmake prompt - we don't use cmake on meshtastic
* Add rak4631_dap variant for debugging with NanoDAP debug probe device.
* The rak device can also run freertos (which is underneath nrf52 arduino)
* Add semihosting support for nrf52840 devices
Initial platformio.ini file only supports rak4630
Default to non TCP for the semihosting log output for now...
Fixes https://github.com/meshtastic/firmware/issues/4135
* powermon WIP (for https://github.com/meshtastic/firmware/issues/4136 )
* oops - mean't to mark the _dbg variant as an 'extra' board.
* powermon wip
* Make serial port on wio-sdk-wm1110 board work
By disabling the (inaccessible) adafruit USB
* Instrument (radiolib only for now) lora for powermon
per https://github.com/meshtastic/firmware/issues/4136
* powermon gps support
https://github.com/meshtastic/firmware/issues/4136
* Add CPU deep and light sleep powermon states
https://github.com/meshtastic/firmware/issues/4136
* Change the board/swversion bootstring so it is a new "structured" log msg.
* powermon wip
* add example script for getting esp S3 debugging working
Not yet used but I didn't want these nasty tricks to get lost yet.
* Add PowerMon reporting for screen and bluetooth pwr.
* make power.powermon_enables config setting work.
* update to latest protobufs
* fix bogus shellcheck warning
* make powermon optional (but default enabled because tiny and no runtime impact)
* tell vscode, if formatting, use whatever our trunk formatter wants
without this flag if the user has set some other formatter (clang)
in their user level settings, it will be looking in the wrong directory
for the clang options (we want the options in .trunk/clang)
Note: formatOnSave is true in master, which means a bunch of our older
files are non compliant and if you edit them it will generate lots of
formatting related diffs. I guess I'll start letting that happen with
my future commits ;-).
* add PowerStress module
* nrf52 arduino is built upon freertos, so let platformio debug it
* don't accidentally try to Segger ICE if we are using another ICE
* clean up RedirectablePrint::log so it doesn't have three very different implementations inline.
* remove NoopPrint - it is no longer needed
* when talking to API clients via serial, don't turn off log msgs instead encapsuate them
* fix the build - would loop forever if there were no files to send
* don't use Segger code if not talking to a Segger debugger
* when encapsulating logs, make sure the strings always has nul terminators
* nrf52 soft device will watchdog if you use ICE while BT on...
so have debugger disable bluetooth.
* Important to not print debug messages while writing to the toPhone scratch buffer
* don't include newlines if encapsulating log records as protobufs
* update to latest protobufs (needed for powermon goo)
* PowerStress WIP
* fix linter warning
* Bump platfomio/espressif32 version to latest 6.7.0
* Fix deprecated constants
* Remove pin defs already defined by the framework
* ESP_EXT1_WAKEUP_ALL_LOW is deprecated for any target except esp32
* Enable LTO and use newlib nano flavor
* Make trunk happy
* Respect build_unflags of base env
* Recover float printfing
* Disable BLE_SM_PAIR_AUTHREQ_SC
* Distribute BLE_SM_PAIR_KEY_DIST_ID too
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
This seems to fix the ch341 quirk where large packets fail to send. As it can be problematic for other radios, we gate it behind "ch341_quirk" in the config.
* Add better support for the Adafruit PiTFT 2.8 for Native
* native: Make touch i2c address configurable
* Bump portduino to pick up I2C features
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
This changeset gives us the ability to specify a separate SPI device for the LoRa, Display, and Touchscreen. The changes in Portduino also add support for specifying a new SPI speed for each transaction. All together, this means that we can let the Linux OS manage the CS lines, and also get much faster SPI speeds, leading to better framerates.
* Add multiple SPI devices to put Radio, Display, and Touchscreen on each their own
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
From the manpage:
> arch - print machine hardware name (same as uname -m)
Arch Linux does not have the `arch` alias, only `uname`, so use `uname` to fix this issue:
> ```
> ./bin/build-native.sh: line 18: arch: command not found
> ```
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
* Add MaxNodes to Native
* It compiles...
* Convert nodedb to use new
* Closer but still broken.
* Finally working
* Remove unintended lines
* Don't include a pointer
* Capitalization matters.
* avoid rename in protocol regen
* When trimming the nodeDB, start with a cleanup
* Remove extra cleanupMeshDB() call for now
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Added WebServer/WebServices for Native Linux Meshtastic and web gui
* Fix bug in login functionality
* Added customized config of portdunio.ini with LovyannGFX from marelab repro
* Compile Problem resolved with developer version of LovyanGFX.git
* Compile against dev version
* Fixes to fit into main branch
* Update variant.h, main.cpp, .gitignore, WebServer.cpp, esp32s2.ini, WebServer.h, ContentHandler.cpp, rp2040.ini, nrf52.ini, ContentHelper.cpp, Dockerfile, ContentHandler.h, esp32.ini, stm32wl5e.ini
* Added linux pi std /usr/include dir
* Adding /usr/innclude for Linux compile against native libs that are not hadled by platformio
* Review log level changes & translation
* Update Dockerfile
* Fix Typo & VFS ref. Part1
* Fix Typo & VFS ref.
* Dev Version for ulfius web lib
* Update platformio.ini
* Free VFS path string
* Remove unintended changes
* More unintentional changes
* Make the HTTP server optional on native
* Tune-up for Native web defaults
* Don't modify build system yet
* Remove more unneeded changes
---------
Co-authored-by: marc hammermann <marchammermann@googlemail.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
Built the LilyGo T-Echo bootloader from source to obtain the UF2 and zip package for updating the bootloader on the devices with outdated bootloaders. The UF2 will allow drag and drop flashing the update, and the zip package is in case adafruit-nrfutil is needed.
I wasn't sure the best location to put this but since we already have the nrf52 flash erase uf2 here, I figured this might be the best. I will be linking to these files in a docs article detailing the process for using them.
* compiling w/o e-ink display
* pinout changes
* progress getting LoRa and LCD working
* fix for bootloader, gps pins
* add canary to build matrix
* merge with main
* fix build by excluding BellModem in RadioLib
* fixes for GPS
* Fix LED_BLUE and GPS RX/TX pins
* Variant changes for merge
* make GPS baud rate configurable
* fix debug config
* Canary v1.2 changes
* Fixes for GPS
* pass trunk check
* bump protobufs to master
* update build flags to use CANARYONE enum
* use canaryone throughout for consistency.
* #define 0 is still defined
* add back .vscode/extensions.json
* bump protobufs
* revert manual change to generated file
---------
Co-authored-by: Steven Osborn <steven@lolsborn.com>
* Portduino multiple logging levels
* Fixes based on GPSFan work
* Fix derped logic
* Correct size field for AID message
* Reformat to add comments, beginning of GPS rework
* Update PM2 message for Neo-6
* Correct ECO mode logic as ECO mode is only for Neo-6
* Cleanup ubx.h add a few more comments
---------
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Move to Portduino's getMacAddr()
* Add ST7735/S screen support
* Push Raspbian support into native target
* Remove latent pigpio references.
* CardKB defensive programming
* Adds configurable spidev
* Fixes to build on Fedora 40
* ENUMs are not #defines. Pull latest portduino
* Add more configuration options for SPI displays
* Add config.yaml option to set DIO3_TCXO_VOLTAGE
* change tft clear() to fillScreen()
Maintains compatability with ESPI driver.
* Adds TXen and RXen pins to portduino
* Add -c --config options to specify config file
* Fail when a specified config file is unavailable
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Add configuration via /etc/meshtastic/config.yaml
* Move example config, support more locations
* Fix config check
* Use access() to check for config file presence
* Throw an error and exit on radio init fail
* Adds error check for reading Bluetooth MAC
* Settle on meshtasticd, add install script
* Shell fixes
* Fine. I'll put it back and then disable you
* Get wrekt, shellchekt
* Firat attempt at adding raspbian CI build
* Tickle the workflow
* Beatings will continue til morale improves
* Permissions are overrated
---------
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
* Add T-Deck to S3 ota logical branch
* Revert "Add T-Deck to S3 ota logical branch"
This reverts commit d0aef9dc26.
* Add targets
* Get the bat file too