* Fixes
* Remove BATTERY_LPCOMP_THRESHOLD
BATTERY_LPCOMP_THRESHOLD is dead code — in main-nrf52.cpp it's inside #ifdef BATTERY_LPCOMP_INPUT, which this board intentionally doesn't define. The threshold value is never reached.
* Trunk fix
* Update MotionSensor.cpp
* fix
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
* GPS cache
* trunk and CRLF fix
* Fix GPS.cpp formatting for trunk
* Format GPS.cpp for trunk clang-format
* Show gps model instead of model number
* Potential fix for pull request finding
Useful fix
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Update GPS.cpp
* Update GPS.cpp
* Trunk fix
* Update GPS.cpp
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* True Colors on TFT (Heltec Mesh Node T114, Heltec Vision Master T190, CardPuter Adv, T-Deck, T-Lora Pager)
* Theme support - New and some Classic Themes!
* Colored Compass
---------
Co-authored-by: Jason P <applewiz@mac.com>
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* nodelist screen cleanup
* Update UIRenderer.cpp
* Update src/graphics/draw/UIRenderer.cpp
* removed brackets from hop and made signal mutually exclusive
* Infinite calibration loop fix
* Save calibration
* Screen refresh
* reduce repeated code
* reduce repeated code to reduce flash
* fix Waypoint compass size and no fix no heading labels
* Don't show compass unless we have a heading and location
* If no calculated heading from moving, we should have no heading
* Slow walking calculated heading and auto stale heading when not moving
* Triming flash space
* cleanup
* show "?" when no location or heading for distance and heading screen
* cleanup
* Stale heading logic
* final trim
* Compass Calibration screen redesign
* Trunk Fix
* Compile fix
* patch
* Update src/motion/MotionSensor.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update WaypointModule.cpp
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Nodelist cleanup
* Trunk fix
* getTextWidth cleanup
Updated the lambda to cache width in textW and reuse it instead of repeatedly calling getTextWidth(text) for unchanged text.
* Putting back hopAway ==0 condition as mentioned relayed signal is missleading
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Favorite Signal Quality improvement
* Show Voltage if node shares it.
* Trunk Fix
* Change Favorite tittle to encase name with Asterisks
* Add Pluggin In condition for Battery Line
* Adjust getUptimeStr Prefixes
* Create isAPIConnected for SharedCommon usage
* Correct leftSideSpacing to account for isAPIConnected
---------
Co-authored-by: Jason P <applewiz@mac.com>
* InkHUD: Region Picker on initial setup
* Added Node Config menu with Lora Region Picker
* Role picker
* Preset Picker
* Timezone picker added
* Power save mode and bluetooth configs
* Config section Headers
* Channel Config
* Cleaning some behavior
* Add back to all Options
* Display config added
* Position Toggle added
* Network Config for ESP32
* Wifi details
* Reduce line spacing to fit more content
* Recent list with checkboxes
* Timezone labels easier to understand
* Trunk fix
* Added "Saving Changes" screen when reboot is needed
* Trunk fix
* Make Tips show after first boot if the region is Unset
* Added ResetDB and keep only favorite commands
* quick fix to joystick
* Trunk Fix
* Fix to tips to work with new joystick input
* Added ADC multiplier value display on power config
* added ADC calibration feature
* Fixed missing stray endiff
* GPS toggle now is aware if gps is present.
* Message Bubbles
* Angled edges
* Proper indent for messages inside the bubble
* Fix message header line width
* Correctly calculate text width for the header and shrink Channel Name is on OLED
---------
Co-authored-by: Jason P <applewiz@mac.com>
* Autosave Messages
* fix
* Add logging, code cleanup, and add save on delete.
* We already save as part of delete messages, no need to do it again
* fix spelling errors
* Updating comment
---------
Co-authored-by: Jason P <applewiz@mac.com>
* First try at multimessage storage and display
* Nrf built issue fix
* Message view mode
* Add channel name instead of channel slot
* trunk fix
* Fix for DM threading
* fix for message time
* rename of view mode to Conversations
* Reply in thread feature
* rename Select View Mode to Select Conversation
* dismiss all live fix
* Messages from phone show on screen
* Decoupled message packets from screen.cpp and cleaned up
* Cannedmessage cleanup and emotes fixed
* Ack on messages sent
* Ack message cleanup
* Dismiss feature fixed
* removed legacy temporary messages
* Emote picker fix
* Memory size debug
* Build error fix
* Sanity checks are okay sometimes
* Lengthen channel name and finalize cleanup removal of Broadcast
* Change DM to @ in order to unify on a single method
* Continue unifying display, also show message status on the "isMine" lines
* Add context for incoming messages
* Better to say "in" vs "on"
* crash fix for confirmation nodes
* Fix outbound labels based to avoid creating delays
* Eink autoscroll dissabled
* gating for message storage when not using a screen
* revert
* Build fail fix
* Don't error out with unset MAC address in unit tests
* Provide some extra spacing for low hanging characters in messages
* Reorder menu options and reword Respond
* Reword menus to better reflect actions
* Go to thread from favorite screen
* Reorder Favorite Action Menu with simple word modifications
* Consolidate wording on "Chats"
* Mute channel fix
* trunk fix
* Clean up how muting works along with when we wake the screen
* Fix builds for HELTEC_MESH_SOLAR
* Signal bars for message ack
* fix for notification renderer
* Remove duplicate code, fix more Chats, and fix C6L MessageRenderer
* Fix to many warnings related to BaseUI
* preset aware signal strength display
* More C6L fixes and clean up header lines
* Use text aligns for message layout where necessary
* Attempt to fix memory usage of invalidLifetime
* Update channel mute for adjusted protobuf
* Missed a comma in merge conflicts
* cleanup to get more space
* Trunk fixes
* Optimize Hi Rez Chirpy to save space
* more fixes
* More cleanup
* Remove used getConversationWith
* Remove unused dismissNewestMessage
* Fix another build error on occassion
* Dimiss key combo function deprecated
* More cleanup
* Fn symbol code removed
* Waypoint cleanup
* Trunk fix
* Fixup Waypoint screen with BaseUI code
* Implement Haruki's ClockRenderer and broadcast decomposeTime across various files.
* Revert "Implement Haruki's ClockRenderer and broadcast decomposeTime across various files."
This reverts commit 2f65721774.
* Implement Haruki's ClockRenderer and broadcast decomposeTime across various files. Attempt 2!
* remove memory usage debug
* Revert only RangeTestModule.cpp change
* Switch from dynamic std::string storage to fixed-size char[]
* Removing old left over code
* More optimization
* Free Heap when not on Message screen
* build error fixes
* Restore ellipsis to end of long names
* Remove legacy function renderMessageContent
* improved destination filtering
* force PKI
* cleanup
* Shorten longNames to not exceed message popups
* log messages sent from apps
* Trunk fix
* Improve layout of messages screen
* Fix potential crash for undefined variable
* Revert changes to RedirectablePrint.cpp
* Apply shortening to longNames in Select Destination
* Fix short name displays
* Fix sprintfOverlappingData issue
* Fix nullPointerRedundantCheck warning on ESP32
* Add "Delete All Chats" to all chat views
* Improve getSafeNodeName / sanitizeString code.
* Improve getSafeNodeName further
* Restore auto favorite; but only if not CLIENT_BASE
* Don't favorite if WE are CLIENT_BASE role
* Don't run message persistent in MUI
* Fix broken endifs
* Unkwnown nodes no longer show as ??? on message thread
* More delete options and cleanup of code
* fix for delete this chat
* Message menu cleanup
* trunk fix
* Clean up some menu options and remove some Unit C6L ifdefines
* Rework Delete flow
* Desperate times call for desperate measures
* Create a background on the connected icon to reduce overlap impact
* Optimize code for background image
* Fix for Muzi_Base
* Trunk Fixes
* Remove the up/down shortcut to launch canned messages (#8370)
* Remove the up/down shortcut to launch canned messages
* Enabled MQTT and WEBSERVER by default (#8679)
Signed-off-by: kur1k0 <zhuzirun@m5stack.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
---------
Signed-off-by: kur1k0 <zhuzirun@m5stack.com>
Co-authored-by: Riker <zhuzirun@m5stack.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Correct string length calculation for signal bars
* Manual message scrolling
* Fix
* Restore CannedMessages on Home Frame
* UpDown situational destination for textMessage
* Correct up/down destinations on textMessage frame
* Update Screen.h for handleTextMessage
* Update Screen.cpp to repair a merge issue
* Add nudge scroll on UpDownEncoder devices.
* Set nodeName to maximum size
* Revert "Set nodeName to maximum size"
This reverts commit e254f39925.
* Reflow Node Lists and TLora Pager Views (#8942)
* Add files via upload
* Move files into the right place
* Short or Long Names for everyone!
* Add scrolling to Node list
* Pagination fix for Latest to oldest per page
* Page counters
* Dynamic scaling of column counts based upon screen size, clean up box drawing
* Reflow Node Lists and TLora Pager Views (#8942)
* Add files via upload
* Move files into the right place
* Short or Long Names for everyone!
* Add scrolling to Node list
* Pagination fix for Latest to oldest per page
* Page counters
* Dynamic scaling of column counts based upon screen size, clean up box drawing
* Update exempt labels for stale bot workflow
Adds triaged and backlog to the list of exempt labels.
* Update naming of Frame Visibility toggles
* Fix to scrolling
* Fix for content cutting off when from us
* Fix for "delete this chat" now it does delete the current one
* Rework isHighResolution to be an enum called ScreenResolution
* Migrate Unit C6L macro guards into currentResolution UltraLow checks
* Mistakes happen - restoring NodeList Renderer line
---------
Signed-off-by: kur1k0 <zhuzirun@m5stack.com>
Co-authored-by: Jason P <applewiz@mac.com>
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
Co-authored-by: Riker <zhuzirun@m5stack.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: whywilson <m.tools@qq.com>
Co-authored-by: Tom Fifield <tom@tomfifield.net>
Adding a counter to show the last time a GPS coordinate was detected to ensure the user is aware how long since the coordinate updated or to identify any errors.
* Phone GPS display on Position Screen
This is a PR to show when a phone shares GPS location with the node so you can reliably know what coordinate is being shared with the Mesh.
* Phone GPS display on Position Screen
This is a PR to show when a phone shares GPS location with the node so you can reliably know what coordinate is being shared with the Mesh.
Adding a counter to show the last time a GPS coordinate was detected to ensure the user is aware how long since the coordinate updated or to identify any errors.
* T-watch screen misalignment fix
* Trunk fix
* Rember Last Receipient Node or channel
When a new freetext or preset message is sent and a destination is selected, the next message would forget the previously selected destination and would need to be selected again. With this fix it will remember the last destination selected until changed again.
* Fix for reply function to remember last messaged
* trunk check
---------
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
Co-authored-by: Jason P <applewiz@mac.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Toggle Blutooth with Fn+b shortcut
Problem:
As many are aware, ESP32 devices are known for their high power consumption. For instance, the Heltec ESP32 V3 draws around 110mA when powered on with the screen active and connected to a phone via Bluetooth. The Bluetooth radio alone is responsible for approximately 50mA of that consumption. For keyboard-based standalone devices, which rarely need Bluetooth other than for changing settings, users were forced to keep Bluetooth on regardless of necessity. There was no way to toggle Bluetooth on or off without physically connecting the device to a computer via serial or using the admin channel, which required another node for access.
Solution:
I implemented a new feature that allows users to turn off Bluetooth on keyboard devices by pressing Fn+b and turn it back on when needed. This enhancement significantly improves power efficiency for these devices.
Result:
With Bluetooth off, the device now consumes only 55mA. When combined with Power Save mode, the consumption can drop as low as 11mA, a substantial reduction from the previous 110mA. Users can still easily reconnect to a phone using the shortcut when necessary, offering greater flexibility and extended battery life.
* Remove 1 reboot at least.
I was able to prevent a reboot using the disableBluetooth(); command, current tested at 47-55mA, it doesn't require a reboot to turn off, but it does need reboot to turn back on.
* Update CannedMessageModule.cpp
* Enabling Ve pin on T114
Problem:
The Ve pin was not enabled in the firmware, and it was supposed to control the power to the GPS via the GPS_EN pin. As a result, users were forced to rely on the 3.3V pin to power their additional peripherals, which caused a constant power draw from the battery, even when the node was in deep sleep mode.
Solution:
To resolve this, Todd_Hervert and I decided to remove the GPS power toggle after testing revealed that the GPS only consumes 1mA in soft sleep mode. This minimal power consumption allowed us to enable the Ve pin without causing significant battery drain. Additionally, we added a delay to the I2C initialization process, as the Ve pin requires a few milliseconds to stabilize, which could prevent some peripherals from booting up in time.
Result:
The GPS operates as usual, drawing only 1mA of power.
The keyboard and other peripherals attached to the Ve pin now power off correctly when the node is shut down.
The I2C check initiates without issues after the delay, allowing all peripherals to function smoothly.
* trunk format
---------
Co-authored-by: Tom Fifield <tom@tomfifield.net>