* Add the Heltec v4 expansion box.
* Change heltec-v4-oled to heltec-v4.
* Add touchscreen to I2C scanning.
* Add reset and busy pins to the ST7789.
* Ignore the touch interrupt pin and extend the sleep time to 1 hour.
* Remove the default sleep function.
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Add API types, state, and log message in Debug screen
* un-goober the API state tracking
* Set the SerialConsole api_type
* Add api_type for Ethernet
* Remove API state debugging code
* Update wording for client connection states
* Improve string width for smaller screen devices
* Reserve space on navigation bar to fit link indicator
* Add persistent Connected icon to screen
* Connect System frame to ensure text doesn't overflow
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Jason P <applewiz@mac.com>
Co-authored-by: HarukiToreda <116696711+HarukiToreda@users.noreply.github.com>
* Conditionally delete favourited nodes on reset
* trunk fmt
* Fix equality check, use existing macro for role validation
* Extend favourite persistence setting to devices of all roles
* Refactor: Decoupled role/config check and set role defaults appropriately
* Use American-English spelling
* Use existing reference
* Convert reset to bool, regen protos
* Add optional arg to nodedb_reset in favor of additional device setting
* Use correct proto commit ID
* Regen protos
* Log preservation status
* Pull latest from master
This is a non-breaking change that increases the internal representation
of node counts from uint8_t (max 255) to uint16_t (max 65535) to support
larger mesh networks, particularly on ESP32-S3 devices with PSRAM.
Changes:
- NodeStatus: numOnline, numTotal, lastNumTotal (uint8_t -> uint16_t)
- ProtobufModule: numOnlineNodes (uint8_t -> uint16_t)
- MapApplet: loop counters changed to size_t for consistency with getNumMeshNodes()
- NodeStatus: Fixed log format to use %u for unsigned integers
Note: Default class methods keep uint32_t for numOnlineNodes parameter
to match the public API and allow flexibility, even though internal node
counts use uint16_t (max 65535 nodes).
This change does NOT affect protobuf definitions, maintaining wire
compatibility with existing clients and devices.
* External notification module: Adjusted default nag timeout to 5s (from 60s)
* Change nag to 15s
---------
Co-authored-by: Tom Fifield <tom@tomfifield.net>
* Initial work to get NimbleBluetooth working reliably, and cross-task mutexes cleaned up
* Pre-fill toPhoneQueue when safe (during config/nodeinfo): runOnceToPhoneCanPreloadNextPacket
* Handle 0-byte responses breaking clients during initial config phases
* requestLowerPowerConnection
* PhoneAPI: onConfigStart and onConfigComplete callbacks for subclasses
* NimbleBluetooth: switch to high-throughput BLE mode during config, then lower-power BLE mode for steady-state
* Add some documentation to NimbleBluetooth.cpp
* make cppcheck happier
* Allow runOnceHandleToPhoneQueue to tell runOnce to shouldBreakAndRetryLater, so we don't busy-loop forever in runOnce
* Gating some logging behind DEBUG_NIMBLE_ON_READ_TIMING ifdef again; bump retry count
* Add check for connected state in NimBLE onRead()
---------
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
* Add general-purpose packet cache
This commit adds a caching system that will save packet data in a much
more compact form than the regular MeshPacket protobuf. It cannot be
worked with directly to the same degree (although the packet header is
available), but consumes *much* less memory, and as a result can be used
to temporarily store large numbers of packets.
Cached packets can be retrieved either by their (from, id) tuple, or by
their hash.
This cache is a pre-requisite for the upcoming packet replay feature.
* Remove debug initialiser
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fix ordering
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add missing size assignment
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add comments for hash & bucket macros
* Make it clear that this field stores a map of the original data
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Ham Mode ignores region regulatory limits, so regardless of whether
we set a single TX_GAIN_LORA or an array with a non-linear PA,
we shouldn't limit the power.
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>