E-ink panel is DEPG0213BNS800. Otherwise, identical to v1.1 (?)
Partial refresh supported, but not implemented in this commit.
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Fix getting channel name from MQTT topic
* Allow specifying channel index in JSON field "channel" for downlink
Still requires JSON message to be published to channel named "mqtt"
* Make non-breaking if someone adds another slash
* 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
* GPS rework, changes for M8 and stub for M10
---------
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Fix: mark packet via MQTT as ACKed only after we sent it out via LoRa
* Don't need to check for broadcast, DMs also get implicit ACKs
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.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>
* feat(variants): Add support for TXCO on TLORA_V2_1_6 devices
* chore: remove long comment
* feat(variants): Add tlora-v2-1-1_6-tcxo to build matrix
* feat(variants): Use RADIOLIB_NC as DIO1 pin for tlora_v2_1_16 with TXCO
* Use generic naming scheme, add variant to build envs
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: code8buster <20384924+code8buster@users.noreply.github.com>
* Isolate esp32 adc logic gymnastics, try simplifying getBattVoltage
* Set sense resolution for pico platforms
* try silencing cppcheck when variant has no battery pin
* ADC channel for esp-idf calibration
* Missed an rp2040 device
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Add debug options for RP2040
* Rename: "observed" should be plural: "observables"
* PhoneAPI: return failure on timeout
In `onNotify()`, when disconnected, PhoneAPI removed itself from the list of observers that was looped through in `notifyObservers()`. We should exit that loop in that case.
* Add Chatter 2 default_envs
* Add Chatter 2 to varients
* Add Chatter 2 specific code to esp32 platform code
* Parameterize TFT_INVERT for Chatter 2 and specify setRotation to 1
* Fix formatting to make Trunk happy
* Remove commented out #define USE_LCC68
* Fix formatting again
* Add chatter2 to the CI matrix
---------
Co-authored-by: code8buster <20384924+code8buster@users.noreply.github.com>
* fix: allow MQTT `encryption_enabled` with `json_enabled`
* fix: copy decoded MeshPacket and release memory after use
* fix: use `packetPool` allocCopy and release methods
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Mark packets received via MQTT and add option to ignore them
* Don't send packets received via MQTT back into MQTT
Generate implicit ACK for packets we as an MQTT gateway sent
---------
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>
* Attempts at getting the Heltec Wireless Paper eink operational
* Bogus comment
* Fixing Support For Heltec Wireless Paper
---------
Co-authored-by: NfN Orange <orange@reveb.la>
* Portduino reboot
* separate blocks
---------
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* WIP
* ESP8266 SAM fun
* I2S audio / ext. notification module
* Remove
* Protos
* Add use_i2s_as_buzzer from protos
* Fixes
* Stuff
* Thing
* Ext. Notification working(ish)
* Remove SAM commented code
* Trunk upgrade
* Trunk
* Fixes
* Slow not fast... :-|
* T-Deck and T-Watch don't use normal buttons
* Stop ext. notification nagging with touchscreen as well
* Add button gpio back for T-Deck, but guard against long-press during ext. notification
* Ext. notification wrap up
* Better place to guard against long-press false positives
* Adjust default gain and guard against non-i2s devices referencing audio-thread
* Simplify guard logic with a boolean
* Supress uninitMemberVar
* Protos merge got out of wack
* Trunk resolution
* Remove extra crap
* Cleanup and thread-interval
* Default to alert message buzzer and add nag timeout
* Formatting
- only works if we don't have a phone connected, but that is probably dsired
- this will send a copy of device-originating text messgaes to a connected phone. Breaking change.
- this will iterate the tophone queue by deconstructing and reconstructing it every time we look for an ID. Probably also mangles the queue oder since it aborts when a ID is found.
- Can we navigate the packet pool instead? If so, how?
- Let's keep this in draft state for now
* Fix typo in GNSS_MODEL defination and usages for the UC6580
Correct the $CFGSYS init string for the UC6580 to init the receiver for:
GPS L1 & L5 + BDS B1I & B2a + GLONASS L1 + GALILEO E1 & E5a + SBAS
* Reduce GNSS serial traffic on Helted Wireless Tracker
Turn off GSV and NOTIFY __TXT messages as neither are
necessary to Meshtastic operation.
* End wire if we find no i2c devices
* Set tx-power to 0 on nrf bluetooth shutdown
* Change polling interval of PowerFSM to 100ms instead of 10ms
* Guard 3v3
* Fix time lost on the Pico W right after NTP
Shouldn't check for `#ifdef` as it will always be defined, but might be set to 0
* Handle reconnect for Wi-Fi on RP2040
* Update arduino-core for Wi-Fi + FreeRTOS fixes
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Pico W: Initial WiFi support: connects, but freezes after a while
* Update arduino-pico core to fix hang with Wi-Fi
* Add `picow` to workflow since it's different from `pico` now
* Show Wi-Fi frame on screen for all devices with Wi-Fi
* Pico W: Disable mDNS as it's unsupported with FreeRTOS
* Fix printing IP address
* Fix Raspbian build
* Pico W: Initial WiFi support: connects, but freezes after a while
* Update arduino-pico core to fix hang with Wi-Fi
* Add `picow` to workflow since it's different from `pico` now
* Each pin individually
* Correction
---------
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Enable IO2 toggling on RAK if the coast is clear
* Guard against monteops target which doesn't use 3V3 pin
* Also check for en_gpio = 0 to avoid re-setting the value
* Add support for the rak10701 board, no touch
* Moved tftblack fillin and changed teh src flags
* Added rak10701 to platformio.ini
* Add USB detection to RAK4631 units.
* Eliminate spurious symbol in comment field.
---------
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 support for the rak10701 board, no touch
* Moved tftblack fillin and changed teh src flags
* Added rak10701 to platformio.ini
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Refactor away some duplication
* Refactor preset names to display formatter method
* Remove unused screen brightness adjustment and extract wifi disconnect reason name to display formatter method
* Tronk
* Let's be more clear with this naming
* Effed
* DisplayFormatters static class and use native wifi disconnect reason names method
* git mv file so casing should match now
* Include titlecase
* Trunk
* Guard-clause channel util. to reduce nesting
* Try-fix PhoneAPI position not updating
* Trunk
* Missed it
* Really disable GPS when asked to
---------
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
* Fix for T-Beam 1.2 GPS, with DEBUG enabled
* Don't break other devices
* Saving GPS data on this breaks on next boot. Fix.
* derp
* disable the extra verbosity
* Try the same sort of factory reset as the Lilygo image
* Catch GPS reboots and squash
* trunk
* GPS
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Populate the position log entries with data fields
includes datafields with no data as 0
* trunk check formatted.
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Support for SerialModule on RP2040
* Remove one !defined too many
* Increase serial RX_BUFFER: more reliable for long packets
Even results into an error for ESP32
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Fix compression: encode to bytes after `decoded` is modified
* Change payload size to decompressed length
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Refactor GPS to not probe if pins not defined
* Use Named Constructor to clean up code
* Move doGPSPowerSave to GPS class
* Make sure to set GPS awake on triple-click
* Cleanup and remove dead code
* Rename GPS_PIN_WAKE to GPS_PIN_STANDBY
* Actually put GPS to sleep between fixes
* add GPS_POWER_TOGGLE for heltec-tracker and t-deck
* Change GPS_THREAD_INTERVAL to 200 ms
* More dead code, compiler warnings, and add returns
* Add Number of sats to log output
* Add pgs enable and triple-click config
* Track average GPS fix time to judge low-power time
* Feed PositionModule on GPS fix
* Don't turn off the 3v3_s line on RAK4631
when the rotary is present.
* Add GPS power standbyOnly option
* Delay setting time currentQuality
to avoid strange log message.
* Typos, comments, and remove unused variable
* Short-circuit the setAwake logic on GPS disable
* heltec-tracker 0.3 GPS power saving
* set en_gpio to defined state
* Fix fixed_position logic with GPS disabled
* Don't process GPS serial when not isAwake
* Add quirk for Heltec Tracker GPS powersave
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: mverch67 <manuel.verch@gmx.de>
Co-authored-by: Manuel <71137295+mverch67@users.noreply.github.com>
* Use UINT32_MAX to indicate no configured GPS
* Refactor GPS to not probe if pins not defined
* Minor cleanups related to rework
* Use Named Constructor to clean up code
* Actually disable the GPS thread
* Don't actually disable the GPS thread
* Move doGPSPowerSave to GPS class
* Make sure to set GPS awake on triple-click
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>