* DAC and DB values based on dBm using interpolation
* Moved getDACandDB funtion
Moved getDACandDB funtion up so it won't conflict with RF95_MAX_POWER
* Added DAC output to LOG_INFO
Added DAC output to LOG_INFO
* Make Trunk Happy
* Send NAK on primary if original packet couldn't be decoded
* Add checks for `isDecoded` when accessing `decoded`
* Channel index should be of original packet, not of newly allocated NAK
REGULATORY_GAIN is the total system gain in dBm to subtract from the configured Tx power, to remain within regulatory ERP limit for non-licensed operators.
This value should be set in variant.h and is PA gain + antenna gain (if system ships with an antenna).
This is similar to antenna_gain/NL80211_ATTR_WIPHY_ANTENNA_GAIN/NL80211_ATTR_REG_RULE_POWER_MAX_ANT_GAIN setting in Linux Regulatory/OpenWrt/mac80211/nl80211/iw.
Signed-off-by: Andrew Yong <me@ndoo.sg>
Add REGULATORY_ prefix to LORA_REGIONCODE to prepare for more regulatory configuration options, and update comment block accordingly too.
Signed-off-by: Andrew Yong <me@ndoo.sg>
* DOES NOT WORK
* trunk
* DOES NOT WORK
* trunk
* DOES NOT WORK
* trunk
* WIP: LR11x0 non functional interface code. Please don't expect a working firmware out of this! I don't know what i am doing! :-)
* trunk fmt
* use canon toolchain
* update and fix radiolib dependency
* Switch Radiolib back to GIT checkout
* enable tcxo and fix startReceive
* progress
* Correct midjudgement on scope of build defines.
* - enable peripheral power rail during startup init
- fix portduino builds
* add tracker pinout variant
* update to radiolib 6.6.0 API (aka: godmode is not for mere mortals)
* tracker is not so 'extra' any more
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
by rearranging the arguments to match the expected input order.
The lwip library makes an internal reorder or the arguments
depending on the netmask to work with both ESP and Arduino
platforms.
The input order was incorrect when running on an rp2040 device.
Co-authored-by: Henrik Witt-Hansen <henrik@hardttoolkit.org>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
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.
* 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
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)
* 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>
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>
* 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>
* Adds configuration option to not build/include the webserver.
* Adds configuration option to not build/include the webserver.
* Keep initApiServer when excluding webserver
* fixes for failed formatting check
* Once more with feeling! Fix for regression.
* Fix includes for ARCH_ESP32
* Format changes from trunk
* Merge updates from origin
* Revert "Format changes from trunk"
This reverts commit 436e631774.
* jeez!
* tryfix proto conflict
---------
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
* More comprehensive MQTT thread and queue guards
* Consolidate logic
* Remove channel check
* Check for map_reporting_enabled as well
* Update message
* Remove channel check from here as well
* One liner
* Start the mqtt thread back up when channels change and we want mqtt
* 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>
* Added WebServer/WebServices for Native Linux Meshtastic and web gui
* Fix bug in login functionality
* Added customized config of portdunio.ini with LovyannGFX from marelab repro
* Compile Problem resolved with developer version of LovyanGFX.git
* Compile against dev version
* Fixes to fit into main branch
* Update variant.h, main.cpp, .gitignore, WebServer.cpp, esp32s2.ini, WebServer.h, ContentHandler.cpp, rp2040.ini, nrf52.ini, ContentHelper.cpp, Dockerfile, ContentHandler.h, esp32.ini, stm32wl5e.ini
* Added linux pi std /usr/include dir
* Adding /usr/innclude for Linux compile against native libs that are not hadled by platformio
* Review log level changes & translation
* Update Dockerfile
* Fix Typo & VFS ref. Part1
* Fix Typo & VFS ref.
* Dev Version for ulfius web lib
* Update platformio.ini
* Free VFS path string
* Remove unintended changes
* More unintentional changes
* Make the HTTP server optional on native
* Tune-up for Native web defaults
* Don't modify build system yet
* Remove more unneeded changes
---------
Co-authored-by: marc hammermann <marchammermann@googlemail.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
Such that direct message to MQTT node gets published and we get rid of always rebroadcasting when MQTT is enabled
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.
* 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>
* 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 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
* 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>
* 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 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>
* Update variant.h
Add second i2c channel on external connector for Station G1
* Create trunk-check.yml
* Fix typo in logging
Corrected typo in pb_msgdesc logging for packets failing to be decoded.
---------
Co-authored-by: Ben Meadors <benmmeadors@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
* 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
* try-fix: nodenum crash during boot
* Revert "try-fix: nodenum crash during boot"
This reverts commit 632012e197.
* try-fix: max nodes crash during boot
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>