* - map fn+m to mute and unmute the external notification module
- map fn+t to be an alternative for the TAB key
* add whitelist to inputbroker
* (maybe) sweet-talking t-deck into tabbing...
* now for real - back in Kansas
* More fancy mappings
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Don't save Neighbors to flash when receiving
* Move `shouldSave` to `saveProtoForModule()`
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Use `alterReceivedProtobuf()` for NeighborInfo and Traceroute
`alterReceived()` should never return NULL
Traceroute should be promiscuous
* Remove extensive logging from NeighborInfo module
* 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>
* (3/3) Add variant for pico with waveshare and GPS hat, utilizing slow clock.
* Not everybody has Serial2
* Trunk
* Push it real gud
* No init
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Set `hop_start` in header to determine how many hops each packet traveled
* Set hopLimit of response according to hops used by request
* Identify neighbors based on `hopStart` and `hopLimit`
* NeighborInfo: get all packets and assume a default broadcast interval
* Add fail-safe in case node in between is running modified firmware
* Add `viaMQTT` and `hopsAway` to NodeInfo
* Replace `HOP_RELIABLE` with hopStart for repeated packet
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* add UI frame to display PaxCounter module data
* only acquire screen when paxcounter is active, i.e. enabled and wifi and ble are both off
* sync font #define with other occurrences in code
* protect screen specific code with #if HAS_SCREEN
* limit upload_speed to 115200 for TLORA_V2_1_16
* fix failing trunk checks; sorry
* Revert "limit upload_speed to 115200 for TLORA_V2_1_16"
This reverts commit 4eb549c5e8.
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* StoreForward updates
- Send history in "text" variant
- Don't send history the client already got
- Check if PSRAM is full
- More sensible defaults
* Set `TEXT_BROADCAST` or `TEXT_DIRECT` RequestResponse tag
* feat: E-Ink "Dynamic Partial" (#3193)
Use a mixture of full refresh, partial refresh, and skipped updates, balancing urgency and display health.
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* [create-pull-request] automated change (#3209)
Co-authored-by: thebentern <thebentern@users.noreply.github.com>
* Reset `last_index` if history was cleared, e.g. by reboot
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: todd-herbert <herbert.todd@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: thebentern <thebentern@users.noreply.github.com>
Co-authored-by: Garth Vander Houwen <garthvh@yahoo.com>
* 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>
* 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>
* 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
* 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
* 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>
* 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>
* 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>
* support BB Q10 keyboard
* remove debug code
* fix wrong logic
* fix left/right keys for cardkb
* Try to enable Q10 kb after all
* cppcheck
* Only fire on Key release and assume 0x0a is a enter as well
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
* Add interested portnums to TextMessageModule
* Send Detection Sensor Module messages on its own portnum
* Add to Ext. Notification and consolidate logic
* RANGE_TEST_APP portnum for RangeTestModule
* WIP
* Updates
* Move it out of the macro guard so portduino can build
* Changes from feedback
* Use minimum_broadcast_secs as interval if we just broadcasted to avoid wasting cpu cycles
* Fmt
* Merge conflict resolution boogered me up
* Missed a spot
* getConfiguredOrDefaultMs
* Get the minimum interval
* - Permanently Enable Canned Messages on T-Deck and Picomputer
- picomputer has a really dark TFT; switch color to white for better UX.
* well, you know... bullock...
* WIP
* Updates
* Move it out of the macro guard so portduino can build
* Changes from feedback
* Use minimum_broadcast_secs as interval if we just broadcasted to avoid wasting cpu cycles
* Fmt
* Merge conflict resolution boogered me up
* Missed a spot
* Extend node max to 100 and remove mesh_sds_timeout_secs
* Const pointers for you and you and you
* Fixes and supressions
* Missed it
* uint
* Resize
* Derp
* T-Watch WIP
* Updates
* Temp
* Update screen spi bus and and backlight en
* Peripherals progress
* Fixes
* Fixes
* Updates
* DRV scaffolding
* Fixed touch-screen driver selection. WIP on DRV haptic feedback
* DRV2605 pmu channel
* Trunk
* Fixes and defaults
* Dropped an s
* Move PMU and turn off screen that way
* Add t-deck and t-watch-s3 to CI and cleanup
* More cleanup
* add hwid for auto-detection
* fix: heltec-wireless-tracker USB serial
* T-Deck support
* trunk fmt
* set FRAMERATE to 1
* fix some defines
* trunk fmt
* corrected vendor link
* Make input_source case insensitive
* Implement reboot for RP2040
* Remove EXT_NOTFIFY_OUT as it conflicts with I2C and module is not supported
* RP2040 has screen, button and wire
* Add default I2C pins also for Pico W
* Initial support for MonteOps's fixed hardware platform
* Update platformio env config + cleanup
* Fix platformio build
* Fix platformio build
* Fix wrong definition logic for NCP5623
* Fix another wrong definition logic for NCP5623, it's not board feature
* Fix wrong definition logic for NCP5623 in External Notification code, it's not board feature
* We need for CI magic here
* Another fix related to NCP5623
* Fix cosmetic issue with redifined variable
* Fix typo
* Cleanup and update defs for HW1
* Fix OEM RAK4631
* Fix AQ sensor reading
* Fix AQ sensor reading (better variant)
* Fix build for other nRF52 devices
* Replace HAS_EINK_RAK to RAK_4631
* WIP
* Continued wip
* We got em
* Voltage sensor base class
* INA voltage
* Log it
* Stacie's mom has got it going on
* Move declaration up
* Last one
* Sneaky little bugger
* Macro guard to avoid calling methods
* Wio-e5 / STM32WL wip
* Stubbing some FS stuff out
* Wio-e5 / STM32WL wip
* Stubbing some FS stuff out
* Wio-e5 / STM32WL wip
* Stubbing some FS stuff out
* Wio-e5 / STM32WL wip
* Stubbing some FS stuff out
* LittleFS compiles. Can't check with actual device.
* make cppcheck happy again
* Guard against accelerometer thread
* Missed a spot
* Upload via ST-LINK
* Derive MAC address from UID
* upload port
* Trunk it
* Guard it
* Maybe fix the cache error on startup.
* Latest RadioLib ref to fix SubGHZ
* revert nasty Sub-GHz Hack
* Boots and radio inits with RadioLib 6.0, LittleFS doesn't seem to work
---------
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
Co-authored-by: GUVWAF <thijs@havinga.eu>
* Implement override_console_serial_port
* It's opposite day in Logictown
* Try to use native serial types for platforms
* Fix for s3
* Trunk
* Screw it... just declare as Print and handle init
* Alright, chatty kathy
* Missed a spot
* I'll take "Kill that FIXME" for 800, Alex
* Badunkadunk
* Refactor out a lot of duplicated code
* Boogers
* Okay I probably should stop changing everything
* Fix LOG_DEBUG messages when no DEBUG_PORT.
* Fix LOG_DEBUG messages when no DEBUG_PORT.
* Fix LOG_DEBUG messages when no DEBUG_PORT.
* Fix LOG_DEBUG messages when no DEBUG_PORT.
* For Garth
* Push it real good
* Wut
* Double tap
* Move disable logic
* Actually return
* Reinitialize setClick in thread body
* Initialize later so that we actually have nodedb on init
* Fixes
* send ourNodeInfo to channel we got a message we heared someone new
* store node-channel into nodeDB
* use channel from nodeDb to send local messages
* update protobufs
* fmt and fix braces
* respect requested channel for local send, only store channel while getting a nodeinfo packet
---------
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Overhaul smart broadcast with new thresholds
* Fixed badly spelt protos
* That's not the right thing
* Format specifiers
* Fmt
* Units
* Default distance threshold of 100
* Break i2cScan out into a set of classes for scanning i2c
* refactor i2cscan addresses to be structs that allow addressing by port + address
* build whoopsies
* trunk fmt
* trunk fmt
* lost some build fixes from the merge
* more cleaning for build safety, RTC behavior