There are three different frequencies available for Meshtastic
in the Philippines, each with pros and cons:
433 - 434.7 MHz <10 mW erp
868 - 869.4 MHz <25 mW erp
915 - 918 MHz <250 mW EIRP, no external antennna allowed
Philippines may also use LORA_24 unrestricted at up to 10mW, or up to
250mW if there is no external antennna.
Frequency rules in the Philippines are determined by aggregating the
information in laws, following the circulars referenced in the
[National Radio Frequency Allocation Table (NRFAT)](https://ntc.gov.ph/wp-content/uploads/2022/frequencyallocations/NRFAT_Rev_2020.pdf)
and then circulars that amend the circulars referenced in the NRFAT.
A full description of the regulatory basis can be found in the github issue:
https://github.com/meshtastic/firmware/issues/4948#issuecomment-2394926135
For 433MHz and 868MHz we refer to the Low Power Equipment rules for
"Non-specific Short Range Devices, Telemetry, Telecommand, Alarms,
Data In General and Other Similar Applications.".
For 915MHz and Wireless Data Network Services indoor device rules.
A device approved by the NTC is required for any use of Meshtastic
in the Philippines.
fixes https://github.com/meshtastic/firmware/issues/4948
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Previously our debug message for screens blandly stated
"Module wants a UI Frame"
This patch replaces the word Module with the name of the Module
in need of a frame a frame, enhancing debugging ability.
GetTimeSinceMeshPacket was duplicated in PowerTelemetry and
EnvironmentalTelemetry, albeit one had a cooler name than the other.
As we add HealthTelemetry, to avoid creating a third instance of
this method, let's move it somewhere that makese sense.
Adds a new method GetTimeSinceMeshPacket to MeshService and updates
EnvironmentTelemetry and PowerTelemetry to use it.
* added up to 3 channels via userprefs
* added up to 3 channels via userprefs
* added up to 3 channels via userprefs
* trunk fmt
* Added USERPREFS for GPS MODE
* * Adding the -Wcast-align compilation flag for
the rp2040.
* * Some rework to use a struct to access radio data
* Buffer will not be accessed by arithmetic pointer anymore
* * Remplace arithmetic pointer to avoid Warning
* * Avoid 2 little artitmetic pointer
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Potential fix for bad Rx performance on T1000-E
* validate and refactor RF switching, eliminate godmode
---------
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
* Ignore PhoneAPI packet if it's been seen
* ignoramus
* Also keep track of the last 20 packet IDs
* Fill
* Make this match the nimble one
* Add the log too
* Ignore zero ID packets
* Remove message entirely
* TRunkt
* Replace multiple potentially non aligned pointer dereference (#4855)
First step to fix some Crypto crashes or strange behaviors
* Makes the two Crypto byte buffers aligned (#4855)
Fix#4855, and probably multiple Crypto problems depending on hardware
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: GUVWAF <78759985+GUVWAF@users.noreply.github.com>
* Rename message length headers and set payload max to 255
* Add MESHTASTIC_PKC_OVERHEAD
* compare to MESHTASTIC_HEADER_LENGTH
---------
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
* Refactor and consolidate windowing logic
* Trunk
* Fixes
* More
* Fix braces and remove unused now variables.
There was a brace in src/mesh/RadioLibInterface.cpp that was breaking
compile on some architectures.
Additionally, there were some brace errors in
src/modules/Telemetry/AirQualityTelemetry.cpp
src/modules/Telemetry/EnvironmentTelemetry.cpp
src/mesh/wifi/WiFiAPClient.cpp
Move throttle include in WifiAPClient.cpp to top.
Add Default.h to sleep.cpp
rest of files just remove unused now variables.
* Remove a couple more meows
---------
Co-authored-by: Tom Fifield <tom@tomfifield.net>
* Add option to preserve private key for factory reset (config)
* Typo fix
* Copy the key in the right direction, and set the size.
* Don't set the key size back to 0 right after setting it to 32.
* Set the key size before using it to do a memcpy.
* Use the right key_size for backing up private_key
* Don't factoryReset() for a missing nodeDB
* Disable Bluetooth in AdminModule when resetting device settings or nodeDB to avoid race
* Add checks for valid objects before deinit bluetooth
* Add disableBluetooth to handleSetConfig, handleSetModuleConfig, and commit settings
---------
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
* All the debug
* Change `memccpy()` to `memcpy()`
* Brint all the bytes of the MAC Address from the NodeDB
* Check for blank MAC Address in ourown NodeDB entry
* One more `memccpy()`
* Clean-up debug log
---------
Co-authored-by: GUVWAF <thijs@havinga.eu>
* Don't filter PKI packets just for being encrypted.
* Add ok_to_mqtt config and bit
* Bitfield
* Adjust dontmqttmebro logic.
* Manipulate bitfield only in router.cpp
* Want_ack is not want_response
* Bitfield macros
* Use new Bitfield macro in MQTT.cpp
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* tryfix #4384 - don't assume we want that functionality if the Accelerometer was found. This is only for T-Watch
* Add config.display.wake_on_tap_or_motion default to RAK
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Fixes (#3618) by allowing more time for slower requests.
Resolve Syslog not maintaining client causing issues on RAK13800.
Resolve Ethernet static IP setting subnet as gateway IP.
Reduce comment and log message ambiguity around API.
Remove duplicate #if !MESHTASTIC_EXCLUDE_WEBSERVER block.
* Same priority packets processed in enqueue order
* Prefer same prio pkts on mesh over new ones.
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* t3s3 e-paper support
* remove GPS autodetect (which leads to crashes during startup when no GPS present)
* update EINK defines
* keep definitions for external GPS connector but disable GPS auto scan by default
security option. Per discussion in https://github.com/meshtastic/firmware/issues/4375
no need to preserve the old options when changing to this new simpler
single boolean because they were newish, rarely used and only for 'advanced'
developers.
* Initial support for RadioMaster Bandit.
* Different lighting can be made for Button 1 & 2 on the Bandit.
Changes to AmbientLighting will turn off af shutdown().
* Trunk
* Trunk again.
* Update main.cpp
Add in TCXO_OPTIONAL variable for tcxoVoltage and a double-check for working in both modes.
* Update SX126xInterface.cpp
Make a change to the tcxoVoltage setting so that TCXO_OPTIONAL works if defined.
* Update variant.h
Added define for TCXO_OPTIONAL and the tcxoVoltage variable.
Added detail on the compatible boards.
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Thanks to user Goyath on Discord, we discovered that in Japan the
250mW radio level requires licensing, and 20mW is the practical
limit. We also discovered that a duty cycle of 10% is needed on
most frequencies.
CH 24-38 920.5-923.5 20mW no airtime restrictions
CH 39-61 923.5-928.1 20mW 10% airtime
* feature: default to fuzzy GPS location on the Default Channel
* Default to 13
* 13 default
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Add shorterTimeout bool to sendOurNodeInfo
* Respond to likely PKI decode errors with a quick nodeinfo
* Protbufs
* Move to PKI_UNKNOWN_PUBKEY for PKI decode error