* 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
* Add VALSET commands for u-blox M10 receivers
* Add VALSET commands for u-blox M10 receivers
tweak M8 commands
add comments for VALSET configuration commands
* Add commands to init M10 receivers,
tweak the M8 init sequence, this is a WIP as there are still some issues during init.
Add M10 version of PMREQ.
* Add wakeup source of uartrx to PMREQ_10
The M10 does not respond to commands when asleep,
may need to do this for the M8 as well
* Enable NMEA messages on USB port.
Normally, it is a good idea to disable messages on unused ports.
Native Linux needs to be able to use GNSS modules connected via
via either serial or USB.
In the future I2C connections may be required, but are not enabled for now.
* Save the config for all u-blox receiver types.
The M10 supports this command in addition to saving using
the VALSET commands for the RAM & BBR layers.
* Address Issue #3779 RAK12500 GPS Checksum failures
Remove NMEA sentences that are not processed by TinyGPS++ or Meshtastic.
---------
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
This shaves roughly 60k from firmware builds by not including the Logging Ressource strings. Define in variant.h or architecture.h
Stats from T-ECHO compiles:
Before:
Flash: [======== ] 81.5% (used 664700 bytes from 815104 bytes)
After:
Flash: [======= ] 74.5% (used 606924 bytes from 815104 bytes)
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.
* Make button timing configurable per variant
* Adjust button timing for T-Echo
Easier multi-clicks for features like "toggle backlight" (4x click)
* Fewer full-refreshes for T-Echo display
Disables ghost pixel tracking: T-Echo ghost pixels are fairly faint.
* Updated kbI2cBase.cpp
Updated keyboard settings for t-deck to allow a modifier key to trigger 'tab', mute notifications, or quit. To trigger the modifier press the shift key and mic (0) button at the same time. Then press q (quit), m (mute), or t (tab).
* Update kbI2cBase.cpp
* fixed formatting issues in kbI2cBase.cpp
* Removed keyboard shortcut code that doesnt work
alt+t does not work on a t-deck so I removed it to avoid confusion.
* Updated kbI2cBase.cpp
Updated keyboard settings for t-deck to allow a modifier key to trigger 'tab', mute notifications, or quit. To trigger the modifier press the shift key and mic (0) button at the same time. Then press q (quit), m (mute), or t (tab).
* Update kbI2cBase.cpp
* fixed formatting issues in kbI2cBase.cpp
* Removed keyboard shortcut code that doesnt work
alt+t does not work on a t-deck so I removed it to avoid confusion.
* Changed modifier key to alt+c
* Added screen brightness functionality
Use modifier key with o(+) to increase brightness or i(-) to decrease.
Currently there are 4 levels of brightness, (L, ML, MH, H). I would like to add a popup message to tell you the brightness.
* Added checks to disable screen brightness changes on unsupported hardware
* Setting the brightness code to work on only applicable devices
* Added "function symbol" display to bottom right corner of screen. Now shows when mute is active or modifier key is pressed. Also fixed some other minor issues.
* commented out a log
* Reworked how modifier functions worked, added
I wasn’t happy with my previous implementation, and I think it would have caused issues with other devices. This should work on all devices.
* Added back the function I moved causing issue with versions
* Fixed the version conflicts, everything seems to work fine now
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
* Fix type of nodeNum
Type of nodeNum is NodeNum, not uint
* typo
fixed typo "resumeAdverising()"
* fix missing #include "time.h"
Missing include breaks compilation with gccnoneeabi 12.3.1 for nrf52 targets on windows hosts.
* change type uint to unsigned int
uint is not a standard type. Using uint breaks compilation with gccnoneeabi 12.3.1 for nRF52 targets on windows hosts.
* fix type of channel_num
Type of channel_num should be uint32_t (as this is the type of hash() and numChannels).
Using uint non-standard type uint breaks compilation with gccnoneeabi 12.3.1 for nRF52 targets on windows hosts.
* Update nrf52.ini
Default build type should be "release" as this is the default of platformio.
* Update GPS.cpp
uint to unsigned int
* AdminModule: Publish fixed position updates
Enabled GPS thread when fixed position is updated, to let the GPS thread run once and publish the new fixed position.
Signed-off-by: Andrew Yong <me@ndoo.sg>
* GPS: Consider changes in only altitude as an updated point
Signed-off-by: Andrew Yong <me@ndoo.sg>
---------
Signed-off-by: Andrew Yong <me@ndoo.sg>
* 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>
* add new variant: TWC_mesh_v4
* fix trunk format
* fix format under wsl
* change board to TWC_mesh_v4
* change platformio & variant.h properly
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
The TW region had now power limit set, so defaulted to 16dBm.
The relevant regulation is section 5.8.1 of the Low-power Radio-frequency Devices Technical Regulations, which notes the limits of 0.5W (27dBM) indoor or coastal, 1.0W (30dBM) outdoor.
This patch updates the power limit to 27dbM, using the the lower limit specified in the regulations to be conservative.
Regulation references:
https://www.ncc.gov.tw/english/files/23070/102_5190_230703_1_doc_C.PDF (latest English version)
https://gazette.nat.gov.tw/egFront/e_detail.do?metaid=147283 (latest Chinese version, February 2024)
This enables the node and channel selection to be accessed by pressing the tab shortcut and then swiping between nodes or pressing tab again to change channels.
(To access the tab function look at my other pull request https://github.com/meshtastic/firmware/pull/3668)
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Add ability to turn off status LED blinking
Fixes#3635 and depends on [protobufs PR #485](https://github.com/meshtastic/protobufs/pull/485)
Signed-off-by: Andrew Yong <me@ndoo.sg>
* led_heartbeat_disabled
* trunk
---------
Signed-off-by: Andrew Yong <me@ndoo.sg>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Fix LED pinout for T-Echo board marked v1.0, date 2021-6-28
* Merge PR #420
* Fixed double and missing Default class.
* Use correct format specifier and fixed typo.
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* NeighborInfo: Only keep neighbors in RAM
It fills up quickly when nodes are running >=2.3
* Defer first transmission as it's usually empty
---------
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>
The main use case for this will be to create a custom Heltec WiFi LoRa 32 V3 SG_923 variant, which will be pre-flashed and sent for regulatory approval for retail sale.
Signed-off-by: Andrew Yong <me@ndoo.sg>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* basic identification of TCA9555
* recognise LSM6DS3 on alt address
* keep variant.h changes out of this PR
* 2nd attempt to keep variant.h changes out of this PR
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* fix sleep part 1
* always show wakeup reason in debug log
* fix screen turn on issue
* avoid unnecessary reboot when entering light sleep
* set DIO1 based on radio type
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* started work on pulling in the unphone library and dependencies, to do e.g. power switch management and etc.; currently failing at Adafruit_ImageReader
* now compiles with unphoneLibrary included
* successfully pulled in unphone library to manage power switch and init vibe motor and etc.
doesnt print to serial tho...
* simplified the build a bit; when doing meshtastic do not depend on the MCCI lora libs etc., then also no need to config them via build flags
* version that doesnt trigger brownout
* cleaned up initVariant a little
* note re. GPS
* back to mesh upstream version
* this time we're back to mesh upstream version
* getting LSM6DS3TRC driver installed
* shake to wake works, set threshold quite low may need increasing
* whats the crack with these end of file changes?
* paramatize the wake threshold
* try to get the PR to just include real changes
* got the right config item and also not giving compiler messages
* moved the lib_deps for the LSM6DS3TRC driver from our variant platformio.ini to the main one in root so all boards have it
* stuupid error #define-ing
---------
Co-authored-by: Hamish Cunningham <hamish@gate.ac.uk>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Make ButtonThread instance extern
Previously was a static local instance in setup(). Now declared in ButtonThread.cpp, accessible via extern declaration in ButtonThread.
* Extract attachInterrupt() calls to public method; create matching method for detachInterrupt()
* Change suspension of button interrupts for light-sleep
* Fix declaration for ARCH_PORTDUINO
* Remove LOG_DEBUG used during testing
* Don't assume device has a button..
* Guard entire constructor code
* Don't use BUTTON_PIN with ARCH_PORTDUINO
---------
Co-authored-by: Manuel <71137295+mverch67@users.noreply.github.com>
* - 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>
* Update E-Ink display after sending adhoc ping or disable/enable GPS
* Resume display updates when touch button pressed
* Use touch hold as modifier; change double-click behavior for user button
* Fix preprocessor exclusions
* Purge backlight behavior
* Distinguish between 3x and 4x multi-presses
* Touch button considers "Wake screen on tap or motion" user-setting
* Don't assume device has BUTTON_PIN
* Rename misleading method