Compare commits

...

780 commits

Author SHA1 Message Date
Ben Meadors
4d5b500df5
Merge pull request #895 from meshtastic/takv2_geometry
Takv2 geometry (missed commits)
2026-04-16 20:15:41 -05:00
copilot-swe-agent[bot]
793e274f59
Run buf format on atak proto
Agent-Logs-Url: https://github.com/meshtastic/protobufs/sessions/059c2e02-63e3-467d-b032-dc5c15883261

Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com>
2026-04-17 00:56:12 +00:00
Ben Meadors
e5b07ae0b0
Update atak.proto
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-16 19:52:05 -05:00
Ben Meadors
3a398acbff
Update atak.proto
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-16 19:51:52 -05:00
Ben Meadors
3ce7c51068 Rename Environment -> TAKEnvironment to avoid SwiftUI collision
The bare `Environment` message name clashes with SwiftUI's `@Environment`
property wrapper, which is used by every SwiftUI view in an iOS consumer
app. Importing the generated proto module (e.g. `MeshtasticProtobufs`)
made `Environment` ambiguous in all 78 files of Meshtastic-Apple that
reference `@Environment(\.scenePhase)` or similar, breaking the build.

Field name `environment` on TAKPacketV2 stays unchanged — only the
message type is renamed. Wire format is unaffected (proto3 encodes by
tag number, not type name), but all generated code and source-level
references must be regenerated.

The `TAK` prefix matches the convention used by the outer TAKPacketV2
wrapper and is unambiguous across Swift (no SwiftUI/WeatherKit clash),
Kotlin, Python, TypeScript, and C# targets.
2026-04-16 11:01:59 -05:00
Ben Meadors
da33d0ea72 Add Environment and SensorFov annotations to TAKPacketV2
Two new top-level optional fields at tags 25 and 26 that attach to any
payload_variant. Environment carries weather readings from <environment>
CoT detail elements (temperature, wind direction, wind speed). SensorFov
carries the 8 geometry attributes of ATAK-CIV's <sensor> element (type,
azimuth, range, horizontal and vertical FOV, elevation, roll, model),
dropping the 9 display-only attributes (fovAlpha/RGB, strokeColor/Weight,
hideFov, fovLabels, displayMagneticReference, rangeLines) that are
receiver-side render hints.

Units are chosen for compact varint encoding and parity with existing
fields: temperature in deci-degrees Celsius (sint32), wind speed in cm/s
to match TAKPacketV2.speed, all angles as whole degrees.

Tags 27-29 reserved for future annotations before the payload_variant
oneof resumes at tag 30.
2026-04-16 11:01:59 -05:00
Ben Meadors
052a9fa4bf Add v2.x medline extensions and ZMistEntry message to CasevacReport 2026-04-16 11:01:59 -05:00
Ben Meadors
c9067dae4a
Merge pull request #894 from meshtastic/more-remoteshell
Add two more RemoteShell fields
2026-04-15 11:11:39 -05:00
Jonathan Bennett
7900e5d2dd Add two more RemoteShell fields 2026-04-14 18:44:46 -05:00
Thomas Göttgens
940ac382a7
add THINKNODE device IDs (#893) 2026-04-14 14:51:23 +02:00
oscgonfer
a045501ea8
Multiple one wire channels (#886)
* Add DS248X bridge
* One wire temperature for multiple channels
2026-04-14 13:52:08 +02:00
Jonathan Bennett
98e95eeaa2
Remote Shell Protobufs (#892)
* Add initial dmshell
* Remove unused code
* Internally use RemoteShell
* Formatting fix
* Clarify comment for REMOTE_SHELL_APP

Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
2026-04-14 12:35:13 +02:00
Ben Meadors
0e5eab17af
Takv2 geometry and other structures (#891) 2026-04-14 12:33:08 +02:00
oscgonfer
a4c649bd3e
Add DS248X bridge (#885) 2026-04-10 13:26:49 +02:00
Ben Meadors
e30092e616
Merge pull request #887 from meshtastic/tak_v2
Add ATAK Plugin TAKPacket V2 protobufs and expand CoT enums
2026-04-08 10:08:17 -05:00
Ben Meadors
60842c1728 Busted 2026-04-08 09:30:59 -05:00
Ben Meadors
1e932be09b Add additional CotType enums for aircraft, ground units, and other data messages 2026-04-08 07:36:27 -05:00
Ben Meadors
dd951d7796 Add ATAK Plugin V2 protobufs and expand CoT enums 2026-04-06 20:32:31 -05:00
Ben Meadors
349c1d5c1e
Merge pull request #884 from SeeedZhangyh/AddHardwareModel
Some checks are pending
Push commit to schema registry / Push to schema registry (push) Waiting to run
Add Hardware Model for T1000-E-Pro
2026-04-03 19:46:58 -05:00
SeeedZhangyh
1cd2e56ca2 Add Hardware Model for T1000-E-Pro 2026-04-03 14:57:52 +08:00
Ben Meadors
cb1f89372a
Merge pull request #878 from Quency-D/mesh-node-t096
Some checks failed
Push commit to schema registry / Push to schema registry (push) Has been cancelled
add heltec-mesh-node-t096 board
2026-03-22 06:34:55 -05:00
Tom Fifield
ee7df89f3e
Merge pull request #879 from danditomaso/fix/update-rust-deps-cve
Update prost dependencies to 0.14.3 to address known CVE
2026-03-21 19:47:19 +11:00
Dan Ditomaso
4c3fe0cf08
Update prost dependencies to 0.14.3 to address known CVE
Bump prost and prost-types from 0.13.3 to 0.14.3 along with
all transitive dependency updates to resolve a known security
vulnerability in the Rust protobuf stack.
2026-03-20 22:30:47 -04:00
Quency-D
45a2d2dc8b Correct the enumeration value. 2026-03-19 17:27:08 +08:00
Quency-D
8436e98fcf add heltec-mesh-node-t096 board 2026-03-19 16:51:46 +08:00
Ben Meadors
eba2d94c8d
Merge pull request #873 from fablabbcn/enhancement/sht-sensor-consolidation
Enhancement/sht sensor consolidation
2026-03-17 13:11:01 -05:00
Ben Meadors
bc8e63833a
Merge pull request #876 from DasAuryn/add-groupalarm-portnum
Add GroupAlarm app portnum
2026-03-17 06:44:16 -05:00
DasAuryn
313b9ee168 Add GroupAlarm app portnum 2026-03-17 09:08:35 +01:00
oscgonfer
29a82c7b63 Add admin command for SHT accuracy setting 2026-03-08 12:37:24 +01:00
oscgonfer
a4234ead1d Add TODO - REMOVE on SHT31, SHT4X, SHT21 and SHTC3 2026-03-08 11:23:46 +01:00
Ben Meadors
cdde2876be
Merge pull request #872 from meshtastic/tdisplay-s3-pro
Add LilyGo T-Display S3 Pro HW-ID
2026-03-07 20:22:00 -06:00
oscgonfer
bfbd52b9fc Add SHTXX TelemetrySensorType 2026-03-07 22:28:17 +01:00
Manuel
0cc9cb224e fix formatting 2026-03-07 17:12:43 +01:00
Manuel
109ea16d17 add LilyGo T-Display S3 Pro 2026-03-07 17:08:37 +01:00
oscgonfer
c45c4eb0cb
Merge pull request #2 from meshtastic/master
[pull] master from meshtastic:master
2026-03-06 19:33:41 +01:00
Ben Meadors
2edc5ab7b1
Merge pull request #871 from meshtastic/LPW-bridge
Add LORAWAN_BRIDGE enum value to portnums.proto
2026-03-05 05:46:01 -06:00
Thomas Göttgens
dee56bac97
Add LORAWAN_BRIDGE enum value to portnums.proto 2026-03-05 11:56:15 +01:00
Quency-D
a229208f29
Add the LORA FEM control variable. (#869) 2026-03-03 10:30:14 +01:00
Ben Meadors
f7f7c8d2e4
Merge pull request #866 from niccellular/feature/tak-atak-config
enhancement: Add ATAKConfig for on-device TAK team/role config
2026-02-24 14:10:04 -06:00
niccellular
03b5089b40 enhancement: Add TAKConfig message for on-device TAK team/role configuration
Add TAKConfig to ModuleConfig with Team and MemberRole fields,
allowing TAK_TRACKER devices to configure ATAK group settings
instead of using hardcoded defaults.

- module_config.proto: TAKConfig message (team, role) at oneof field 16
- localonly.proto: tak field at position 17 in LocalModuleConfig
- admin.proto: TAK_CONFIG = 15 in ModuleConfigType enum

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 09:12:53 -05:00
oscgonfer
589c1cce89
Merge pull request #1 from meshtastic/master
[pull] master from meshtastic:master
2026-02-21 20:06:16 +01:00
Manuel
93bee530c3
add T-mini epaper s3 kit HW id (#863)
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
2026-02-21 08:36:45 +01:00
Ben Meadors
cb07ce2b30
Merge pull request #864 from vidplace7/TBEAM_BPF
Add LilyGo T-Beam BPF
2026-02-20 18:41:31 -06:00
Austin Lane
fe66d9f525 Add LilyGo T-Beam BPF
The first/only 144-148Mhz device (for hams)
2026-02-20 19:35:11 -05:00
oscgonfer
44298d374f
Add SCD30 CO2 sensor (#861) 2026-02-12 19:09:02 +01:00
Ben Meadors
e1a6b3a868
Merge pull request #849 from h3lix1/traffic_management
Add protobufs for a in-development traffic management module.
2026-02-10 14:12:34 -06:00
Clive Blackledge
4eca1c78a8 buf format updates. 2026-02-10 11:49:22 -08:00
Ben Meadors
27591d98c4
Merge pull request #859 from meshtastic/st31
Add STC31 CO2 sensor to TelemetrySensorType enum
2026-02-09 13:46:00 -06:00
Ben Meadors
53d91d47ef Add STC31 CO2 sensor to TelemetrySensorType enum 2026-02-09 13:42:13 -06:00
Ben Meadors
4256cdf4c9
Merge pull request #845 from yarbschris/dev/HDC1080
Add HDC1080 to telemetry protobuf
2026-02-09 13:40:03 -06:00
Ben Meadors
c4f21810b1
Merge branch 'master' into dev/HDC1080 2026-02-09 13:39:54 -06:00
Ben Meadors
1551b2e6e7
Merge pull request #855 from Tomas-Kuchta-FPV/master
Add SHT21 sensor to TelemetrySensorType
2026-02-09 13:39:15 -06:00
Ben Meadors
5dd27945d2
Fix comment formatting for SHT21 sensor 2026-02-09 13:38:59 -06:00
Ben Meadors
e2d1873a6f
Merge pull request #858 from danditomaso/fix/jsr-import-extensions
Fix JSR publish by adding .ts import extensions
2026-02-07 13:43:03 -06:00
Dan D
2062d43158
Fix JSR publish by adding .ts import extensions to protobuf codegen
The bufbuild/es plugin generates imports without file extensions,
which fails JSR's Deno-style module resolution (TS2307). Adding
import_extension=.ts ensures all generated _pb.ts files use
explicit .ts extensions in their relative imports.
2026-02-07 14:22:55 -05:00
Ben Meadors
e80cb2e410
Merge pull request #853 from danditomaso/ci/publish-workflow-updates
Refactor CI publish workflow and remove Rust support
2026-02-06 13:56:07 -06:00
Ben Meadors
cba89ee2e9
Merge pull request #856 from meshtastic/bubbles
Bubbles pref
2026-02-06 08:58:27 -06:00
Ben Meadors
8316651be1 Fmt 2026-02-06 08:51:34 -06:00
Ben Meadors
9f6cf6dcc1 Bubbles pref 2026-02-06 06:45:49 -06:00
yarbschris
862f87835e Fix formatting 2026-02-05 15:55:35 -06:00
Christopher Yarbro
cd38d477ab
Merge branch 'meshtastic:master' into dev/HDC1080 2026-02-05 15:52:57 -06:00
Tomas Kuchta
d8a9f035e5 Add SHT21 sensor to TelemetrySensorType 2026-02-04 14:58:28 +01:00
Dan Ditomaso
491783b164
Update .github/workflows/publish.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-01 09:58:03 -05:00
Dan Ditomaso
518f8e6fb3
Update .github/workflows/publish.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-01 09:57:29 -05:00
Clive Blackledge
2fe13dbe06 Fixed misplaced comment after merge 2026-01-31 09:22:19 -08:00
Clive Blackledge
55a3604fac Same here 2026-01-31 09:17:45 -08:00
Clive Blackledge
780863b1ed Removed dry_run before potential release. There was no easy way to get these metrics. 2026-01-31 09:17:45 -08:00
Clive Blackledge
8b0cdd20f3 Fixing naming for traffic_management.nodeinfo_direct_response_min_hops to traffic_management.nodeinfo_direct_response_max_hops 2026-01-31 09:17:45 -08:00
Clive Blackledge
7a1b5b683d Hopefully last name change 2026-01-31 09:17:45 -08:00
Clive Blackledge
693aaa395b Update zero_hop_telemetry / zero_hop_position 2026-01-31 09:17:45 -08:00
Clive Blackledge
84a2603037 Minor wording updates 2026-01-31 09:17:45 -08:00
Clive Blackledge
542285b5d0 More comments 2026-01-31 09:17:45 -08:00
Clive Blackledge
4fbac7db2b Updated probufs with more comments per submit requirement. 2026-01-31 09:17:45 -08:00
Clive Blackledge
e2daf8d914 Add module traffic_management protobufs 2026-01-31 09:17:45 -08:00
Dan D
9f65fd00e7
Fix comment indentation in telemetry.proto 2026-01-30 15:20:32 -05:00
Dan D
c84d2440ff
Ignore generated protobuf files in packages/ts/lib/ 2026-01-30 15:14:46 -05:00
Ben Meadors
bc63a57f9e
Merge pull request #750 from fablabbcn/feat/sen5x-state-protoa
feat/sen5x-state-proto
2026-01-27 07:34:29 -06:00
Dan D
5fced3fa92
Move generated protobuf files from meshtastic/ to lib/ root 2026-01-22 23:04:17 -05:00
Dan D
cfa561adae
Add debug output to diagnose missing lib files 2026-01-22 23:00:28 -05:00
Dan D
41b270cff0
Remove Rust plugins from buf code generation 2026-01-22 22:48:10 -05:00
Dan D
649568805f
Remove Rust/Cargo publishing from workflow 2026-01-22 22:46:18 -05:00
Dan D
84f8569c9e
Rename ci.yml to schema-registry.yml for clarity 2026-01-22 22:21:08 -05:00
Dan D
441e4b4852
Refactor publish workflow with separate build jobs and dry run support
- Add dry_run input for testing without publishing
- Split into separate jobs: codegen, build-typescript, build-rust
- Add tsdown build step for ESM-only NPM package
- Create release zip artifacts for NPM, JSR, and Rust packages
- Upload zip assets to GitHub releases
- Use OIDC authentication for JSR publishing (npx jsr publish)
- Add explicit permissions for id-token write
2026-01-22 22:19:26 -05:00
Jonathan Bennett
77c8329a59
Add missed StatusMessage protobufs, mainly for config (#847)
* Add missed StatusMessage protobufs, mainly for config

* format fix
2026-01-20 07:54:12 -06:00
oscgonfer
32906d5cdd Format 2026-01-20 10:02:21 +01:00
Ben Meadors
d9003b2b6c
Merge pull request #846 from RCGV1/noise-floor
Add noise_floor float field to LocalStats message
2026-01-19 12:06:27 -06:00
Ben Meadors
3193bab2c9
Change noise_floor type from float to int32 2026-01-19 12:05:33 -06:00
Ben Meadors
bbde30a0b9
Merge pull request #848 from erayd/status-message-config-bugfix
[Bugfix] Use correct option name
2026-01-19 05:43:36 -06:00
Steve Gilberd
152bab3589
Fix option name to prevent build failure in firmware 2026-01-19 18:13:18 +13:00
Jonathan Bennett
19c4833930
Add StatusMessage message and portnum (#835) 2026-01-17 15:50:12 -06:00
Benjamin Faershtein
1b1dc090ef Add noise_floor float field to LocalStats message 2026-01-17 09:53:09 -08:00
oscgonfer
af5d147428 Fix numbering in sensor config 2026-01-17 13:12:01 +01:00
Christopher Yarbro
c42f97a381 Add HDC1080 to telemetry protobuf 2026-01-16 12:27:47 -06:00
oscgonfer
e29cc1c7af Merge branch 'master' into feat/sen5x-state-proto 2026-01-15 13:05:38 +01:00
Ben Meadors
c8d5047b63
Merge pull request #844 from meshtastic/t5s3-hwid
Add T5 S3 ePaper Pro HW-ID
2026-01-13 11:57:55 -06:00
Manuel
6c79c8be71
Add T5 S3 ePaper Pro HW-Id mesh.proto 2026-01-13 16:20:13 +01:00
Tom Fifield
547a7d8033
Merge pull request #843 from compumike/compumike/update-client-base-description-to-router-late
(Updated comment only.) `CLIENT_BASE` now acts as `ROUTER_LATE`, not `ROUTER`
2026-01-13 15:50:52 +11:00
Mike Robbins
e3d3abccc3 (Updated comment only.) CLIENT_BASE now acts as ROUTER_LATE, not ROUTER 2026-01-12 22:19:58 -05:00
Ben Meadors
61219de748
Merge pull request #842 from meshtastic/rcarteraz-patch-2
Add T-Beam 1W
2026-01-12 15:37:21 -06:00
Ben Meadors
786f3bbf98
Fix comment formatting in mesh.proto 2026-01-12 15:36:39 -06:00
rcarteraz
4c82a2f39d
Add T-Beam 1W 2026-01-12 14:02:04 -07:00
Ben Meadors
aa48faf5b5
Merge pull request #841 from DaneEvans/feat/serialModes_LOG
Serial modes - Logging
2026-01-11 05:26:08 -06:00
Dane
76cca14026 formatting 2026-01-11 17:28:18 +11:00
Dane
8816b4715d add logging modes. 2026-01-11 17:26:39 +11:00
Ben Meadors
1a63a3d0d2
Merge pull request #840 from fablabbcn/enhancement/module-config-air-quality-screen
Add module config to enable air quality on screen
2026-01-10 05:17:15 -06:00
Ben Meadors
53911db9a0 Format 2026-01-10 05:16:51 -06:00
Ben Meadors
a7bbad173d Format 2026-01-10 05:16:40 -06:00
Ford Jones
9cb373751b
Mute: Nodes (#838)
* Add tags for toggling mute state

* Adds mute flag to protobuf for use in clients

* Adds mute flag to lite (device only) protobuf

* Prefer bitmask usage over new boolean

* Remove trailing newline in mesh.proto

---------

Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
2026-01-09 11:26:36 -06:00
Ben Meadors
266bc5ab05
Merge branch 'master' into enhancement/module-config-air-quality-screen 2026-01-08 06:03:30 -06:00
Ben Meadors
4ed2d1a35e
Merge pull request #839 from meshtastic/jp-bennett-patch-6
Add MESHSTICK_1262 identifier to mesh.proto
2026-01-08 04:58:17 -06:00
Jonathan Bennett
c4eab768ad
Add MESHSTICK_1262 identifier to mesh.proto 2026-01-07 22:49:52 -06:00
oscgonfer
8f95d7f451 Add module config to enable air quality on screen 2026-01-07 12:35:49 +01:00
Ben Meadors
c2e45a3fc9
Merge pull request #834 from meshtastic/jp-bennett-patch-6
Add PKI_SEND_FAIL_PUBLIC_KEY error code
2026-01-02 05:44:19 -06:00
Jonathan Bennett
8a11244539
Add PKI_SEND_FAIL_PUBLIC_KEY error code
Add new error code for PKI encryption failure due to missing public key.
2026-01-01 22:26:59 -06:00
Ben Meadors
62626b7cc5
Merge pull request #833 from meshtastic/t-echo-plus
T-Echo Plus
2026-01-01 07:01:30 -06:00
Ben Meadors
ef35af8af7 T-Echo Plus 2025-12-31 20:42:24 -06:00
James Rich
96d30609db
Merge pull request #829 from meshtastic/meshtastic-ota 2025-12-30 11:20:09 -06:00
James Rich
64ccad6007
Fix formatting to appease buf 2025-12-30 10:54:27 -06:00
Jonathan Bennett
f78b3f0dcc
Add chain_count field to mesh.proto (#828)
* Add chain_count field to mesh.proto

Added chain_count field to specify message position in LINK_REQUEST.

* Fix formatting in mesh.proto
2025-12-29 07:50:01 -06:00
Jake-B
4b9f104a18 AdminMessage fixes for OTA 2025-12-27 08:16:28 -05:00
Jake-B
c39b564ca6 Added AdminMessage.ota_hash to verify OTA data 2025-12-25 11:59:14 -05:00
Ben Meadors
c474fd3f49
Merge pull request #823 from meshtastic/reboot-ota-mode
Add reboot_ota_mode to AdminMessage for OTA firmware updates
2025-12-20 07:53:37 -06:00
Ben Meadors
f28d17eba1 Buf fixes 2025-12-20 07:14:45 -06:00
Ben Meadors
0ef2bdf6a3 Hopefully fix buf build 2025-12-20 06:41:32 -06:00
Ben Meadors
48ad883120 Add buf ignores 2025-12-19 20:11:20 -06:00
Ben Meadors
8078b27a19 Deprecate 2025-12-19 19:35:46 -06:00
Ben Meadors
f6b116ef65 Add reboot_ota_mode to AdminMessage for OTA firmware updates 2025-12-19 19:29:37 -06:00
Ben Meadors
62ef17b3d1
Merge pull request #822 from meshtastic/sfpp
Add Store and Forward PlusPlus
2025-12-17 15:26:56 -06:00
Jonathan Bennett
fba255d1b2 Add Store and Forward PlusPlus 2025-12-15 23:21:11 -06:00
Ben Meadors
9beb80f1d3
Merge pull request #821 from meshtastic/deprecate-long-slow
Deprecate LONG_SLOW preset
2025-12-15 19:39:44 -06:00
Ben Meadors
aeee7f08e6
Deprecate LONG_SLOW preset
Mark LONG_SLOW as deprecated in the config.proto file.
2025-12-15 19:28:31 -06:00
Ben Meadors
1cf2783bdb
Merge pull request #820 from meshtastic/jp-bennett-patch-4
Add LONG_TURBO preset to config.proto
2025-12-15 16:33:56 -06:00
Jonathan Bennett
2567b7aa4e
Update LONG_TURBO comment in config.proto
Removed comment about legality of 250Khz channels.
2025-12-15 16:08:51 -06:00
Jonathan Bennett
0921984572
Fix typo in config.proto comment 2025-12-15 15:49:54 -06:00
Jonathan Bennett
6f437dd699
Add LONG_TURBO preset to config.proto
Added LONG_TURBO preset for long-range communication.
2025-12-15 15:46:49 -06:00
Ben Meadors
4095e59890
Merge pull request #819 from meshtastic/rcarteraz-patch-2
Rename RESERVED_FRIED_CHICKEN to MUZI_BASE
2025-12-05 10:37:35 -06:00
rcarteraz
45f9a558b1
Rename RESERVED_FRIED_CHICKEN to MUZI_BASE 2025-12-05 09:32:09 -07:00
Thomas Göttgens
52fa252f1e
Add Thinknode M4 and M6 to the equasion (#815) 2025-11-21 10:55:44 +01:00
Ben Meadors
7eb3258fa0
Merge pull request #811 from andrewdavidmackenzie/master
Describe further the "to" field in MeshPacket
2025-11-18 18:45:36 -06:00
Ben Meadors
a34428168d
Merge pull request #812 from meshtastic/jp-bennett-patch-4
Add Device ID for RAK6421 Hat in mesh.proto
2025-11-18 18:45:01 -06:00
Jonathan Bennett
e1b5aaedff
Add Device ID for RAK6421 Hat in mesh.proto 2025-11-18 18:01:08 -06:00
Andrew Mackenzie
29c5f6efdc Describe further the "to" field in MeshPacket, and the special case of when it is set top the maximum value permitted by a 32 bit integer. 2025-11-14 12:05:55 +01:00
Ben Meadors
7654db2e2d
Merge pull request #791 from ford-jones/8226-persisted-favorites
Optionally preserve favorite nodes during a nodedb reset
2025-11-06 06:39:02 -06:00
Ben Meadors
fbe1538c21
Merge pull request #801 from DanielCao0/master
Add WISMESH_TAP_V2 and RAK3401 hardware models to mesh.proto
2025-10-31 05:58:20 -05:00
Daniel
404532984c Add WISMESH_TAP_V2 and RAK3401 hardware models to mesh.proto 2025-10-31 15:51:29 +08:00
ford-jones
83ddaf8b24 Merge branch 'master' of https://github.com/meshtastic/protobufs into 8226-persisted-favorites 2025-10-21 15:32:18 +13:00
Ben Meadors
bf149bbdcc
Merge pull request #796 from meshtastic/jp-bennett-patch-3
Add THINKNODE_M3 identifier to mesh.proto
2025-10-18 18:22:34 -05:00
Jonathan Bennett
29242517f3
Add THINKNODE_M3 identifier to mesh.proto 2025-10-18 13:34:41 -05:00
Tom Fifield
4a618380a0
Merge pull request #795 from pa0lin082/bh1750
Add BH1750 sensor
2025-10-18 09:30:47 +11:00
Paolo Leggio
1f616fff30
Added BH1750 sensor 2025-10-16 13:44:32 +02:00
ford-jones
a916c49299 Merge https://github.com/meshtastic/protobufs into 8226-persisted-favorites 2025-10-13 11:27:38 +13:00
ford-jones
68dee221b2 Convert reset tag to bool in favor of additional settings 2025-10-12 17:01:32 +13:00
ford-jones
38d0665011 Use American-English spelling 2025-10-11 13:47:56 +13:00
Ben Meadors
38638f19f8
Merge pull request #792 from meshtastic/channel_mute_updates
Finalize channel is_muted re-work
2025-10-10 08:26:04 -05:00
Jason P
de145b5211 Finalize channel is_muted work 2025-10-10 08:17:29 -05:00
ford-jones
9adb17d940 New setting for persisting favourite nodes 2025-10-11 00:17:27 +13:00
Ben Meadors
cd5c83a728
Merge pull request #790 from danditomaso/ci/jsr-publish-pipeline
ci: fix publish github action workflow for publishing to JSR, Cargo, …
2025-10-09 20:08:57 -05:00
Dan Ditomaso
caecabe257
Merge branch 'master' into ci/jsr-publish-pipeline 2025-10-09 16:36:52 -04:00
Ben Meadors
ef173e3214
Merge pull request #789 from meshtastic/fix/buf-build 2025-10-08 19:14:16 -05:00
James Rich
1db971af72
Add ignore option for FILE_OPTION_CHANGED
Explicitly ignore that we changed the `java_package` - we know, bro, it was on purpose.

This is to handle the `buf` build errors introduced in #788.
2025-10-08 18:36:10 -05:00
Dan Ditomaso
e925e2b201 ci: fix publish github action workflow for publishing to JSR, Cargo, and NPM 2025-10-08 17:39:16 -04:00
Ben Meadors
fecb769415
Merge pull request #788 from meshtastic/java_package
Change java package to `org.meshtastic.proto`
2025-10-08 11:56:52 -05:00
Phil Oliver
dbbd7f6b04 Change java package to org.meshtastic.proto 2025-10-08 12:33:28 -04:00
Ben Meadors
a1b8c3d171
Merge pull request #787 from GUVWAF/txDrop
Add number of dropped packets to LocalStats
2025-10-04 05:24:27 -05:00
GUVWAF
7f1110dd77 Add number of dropped packets to LocalStats 2025-10-04 12:02:16 +02:00
Ben Meadors
c1e31a9655
Merge pull request #786 from meshtastic/danish
MUI: add danish language enum
2025-10-03 06:08:49 -05:00
mverch67
8885b0d9f2 MUI: add danish language enum 2025-10-03 12:24:14 +02:00
Jonathan Bennett
60c3e6600a
Add manually_verified bit to SharedContact (#785) 2025-10-01 14:40:13 -05:00
Ben Meadors
394268b02e
Merge pull request #784 from meshtastic/t-watch-ultra
add T-Watch Ultra hardware model
2025-09-30 13:43:12 -05:00
mverch67
cea982891f add T-Watch Ultra hardware model 2025-09-30 20:40:14 +02:00
Jonathan Bennett
5fa4c44d91
Rename R1_NEO (#782) 2025-09-30 13:28:36 -05:00
Ben Meadors
082bb7cfeb
Merge pull request #780 from meshtastic/deprecate-repeater
Deprecate REPEATER role
2025-09-28 06:49:31 -05:00
Tom Fifield
805e5e7c00
Merge pull request #769 from ford-jones/7943-mute-target
Mute: channels
2025-09-28 07:12:14 +10:00
Ben Meadors
1a3364a8a0
Deprecate REPEATER role
Mark REPEATER role as deprecated in config.proto
2025-09-26 06:00:16 -05:00
ford-jones
91909ce946 run buf format 2025-09-23 14:59:32 +12:00
ford-jones
c6a06d51ec Merge branch '7943-mute-target' of https://github.com/ford-jones/protobufs into 7943-mute-target 2025-09-23 14:59:10 +12:00
ford-jones
08bd3380e7 run buf format 2025-09-23 14:58:37 +12:00
ford-jones
38f77b20f8 Fix formatting 2025-09-23 12:11:32 +12:00
ford-jones
5157e3702a Merge branch '7943-mute-target' of https://github.com/ford-jones/protobufs into 7943-mute-target 2025-09-23 11:47:06 +12:00
ford-jones
9b3643e4aa Decouple node-mute from channel-mute 2025-09-23 11:46:10 +12:00
ford-jones
cf496532b8 Merge branch 'master' of https://github.com/meshtastic/protobufs into 7943-mute-target 2025-09-22 15:14:06 +12:00
Ben Meadors
46b81e822a
Merge pull request #777 from meshtastic/telemetry-opt-in
Add device_telemetry_enabled to force opt-in of device telemetry broadcasts
2025-09-19 11:09:47 -05:00
Ben Meadors
6a8b80a108 Needs one value 2025-09-19 08:25:43 -05:00
Ben Meadors
0a0c0ab361 Add device_telemetry_enabled to force opt-in of device telemetry broadcasts to the mesh 2025-09-18 18:49:31 -05:00
Ben Meadors
27d9a99bd0
Merge pull request #768 from l0g-lab/node_name_length
add node_name_length option
2025-09-18 18:39:35 -05:00
Ben Meadors
34d31aeea5
Merge pull request #776 from WillyJL/feat/m5stack-cardputer-adv
Add hardwareModel for M5Stack Cardputer Adv
2025-09-18 18:38:49 -05:00
Ben Meadors
d965965c33
Merge pull request #774 from meshtastic/maidenhead_locator
Move GpsCoordinateFormat gps_format And enum GpsCoordinateFormat to Device_UI Protobuf, Add Maidenhead Option
2025-09-18 18:37:59 -05:00
Ben Meadors
1d9082b277 I changed my mind. Let's just deprecate the enum too 2025-09-18 18:37:23 -05:00
Ben Meadors
58e974544d Revert "Finalize move to Device_UI"
This reverts commit 99bdcfdbfe.
2025-09-18 18:34:52 -05:00
Jason P
74b16a5bd3 Add int_size 8 for gps_format 2025-09-16 12:00:47 -05:00
Jason P
375fab79d4 Attempt to fix formatting issues 2025-09-16 08:56:43 -05:00
Jason P
99bdcfdbfe Finalize move to Device_UI 2025-09-16 08:45:08 -05:00
Jason P
804a06ae4e Move from DisplayConfig to Device_UI 2025-09-16 08:22:53 -05:00
ford-jones
dae16e8b42 Merge https://github.com/meshtastic/protobufs into 7943-mute-target 2025-09-16 19:25:39 +12:00
WillyJL
d4d1508708
Add hardwareModel for M5Stack Cardputer Adv 2025-09-15 22:49:58 +02:00
Jonathan Bennett
945b796a98
Add hardwareModel for M5stack c6l (#775)
* Add hardwareModel for M5stack c6l

* Update comment to match enum

* Update mesh.proto
2025-09-15 15:33:11 -05:00
oscgonfer
28f01f2c3c Merge branch 'master' into feat/sen5x-state-proto 2025-09-14 17:13:40 +02:00
ford-jones
314f80bc6f Update comment 2025-09-14 17:41:11 +12:00
Jason P
2fb76bc70b Shorten Protobuf to match others 2025-09-13 18:07:55 -05:00
Jason P
c5af2d77d8 Fix formatting 2025-09-13 18:06:31 -05:00
Jason P
b90ea12cc8 Add Maidenhead Protobuf 2025-09-13 17:18:46 -05:00
ford-jones
e8d10fe478 Remove trailing whitespace 2025-09-13 17:48:58 +12:00
ford-jones
080fd3b0d1 Revert previous commit - this needs it's own proto 2025-09-13 17:44:41 +12:00
ford-jones
e5abb26b83 Make use of pre-existing channel_settings.module_settings.is_client_muted setting 2025-09-13 13:30:54 +12:00
ford-jones
a8f3ee5b01 Merge branch '7943-mute-target' of https://github.com/ford-jones/protobufs into 7943-mute-target 2025-09-11 21:47:58 +12:00
ford-jones
6fa4def971 Added muted state to node info 2025-09-11 20:16:08 +12:00
ford-jones
b7e0ef2ec7 Added mute state to channel settings 2025-09-11 20:11:16 +12:00
ford-jones
638917dea8 Added mute state to nodedb entries 2025-09-11 17:31:36 +12:00
ford-jones
550702a695 Added mute state to channel settings 2025-09-11 14:17:24 +12:00
l0g-lab
bb1a5d09bc add node_name_length option 2025-09-10 18:20:40 -04:00
Ben Meadors
8caf423964
Merge pull request #767 from meshtastic/czech-mui
Add Czech translation enum for MUI
2025-09-08 16:50:32 -05:00
Manuel
96ef7eef7a add Czech translation enum to MUI 2025-09-08 20:19:53 +02:00
Ben Meadors
a84657c220
Merge pull request #763 from compumike/compumike/add-client-base-role
Reserve value 12 for CLIENT_BASE in enum Config.DeviceConfig.Role
2025-09-06 11:28:11 -05:00
Ben Meadors
5c3d52663e
Merge pull request #765 from vidplace7/fix-formatting
Fix formatting
2025-09-06 11:27:38 -05:00
vidplace7
74f7041b1c Fix formatting
Who merged this? :P
2025-09-06 10:44:37 -04:00
Mike Robbins
3347d98f04 Reserve value 12 for CLIENT_BASE in enum Config.DeviceConfig.Role 2025-09-05 13:18:19 -07:00
Ben Meadors
07d6573e10
Merge pull request #761 from Quency-D/heltec-v4
add heltec v4 board.
2025-09-04 06:42:31 -05:00
Quency-D
e0b97d6996 add heltec v4 board. 2025-09-03 13:55:36 +08:00
Ben Meadors
34f0c8115d
Merge pull request #757 from ford-jones/7291-rangeTest-clear
Rangetest cleanup configuration option
2025-09-02 19:05:16 -05:00
ford-jones
6e0e795a83 Improved naming 2025-09-03 12:01:33 +12:00
Ben Meadors
4c4427c4a7
Update renovate.json 2025-08-29 13:47:04 -05:00
oscgonfer
77b00ce690 Minor changes on VOC state array and docs 2025-08-29 15:28:20 +02:00
oscgonfer
51b444ec10 Add config flag for low power mode 2025-08-26 19:03:11 +02:00
ford-jones
c5aeb193ca Rangetest cleanup configuration option 2025-08-21 10:23:46 +12:00
Ben Meadors
8985852d75 Default to non-square SH1107 2025-08-20 05:39:53 -05:00
Ben Meadors
be51376980
Merge pull request #756 from davide125/tsl2561
Add TSL2561 sensor
2025-08-19 05:19:42 -05:00
Davide Cavalca
aa86e284a3 Add TSL2561 sensor 2025-08-18 20:52:33 -07:00
Ben Meadors
5dd723fe6f
Merge pull request #755 from meshtastic/T-Echo-Lite
add Lilygo T-Echo Lite
2025-08-15 14:18:35 -05:00
Thomas Göttgens
87ba3f8704
add Lilygo T-Echo Lite 2025-08-15 13:33:47 +02:00
Jonathan Bennett
e2c0831aa3
Add transport mechanism in MeshPacket (#748) 2025-08-09 08:53:48 -05:00
Ben Meadors
13d8946c6d
Merge pull request #751 from meshtastic/heartbeat-nonce
Add nonce to heartbeat
2025-08-09 08:11:09 -05:00
Ben Meadors
f5f209d998 Add nonce to heartbeat 2025-08-09 08:10:23 -05:00
oscgonfer
06a69c09db Add config message for sen5x 2025-08-08 10:59:31 +02:00
oscgonfer
e44958478b SEN5X State protobuf 2025-08-07 16:05:14 +02:00
oscgonfer
784fd5d733 Merge branch 'master' into feat/sen5x-state-proto 2025-08-05 17:39:36 +02:00
oscgonfer
70950c6aa8 Minor fix in cleaning time type 2025-08-05 17:38:48 +02:00
oscgonfer
d5b96c77e1 Add protobuf for SEN5X state 2025-08-05 14:03:16 +02:00
oscgonfer
e8544c529f Fix protobuf definition for SCD4X 2025-08-04 14:56:54 +02:00
oscgonfer
05eee86c47 Minor fixes on scd4x_config protobuf 2025-08-04 13:23:05 +02:00
oscgonfer
6a26b23faf Add low power and change to SCD4X 2025-08-01 13:38:29 +02:00
Ben Meadors
1ecf94da98
Merge pull request #741 from meshtastic/mark-deprecated
Mark configs as deprecated that are no longer used.
2025-07-30 06:20:52 -05:00
Ben Meadors
057ac675bb
Merge pull request #745 from Quency-D/master
Added HELTEC MeshSolar board.
2025-07-30 06:19:56 -05:00
oscgonfer
27d40f03d2 Add factory reset for scdxx 2025-07-29 14:27:08 +02:00
oscgonfer
e690615951 Admin message for different sensor configs 2025-07-28 21:52:49 +02:00
oscgonfer
ee114d4e89 Add admin commands for SCDXX CO2 sensors 2025-07-28 12:34:53 +02:00
Quency-D
d47de28428 Added HELTEC MeshSolar board. 2025-07-28 16:53:29 +08:00
Ben Meadors
9bac2886f9
Merge pull request #744 from meshtastic/nodedb-count
Add nodedb_count to mynodeinfo
2025-07-26 16:12:26 -05:00
Ben Meadors
5ac10c0746 Add nodedb_count to mynodeinfo 2025-07-26 06:39:04 -05:00
Jonathan Bennett
1c28229e85 Mark configs as deprecated that are no longer used. 2025-07-22 14:20:05 -05:00
Ben Meadors
d31cd890d5
Merge pull request #739 from meshtastic/event-enum
Add event enum to indicate to client if this is event firmware
2025-07-22 13:25:19 -05:00
Jonathan Bennett
d868b86e75 Keep edition smol 2025-07-22 09:05:10 -05:00
Jonathan Bennett
898f06796b
More Whitespace
Co-authored-by: Austin <vidplace7@gmail.com>
2025-07-21 18:36:04 -05:00
Jonathan Bennett
9cc803de0e Further tuning 2025-07-21 12:41:42 -05:00
Jonathan Bennett
b35702d8ae Add Hamvention 2025-07-21 12:27:50 -05:00
Jonathan Bennett
08fbd7b987 Whitespace fixes 2025-07-21 12:06:57 -05:00
Jonathan Bennett
0234126e86 Add event enum to indicate to client if this is event firmware 2025-07-21 12:03:47 -05:00
Thomas Göttgens
fa02e14d8d
fix typos in comments (#738) 2025-07-21 12:06:30 +02:00
oscgonfer
ee4d961776
SEN5X sensor definition (#723)
* Add additional telemetry sensor type to support two ADS1X15 at the same time

* Merge master

* Add metrics and units for SEN5X series

* re-order not to break proto backwards comaptibility

---------

Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
2025-07-21 11:56:28 +02:00
Tom Fifield
5f5828a6ed
Add BR_902, Brazil 902MHz-907.5MHz (#737)
As reported by @barbabarros , the Brazilian government has specific support for LoRA[1] across multiple frequencies[2][3].

We currently support Brazil through the ANZ/AU915 band. However, Brazil also has another frequency available for use:

902 - 907.5 MHz , 1W power limit, no duty cycle restrictions


[1]  https://sistemas.anatel.gov.br/anexar-api/publico/anexos/download/a028ab5cc4e3f97442830bba0c8bd1dd
[2] 
https://informacoes.anatel.gov.br/legislacao/resolucoes/2025/2001-resolucao-772
[3] https://informacoes.anatel.gov.br/legislacao/atos-de-certificacao-de-produtos/2017/1139-ato-14448#item10


Fixes https://github.com/meshtastic/firmware/issues/3741

Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
2025-07-21 10:28:24 +02:00
Tom Fifield
8b09ca9643
Add Nepal 865 MHz to 868 MHz (#736)
As identified by @WOD-MN , Nepal has a dedicated IoT frequency.

865 MHz to 868 MHz, no power limit, not duty cycle restrictions
Machine to Machine (M2M)/Internet of Things (IoT)  https://www.nta.gov.np/uploads/contents/Radio-Frequency-Policy-2080-English.pdf

Firmware patch: https://github.com/meshtastic/firmware/pull/7380
2025-07-21 10:24:49 +02:00
Ben Meadors
15c1fbde88
Merge pull request #734 from meshtastic/deprecate-gps-format
Deprecate GPS format
2025-07-20 14:30:52 -05:00
Ben Meadors
c916da9060
Merge pull request #735 from meshtastic/routing-error-ratelimite
Add RATE_LIMIT_EXCEEDED routing error
2025-07-20 14:30:40 -05:00
Ben Meadors
c36e296488
Update mesh.proto 2025-07-20 06:51:57 -05:00
Ben Meadors
b2baa3da8a Add RATE_LIMIT_EXCEEDED routing error 2025-07-20 06:47:49 -05:00
Ben Meadors
330a6a1a94
Merge pull request #732 from fablabbcn/feat/add-sfa30
Added formaldehyde sensor values sfa30
2025-07-20 06:47:23 -05:00
Ben Meadors
d238157644 Deprecate GPS format 2025-07-20 06:43:57 -05:00
oscgonfer
1a6df9abfe Minor style change 2025-07-19 12:10:17 +02:00
oscgonfer
bbad395d57 Added formaldehyde sensor values sfa30 2025-07-19 12:08:51 +02:00
oscgonfer
4b1ca40f5e Add additional telemetry sensor type to support two ADS1X15 at the same time 2025-07-19 12:07:41 +02:00
Ben Meadors
f6448be777
Merge pull request #727 from vidplace7/buzzermode-direct_msg_only
Add DIRECT_MSG_ONLY Buzzer mode
2025-07-13 06:10:19 -05:00
vidplace7
27537101a4 Add DIRECT_MSG_ONLY Buzzer mode 2025-07-12 21:37:57 -04:00
Ben Meadors
362c590bc3
Merge pull request #728 from vidplace7/Buf-Actions-Love
Update bufbuild GitHub Actions
2025-07-12 20:07:17 -05:00
vidplace7
e253751637 Update bufbuild GitHub Actions 2025-07-12 19:46:12 -04:00
Ben Meadors
fd19e4caaf
Merge pull request #726 from meshtastic/ThinkNode-M5
Add ThinkNode M5 to mesh.proto
2025-07-10 19:47:23 -05:00
Jonathan Bennett
233961d5fb
Add ThinkNode M5 to mesh.proto 2025-07-10 18:58:13 -05:00
Ben Meadors
0302caa2bc
Update README.md 2025-07-07 19:42:40 -05:00
Ben Meadors
584f0a3a35
Merge pull request #722 from meshtastic/KZ
Add Kazakhstan frequencies
2025-07-03 06:58:19 -05:00
Tom Fifield
6c76e4ab61
Add Kazakhstan frequencies
As reported by @KZ1R , Kazakhstan has frequencies in use for Lora
devices that are not covered by our existing band selections.

This adds
* KZ_433 433.075 - 434.775 MHz <10 mW EIRP, Low Powered Devices (LPD)
* KZ_863 863 - 868 MHz <25 mW EIRP, 500kHz channels allowed, must not be used at airfields

Legal ref provided in https://github.com/meshtastic/firmware/issues/7204 and verified.

https://www.gov.kz/memleket/entities/mdai/press/article/details/6128
Order of the Ministry of Investments and Development of the Republic of Kazakhstan No. 34 dated January 21, 2015.
 Published on 01 July 2024 19:03 Updated on 01 July 2024

Fixes https://github.com/meshtastic/firmware/issues/7204
2025-07-03 11:20:41 +10:00
Ben Meadors
854bb24833
Merge pull request #720 from meshtastic/rcarteraz-patch-1
should be from, not by
2025-07-02 13:51:11 -05:00
rcarteraz
95a1ea9230
should be from, not by 2025-07-02 11:43:48 -07:00
Ben Meadors
5ef7aec959
Merge pull request #719 from fablabbcn/feat/co2-sensor-metrics
Add CO2 sensor temperature and relative humidity
2025-07-02 05:52:07 -05:00
oscgonfer
7069b8570d Add CO2 sensor temperature and relative humidity 2025-07-02 11:46:25 +02:00
Ben Meadors
86c738e806
Merge pull request #718 from meshtastic/baseui-display-configs
Base UI display config settings
2025-07-01 20:15:47 -05:00
Ben Meadors
32e442a688 Base UI display config settings 2025-07-01 20:11:29 -05:00
Ben Meadors
2097da996c Update regarding hw_model policies 2025-06-26 19:36:14 -05:00
Daniel.Cao
1d05974fe4
feat: add support for RAKwireless wiscore RAK3312 and Wismeshtag (#714)
* Add RAKwireless hardware models 1.RAK3112  2.Wismeshtag
* Rename RAKwireless RAK3112 to RAK3312 in HardwareModel enum
* keep ID's in sequence

---------

Co-authored-by: Daniel.Cao <daniel.cao@rakwireless.com>
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
2025-06-26 15:23:52 +02:00
Ben Meadors
0ca1555b68
Merge pull request #716 from meshtastic/caveman99-patch-1
bring back port 77 accidentally removed
2025-06-26 08:16:48 -05:00
Thomas Göttgens
efd4d5c553
bring back port 77 accidentally removed 2025-06-26 15:12:24 +02:00
oscgonfer
386fa53c15
Add ADS1X15 voltage metrics (#711)
* Add ADS1X15 voltage metrics
* Add 8 channels to allow for daisy chaining of ADS1X15
2025-06-25 20:05:19 +02:00
Ben Meadors
6791138f0b
Update README.md 2025-06-20 19:31:33 -05:00
Ben Meadors
b818a000ef
Merge pull request #704 from fifieldt/ANZ_433
Add ANZ_433 Region
2025-06-19 18:54:24 -05:00
Ben Meadors
8d3870241b
Update README.md 2025-06-19 18:26:10 -05:00
Ben Meadors
c758376d04
Merge pull request #705 from meshtastic/add_contact_ignore
Add ability to block Shared contacts
2025-06-15 06:26:29 -05:00
Ben Meadors
a1cc3e697d Add ability to block Shared contacts 2025-06-15 06:23:36 -05:00
Tom Fifield
9ccc49deaf
As reported by @monkeypants, the MY_433 region is not legal in ANZ
due to power limits being too high. This patch introduced an ANZ_433
region to match the requirements in Australia and New Zealand.

433.05 - 434.79 MHz, 25mW EIRP max, No duty cycle restrictions
AU Low Interference Potential https://www.acma.gov.au/licences/low-interference-potential-devices-lipd-class-licence
NZ General User Radio Licence for Short Range Devices https://gazette.govt.nz/notice/id/2022-go3100

Fixes https://github.com/meshtastic/firmware/issues/7032
2025-06-14 10:29:43 +10:00
Ben Meadors
0c112881df Int size 2025-06-11 19:10:00 -05:00
Ben Meadors
f45a09fa15
Merge pull request #702 from meshtastic/send_input_event
Implement send_input_event
2025-06-11 19:07:12 -05:00
Ben Meadors
579578394c
Update meshtastic/admin.proto
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-11 19:07:05 -05:00
Ben Meadors
07eb2a85ab
Update admin.options 2025-06-11 18:59:36 -05:00
Ben Meadors
3d34533935
Update meshtastic/admin.options
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-11 18:59:12 -05:00
Ben Meadors
20510c79b4
Update meshtastic/admin.options
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-11 18:58:40 -05:00
Ben Meadors
f7824eb09d Implement send_input_event 2025-06-11 17:27:19 -05:00
Ben Meadors
53380fce88
Merge pull request #701 from meshtastic/notificationTest
Add blank messages for ClientNotification oneof
2025-06-11 17:12:16 -05:00
Jonathan Bennett
9468fa3980 Add blank messages for ClientNotification oneof 2025-06-11 12:39:51 -05:00
Tom Fifield
b448d4a94f
Merge pull request #699 from csrutil/add-device-gat562_mesh_trial_tracker
Add GAT562 Mesh Trial Tracker HW model ID
2025-06-10 13:57:19 +10:00
csrutil
7c7621a39b add protobufs for GAT562 Mesh Trial Tracker 2025-06-08 16:29:12 +08:00
Ben Meadors
db60f07ac2
Merge pull request #698 from meshtastic/buzzer_mode
Added buzzer mode
2025-06-07 06:43:49 -05:00
Ben Meadors
abd60b70f0 Annotation 2025-06-07 06:33:59 -05:00
Ben Meadors
758115714f Added buzzer mode 2025-06-07 06:32:08 -05:00
Ben Meadors
cec9223ae1
Merge pull request #696 from meshtastic/device-ui-bulgarian
device-ui: bulgarian language support
2025-06-05 12:30:08 -05:00
Ben Meadors
ebaf8cfede
Merge pull request #697 from meshtastic/hw-model
add T-Deck Pro and TLora Pager HW model IDs
2025-06-05 12:29:51 -05:00
mverch67
81c4d48643 add T-Deck Pro and TLora Pager HW model IDs 2025-06-05 18:16:24 +02:00
mverch67
f9927457f6 bulgarian language support 2025-06-05 18:06:04 +02:00
Ben Meadors
24c7a3d287 WIO 2025-05-28 06:13:31 -05:00
Ben Meadors
022ea79bad
Merge pull request #694 from meshtastic/add-hwid
new HWID's
2025-05-27 15:38:57 -05:00
Jonathan Bennett
0268354426
Key validation messages (#690)
* Add the transport messages for a key validation protocol
2025-05-27 15:33:19 -05:00
Thomas Göttgens
4a108827a9
Add another one 2025-05-27 22:18:06 +02:00
Thomas Göttgens
fa4d98594c
Update meshtastic/mesh.proto
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-27 22:06:41 +02:00
Thomas Göttgens
7a256cad53
Update meshtastic/mesh.proto
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-27 22:06:12 +02:00
Thomas Göttgens
deff1ca54e
new HWID's 2025-05-27 21:34:41 +02:00
Xavier horwood
0b815a6f93
Add Ipv6 Option (#692) 2025-05-27 18:37:07 +02:00
Ben Meadors
91484534a5
Merge pull request #693 from meshtastic/heap-stats
Add heap free and total to local stats telemetry message
2025-05-25 06:30:18 -05:00
Ben Meadors
657651891a Add heap free and total to local stats telemetry message 2025-05-24 06:51:16 -05:00
Ben Meadors
0b32ce24f0
Merge pull request #689 from meshtastic/key-validation
add nodeinfo bool/bitfield for is_manually_validated
2025-05-20 19:42:17 -05:00
Ben Meadors
117ea15f6f
Update mesh.proto 2025-05-20 19:41:21 -05:00
Jonathan Bennett
08d7a07a4a Better name for is_key_manually_verified 2025-05-20 19:25:52 -05:00
Jonathan Bennett
2b59c7f519 add nodeinfo bool/bitfield for is_manually_validated 2025-05-20 18:22:37 -05:00
Jonathan Bennett
d8b709aa5d
Add missed max_size for optional HostMetrics string (#688) 2025-05-17 12:28:08 -05:00
Michael Cullen
475694e62b
Add PCT2075 sensor (#687)
This is a temperature sensor
2025-05-17 10:27:03 -05:00
Jonathan Bennett
490d0123b5
Add the user_string to HostMetrics (#686) 2025-05-17 10:23:47 -05:00
Jonathan Bennett
4eb0aebaef
Add Linux Host Metrics (#685)
* Add Linux Host Metrics

* Tweak to load values
2025-05-14 16:58:20 -05:00
Ben Meadors
47ec99aa4c
Merge pull request #684 from meshtastic/map-report-opt-in
Explicit map report opt-in
2025-05-14 14:13:58 -05:00
Ben Meadors
f76d353f38
Update module_config.proto 2025-05-14 14:13:51 -05:00
Ben Meadors
3a35144931
Update module_config.proto 2025-05-14 14:13:12 -05:00
Ben Meadors
a8da85a73f Clarification 2025-05-14 13:32:22 -05:00
Ben Meadors
1e507865aa Clarification 2025-05-14 13:31:31 -05:00
Ben Meadors
bd3e8b2fc8 Explicit map report opt-in 2025-05-14 13:28:57 -05:00
Ben Meadors
8cb3e62a0d Optional 2025-05-14 13:23:41 -05:00
Ben Meadors
62f86771ef
Merge pull request #667 from meshtastic/attended-state
Add is_unmessagable to User
2025-05-14 10:47:46 -05:00
Ben Meadors
af475e6472 Also add to UserLite 2025-05-14 10:44:33 -05:00
Ben Meadors
ca6ea45b52
Update mesh.proto 2025-05-14 10:40:52 -05:00
Ben Meadors
4239bfc2f8
Remove attended 2025-05-14 10:38:53 -05:00
Ben Meadors
3b57a9ca8b
Merge pull request #682 from BegoonLab/add_max17261_lipo_battery_gauge
Add MAX17261 lipo battery gauge
2025-05-14 06:50:31 -05:00
Ben Meadors
816595c8bb Name it 2025-05-12 19:46:27 -05:00
Ben Meadors
d266887bb2 Add contact admin message 2025-05-12 19:27:32 -05:00
Alexander Begoon
ecdc0a5392
Add MAX17261 lipo battery gauge 2025-05-10 00:35:39 +02:00
Ben Meadors
078ac8dfbe
Merge pull request #680 from meshtastic/ve-direct
VE.Direct serial mode
2025-05-04 08:37:24 -05:00
Ben Meadors
5b3bbb8f6a VE.Direct serial mode 2025-05-04 08:36:40 -05:00
Ben Meadors
280f9d1bf8 Name 2025-05-04 06:34:23 -05:00
Ben Meadors
81c3153396 Add dsstore 2025-04-29 06:15:31 -05:00
Thomas Göttgens
27fac39141
add more hwid's 2025-04-17 12:04:32 +02:00
dylanli
b982b36dfa
add seeed solar node defination (#675) 2025-04-16 09:37:53 +02:00
Aaron.Lee
f9aa5cfd08
Add Heltec MeshPocket definition (#673) 2025-04-09 13:55:20 +02:00
Thomas Göttgens
5a5ab103d2
add existing 128x64 screen setting to protos (#672) 2025-04-07 11:46:44 +02:00
Tom Fifield
5add3bae21
Merge pull request #670 from hafu/fix-comment
Fix comment description of CO2 telemetry value
2025-04-06 10:36:08 +08:00
Ben Meadors
13a3e5dcee
Merge pull request #671 from meshtastic/friedchicken
Reserved fried chicken HWMODEL
2025-04-03 19:44:12 -05:00
Ben Meadors
b772c71394 Reserved fried chicken HWMODEL 2025-04-03 19:32:17 -05:00
Ben Meadors
484d002a52 Add bluetooth 2025-03-30 19:27:40 -05:00
Ben Meadors
5e032099be
Merge pull request #669 from meshtastic/add-bluetooth-exclude
Add bluetooth config to excludes
2025-03-30 12:54:36 -05:00
Hannes Fuchs
2d2ebcd170
Fix comment description of CO2 telemetry value 2025-03-30 17:00:16 +02:00
Ben Meadors
6da320326b Add bluetooth config to excludes 2025-03-30 08:50:59 -05:00
Ben Meadors
f00e96f12d
Update README.md 2025-03-28 20:12:22 -05:00
Ben Meadors
6d7c9e6180 Add is_attended to User 2025-03-26 07:27:23 -05:00
Ben Meadors
b4044f8f9f
Merge pull request #666 from ke6zfi/master
Add go_package path for nanopb.proto
2025-03-25 13:15:34 -05:00
Chris LaFlash
306cdbf472 Add go_package path for nanopb.proto 2025-03-25 09:32:11 -07:00
Ben Meadors
b4e24c3a86
Merge pull request #664 from meshtastic/hri-3621
add HRI-3621
2025-03-21 07:43:35 -05:00
Thomas Göttgens
fbc8234432
add HRI-3621 2025-03-21 13:31:52 +01:00
Ben Meadors
14ec205865
Merge pull request #662 from meshtastic/add-devices
Thinknodes and T-ETH
2025-03-15 06:59:43 -05:00
Thomas Göttgens
474a5286c9
woopsie 2025-03-15 11:26:16 +01:00
Thomas Göttgens
72a2685709
Thinknodes and T-ETH 2025-03-15 11:24:58 +01:00
Ben Meadors
dab3668717
Merge pull request #659 from krant/master
device_ui: add Ukrainian
2025-03-14 10:09:42 -05:00
Ben Meadors
228276744b
Merge pull request #658 from pdxlocations/patch-1
Update NTP Server Comments
2025-03-14 07:04:32 -05:00
Ben Meadors
36dff55e14
Merge pull request #661 from krant/fmt
Cleanup formatting - trim excessive spaces, add missing newlines, etc.
2025-03-14 07:00:12 -05:00
Ben Meadors
eedeeecd4a
Merge pull request #660 from krant/fix_empty_doc
Fix empty doc to satisfy picky linters
2025-03-14 06:57:41 -05:00
Aleksey Vasilenko
327ddc8261 Cleanup formatting - trim excessive spaces, add missing newlines, etc. 2025-03-14 13:55:54 +02:00
Aleksey Vasilenko
3d11dc97ad Fix empty doc to satisfy picky linters 2025-03-14 13:44:49 +02:00
Aleksey Vasilenko
524e78869b device_ui: add Ukrainian 2025-03-14 13:31:25 +02:00
pdxlocations
db4578960e
Update NTP Server Comments
change 0.pool.ntp.org to meshtastic.pool.ntp.org in NTP Server Commente
2025-03-13 21:32:30 -07:00
Ben Meadors
035a8017b8
Merge pull request #657 from meshtastic/fifieldt-patch-1
Add RAK12035VB Soil Moisture Sensor
2025-03-08 06:14:53 -06:00
Ben Meadors
2df4770995
Merge pull request #656 from landandair/master
Add new Portnum 76 for Reticulum Network Stack Tunnel App
2025-03-07 07:54:43 -06:00
Tom Fifield
06572741de
Update telemetry.proto 2025-03-07 20:01:01 +08:00
Tom Fifield
d9061086e3
Add RAK12035VB Soil Moisture Sensor
As per @Justin-Mann , the RAK12035 is a Soil Moisture Sensor made by RAKWireless. Up to three can be connected using the wisblock architecture.
2025-03-07 19:52:48 +08:00
landandair
0c818c0ae8 Add RNS Tunnel App Portnum
- Added RNS tunnel app to Port 76
  - Encoding is handled by RNS_Over_Meshtastic app
2025-03-06 17:56:37 -06:00
Ben Meadors
c261bd71aa
Merge pull request #655 from cdanis/dps310
telemetry: add dps310
2025-03-05 19:55:44 -06:00
Chris Danis
245daac0b2 telemetry: add dps310 2025-03-05 16:12:33 -05:00
rcarteraz
1cddedce83
Merge pull request #654 from meshtastic/xiao-bao
Xiao nrf52 kit hw_model
2025-03-05 12:32:46 -07:00
Ben Meadors
abf3fec604 Xiao nrf52 kit hw_model 2025-03-05 13:13:49 -06:00
Thomas Göttgens
eb42f6d262
Indicator protos (#653) 2025-03-02 19:32:07 +01:00
Ben Meadors
2a3a67f043
Merge pull request #645 from meshtastic/2.6
2.6 changes
2025-02-27 11:02:34 -06:00
Ben Meadors
79298fcdf0 Add remove_backup_preferences 2025-02-25 07:26:25 -06:00
rcarteraz
47ff85bb9c
Merge pull request #652 from meshtastic/map
Map related persistent MUI data
2025-02-24 17:09:50 -07:00
mverch67
2f6a133037 map persistent UI data 2025-02-25 00:20:33 +01:00
Ben Meadors
f3a57add1a Timestamp 2025-02-23 13:06:21 -06:00
Ben Meadors
2a1386b151 Admin messages 2025-02-23 08:42:31 -06:00
Ben Meadors
dee784ab1c Merge branch 'backup-prefs' into 2.6 2025-02-23 06:53:38 -06:00
Ben Meadors
37cc28889c Merge remote-tracking branch 'origin/master' into 2.6 2025-02-23 06:52:50 -06:00
Ben Meadors
8b87eac4db Name 2025-02-23 06:52:34 -06:00
Ben Meadors
91f73d0326 Add container messages for backup prefs 2025-02-23 06:25:35 -06:00
Ben Meadors
e2790151f0
Merge pull request #651 from meshtastic/fifieldt-patch-1
Deprecate did_gps_reset
2025-02-22 07:27:17 -06:00
Tom Fifield
ff6fce923a
Deprecate did_gps_reset
Removed in:

https://github.com/meshtastic/firmware/pull/6116
2025-02-22 18:05:58 +08:00
Ben Meadors
39e0d00d54
Merge pull request #650 from meshtastic/mqtt-shrink
Mqtt shrink
2025-02-11 10:37:37 -06:00
Ben Meadors
7f45a7e8d9
Decrease MQTT password size 2025-02-11 06:01:02 -06:00
Ben Meadors
068646653e Comment 2025-02-10 14:28:21 -06:00
Ben Meadors
1095754e1f Merge remote-tracking branch 'origin/master' into 2.6 2025-02-06 14:21:19 -06:00
Tom Fifield
b80785b16b
Merge pull request #649 from meshtastic/12-hour-clock
Add 12 hour clock device display config
2025-02-01 16:18:46 +08:00
Ben Meadors
edc3a7bab5 Add 12 hour clock device display config 2025-01-31 20:09:19 -06:00
A_Ponzano
7f13df0e5f
Update mesh.proto with meshlink (#644) 2025-01-19 15:07:06 +01:00
Thomas Göttgens
fde27e4ef0
add dfrobot gravity rain gauge (#646) 2025-01-18 13:30:43 +01:00
Ben Meadors
9c1bf5b384 Move nodedb to it's own message (and file) 2025-01-07 19:29:16 -06:00
Ben Meadors
76f806e1bb
Merge pull request #643 from meshtastic/udp-broadcast
Add protocol flags to enable UDP broadcasts and other future local networking transports
2025-01-05 13:04:41 -06:00
Ben Meadors
b77d1a3bb7 Add protocol flags to enable UDP broadcasts and other future local networking transports 2025-01-05 12:57:01 -06:00
Ben Meadors
b1ebb963cb
Merge pull request #642 from meshtastic/device-ui-channel
device-ui: add channel filter, add slovenian
2024-12-31 19:11:33 -06:00
mverch67
fe59011ba5 device-ui: add channel filter, add slovenian 2025-01-01 01:28:44 +01:00
Erayd
c55f120a9c
Add the ROUTER_LATE role & supporting fields (#632)
Will always rebroadcast packets, but will do so after all other modes.
Intended for router nodes that are there to provide additional coverage
in areas not already covered by other routers, or to bridge around
problematic terrain, but should not be given priority over other routers
in order to avoid unnecessarily consuming hops.
2024-12-22 12:14:48 +01:00
Ben Meadors
2cffaf53e3
Merge pull request #636 from meshtastic/alert_port
Add alert app portnum
2024-12-17 06:28:21 -06:00
Ben Meadors
0f7e562569 Add alert app portnum 2024-12-17 06:27:43 -06:00
Ben Meadors
4a4e81951d
Merge pull request #635 from meshtastic/fifieldt-patch-1
Add INA226
2024-12-14 19:20:50 -06:00
Tom Fifield
2b017ba707
Merge pull request #634 from meshtastic/critical-alert-support
Add priority for new critical alert feature
2024-12-15 11:31:35 +11:00
Tom Fifield
0c8cdc0efa
Add INA226
A high accuracy current and voltage sensor
2024-12-15 11:17:53 +11:00
Ben Meadors
611e399492
Update mesh.proto 2024-12-14 05:19:25 -06:00
Ben Meadors
ae68438473
Add priority for new critical alert feature 2024-12-14 05:18:08 -06:00
Ben Meadors
59c4596f33
Merge pull request #633 from valzzu/master
added Mesh-Tab
2024-12-14 05:10:45 -06:00
Iris
d2cedee0a0
added Mesh-Tab 2024-12-09 23:53:09 +02:00
Iris
55a5c9c139
Update mesh.proto 2024-12-09 23:51:43 +02:00
Ben Meadors
00c9c9932e
Merge pull request #628 from Jorropo/routastic
add Routastic hardware model
2024-12-03 19:27:14 -06:00
Jorropo
66e7582f85 add Routastic hardware model 2024-11-25 22:57:37 +01:00
Ben Meadors
02e6576efa
Merge pull request #627 from meshtastic/payload_length_233
update payload max length
2024-11-25 10:28:00 -06:00
andrekir
5ea20fc1f7 update payload max length 2024-11-25 12:52:24 -03:00
jake-b
c952f8a4c1
Support for the ClimateGuard RadSens Geiger-Muller tube (#626)
Co-authored-by: Jake-B <jake-b@users.noreply.github.com>
2024-11-23 15:10:43 +01:00
Ben Meadors
af7521c3a7
Merge pull request #625 from meshtastic/wismesh-tap
Add wismesh tap
2024-11-19 12:52:27 -06:00
Ben Meadors
c38692bd11 Add wismesh tap 2024-11-19 12:50:44 -06:00
Ben Meadors
4e4b133a4a
Merge pull request #624 from GUVWAF/NextHopRouter
Required additions for NextHopRouter
2024-11-19 11:21:49 -06:00
GUVWAF
40497bf8d4 Add next_hop to NodeInfoLite 2024-11-18 18:41:27 +01:00
GUVWAF
739a6d4af0 Add next_hop and relay_node to MeshPacket 2024-11-18 18:41:09 +01:00
Ben Meadors
52688fdccb
Merge pull request #623 from meshtastic/device-ui-update
device-ui update: store calibration data, added enum Norwegian language translation
2024-11-17 19:20:27 -06:00
mverch67
6de64e1198 store calibration, Norwegian language 2024-11-18 00:01:47 +01:00
Ben Meadors
af2fea10fe
Merge pull request #621 from mdesmedt/is_ignored
Add is_ignored bool field to NodeInfo
2024-11-11 18:50:44 -06:00
Matthijs De Smedt
04ea4b5b15 Add is_ignored bool to NodeInfo 2024-11-11 16:11:41 -08:00
Ben Meadors
04f21f5c72 Remove duplicate file 2024-11-09 05:21:30 -06:00
Ben Meadors
834915aa04
Merge pull request #618 from GUVWAF/NeighborLoRa
Add bool to enable LoRa transport for NeighborInfo
2024-11-08 07:17:20 -06:00
GUVWAF
2978b62587 LoRa transport not available on the default channel 2024-11-07 19:11:14 +01:00
GUVWAF
c2a3834e24 Add bool to enable LoRa transport for NeighborInfo 2024-11-07 18:44:15 +01:00
Ben Meadors
034a181436 Direct neighbor for clarity 2024-11-07 06:17:39 -06:00
Ben Meadors
06cf134e2b
Merge pull request #614 from meshtastic/module_validation
add bit field to `DeviceMetadata` for excluded modules
2024-11-04 04:55:49 -06:00
andrekir
b399bf0f6a add bit field to DeviceMetadata for excluded modules 2024-11-04 07:39:42 -03:00
Ben Meadors
0c903c0864
Merge pull request #617 from meshtastic/move-pioenv
Move PIO env to mynodeinfo
2024-11-03 19:45:57 -06:00
Ben Meadors
e505f6051e Move PIO env to mynodeinfo 2024-11-03 19:45:10 -06:00
Ben Meadors
254fbdac6a
pio 2024-11-03 16:17:03 -06:00
Ben Meadors
e8dbfb9660
Merge pull request #616 from meshtastic/caveman99-patch-1
add hw env string to metadata
2024-11-03 16:13:20 -06:00
Thomas Göttgens
b227a1ca72
rename to pio_env 2024-11-03 23:07:25 +01:00
Thomas Göttgens
9f45c61bb7
current max size is 35 2024-11-03 23:02:24 +01:00
Thomas Göttgens
8a38aa93cb
add hardware environment 2024-11-03 23:00:40 +01:00
Ben Meadors
015202aead
Update mesh.proto 2024-11-02 05:46:54 -05:00
Ben Meadors
807236815d
Merge pull request #609 from meshtastic/device-ui-updates
device-ui: proto version control, new languages, lock and alert parameters
2024-10-28 05:22:56 -05:00
mverch67
545ba74f71 remove default int_size:32 2024-10-27 13:11:01 +01:00
mverch67
f0df8545ad version control, new languages, lock and alert parameters 2024-10-26 15:03:39 +02:00
Ben Meadors
7dc7a6d219
Merge pull request #607 from meshtastic/device-ui-fix
add device ui to config roll
2024-10-25 08:56:42 -05:00
Thomas Göttgens
619bd44654 add device ui to config roll 2024-10-24 14:36:57 +02:00
Ben Meadors
7960241ccd
Merge pull request #606 from meshtastic/fix-size-mismatch
Fix RTTL size mismatch
2024-10-23 09:56:45 -05:00
Ben Meadors
d91f614dc4 Extend device instead of shrink admin 2024-10-23 09:55:45 -05:00
Ben Meadors
2f400a078e Fix RTTL size mismatch 2024-10-23 09:48:18 -05:00
Thomas Göttgens
8686d049c2
Merge pull request #605 from meshtastic/expand_device_id
Expand device_id to 128 bit
2024-10-21 22:57:40 +02:00
Ben Meadors
ea6eb85d6e Expand to 128 bit bytes 2024-10-21 14:48:31 -05:00
Ben Meadors
14b2a62879
Merge pull request #604 from meshtastic/priority-traffic-rebroadcast
Add rebroadcast mode to ignore non-standard portnum traffic
2024-10-21 09:39:54 -05:00
Ben Meadors
e09bd361a4 Add rebroadcast mode to ignore non-standard portnum traffic 2024-10-21 05:05:25 -05:00
Ben Meadors
0fed5c7709
Merge pull request #603 from meshtastic/device-id
Add uint64 device id
2024-10-18 05:58:48 -05:00
Ben Meadors
1ab8611a31 Add uint64 device id 2024-10-18 05:45:19 -05:00
Ben Meadors
e22381a3c6
Merge pull request #602 from meshtastic/oem-proto
remove oem.proto
2024-10-14 14:06:43 -05:00
Thomas Göttgens
7e6177dcd6 remove oem.proto 2024-10-14 19:44:45 +02:00
Ben Meadors
30ba090346
Merge pull request #601 from meshtastic/device-ui-languages
device-ui: more languages
2024-10-13 05:52:51 -05:00
Manuel
f5d95f385b
Merge branch 'master' into device-ui-languages 2024-10-13 11:45:56 +02:00
mverch67
1842d2203b device-ui: more languages 2024-10-13 11:43:34 +02:00
Ben Meadors
49ebc47832
Merge pull request #600 from meshtastic/device_ui_java_name
fix `device_ui` Java outer classname
2024-10-12 04:30:05 -05:00
Andre K
3990520748
fix device_ui Java outer classname 2024-10-12 06:27:59 -03:00
Ben Meadors
fd5760108a
Merge pull request #599 from meshtastic/update-rebroadcast-mode
Rebroadcast 'None'
2024-10-11 05:28:10 -05:00
Thomas Göttgens
99280a1a1e
Update config.proto 2024-10-11 11:55:56 +02:00
Ben Meadors
647081c7fa
Merge pull request #597 from meshtastic/device-ui
Add device-ui persistency
2024-10-10 06:17:14 -05:00
Ben Meadors
70a52e77d3
Update device_ui.options 2024-10-10 06:14:55 -05:00
Tom Fifield
387d0beea4
Merge pull request #572 from Coloradohusky/scd4x
Add CO2, SCD4X telemetry
2024-10-10 11:38:58 +08:00
mverch67
cb37f8ce61 rewording 2024-10-09 23:10:03 +02:00
mverch67
50a87ef3aa I should goto sleep 2024-10-09 22:56:10 +02:00
mverch67
19993f75ce typo 2024-10-09 22:53:02 +02:00
mverch67
901ce4c1c4 renumbering getter/setter 2024-10-09 22:52:55 +02:00
mverch67
c28a677d7d device-ui persistency 2024-10-09 12:49:09 +02:00
Riley Nielsen
27072c0838 Update telemetry.proto 2024-10-07 17:43:15 -07:00
Riley Nielsen
a4274bcc0b Merge remote-tracking branch 'upstream/master' into scd4x 2024-10-07 17:39:10 -07:00
Ben Meadors
c9ae7fd478
Merge pull request #593 from meshtastic/fifieldt-patch-1
Add RegionCodes for Philippines
2024-10-06 07:48:56 -05:00
Ben Meadors
5df44cf804
Merge pull request #594 from meshtastic/fifieldt-patch-2
Add health_screen_enabled and fix comments
2024-10-06 06:50:39 -05:00
Tom Fifield
29b19dfd79
Add health_screen_enabled and fix comments
health_screen_enabled will be used for turning on/off the screen for health telemetry.

Also fixed some commands on other existing variables that were incorrect.
2024-10-06 19:49:17 +08:00
Tom Fifield
d983fef9e4
Add RegionCodes for Philippines
Required by https://github.com/meshtastic/firmware/pull/4951
2024-10-05 13:45:41 +08:00
Ben Meadors
b419706693
Merge pull request #592 from meshtastic/fifieldt-patch-1
Add MLX90614 non-contact IR temperature sensor.
2024-10-03 06:52:00 -05:00
Tom Fifield
dd8619f786
Typo fix 2024-10-03 19:41:34 +08:00
Tom Fifield
08876d1c25
Add MLX90614 non-contact IR temperature sensor.
Mentioned in https://github.com/meshtastic/firmware/issues/4738 as being most appropriate for sensing animal temperature. 

Also, according to https://www.sparkfun.com/products/retired/14569, a replacement for the apparently retired MLX90632
2024-10-03 16:25:33 +08:00
Ben Meadors
cd279d19a0
Merge pull request #591 from GUVWAF/moreStats
Add more packet statistics to LocalStats
2024-10-02 13:42:19 -05:00
GUVWAF
b52e08eb97 Add duplicate received, relayed and canceled relayed packets to LocalStats 2024-10-02 20:29:12 +02:00
Ben Meadors
62c4b0081c
Merge pull request #590 from meshtastic/health-telem
Add health telemetry
2024-10-02 06:12:59 -05:00
Ben Meadors
c0708735f5 Tag numbers 2024-10-02 06:05:43 -05:00
Ben Meadors
94ef58cbf2 Add health telemetry 2024-10-02 06:03:55 -05:00
Ben Meadors
61d7ca6565
Update description 2024-09-30 17:16:49 -05:00
Ben Meadors
83c78e26e3
Merge pull request #589 from meshtastic/tlora-c6
Add TLora-C6
2024-09-28 06:36:00 -05:00
Thomas Göttgens
f6c9aeb4f1
Add TLora-C6 2024-09-28 13:29:52 +02:00
Ben Meadors
6ac91926c2
Merge pull request #582 from augustozanellato/detsensor_broadcast_changes
Implement more flexible triggering in DetectionSensor
2024-09-25 05:46:02 -05:00
Thomas Göttgens
eb915e71fc
Merge pull request #588 from markbirss/master
Update mesh.proto fix MS24SF1 build
2024-09-25 10:27:44 +02:00
Mark Trevor Birss
dfccd4fba4
Update mesh.proto 2024-09-25 09:05:02 +02:00
Tom Fifield
b1cad2323e
Merge pull request #587 from Dylanliacc/Support-for-Seeed-XIAO-S3-Board
feat: add seeed xiao s3
2024-09-25 13:58:36 +08:00
Tom Fifield
fb9a48dae7
fix typos 2024-09-24 19:20:54 +08:00
Dylanliacc
7ef4ee191a feat: add seeed xiao s3 2024-09-24 18:26:48 +08:00
Augusto Zanellato
206e046e34
set detection_trigger_type max_size 2024-09-24 11:10:35 +02:00
Augusto Zanellato
3be0da8370
Merge branch 'master' into detsensor_broadcast_changes 2024-09-24 11:08:58 +02:00
Thomas Göttgens
9651aa59ea
Merge pull request #585 from lboue/patch-1
Add support for M5Stack CoreS3 variant
2024-09-22 18:10:40 +02:00
Thomas Göttgens
67f9d80eb2
Update mesh.proto
For our own sanity, please keep the numerical order
2024-09-22 17:21:09 +02:00
Ludovic BOUÉ
c12bb5beea
Add support for M5Stack CoreS3 variant 2024-09-22 15:47:28 +02:00
Ben Meadors
9b84907847
Merge pull request #584 from meshtastic/pico2
Pico2
2024-09-21 07:58:38 -05:00
Thomas Göttgens
9dbb2ae4ef
Pico2 2024-09-21 14:54:52 +02:00
Ben Meadors
db2748c0cb
Merge pull request #583 from meshtastic/heltec-wireless-bridge
heltec-wireless-bridge
2024-09-21 06:37:21 -05:00
Thomas Göttgens
a711a17d47
heltec-wireless-bridge 2024-09-21 11:54:41 +02:00
Augusto Zanellato
3ff3dab75d
DetectionSensor: make triggering more flexible 2024-09-20 00:37:28 +02:00
Augusto Zanellato
c4636e0232
Add DetectionSensorConfig.broadcast_all_state_transitions 2024-09-19 21:48:47 +02:00
Ben Meadors
5709c0a05e
Merge pull request #576 from meshtastic/device-profile-update1
add fixed_position, ringtone, and canned_messages to `DeviceProfile`
2024-09-18 10:14:05 -05:00
Ben Meadors
164e598734
Merge pull request #581 from meshtastic/PKC-Capabilities 2024-09-17 17:41:10 -05:00
Jonathan Bennett
cc2f12bc7a
Adds the hasPKC bool to device metadata capabilities 2024-09-17 17:30:02 -05:00
Ben Meadors
1e212f1135
Merge pull request #579 from powersjcb/optional-hops_away
convert hops_away from required to optional
2024-09-17 06:40:37 -05:00
Jonathan Bennett
c5108cfd6b
Update max_count of admin_key to 3 (#575) 2024-09-16 21:52:43 -05:00
Tom Fifield
e8eff71bb0
Merge pull request #580 from meshtastic/jp-bennett-patch-3
More Admin Errors
2024-09-17 10:50:32 +08:00
Jonathan Bennett
a5cf8b5ac3
More Admin Errors 2024-09-16 21:36:03 -05:00
Jacob Powers
292538b8fb
Update mesh.proto 2024-09-16 20:20:45 -06:00
Jacob Powers
0347af720c
Update deviceonly.proto 2024-09-16 20:19:41 -06:00
Thomas Göttgens
0c0d061ec5
Merge pull request #578 from meshtastic/tak-detail
Add generic detail payload variant to TAKPacket
2024-09-16 12:37:48 +02:00
Ben Meadors
84a60f4e62 Add generic detail payload variant to TAKPacket 2024-09-15 19:24:15 -05:00
andrekir
a883cfe739 add fixed_position, ringtone, and canned_messages to DeviceProfile 2024-09-14 23:24:04 -03:00
Jonathan Bennett
0acaec6eff
Move ok_to_mqtt from flag to bitfield (#574) 2024-09-06 18:27:22 -05:00
Thomas Göttgens
96b10c0364
Merge pull request #573 from meshtastic/doNotMQTTMeBro
Adds OKToMqtt bool to data
2024-09-06 22:26:42 +02:00
Jonathan Bennett
fce5ab584f Rename ok_to_mqtt and add config 2024-09-06 11:57:23 -05:00
Jonathan Bennett
30eb05a8a9
Adds OKToMqtt bool to data 2024-09-04 14:30:54 -05:00
Riley Nielsen
583784692c Add CO2, SCD4X 2024-09-02 11:19:52 -07:00
Ben Meadors
5f7c91adb9
Merge pull request #571 from GUVWAF/highPrio
Add RESPONSE priority for responses to a request
2024-09-01 08:51:58 -05:00
GUVWAF
90f73ed100 Add RESPONSE priority for responses to a request 2024-09-01 15:35:54 +02:00
Ben Meadors
28492e88e5
Merge pull request #570 from GUVWAF/highPrio
Add new MeshPacket priority HIGH
2024-08-30 13:18:04 -05:00
GUVWAF
77fc95a9ab Add new MeshPacket priority HIGH 2024-08-30 19:58:30 +02:00
Ben Meadors
ad62b651f9
Merge pull request #569 from meshtastic/thebentern-patch-1
Custom i2c sensor telemetry
2024-08-30 07:38:33 -05:00
Ben Meadors
8c01df356a
Update telemetry.proto 2024-08-30 07:31:08 -05:00
Ben Meadors
2d5ffbb61f
Custom i2c sensor telemetry 2024-08-30 07:30:26 -05:00
Thomas Göttgens
7444b00e05
Merge pull request #568 from weekroom/master
Be available for  M5 corebasic2.7、core2
2024-08-29 15:45:20 +02:00
Junhuang
b575b137e2 Be available for M5 corebasic2.7、core2 2024-08-29 10:10:04 +08:00
Ben Meadors
431291e673
Merge pull request #567 from meshtastic/repeated
Make admin_key repeated max count 1, for future expansion
2024-08-26 07:45:43 -05:00
Jonathan Bennett
17043d6f3a Make admin_key repeated max count 1, for future expansion 2024-08-25 21:55:51 -05:00
Ben Meadors
52cfa2c1c2
Merge pull request #565 from geeksville/pr-for4375 2024-08-23 20:17:44 -05:00
Ben Meadors
cbd790fed1
Merge pull request #559 from miltieIV2/miltieIV2/add_support_for_adafruit_feather_rp2040_rfm95
miltieIV2/add support for adafruit feather rp2040 rfm95
2024-08-22 14:09:21 -05:00
Ben Meadors
b15c081cb3
Shut up buf... nobody like your nagging 2024-08-21 06:51:56 -05:00
Kevin Hester
183ba970a7 remove deprecated serial/bt logging options and unify in the new
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.
2024-08-20 13:36:32 -07:00
Ben Meadors
56a4355070
Merge pull request #564 from meshtastic/blankconfig
Adds a blank config for fetching a remote admin session key
2024-08-20 10:26:07 -05:00
Jonathan Bennett
68b946291e Adds a blank config for fetching a remote admin session key 2024-08-19 14:38:11 -05:00
John Milton
e6561cc17c
Update mesh.proto
enum upstream collision, switch to the next free.
2024-08-19 14:56:19 -04:00
Ben Meadors
b623762940
Merge pull request #563 from GUVWAF/traceroute2way
Add route back and SNR lists to RouteDiscovery for traceroute
2024-08-17 07:46:59 -05:00
GUVWAF
7171332c99 Add route back and SNR lists to RouteDiscovery for traceroute 2024-08-17 14:27:37 +02:00
Ben Meadors
fe4496484a
Merge pull request #553 from meshtastic/2.5
2.5
2024-08-17 06:47:22 -05:00
Ben Meadors
59d035a37d net 2024-08-16 18:49:23 -05:00
Ben Meadors
dfce61390d
Merge pull request #562 from meshtastic/set-time
Set time only admin message
2024-08-16 18:34:45 -05:00
Ben Meadors
8ac99eefe8 Fixed 2024-08-16 18:31:16 -05:00
Ben Meadors
6a53f766bc Set time only admin message 2024-08-16 18:21:01 -05:00
Ben Meadors
8da680b690
Merge pull request #555 from pdxlocations/canned-messages-input-sources
Edit Comments of Canned Messages
2024-08-16 06:13:59 -05:00
Ben Meadors
b023abd772
Merge pull request #561 from markbirss/develop
Update mesh.proto add Minewsemi ME25LS01 LR1110 breakout ME25LE01_V1.0
2024-08-16 06:13:24 -05:00
Ben Meadors
4eb4f42517
Merge pull request #560 from meshtastic/stats
Local device mesh stats container
2024-08-16 06:07:20 -05:00
Mark Trevor Birss
d2a88c9ddc
Update mesh.proto 2024-08-16 09:52:25 +02:00
Ben Meadors
ceb1170e2c Local device mesh stats 2024-08-15 20:41:11 -05:00
Jonathan Bennett
06d7ca5821
Adds Admin session_passkey to prevent replay of admin packets (#558)
* Adds Admin session_passkey to prevent replay of admin packets

* Update comment on admin_passkey
2024-08-15 16:32:42 -05:00
John Milton
2d7f6d12d9 add ther other Adafruit displauy and a comment about A0. 2024-08-15 14:00:06 -04:00
John Milton
97cd687e82 Add board enum for RP2040_FEATHER_RFM95; variants/feather_rp2040_rfm95. 2024-08-15 13:51:20 -04:00
Jonathan Bennett
8b5b2faf66
Add PKI_UNKNOWN_PUBKEY (#557) 2024-08-14 15:31:46 -05:00
Jonathan Bennett
97fa34517f
Merge branch 'master' into 2.5 2024-08-13 18:57:01 -05:00
Jonathan Bennett
f007d1d719 Rename NONE_PKI to PKI_FAILED 2024-08-13 18:27:47 -05:00
Jonathan Bennett
f03121f440 Add NONE_PKI error message 2024-08-13 18:27:47 -05:00
Ben Meadors
1ff2e736ca UserLite 2024-08-13 18:27:47 -05:00
Jonathan Bennett
000e9dcd38 Add SECURITY_CONFIG to admin.proto (#547) 2024-08-13 18:27:47 -05:00
Ben Meadors
66a6d11f7f Add client notification fromradio message 2024-08-13 18:27:47 -05:00
Garth Vander Houwen
d7ce4f30fa Update config.proto
update api name
2024-08-13 18:27:47 -05:00
Garth Vander Houwen
c979c1ac8f Update config.proto
Update comments to match discord conversation
2024-08-13 18:27:47 -05:00
Jonathan Bennett
04a3b65a94 No default for you, Proto3 2024-08-13 18:27:47 -05:00
Jonathan Bennett
684d1faf8e Add admin_channel_enabled to the security config 2024-08-13 18:27:47 -05:00
Jonathan Bennett
6cde2e2672 Add SecurityConfig to Localonly 2024-08-13 18:27:47 -05:00
Jonathan Bennett
ecc4d42053 Also move device_logging_enabled from bluetooth to SecurityConfig 2024-08-13 18:27:47 -05:00
Jonathan Bennett
adb2ff256b Re-org some settings into a new SecurityConfig proto 2024-08-13 18:27:47 -05:00
Jonathan Bennett
bc465e6522 Add the key used to PKI decrypt to MeshPacket 2024-08-13 18:27:47 -05:00
Jonathan Bennett
e9b83744e2 Adds public_key and private_key for PKI
co-authored-by: edinnen
2024-08-13 18:27:47 -05:00
Ian McEwen
a3242bd0b4 Add optional keywords to stuff that can be "truly zero" within mesh packet payloads 2024-08-13 18:27:47 -05:00
Ben Meadors
eed2033cc3 Short turbo preset 2024-08-13 18:24:53 -05:00
Jonathan Bennett
666b481ae0
Remove dos-style formatting from telemetry.proto (#554) 2024-08-13 18:12:39 -05:00
pdxlocations
5b7a39da33 add scanAndSelect, cardkb, and serialkb 2024-08-13 16:09:49 -07:00
Jonathan Bennett
deb05e9514 Remove dos-style formatting from telemetry.proto 2024-08-13 18:04:12 -05:00
Ben Meadors
c9ca0dbe9c
Merge pull request #551 from gjelsoe/master
New Device, RadioMaster Bandit
2024-08-12 11:11:09 -05:00
Michael Gjelsø
26c144b2ba
New Device, Radio Master Bandit
Support for RadioMaster Bandit "Big Brother"
2024-08-12 17:41:21 +02:00
Ben Meadors
071fd931ec
Merge pull request #540 from dhskinner/new-sensor-types
Additional Telemetry sensors - BMP388, ICM-20948, MAX17048
2024-08-11 09:53:18 -05:00
Ben Meadors
a0c758d04b
Merge pull request #548 from GUVWAF/STM32WL
Add RAK3172 and Wio-E5 STM32WL-based hardware models
2024-08-11 09:52:16 -05:00
GUVWAF
d867039e46 Add RAK3172 and Wio-E5 STM32WL-based hardware models 2024-08-11 16:22:43 +02:00
Ben Meadors
2fa7d6a4b7
Merge pull request #539 from meshtastic/factory-reset-distinction
New factory reset (device) admin command and make distinction about existing command that only config / device state is removed
2024-08-08 10:53:39 -05:00
Ben Meadors
d0fe91ab99
Merge pull request #543 from geeksville/pr-for4184
Add new critical fault codes for flash corruption
2024-08-05 19:07:22 -05:00
Kevin Hester
77ed84c7af Add new critical fault codes for flash corruption
for https://github.com/meshtastic/firmware/issues/4184
2024-08-05 14:27:31 -07:00
David
25df63b0a0 Update telemetry.proto 2024-08-03 13:37:03 +10:00
Ben Meadors
4d3efb56d8 New factory reset (device) admin command and make distinction about existing command that only config / device state is removed 2024-07-31 10:42:35 -05:00
Ben Meadors
976748839f
Merge pull request #538 from meshtastic/revert-537-thebentern-patch-1
Revert "LogRecord over serial enabled"
2024-07-30 14:35:21 -05:00
Ben Meadors
c4110a4422
Revert "LogRecord over serial enabled" 2024-07-30 14:24:43 -05:00
Ben Meadors
abd5eaa875
Merge pull request #537 from meshtastic/thebentern-patch-1
LogRecord over serial enabled
2024-07-30 08:12:10 -05:00
Ben Meadors
9902e65bf2
LogRecord over serial enabled 2024-07-30 07:07:18 -05:00
Ben Meadors
b1a79d5db0
Merge pull request #535 from meshtastic/thebentern-patch-1
Add t1000-e hw model
2024-07-26 06:26:57 -05:00
Ben Meadors
ff1aa723d1
Add t1000-e hw model 2024-07-26 06:25:03 -05:00
Ben Meadors
7f90178f18
Merge pull request #534 from meshtastic/thebentern-patch-1
Sensecap indicator
2024-07-22 09:08:20 -05:00
Ben Meadors
38a3a4a8bf
Sensecap indicator 2024-07-22 09:01:59 -05:00
Ben Meadors
10494bf328
Merge pull request #532 from tavdog/ws85_gust_lull
add ws85 serialmodule mode, add gust,lull to env telemetry
2024-07-10 14:40:36 -05:00
Tavis
7370460a59 fix tag index. whoops, duh. 2024-07-10 09:09:32 -10:00
Tavis
29f8011bce add ws85 serialmodule mode, add gust,lull to env teleme 2024-07-09 21:50:10 -10:00
Ben Meadors
d191975ebc
Merge pull request #531 from gjelsoe/master
Disable PA FAN
2024-07-09 11:10:48 -05:00
Michael Gjelsø
b2dd7a5562
Disable PA FAN
Disable the build-in PA FAN using pin define in RF95_FAN_EN
for use in "Low Traffic" areas where cooling of PA it not necessary.
2024-07-09 18:06:29 +02:00
Ben Meadors
0fd5023a0a
Merge pull request #530 from GUVWAF/SF_is_server
Add bool to StoreForward config to set it as server
2024-07-08 14:28:31 -05:00
GUVWAF
940395c81e Add bool to StoreForward config to set it as server 2024-07-06 10:05:21 +02:00
Ben Meadors
1198b7dbab
Merge pull request #527 from HelTecAutomation/master
Add Heltec new boards
2024-07-01 05:59:17 -05:00
Heltec-Aaron-Lee
0891eeb9e1 Fix spelling issue 2024-07-01 14:10:05 +08:00
Aaron.Lee
e3557e4bcb
Merge branch 'meshtastic:master' into master 2024-07-01 14:08:58 +08:00
Ben Meadors
e7327e76bd
Merge pull request #526 from geeksville/pr-powermon2
Add protobufs for forthcoming firmware and python PRs
2024-06-29 19:01:57 -05:00
Ben Meadors
ad8c833bef
Merge pull request #529 from 72A12F4E/remove-unnecessary-import
Remove unnecessary import
2024-06-29 19:00:52 -05:00
Blake McAnally
827ed60577 remove unnecessary import 2024-06-28 21:37:08 -05:00
Ben Meadors
57ddb288e8
Merge pull request #528 from meshtastic/deprecate-router-client
Deprecate router client
2024-06-28 10:32:47 -05:00
Ben Meadors
fcf0fddab8 Same line 2024-06-28 10:24:51 -05:00
Ben Meadors
17a9637530 Deprecate router client 2024-06-28 10:06:50 -05:00
Heltec-Aaron-Lee
06ceb3e21d Add Heltec new boards 2024-06-28 16:29:17 +08:00
Kevin Hester
9d747b6cf0 Now that we use LogRecord, increase the field sizes to reasonable values
Note: this change is 'free' because LogRecord is only used in a union
inside of FromRadio and FromRadio is already larger than this.
2024-06-27 19:50:59 -07:00
Kevin Hester
c25e0c4e0b Add PowerStress agent support to PowerMon 2024-06-27 10:30:42 -07:00
Ben Meadors
a3030d5ff1
Merge pull request #525 from meshtastic/file-manifest
Add FileInfo packet to FromRadio
2024-06-24 20:25:34 -05:00
Ben Meadors
bcdef8996c Add FileInfo packet to FromRadio 2024-06-24 19:37:52 -05:00
Ben Meadors
4da558d0f7
Merge pull request #523 from geeksville/pr-powermon
PowerMon initial protobufs
2024-06-21 19:00:48 -05:00
geeksville
a82df2239a Move our namespace into a fake message so the linter doesn't yell. 2024-06-21 16:07:04 -07:00
geeksville
97138a78dc PowerMon initial protobufs
for https://github.com/meshtastic/firmware/issues/4136
2024-06-21 15:07:20 -07:00
Ben Meadors
1c3029f286
Merge pull request #522 from meshtastic/thebentern-patch-1
BLE Device Logging
2024-06-19 14:46:06 -05:00
Thomas Göttgens
005d7231e5
Merge pull request #521 from ndoo/hru-3601
Add Heltec HRU-3601
2024-06-19 21:06:54 +02:00
Ben Meadors
ad08d08124
BLE Device Logging 2024-06-19 07:22:59 -05:00
Andrew Yong
22c137c269
Add Heltec HRU-3601
A product built around the HT-CT62 module (ESP32-C3 CPU and SX1262 LoRa) and SKUs with various sensors. A separate variant is needed due to re-use of GPIOs for LEDs, user button, power gating to the I2C peripheral, etc.

https://heltec.org/project/hru-3601/

Signed-off-by: Andrew Yong <me@ndoo.sg>
2024-06-18 22:01:19 +08:00
Ben Meadors
0c90a6814f
Merge pull request #520 from meshtastic/RAK2560
add RAK2560 outdoor node
2024-06-16 07:25:21 -05:00
Thomas Göttgens
09f453ed87
add RAK2560 outdoor node 2024-06-16 14:03:00 +02:00
Ben Meadors
dc066c89f7
Merge pull request #519 from meshtastic/nau-admin
add admin message for calibration.
2024-06-15 08:13:32 -05:00
Thomas Göttgens
f168b0a95a add admin message for calibration. 2024-06-15 14:44:27 +02:00
Ben Meadors
ab576a4a12
Merge pull request #518 from meshtastic/nau7802
dang manual changes
2024-06-13 09:29:54 -05:00
Thomas Göttgens
c18265dfbf
dang manual changes 2024-06-13 16:08:34 +02:00
Thomas Göttgens
260d24318d
Merge pull request #517 from meshtastic/NAU7802
add NAU7802 protobufs
2024-06-13 15:30:30 +02:00
Thomas Göttgens
95e94d5af0
add NAU7802 protobufs 2024-06-13 14:39:08 +02:00
Ben Meadors
8f4faf76e5
Merge pull request #516 from HelTecAutomation/master
Add Heltec Capsule Sensor V3
2024-06-12 07:01:16 -05:00
Heltec-Aaron-Lee
aa08ca2bdc Add Heltec Capsule Sensor V3 2024-06-12 19:25:00 +08:00
Jonathan Bennett
8c8048798c
Add compass_orientation (#515)
* add compass_orientation

We have rudimentary compass support in a branch. This would add a setting to correct the output when the sensor is oriented differently than the screen.
2024-06-11 12:23:03 -05:00
Thomas Göttgens
a641c5ce4f
Merge pull request #511 from meshtastic/wm1110-proper-ID
WIO WM 1110 ID
2024-06-04 15:20:08 +02:00
Thomas Göttgens
e322b716df
Merge pull request #512 from meshtastic/repeated-oneof
(maybe?) fix repeated oneof
2024-06-04 15:19:27 +02:00
Thomas Göttgens
492753200d
(maybe?) fix repeated oneof 2024-06-04 15:15:40 +02:00
Thomas Göttgens
574aeb5b49
Update mesh.proto 2024-06-04 14:54:28 +02:00
Thomas Göttgens
5d0a75e6ec
Merge pull request #509 from meshtastic/chunked-delivery-plumbing
Chunked payload for PoC binary transfer
2024-06-04 14:50:49 +02:00
Ben Meadors
bfbf4a65e2
Merge pull request #510 from meshtastic/dfrobot-lark
More lux options, wind speed, and direction as well as DF Robot lark support
2024-06-03 15:58:34 -05:00
Ben Meadors
5f879edb72 More lux options, wind speed, and direction as well as DF Robot lark support 2024-06-03 15:21:28 -05:00
Ben Meadors
1e8fa54a05 Chunked payload for PoC binary transfer 2024-06-03 14:57:21 -05:00
Ben Meadors
a45a6154d0
Merge pull request #507 from alexander-smyslov/ant10
Update telemetry.proto
2024-05-31 07:12:36 -05:00
Alexander Smyslov
ad3cc2d295
Update telemetry.proto
add support AHT10
2024-05-31 12:24:41 +02:00
Ben Meadors
9e61b82331
Merge pull request #506 from meshtastic/chunked-delivery-plumbing
Added to_callsign to atak GeoChat
2024-05-30 08:54:12 -05:00
Ben Meadors
7fbaa3c74c SpaghettiO 2024-05-30 06:54:38 -05:00
Ben Meadors
4ef9dd4000 Added to_callsign to atak GeoChat 2024-05-30 06:53:03 -05:00
Ben Meadors
5f78a06c0f
Merge pull request #505 from jurriaan/patch-1
Fix invalid protobuf
2024-05-26 07:01:38 -05:00
Jurriaan Pruis
3cb2b01cf7
Fix invalid protobuf
The mesh.proto file was broken, was missing a semicolon.
2024-05-26 11:44:41 +02:00
Ben Meadors
5e32bcec2c
Merge pull request #504 from gjelsoe/master
Add ID for Bandit Nano
2024-05-25 06:56:28 -05:00
Michael Gjelsø
bacd654744
Update mesh.proto
RadioMaster 900 Bandit Nano ID, https://www.radiomasterrc.com/products/bandit-nano-expresslrs-rf-module
2024-05-25 09:01:20 +02:00
Ben Meadors
b5dc871a1b
Merge pull request #502 from tuxphone/patch-1
Synchronize ham short_name length with meshtastic user short_name length
2024-05-22 16:03:05 -05:00
tuxphone
7c533e810b
Synchronize ham short_name length with meshtastic user short_name length 2024-05-22 14:19:07 +02:00
Ben Meadors
5cfadd1489
Merge pull request #500 from meshtastic/libpax-rssi
protobufs for https://github.com/meshtastic/firmware/issues/3885
2024-05-16 12:27:58 -05:00
Thomas Göttgens
1b0b61a76e protobufs for https://github.com/meshtastic/firmware/issues/3885 2024-05-16 15:36:04 +02:00
Thomas Göttgens
bee9ddc716
Merge pull request #499 from meshtastic/sensors
More RAK / Adafruit sensors
2024-05-15 14:46:40 +02:00
Ben Meadors
0a84f48e84 More RAK / Adafruit sensors 2024-05-15 07:07:22 -05:00
Ben Meadors
ef700a5e2f
Merge pull request #498 from Dr-Gandalf/master
add ligth sensor to the env telemetry module
2024-05-14 20:20:43 -05:00
Jorge Castillo
71f3d68db5 Update telemetry.proto to include VEML7700 high accuracy white light(irradiance) sensor 2024-05-14 16:43:15 -04:00
Jorge Castillo
5f6dc3a1a8 add veml7700 ambient light readings to the env merics 2024-05-08 22:20:18 -04:00
Ben Meadors
1bfe0354d1
Merge pull request #496 from 2itea/master
Update telemetry.proto
2024-05-05 13:30:30 -05:00
pr000t
edbf510ef7
Update telemetry.proto
Add Sensirion SHT4X sensors
2024-05-05 17:19:54 +02:00
Ben Meadors
24776635ee
Merge pull request #495 from mrekin/master 2024-05-05 09:29:03 -05:00
vardas
7eab464879 Renaming 2024-05-05 16:34:11 +03:00
vardas
df36597cbf New variant PROMICRO_DIY 2024-05-05 14:55:33 +03:00
Ben Meadors
dd7d64cc03
Merge pull request #494 from meshtastic/wiphone
add wiphone
2024-05-04 16:59:37 -05:00
Thomas Göttgens
12fd8c7e3f
add wiphone 2024-05-04 20:37:16 +02:00
Garth Vander Houwen
e21899aa6b
Merge pull request #492 from meshtastic/mute-channels
Added mute channel into module settings
2024-04-30 05:22:54 -07:00
Ben Meadors
112f1fdcd0
Added mute channel into module settings 2024-04-29 19:35:02 -05:00
Ben Meadors
86640f20db
Merge pull request #489 from SCWhite/master
add HardwareModel: TWC_MESH_V4 to mesh.proto HardwareModel enum
2024-04-23 12:04:19 -05:00
SCWhite
ef2502fb3a add HardwareModel: TWC_MESH_V4 2024-04-23 18:10:02 +08:00
Ben Meadors
eade2c6bef
Merge pull request #488 from meshtastic/rebrand-heartbeat-led
Rebrand as heartbeat led and add more explicit description
2024-04-20 15:55:31 -05:00
Ben Meadors
aa0413204f
Rebrand as heartbeat led and add more explicit description 2024-04-20 12:48:09 -05:00
Ben Meadors
6e30bbb482
Merge pull request #487 from meshtastic/caveman99-patch-1
rename value to "distance"
2024-04-20 12:39:16 -05:00
Thomas Göttgens
bb07ddba10
rename value to "distance" 2024-04-20 16:54:41 +02:00
Ben Meadors
ea127fcbd8
Merge pull request #486 from meshtastic/RCWL-9620
Support RCWL-9620
2024-04-20 09:23:59 -05:00
Thomas Göttgens
6a8677c293 Support RCWL-9620 2024-04-20 16:20:28 +02:00
Ben Meadors
f4be94a7fc
Merge pull request #485 from ndoo/status-led-off
Add status_led_off to support turning status LED off (dark mode)
2024-04-20 07:35:36 -05:00
Andrew Yong
bd70a9a96e
Add status_led_off to support turning status LED off (dark mode)
Signed-off-by: Andrew Yong <me@ndoo.sg>
2024-04-20 14:36:07 +08:00
Ben Meadors
0d08acd9c5
Merge pull request #452 from meshtastic/power_config_comments
Update config.proto
2024-04-17 17:32:18 -05:00
Ben Meadors
ecf105f66d
Merge pull request #484 from S5NC/CDEBYTE_EoRa-S3
Add CDEBYTE_EORA_S3 to mesh.proto HardwareModel enum
2024-04-15 20:52:07 -05:00
S5NC
a650d05aab
Update mesh.proto 2024-04-15 20:30:25 +01:00
Ben Meadors
f92900c5f8
Merge pull request #483 from meshtastic/uptime
Add uptime seconds
2024-04-11 07:01:42 -05:00
Ben Meadors
4051bdbee0
Add uptime seconds 2024-04-10 07:07:37 -05:00
Thomas Göttgens
22cbd0d4cf
Merge pull request #482 from meshtastic/bme680-iaq
Add field for Air quality index (VOC for other sensors)
2024-04-09 14:09:21 +02:00
Thomas Göttgens
61de46ab06 Add fieldfor Air quality index (VOC for other sensors) 2024-04-09 14:01:40 +02:00
Thomas Göttgens
68720ed8db
Merge pull request #480 from meshtastic/jp-bennett-patch-3
Add time_offset to support local timezone
2024-04-07 15:57:54 +02:00
Thomas Göttgens
4a77f8bc08 Update config.options
limit to 64 chars plus zero terminator
2024-04-07 15:56:50 +02:00
Thomas Göttgens
6a4da15a16 change offset to tz definition 2024-04-07 15:56:50 +02:00
Jonathan Bennett
6ae27a2fbf
Add time_offset to support local timezone 2024-04-05 12:00:06 -05:00
Ben Meadors
6157a57237
Merge pull request #478 from meshtastic/td_lorac
Add Teledatics TD-LORAC module
2024-04-03 08:41:15 -05:00
Ben Meadors
e5590e7875 Reorder device-only to fix nanopb generator issue in firmware 2024-04-03 06:52:50 -05:00
Ben Meadors
552e636462 Added TD-LORAC module 2024-04-03 06:48:23 -05:00
Ben Meadors
9edbb188ed
Merge pull request #477 from garethhcoleman/master
Add UNPHONE to mesh.proto HardwareModel enum
2024-04-02 16:14:36 -05:00
Gareth Coleman
42da320406
Add UNPHONE to mesh.proto HardwareModel enum
See PR https://github.com/meshtastic/firmware/pull/3530 to main meshtastic firmware.
2024-04-02 21:00:54 +01:00
Sacha Weatherstone
e6b4c590e7 format 2024-03-30 13:31:28 +10:00
Sacha Weatherstone
2982d3017b cleanup & update actions 2024-03-30 13:31:28 +10:00
Ben Meadors
dea3a82ef2
Merge pull request #473 from meshtastic/move-remote-hardware-pins
Move remote hardware pins to sever problematic device_only dependency
2024-03-25 15:55:41 -05:00
Ben Meadors
53e1c4f6bd Don't need this dep now 2024-03-25 07:45:17 -05:00
Ben Meadors
ce908d8a45 Move to non-namespaced proto 2024-03-25 07:41:06 -05:00
Ben Meadors
633ac9de71 Move remote hardware pins to sever problematic device_only dependency 2024-03-25 07:27:22 -05:00
Ben Meadors
95b0aa07b2
Merge pull request #472 from meshtastic/fixed-position-admin
Dedicated admin messages for fixed position setting and clearing
2024-03-24 18:49:33 -05:00
Ben Meadors
539b53dadb Dedicated admin messages for fixed position setting and clearing 2024-03-24 15:45:17 -05:00
Ben Meadors
0fe69d73e6
Merge pull request #471 from meshtastic/set-favorite 2024-03-21 21:20:32 -05:00
Ben Meadors
57653098ce Set / unset node to be favorited by nodenum 2024-03-21 19:41:01 -05:00
Ben Meadors
bcfb49c498
Merge pull request #469 from meshtastic/is_favorite
Add is_favorite to NodeInfo/Lite
2024-03-21 11:30:52 -05:00
Jonathan Bennett
c2439c916a
Make node_db_lite a vector (#470)
* Change node_db_lite to be flexible size

* Add nanopb.proto to make buf lint happy
2024-03-21 10:42:19 -05:00
Ben Meadors
cb1cef80d4 Not resets 2024-03-21 07:30:10 -05:00
Ben Meadors
76f12f8b61 Add is_favorite to NodeInfo/Lite 2024-03-21 07:27:30 -05:00
Ben Meadors
556e49ba61
Merge pull request #467 from meshtastic/deprecate_nosave
Deprecate DeviceState.no_save
2024-03-16 07:16:58 -05:00
Ben Meadors
77dbc9d65f Deprecate DeviceState.no_save 2024-03-15 18:25:23 -05:00
Ben Meadors
b2b145e332
Merge pull request #466 from meshtastic/ajmcquilkin/😭
😭
2024-03-15 12:57:44 -05:00
Adam McQuilkin
6d2e6704b8 😭 2024-03-15 10:54:41 -07:00
Ben Meadors
cf25b390d6
Merge pull request #465 from meshtastic/wire-heartbeat
Heartbeat needs to be on ToRadio to actually work
2024-03-15 08:07:02 -05:00
Ben Meadors
bc2ceb23a5 Heartbeat neads to be on ToRadio to actually work 2024-03-15 07:53:58 -05:00
Garth Vander Houwen
7e3ee8cd96 Update module_config.options
Increase the size of the root topic to accommodate longer local topics (country, state, county, city, neighborhood etc.)
2024-03-13 14:13:32 +01:00
Adam McQuilkin
6942175394
Merge pull request #462 from meshtastic/ajmcquilkin/serial-heartbeat-packet
Add explicit Heartbeat packet for clients to keep alive (serial) connections
2024-03-10 14:06:13 -07:00
Adam McQuilkin
c854603e9b Add Heartbeat message to clientonly.proto 2024-03-10 13:29:32 -07:00
GUVWAF
00332412b2 Add firmware_version to MapReport 2024-03-10 13:09:59 +01:00
GUVWAF
3cc3e27e7c MapReport message and config for MQTT 2024-03-10 13:09:59 +01:00
Ben Meadors
5a97acb175
Merge pull request #459 from thoherr/add-bmp085_180-sensor
add BMP085 (BMP180) sensor to enum TelemetrySensorType
2024-03-07 07:05:02 -06:00
Thomas Herrmann
e745804bf5 add BMP085 (BMP180) sensor 2024-03-03 10:27:30 +01:00
Ben Meadors
80d68fb6f0
Merge pull request #457 from pdxlocations/broken-links-2 2024-03-02 18:19:41 -06:00
pdxlocations
8d02479329 remove missing links 2024-03-02 14:50:39 -08:00
Ben Meadors
62b7d8b884
Merge pull request #456 from meshtastic/nodeinfo-routing-fields
Add via_mqtt and hops_away to NodeInfo/Lite
2024-03-02 09:32:15 -06:00
Ben Meadors
7ebbc390d2 Add via_mqtt and hops_away to NodeInfo/Lite 2024-03-02 08:00:26 -06:00
Ben Meadors
1e85de9dac
Merge pull request #454 from GUVWAF/hopStart
Add hopStart to MeshPacket
2024-03-02 07:17:32 -06:00
GUVWAF
f26d4bd11f Merge branch 'master' into hopStart 2024-02-28 19:13:36 +01:00
GUVWAF
c0c413bc8d Add hopStart (original hopLimit of a packet) to MeshPacket 2024-02-28 19:13:29 +01:00
Ben Meadors
4e4ccdbb9c
Merge pull request #450 from tobymurray/patch-1
Fix MeshPacket.to comment
2024-02-27 20:37:51 -06:00
Garth Vander Houwen
cd9dddb199
Update config.proto 2024-02-24 16:33:43 -08:00
neil
5241583565 'station_g2' 2024-02-24 21:04:02 +01:00
Garth Vander Houwen
c183973317
Update config.proto
Update proto comments
2024-02-24 11:19:17 -08:00
Toby Murray
9515cf2fb5
Remove mention of payload.dest 2024-02-24 11:52:01 -05:00
Ben Meadors
863fd548c9
Merge pull request #451 from tobymurray/patch-2
Remove fixed FIXME in mesh.proto
2024-02-24 07:41:21 -06:00
Toby Murray
6a28d24bd8
Remove fixed FIXME in mesh.proto
Looks like these FIXMEs got fixed
2024-02-23 23:45:14 -05:00
Toby Murray
4c433ee900
Fix MeshPacket.to comment
Looks like this became garbled in 0221e83d68.
2024-02-23 23:38:22 -05:00
Ben Meadors
24edea6442
Merge pull request #448 from meshtastic/ModuleSettings
adds ModuleSettings and position_precision to ChannelSettings
2024-02-22 07:26:32 -06:00
Ben Meadors
b88889941c
Merge pull request #449 from meshtastic/altitude
Convert alt to int32
2024-02-22 07:14:59 -06:00
Ben Meadors
fcb9b31761
Convert alt to int32 2024-02-22 07:11:54 -06:00
Jonathan Bennett
df08595682 Add precision_bits to location messages 2024-02-22 00:32:06 -06:00
Jonathan Bennett
083d9e7190
Properly put module_settings inside the Channelsettings message 2024-02-22 00:31:35 -06:00
Jonathan Bennett
93c1b33f2f revert channel_precision 2024-02-21 18:58:23 -06:00
Jonathan Bennett
66e138c072 adds ModuleSettings and position_precision to ChannelSettings 2024-02-21 17:02:45 -06:00
Ben Meadors
5f28be497a
Merge pull request #444 from meshtastic/tak-tracker
Add TAK_TRACKER role
2024-02-16 06:31:39 -06:00
Ben Meadors
76002c9df3 Add TAK_TRACKER role 2024-02-15 18:43:13 -06:00
Ben Meadors
4432d3bfc1
Merge pull request #443 from meshtastic/fix_repeateds
Fix nano-pb size macros
2024-02-14 07:22:50 -06:00
Ben Meadors
d980ad6d76 n 2024-02-14 07:20:29 -06:00
Ben Meadors
65ee81a1e9 Fix nano-pb size macros 2024-02-14 07:03:09 -06:00
Ben Meadors
bcf7b74cc8
Merge pull request #442 from meshtastic/hwModel-patch
revert `HardwareModel` enum name change
2024-02-14 06:47:44 -06:00
Andre K
d9d87fdf85
fix: revert HardwareModel enum name change
ref: 4b97cf82ac
2024-02-14 07:47:51 -03:00
Ben Meadors
b9479e6c68
Merge pull request #440 from meshtastic/jp-bennett-patch-1
Add channel_precision for location data
2024-02-12 13:53:39 -06:00
Ben Meadors
4cfff1eaed
Merge pull request #441 from meshtastic/role_descriptions
Add new device role descriptions to protobuf comments
2024-02-12 13:53:27 -06:00
Garth Vander Houwen
61d35ccc4a
Update config.proto
remove stray double quote
2024-02-12 11:43:39 -08:00
Garth Vander Houwen
e10c34959e
Update config.proto
Add lost and found
2024-02-12 11:42:26 -08:00
Garth Vander Houwen
fc6f4b5e5f
Update config.proto 2024-02-12 11:41:04 -08:00
Garth Vander Houwen
1205cf2390
Update config.proto
Add new device role descriptions to protobuf comments to help developers working on apps.
2024-02-12 11:38:13 -08:00
Ben Meadors
388fd79bf7
Merge pull request #435 from Gabrielerusso/master
divided heltec tracker 1.0 and 1.1
2024-02-11 15:56:51 -06:00
Jonathan Bennett
9339bbb8e9
Update config.proto 2024-02-11 11:51:37 -06:00
Jonathan Bennett
0c03644895
Add channel_precision for location data 2024-02-11 11:43:54 -06:00
Gabrielerusso
0238576441 Merge remote-tracking branch 'upstream/master' 2024-02-11 14:56:18 +01:00
Ben Meadors
20f2783e19
Merge pull request #439 from GUVWAF/storeForwardText
StoreForward: add `TEXT_DIRECT` and `TEXT_BROADCAST` RequestResponse tags
2024-02-11 07:35:02 -06:00
GUVWAF
5fde3338a9 StoreForward: add TEXT_DIRECT and TEXT_BROADCAST RequestResponse tags 2024-02-11 14:18:38 +01:00
Ben Meadors
6cb18782b1
Merge pull request #437 from GUVWAF/storeForwardText
StoreForward: replace "empty" by "text" and improve comments
2024-02-10 17:56:56 -06:00
Ben Meadors
68fe60f7e2
Merge pull request #436 from meshtastic/rp2040_lora
Waveshare RP2040 LoRa
2024-02-10 17:56:33 -06:00
GUVWAF
b99a0343a8 StoreForward: replace "empty" by "text" and improve comments 2024-02-10 12:38:35 +01:00
Ben Meadors
f5299ca5c7 Waveshare RP2040 LoRa 2024-02-09 20:35:35 -06:00
Gabrielerusso
4b97cf82ac divided heltec tracker 1.0 and 1.1 2024-02-09 03:23:59 +01:00
61 changed files with 6866 additions and 782 deletions

View file

@ -10,3 +10,21 @@
- [ ] All top level messages commented
- [ ] All enum members have unique descriptions
### New Hardware Model Acceptance Policy
Due to limited availability and ongoing support, new Hardware Models will only be accepted from [Meshtastic Backers and Partners](https://meshtastic.com/). The Meshtastic team reserves the right to make exceptions to this policy.
#### Alternative for Community Contributors
You are welcome to use one of the existing DIY hardware models in your PlatformIO environment and create a pull request in the firmware project. Please note the following conditions:
- The device will **not** be officially supported by the core Meshtastic team.
- The device will **not** appear in the [Web Flasher](https://flasher.meshtastic.org/) or Github release assets.
- You will be responsible for ongoing maintenance and support.
- Community-contributed / DIY hardware models are considered experimental and will likely have limited or no testing.
#### Getting Official Support
To have your hardware model officially supported and included in the Meshtastic ecosystem, consider becoming a Meshtastic Backer or Partner. Visit [meshtastic.com](https://meshtastic.com/) for more information about partnership opportunities.

View file

@ -50,7 +50,7 @@ jobs:
echo "NEW_VERSION=v$MAJOR.$MINOR.$PATCH" >> $GITHUB_OUTPUT
- name: Create release
uses: ncipollo/release-action@v1.13.0
uses: ncipollo/release-action@v1
with:
name: Meshtastic Protobufs ${{ steps.version.outputs.NEW_VERSION }}
tag: ${{ steps.version.outputs.NEW_VERSION }}
@ -58,14 +58,14 @@ jobs:
token: ${{ github.token }}
- name: Setup Buf
uses: bufbuild/buf-setup-action@v1.26.1
uses: bufbuild/buf-action@v1.2.0
with:
github_token: ${{ github.token }}
token: ${{ secrets.BUF_TOKEN }}
setup_only: true
- name: Push to schema registry
# uses: bufbuild/buf-push-action@v1
# with:
# buf_token: ${{ secrets.BUF_TOKEN }}
env:
BUF_TOKEN: ${{ secrets.BUF_TOKEN }}
run: |
export BUF_TOKEN=${{ secrets.BUF_TOKEN }}
buf push --tag ${{ steps.version.outputs.NEW_VERSION }}

View file

@ -1,30 +1,263 @@
name: Push new version to schema registry
permissions:
contents: read
name: Publish to JSR & NPM
on:
push:
tags:
- "**"
- "v*"
workflow_dispatch:
inputs:
version:
description: "Version to publish (e.g. v1.2.3). Used when manually dispatching."
required: false
type: string
dry_run:
description: "Dry run mode - generate artifacts without publishing"
required: false
type: boolean
default: false
permissions:
contents: write
id-token: write
jobs:
push_to_registry:
runs-on: ubuntu-latest
codegen:
runs-on: ubuntu-24.04
outputs:
version: ${{ steps.version.outputs.VERSION }}
tag: ${{ steps.version.outputs.TAG }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Determine version
id: version
run: |
set -euo pipefail
if [ "${{ github.ref_type }}" = "tag" ]; then
TAG="${{ github.ref_name }}"
elif [ -n "${{ inputs.version || '' }}" ]; then
TAG="${{ inputs.version }}"
else
echo "No tag ref and no 'version' input. Provide a tag (push a tag) or pass inputs.version." >&2
exit 1
fi
VERSION="${TAG#v}"
echo "VERSION=$VERSION" >> "$GITHUB_OUTPUT"
echo "TAG=$TAG" >> "$GITHUB_OUTPUT"
echo "Resolved VERSION=$VERSION, TAG=$TAG"
- name: Setup Buf
uses: bufbuild/buf-setup-action@main
with:
github_token: ${{ github.token }}
- name: Generate protobuf code
run: buf generate
- name: Move generated files to lib root
run: |
set -euo pipefail
src_dir="packages/ts/lib/meshtastic"
dest_dir="packages/ts/lib"
if [ ! -d "$src_dir" ]; then
echo "Expected source directory '$src_dir' does not exist. 'buf generate' may have failed or changed its output paths." >&2
exit 1
fi
if ! compgen -G "$src_dir"/*_pb.ts > /dev/null; then
echo "No '*_pb.ts' files found in '$src_dir'. 'buf generate' may have produced no TypeScript files or changed their naming." >&2
exit 1
fi
mv "$src_dir"/*_pb.ts "$dest_dir"/
- name: Show generated files
run: |
echo "=== packages/ts contents ==="
ls -la packages/ts/
echo "=== packages/ts/lib contents ==="
ls -la packages/ts/lib/ || echo "lib folder not found"
- name: Set package versions
run: |
set -euo pipefail
VERSION="${{ steps.version.outputs.VERSION }}"
for f in packages/ts/deno.json packages/ts/package.json; do
test -f "$f" || { echo "Missing $f" >&2; exit 1; }
sed -i "s/__PACKAGE_VERSION__/${VERSION}/g" "$f"
done
- name: Copy license & README
run: cp LICENSE README.md packages/ts/
- name: Upload TypeScript code
uses: actions/upload-artifact@v4
with:
name: ts_code
path: packages/ts
build-typescript:
runs-on: ubuntu-24.04
needs: codegen
steps:
- name: Download TypeScript code
uses: actions/download-artifact@v4
with:
name: ts_code
- name: Show downloaded files
run: |
echo "=== Working directory ==="
pwd
echo "=== Contents ==="
ls -la
echo "=== lib/ contents ==="
ls -la lib/ || echo "lib folder not found"
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Install dependencies
run: npm install
- name: Build with tsdown
run: npm run build
- name: Show build output
run: |
echo "=== Build output ==="
ls -la
ls -la dist/
- name: Upload built NPM package
uses: actions/upload-artifact@v4
with:
name: npm_package
path: |
dist/
package.json
LICENSE
README.md
- name: Upload JSR package
uses: actions/upload-artifact@v4
with:
name: jsr_package
path: |
lib/
mod.ts
deno.json
LICENSE
README.md
create-release-zips:
runs-on: ubuntu-24.04
needs: [codegen, build-typescript]
steps:
- name: Download NPM package
uses: actions/download-artifact@v4
with:
name: npm_package
path: npm_package
- name: Download JSR package
uses: actions/download-artifact@v4
with:
name: jsr_package
path: jsr_package
- name: Create zip archives
run: |
cd npm_package && zip -r ../meshtastic-protobufs-npm.zip . && cd ..
cd jsr_package && zip -r ../meshtastic-protobufs-jsr.zip . && cd ..
- name: Upload release zips
uses: actions/upload-artifact@v4
with:
name: release_zips
path: |
meshtastic-protobufs-npm.zip
meshtastic-protobufs-jsr.zip
upload-release-assets:
runs-on: ubuntu-24.04
needs: [codegen, create-release-zips]
if: ${{ !inputs.dry_run }}
steps:
- name: Download release zips
uses: actions/download-artifact@v4
with:
name: release_zips
- name: Upload assets to GitHub release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ needs.codegen.outputs.tag }}
files: |
meshtastic-protobufs-npm.zip
meshtastic-protobufs-jsr.zip
push-buf-registry:
runs-on: ubuntu-24.04
needs: codegen
if: ${{ !inputs.dry_run }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Buf
uses: bufbuild/buf-setup-action@v1.26.1
uses: bufbuild/buf-setup-action@main
with:
github_token: ${{ github.token }}
- name: Push to schema registry
# uses: bufbuild/buf-push-action@v1
# with:
# buf_token: ${{ secrets.BUF_TOKEN }}
run: |
export BUF_TOKEN=${{ secrets.BUF_TOKEN }}
buf push --tag ${{ github.ref_name }}
env:
BUF_TOKEN: ${{ secrets.BUF_TOKEN }}
run: buf push --tag ${{ needs.codegen.outputs.tag }}
publish-npm:
runs-on: ubuntu-24.04
needs: [codegen, build-typescript]
if: ${{ !inputs.dry_run }}
steps:
- name: Download NPM package
uses: actions/download-artifact@v4
with:
name: npm_package
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
registry-url: "https://registry.npmjs.org"
- name: Publish to NPM
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
publish-jsr:
runs-on: ubuntu-24.04
needs: [codegen, build-typescript]
if: ${{ !inputs.dry_run }}
permissions:
contents: read
id-token: write
steps:
- name: Download JSR package
uses: actions/download-artifact@v4
with:
name: jsr_package
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Publish to JSR
run: npx jsr publish

View file

@ -2,6 +2,7 @@ name: pull-request
permissions:
contents: read
pull-requests: write
on: pull_request
jobs:
@ -12,16 +13,11 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Buf
uses: bufbuild/buf-setup-action@v1.26.1
- name: Buf PR Checks
uses: bufbuild/buf-action@v1.2.0
with:
github_token: ${{ github.token }}
- name: Lint
uses: bufbuild/buf-lint-action@v1.0.3
- name: Push to schema registry
uses: bufbuild/buf-push-action@v1.1.1
with:
buf_token: ${{ secrets.BUF_TOKEN }}
draft: ${{ github.ref_name != 'master'}}
token: ${{ secrets.BUF_TOKEN }}
format: true
lint: true
breaking: true

View file

@ -16,12 +16,9 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Buf
uses: bufbuild/buf-setup-action@v1.26.1
- name: Push to schema registry
uses: bufbuild/buf-action@v1.2.0
with:
github_token: ${{ github.token }}
- name: Push to schema registry
uses: bufbuild/buf-push-action@v1.1.1
with:
buf_token: ${{ secrets.BUF_TOKEN }}
token: ${{ secrets.BUF_TOKEN }}
push: true

5
.gitignore vendored Normal file
View file

@ -0,0 +1,5 @@
.DS_Store
# Generated protobuf files
packages/ts/lib/
.bin/

8
.trunk/.gitignore vendored
View file

@ -1,8 +0,0 @@
*out
*logs
*actions
*notifications
*tools
plugins
user_trunk.yaml
user.yaml

View file

@ -1,10 +0,0 @@
# Autoformatter friendly markdownlint config (all formatting rules disabled)
default: true
blank_lines: false
bullet: false
html: false
indentation: false
line_length: false
spaces: false
url: false
whitespace: false

View file

@ -1,10 +0,0 @@
rules:
quoted-strings:
required: only-when-needed
extra-allowed: ["{|}"]
empty-values:
forbid-in-block-mappings: true
forbid-in-flow-mappings: true
key-duplicates: {}
octal-values:
forbid-implicit-octal: true

View file

@ -1,33 +0,0 @@
version: 0.1
cli:
version: 1.16.2
plugins:
sources:
- id: trunk
ref: v1.2.5
uri: https://github.com/trunk-io/plugins
lint:
enabled:
- checkov@2.4.9
- trivy@0.45.1
- trufflehog@3.57.0
- yamllint@1.32.0
- buf-lint@1.26.1
- buf-breaking@1.26.1
- actionlint@1.6.26
- markdownlint@0.37.0
- prettier@3.0.3
- gitleaks@8.18.0
- git-diff-check
runtimes:
enabled:
- python@3.10.8
- go@1.21.0
- node@18.12.1
actions:
disabled:
- trunk-announce
- trunk-check-pre-push
- trunk-fmt-pre-commit
enabled:
- trunk-upgrade-available

View file

@ -1,3 +1,3 @@
{
"recommendations": ["trunk.io", "pbkit.vscode-pbkit", "bufbuild.vscode-buf"]
"recommendations": ["pbkit.vscode-pbkit", "bufbuild.vscode-buf"]
}

View file

@ -1,4 +1,4 @@
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "trunk.io"
"editor.defaultFormatter": "pbkit.vscode-pbkit"
}

5
buf.gen.yaml Normal file
View file

@ -0,0 +1,5 @@
version: v2
plugins:
- remote: buf.build/bufbuild/es:v2.1.0
out: packages/ts/lib
opt: target=ts,import_extension=.ts

View file

@ -1,11 +1,23 @@
version: v1
name: buf.build/meshtastic/protobufs
deps: []
build:
excludes: []
breaking:
use:
- FILE
lint:
use:
- MINIMAL
version: v2
modules:
- path: .
name: buf.build/meshtastic/protobufs
excludes:
- .trunk/
- meshtastic/device_only/
lint:
use:
- MINIMAL
except:
- PACKAGE_NO_IMPORT_CYCLE
ignore_only:
PACKAGE_DEFINED:
- nanopb.proto
disallow_comment_ignores: true
breaking:
use:
- FILE
except:
- EXTENSION_NO_DELETE
- FIELD_SAME_DEFAULT

View file

@ -1,5 +1,14 @@
*AdminMessage.payload_variant anonymous_oneof:true
*AdminMessage.session_passkey max_size:8
*AdminMessage.OTAEvent.ota_hash max_size:32
*AdminMessage.InputEvent.event_code int_size:8
*AdminMessage.InputEvent.kb_char int_size:8
*AdminMessage.InputEvent.touch_x int_size:16
*AdminMessage.InputEvent.touch_y int_size:16
*AdminMessage.set_canned_message_module_messages max_size:201
*AdminMessage.get_canned_message_module_messages_response max_size:201
*AdminMessage.delete_file_request max_size:201
@ -8,5 +17,5 @@
*AdminMessage.get_ringtone_response max_size:231
*HamParameters.call_sign max_size:8
*HamParameters.short_name max_size:6
*NodeRemoteHardwarePinsResponse.node_remote_hardware_pins max_count:16
*HamParameters.short_name max_size:5
*NodeRemoteHardwarePinsResponse.node_remote_hardware_pins max_count:16

View file

@ -2,17 +2,18 @@ syntax = "proto3";
package meshtastic;
/* trunk-ignore(buf-lint/COMPILE) */
import "meshtastic/channel.proto";
import "meshtastic/config.proto";
import "meshtastic/connection_status.proto";
import "meshtastic/deviceonly.proto";
import "meshtastic/device_ui.proto";
import "meshtastic/mesh.proto";
import "meshtastic/module_config.proto";
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "AdminProtos";
option java_package = "com.geeksville.mesh";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
/*
@ -21,6 +22,13 @@ option swift_prefix = "";
* (Prior to 1.2 these operations were done via special ToRadio operations)
*/
message AdminMessage {
/*
* The node generates this key and sends it with any get_x_response packets.
* The client MUST include the same key with any set_x commands. Key expires after 300 seconds.
* Prevents replay attacks for admin messages.
*/
bytes session_passkey = 101;
/*
* TODO: REPLACE
*/
@ -59,6 +67,21 @@ message AdminMessage {
* TODO: REPLACE
*/
BLUETOOTH_CONFIG = 6;
/*
* TODO: REPLACE
*/
SECURITY_CONFIG = 7;
/*
* Session key config
*/
SESSIONKEY_CONFIG = 8;
/*
* device-ui config
*/
DEVICEUI_CONFIG = 9;
}
/*
@ -129,6 +152,72 @@ message AdminMessage {
* TODO: REPLACE
*/
PAXCOUNTER_CONFIG = 12;
/*
* TODO: REPLACE
*/
STATUSMESSAGE_CONFIG = 13;
/*
* Traffic management module config
*/
TRAFFICMANAGEMENT_CONFIG = 14;
/*
* TAK module config
*/
TAK_CONFIG = 15;
}
enum BackupLocation {
/*
* Backup to the internal flash
*/
FLASH = 0;
/*
* Backup to the SD card
*/
SD = 1;
}
/*
* Input event message to be sent to the node.
*/
message InputEvent {
/*
* The input event code
*/
uint32 event_code = 1;
/*
* Keyboard character code
*/
uint32 kb_char = 2;
/*
* The touch X coordinate
*/
uint32 touch_x = 3;
/*
* The touch Y coordinate
*/
uint32 touch_y = 4;
}
/*
* User is requesting an over the air update.
* Node will reboot into the OTA loader
*/
message OTAEvent {
/*
* Tell the node to reboot into OTA mode for firmware update via BLE or WiFi (ESP32 only for now)
*/
OTAMode reboot_ota_mode = 1;
/*
* A 32 byte hash of the OTA firmware.
* Used to verify the integrity of the firmware before applying an update.
*/
bytes ota_hash = 2;
}
/*
@ -242,6 +331,32 @@ message AdminMessage {
*/
string delete_file_request = 22;
/*
* Set zero and offset for scale chips
*/
uint32 set_scale = 23;
/*
* Backup the node's preferences
*/
BackupLocation backup_preferences = 24;
/*
* Restore the node's preferences
*/
BackupLocation restore_preferences = 25;
/*
* Remove backups of the node's preferences
*/
BackupLocation remove_backup_preferences = 26;
/*
* Send an input event to the node.
* This is used to trigger physical input events like button presses, touch events, etc.
*/
InputEvent send_input_event = 27;
/*
* Set the owner for this node
*/
@ -281,6 +396,62 @@ message AdminMessage {
*/
uint32 remove_by_nodenum = 38;
/*
* Set specified node-num to be favorited on the NodeDB on the device
*/
uint32 set_favorite_node = 39;
/*
* Set specified node-num to be un-favorited on the NodeDB on the device
*/
uint32 remove_favorite_node = 40;
/*
* Set fixed position data on the node and then set the position.fixed_position = true
*/
Position set_fixed_position = 41;
/*
* Clear fixed position coordinates and then set position.fixed_position = false
*/
bool remove_fixed_position = 42;
/*
* Set time only on the node
* Convenience method to set the time on the node (as Net quality) without any other position data
*/
fixed32 set_time_only = 43;
/*
* Tell the node to send the stored ui data.
*/
bool get_ui_config_request = 44;
/*
* Reply stored device ui data.
*/
DeviceUIConfig get_ui_config_response = 45;
/*
* Tell the node to store UI data persistently.
*/
DeviceUIConfig store_ui_config = 46;
/*
* Set specified node-num to be ignored on the NodeDB on the device
*/
uint32 set_ignored_node = 47;
/*
* Set specified node-num to be un-ignored on the NodeDB on the device
*/
uint32 remove_ignored_node = 48;
/*
* Set specified node-num to be muted
*/
uint32 toggle_muted_node = 49;
/*
* Begins an edit transaction for config, module config, owner, and channel settings changes
* This will delay the standard *implicit* save to the file system and subsequent reboot behavior until committed (commit_edit_settings)
@ -292,11 +463,27 @@ message AdminMessage {
*/
bool commit_edit_settings = 65;
/*
* Add a contact (User) to the nodedb
*/
SharedContact add_contact = 66;
/*
* Initiate or respond to a key verification request
*/
KeyVerificationAdmin key_verification = 67;
/*
* Tell the node to factory reset config everything; all device state and configuration will be returned to factory defaults and BLE bonds will be cleared.
*/
int32 factory_reset_device = 94;
/*
* Tell the node to reboot into the OTA Firmware in this many seconds (or <0 to cancel reboot)
* Only Implemented for ESP32 Devices. This needs to be issued to send a new main firmware via bluetooth.
* Deprecated in favor of reboot_ota_mode in 2.7.17
*/
int32 reboot_ota_seconds = 95;
int32 reboot_ota_seconds = 95 [deprecated = true];
/*
* This message is only supported for the simulator Portduino build.
@ -315,17 +502,48 @@ message AdminMessage {
int32 shutdown_seconds = 98;
/*
* Tell the node to factory reset, all device settings will be returned to factory defaults.
* Tell the node to factory reset config; all device state and configuration will be returned to factory defaults; BLE bonds will be preserved.
*/
int32 factory_reset = 99;
int32 factory_reset_config = 99;
/*
* Tell the node to reset the nodedb.
* When true, favorites are preserved through reset.
*/
int32 nodedb_reset = 100;
bool nodedb_reset = 100;
/*
* Tell the node to reset into the OTA Loader
*/
OTAEvent ota_request = 102;
/*
* Parameters and sensor configuration
*/
SensorConfig sensor_config = 103;
}
}
/*
* Firmware update mode for OTA updates
*/
enum OTAMode {
/*
* Do not reboot into OTA mode
*/
NO_REBOOT_OTA = 0;
/*
* Reboot into OTA mode for BLE firmware update
*/
OTA_BLE = 1;
/*
* Reboot into OTA mode for WiFi firmware update
*/
OTA_WIFI = 2;
}
/*
* Parameters for setting up Meshtastic for ameteur radio usage
*/
@ -362,3 +580,183 @@ message NodeRemoteHardwarePinsResponse {
*/
repeated NodeRemoteHardwarePin node_remote_hardware_pins = 1;
}
message SharedContact {
/*
* The node number of the contact
*/
uint32 node_num = 1;
/*
* The User of the contact
*/
User user = 2;
/*
* Add this contact to the blocked / ignored list
*/
bool should_ignore = 3;
/*
* Set the IS_KEY_MANUALLY_VERIFIED bit
*/
bool manually_verified = 4;
}
/*
* This message is used by a client to initiate or complete a key verification
*/
message KeyVerificationAdmin {
/*
* Three stages of this request.
*/
enum MessageType {
/*
* This is the first stage, where a client initiates
*/
INITIATE_VERIFICATION = 0;
/*
* After the nonce has been returned over the mesh, the client prompts for the security number
* And uses this message to provide it to the node.
*/
PROVIDE_SECURITY_NUMBER = 1;
/*
* Once the user has compared the verification message, this message notifies the node.
*/
DO_VERIFY = 2;
/*
* This is the cancel path, can be taken at any point
*/
DO_NOT_VERIFY = 3;
}
MessageType message_type = 1;
/*
* The nodenum we're requesting
*/
uint32 remote_nodenum = 2;
/*
* The nonce is used to track the connection
*/
uint64 nonce = 3;
/*
* The 4 digit code generated by the remote node, and communicated outside the mesh
*/
optional uint32 security_number = 4;
}
message SensorConfig {
/*
* SCD4X CO2 Sensor configuration
*/
SCD4X_config scd4x_config = 1;
/*
* SEN5X PM Sensor configuration
*/
SEN5X_config sen5x_config = 2;
/*
* SCD30 CO2 Sensor configuration
*/
SCD30_config scd30_config = 3;
/*
* SHTXX temperature and relative humidity sensor configuration
*/
SHTXX_config shtxx_config = 4;
}
message SCD4X_config {
/*
* Set Automatic self-calibration enabled
*/
optional bool set_asc = 1;
/*
* Recalibration target CO2 concentration in ppm (FRC or ASC)
*/
optional uint32 set_target_co2_conc = 2;
/*
* Reference temperature in degC
*/
optional float set_temperature = 3;
/*
* Altitude of sensor in meters above sea level. 0 - 3000m (overrides ambient pressure)
*/
optional uint32 set_altitude = 4;
/*
* Sensor ambient pressure in Pa. 70000 - 120000 Pa (overrides altitude)
*/
optional uint32 set_ambient_pressure = 5;
/*
* Perform a factory reset of the sensor
*/
optional bool factory_reset = 6;
/*
* Power mode for sensor (true for low power, false for normal)
*/
optional bool set_power_mode = 7;
}
message SEN5X_config {
/*
* Reference temperature in degC
*/
optional float set_temperature = 1;
/*
* One-shot mode (true for low power - one-shot mode, false for normal - continuous mode)
*/
optional bool set_one_shot_mode = 2;
}
message SCD30_config {
/*
* Set Automatic self-calibration enabled
*/
optional bool set_asc = 1;
/*
* Recalibration target CO2 concentration in ppm (FRC or ASC)
*/
optional uint32 set_target_co2_conc = 2;
/*
* Reference temperature in degC
*/
optional float set_temperature = 3;
/*
* Altitude of sensor in meters above sea level. 0 - 3000m (overrides ambient pressure)
*/
optional uint32 set_altitude = 4;
/*
* Power mode for sensor (true for low power, false for normal)
*/
optional uint32 set_measurement_interval = 5;
/*
* Perform a factory reset of the sensor
*/
optional bool soft_reset = 6;
}
message SHTXX_config {
/*
* Accuracy mode (0 = low, 1 = medium, 2 = high)
*/
optional uint32 set_accuracy = 1;
}

View file

@ -8,7 +8,7 @@ import "meshtastic/config.proto";
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "AppOnlyProtos";
option java_package = "com.geeksville.mesh";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
/*

View file

@ -3,4 +3,108 @@
*Status.battery int_size:8
*PLI.course int_size:16
*GeoChat.message max_size:200
*GeoChat.to max_size:120
*GeoChat.to max_size:120
*GeoChat.to_callsign max_size:120
*TAKPacket.detail max_size:220
*TAKPacketV2.cot_type_str max_size:32
*TAKPacketV2.callsign max_size:120
*TAKPacketV2.uid max_size:48
*TAKPacketV2.device_callsign max_size:120
*TAKPacketV2.tak_version max_size:64
*TAKPacketV2.tak_device max_size:32
*TAKPacketV2.tak_platform max_size:32
*TAKPacketV2.tak_os max_size:16
*TAKPacketV2.endpoint max_size:32
*TAKPacketV2.phone max_size:20
*TAKPacketV2.raw_detail max_size:220
*TAKPacketV2.stale_seconds int_size:16
*TAKPacketV2.battery int_size:8
*TAKPacketV2.course int_size:16
*AircraftTrack.icao max_size:8
*AircraftTrack.registration max_size:16
*AircraftTrack.flight max_size:16
*AircraftTrack.aircraft_type max_size:8
*AircraftTrack.squawk int_size:16
*AircraftTrack.category max_size:4
*AircraftTrack.cot_host_id max_size:64
# --- Typed geometry payloads (v2 protocol extension) ---
#
# CotGeoPoint: sint32 deltas from the enclosing event's latitude_i/longitude_i.
# For nearby vertices (telestrations, small rectangles) the varint+zigzag
# encoding is 2-3 bytes per field, cutting telestration vertex data in half
# versus sfixed32. int_size:32 keeps the C type a plain int32.
# Named with a `Cot` prefix to avoid a collision with `meshtastic.GeoPoint`
# in device_ui.proto, which is an unrelated zoom/latitude/longitude type.
*CotGeoPoint.lat_delta_i int_size:32
*CotGeoPoint.lon_delta_i int_size:32
#
# DrawnShape pool sizing. `kind` and `style` are varint enums (no int_size
# needed). stroke_color / fill_color are Team enum, also varint. stroke_argb
# / fill_argb are fixed32 (always 4 bytes on the wire). Vertex pool is 32
# entries x ~12B each ~= 384B worst case. Telestrations beyond 32 vertices
# MUST be pre-truncated by the sender with `truncated = true`.
*DrawnShape.vertices max_count:32
*DrawnShape.major_cm int_size:32
*DrawnShape.minor_cm int_size:32
*DrawnShape.angle_deg int_size:16
*DrawnShape.stroke_weight_x10 int_size:16
*DrawnShape.bullseye_distance_dm int_size:32
*DrawnShape.bullseye_bearing_ref int_size:8
*DrawnShape.bullseye_flags int_size:8
*DrawnShape.bullseye_uid_ref max_size:48
# Marker pool sizing. Strings bounded tight to keep fixed pool small on
# ESP32 nanopb. parent_uid matches existing TAKPacketV2.uid cap (48).
# iconset fits "f7f71666-8b28-4b57-9fbb-e38e61d33b79/Google/hiker.png"
# (~52 chars) with slack.
*Marker.parent_uid max_size:48
*Marker.parent_type max_size:24
*Marker.parent_callsign max_size:24
*Marker.iconset max_size:80
# RangeAndBearing pool sizing.
*RangeAndBearing.anchor_uid max_size:48
*RangeAndBearing.range_cm int_size:32
*RangeAndBearing.bearing_cdeg int_size:16
*RangeAndBearing.stroke_weight_x10 int_size:16
# Route pool sizing. 16 links x ~24B each ~= 384B worst case. prefix is
# ATAK's short waypoint name prefix ("CP", "RP", etc.) — 8 chars is plenty.
*Route.links max_count:16
*Route.prefix max_size:8
*Route.stroke_weight_x10 int_size:16
*Route.Link.uid max_size:48
*Route.Link.callsign max_size:16
*Route.Link.link_type int_size:8
# GeoChat receipt extension. receipt_for_uid matches TAKPacketV2.uid caps.
*GeoChat.receipt_for_uid max_size:48
# CasevacReport pool sizing. All numeric fields are small (0..255 for
# patient counts, 1 byte for flags bitfields); strings are short.
*CasevacReport.equipment_flags int_size:8
*CasevacReport.terrain_flags int_size:8
*CasevacReport.litter_patients int_size:8
*CasevacReport.ambulatory_patients int_size:8
*CasevacReport.us_military int_size:8
*CasevacReport.us_civilian int_size:8
*CasevacReport.non_us_military int_size:8
*CasevacReport.non_us_civilian int_size:8
*CasevacReport.epw int_size:8
*CasevacReport.child int_size:8
*CasevacReport.zone_marker max_size:16
*CasevacReport.frequency max_size:16
# EmergencyAlert pool sizing. UIDs match TAKPacketV2.uid caps (48).
*EmergencyAlert.authoring_uid max_size:48
*EmergencyAlert.cancel_reference_uid max_size:48
# TaskRequest pool sizing. All four strings are capped tight so the
# worst-case wire size stays under the LoRa MTU with headroom. task_type
# is a short category tag; target_uid/assignee_uid match TAKPacketV2.uid
# conventions; note is the one user-entered field.
*TaskRequest.task_type max_size:12
*TaskRequest.target_uid max_size:32
*TaskRequest.assignee_uid max_size:32
*TaskRequest.note max_size:48

File diff suppressed because it is too large Load diff

View file

@ -5,7 +5,7 @@ package meshtastic;
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "CannedMessageConfigProtos";
option java_package = "com.geeksville.mesh";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
/*

View file

@ -1,11 +1,12 @@
syntax = "proto3";
/* trunk-ignore(buf-lint/PACKAGE_DIRECTORY_MATCH) */
package meshtastic;
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "ChannelProtos";
option java_package = "com.geeksville.mesh";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
/*
@ -81,6 +82,27 @@ message ChannelSettings {
* If true, messages seen on the internet will be forwarded to the local mesh.
*/
bool downlink_enabled = 6;
/*
* Per-channel module settings.
*/
ModuleSettings module_settings = 7;
}
/*
* This message is specifically for modules to store per-channel configuration data.
*/
message ModuleSettings {
/*
* Bits of precision for the location sent in position packets.
*/
uint32 position_precision = 1;
/*
* Controls whether or not the client / device should mute the current channel
* Useful for noisy public channels you don't necessarily want to disable
*/
bool is_muted = 2;
}
/*
@ -132,4 +154,4 @@ message Channel {
* TODO: REPLACE
*/
Role role = 3;
}
}

View file

@ -1,2 +1,4 @@
*DeviceProfile.long_name max_size:40
*DeviceProfile.short_name max_size:5
*DeviceProfile.short_name max_size:5
*DeviceProfile.ringtone max_size:231
*DeviceProfile.canned_messages max_size:201

View file

@ -3,11 +3,12 @@ syntax = "proto3";
package meshtastic;
import "meshtastic/localonly.proto";
import "meshtastic/mesh.proto";
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "ClientOnlyProtos";
option java_package = "com.geeksville.mesh";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
/*
@ -39,4 +40,19 @@ message DeviceProfile {
* The ModuleConfig of the node
*/
optional LocalModuleConfig module_config = 5;
/*
* Fixed position data
*/
optional Position fixed_position = 6;
/*
* Ringtone for ExternalNotification
*/
optional string ringtone = 7;
/*
* Predefined messages for CannedMessage
*/
optional string canned_messages = 8;
}

View file

@ -1,3 +1,8 @@
# longest current is 45 chars, plan with a bit of buffer
*DeviceConfig.tzdef max_size:65
*DeviceConfig.buzzer_mode int_size:8
*NetworkConfig.wifi_ssid max_size:33
*NetworkConfig.wifi_psk max_size:65
*NetworkConfig.ntp_server max_size:33
@ -12,3 +17,8 @@
*LoRaConfig.channel_num int_size:16
*PowerConfig.device_battery_ina_address int_size:8
*SecurityConfig.public_key max_size:32
*SecurityConfig.private_key max_size:32
*SecurityConfig.admin_key max_size:32
*SecurityConfig.admin_key max_count:3

View file

@ -2,10 +2,12 @@ syntax = "proto3";
package meshtastic;
import "meshtastic/device_ui.proto";
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "ConfigProtos";
option java_package = "com.geeksville.mesh";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
message Config {
@ -18,77 +20,103 @@ message Config {
*/
enum Role {
/*
* Client device role
* Description: App connected or stand alone messaging device.
* Technical Details: Default Role
*/
CLIENT = 0;
/*
* Client Mute device role
* Same as a client except packets will not hop over this node, does not contribute to routing packets for mesh.
* Description: Device that does not forward packets from other devices.
*/
CLIENT_MUTE = 1;
/*
* Router device role.
* Mesh packets will prefer to be routed over this node. This node will not be used by client apps.
* The wifi/ble radios and the oled screen will be put to sleep.
* Description: Infrastructure node for extending network coverage by relaying messages. Visible in Nodes list.
* Technical Details: Mesh packets will prefer to be routed over this node. This node will not be used by client apps.
* The wifi radio and the oled screen will be put to sleep.
* This mode may still potentially have higher power usage due to it's preference in message rebroadcasting on the mesh.
*/
ROUTER = 2;
/*
* Router Client device role
* Mesh packets will prefer to be routed over this node. The Router Client can be used as both a Router and an app connected Client.
* Description: Combination of both ROUTER and CLIENT. Not for mobile devices.
* Deprecated in v2.3.15 because improper usage is impacting public meshes: Use ROUTER or CLIENT instead.
*/
ROUTER_CLIENT = 3;
ROUTER_CLIENT = 3 [deprecated = true];
/*
* Repeater device role
* Mesh packets will simply be rebroadcasted over this node. Nodes configured with this role will not originate NodeInfo, Position, Telemetry
* Description: Infrastructure node for extending network coverage by relaying messages with minimal overhead. Not visible in Nodes list.
* Technical Details: Mesh packets will simply be rebroadcasted over this node. Nodes configured with this role will not originate NodeInfo, Position, Telemetry
* or any other packet type. They will simply rebroadcast any mesh packets on the same frequency, channel num, spread factor, and coding rate.
* Deprecated in v2.7.11 because it creates "holes" in the mesh rebroadcast chain.
*/
REPEATER = 4;
REPEATER = 4 [deprecated = true];
/*
* Tracker device role
* Position Mesh packets will be prioritized higher and sent more frequently by default.
* When used in conjunction with power.is_power_saving = true, nodes will wake up,
* Description: Broadcasts GPS position packets as priority.
* Technical Details: Position Mesh packets will be prioritized higher and sent more frequently by default.
* When used in conjunction with power.is_power_saving = true, nodes will wake up,
* send position, and then sleep for position.position_broadcast_secs seconds.
*/
TRACKER = 5;
/*
* Sensor device role
* Telemetry Mesh packets will be prioritized higher and sent more frequently by default.
* When used in conjunction with power.is_power_saving = true, nodes will wake up,
* Description: Broadcasts telemetry packets as priority.
* Technical Details: Telemetry Mesh packets will be prioritized higher and sent more frequently by default.
* When used in conjunction with power.is_power_saving = true, nodes will wake up,
* send environment telemetry, and then sleep for telemetry.environment_update_interval seconds.
*/
SENSOR = 6;
/*
* TAK device role
* Used for nodes dedicated for connection to an ATAK EUD.
* Description: Optimized for ATAK system communication and reduces routine broadcasts.
* Technical Details: Used for nodes dedicated for connection to an ATAK EUD.
* Turns off many of the routine broadcasts to favor CoT packet stream
* from the Meshtastic ATAK plugin -> IMeshService -> Node
*/
TAK = 7;
/*
* Client Hidden device role
* Used for nodes that "only speak when spoken to"
* Description: Device that only broadcasts as needed for stealth or power savings.
* Technical Details: Used for nodes that "only speak when spoken to"
* Turns all of the routine broadcasts but allows for ad-hoc communication
* Still rebroadcasts, but with local only rebroadcast mode (known meshes only)
* Can be used for clandestine operation or to dramatically reduce airtime / power consumption
* Can be used for clandestine operation or to dramatically reduce airtime / power consumption
*/
CLIENT_HIDDEN = 8;
/*
* Lost and Found device role
* Used to automatically send a text message to the mesh
* Description: Broadcasts location as message to default channel regularly for to assist with device recovery.
* Technical Details: Used to automatically send a text message to the mesh
* with the current position of the device on a frequent interval:
* "I'm lost! Position: lat / long"
*/
LOST_AND_FOUND = 9;
/*
* Description: Enables automatic TAK PLI broadcasts and reduces routine broadcasts.
* Technical Details: Turns off many of the routine broadcasts to favor ATAK CoT packet stream
* and automatic TAK PLI (position location information) broadcasts.
* Uses position module configuration to determine TAK PLI broadcast interval.
*/
TAK_TRACKER = 10;
/*
* Description: Will always rebroadcast packets, but will do so after all other modes.
* Technical Details: Used for router nodes that are intended to provide additional coverage
* in areas not already covered by other routers, or to bridge around problematic terrain,
* but should not be given priority over other routers in order to avoid unnecessaraily
* consuming hops.
*/
ROUTER_LATE = 11;
/*
* Description: Treats packets from or to favorited nodes as ROUTER_LATE, and all other packets as CLIENT.
* Technical Details: Used for stronger attic/roof nodes to distribute messages more widely
* from weaker, indoor, or less-well-positioned nodes. Recommended for users with multiple nodes
* where one CLIENT_BASE acts as a more powerful base station, such as an attic/roof node.
*/
CLIENT_BASE = 12;
}
/*
@ -112,12 +140,60 @@ message Config {
* Only rebroadcasts message on the nodes local primary / secondary channels.
*/
LOCAL_ONLY = 2;
/*
* Ignores observed messages from foreign meshes like LOCAL_ONLY,
* but takes it step further by also ignoring messages from nodenums not in the node's known list (NodeDB)
*/
KNOWN_ONLY = 3;
/*
* Only permitted for SENSOR, TRACKER and TAK_TRACKER roles, this will inhibit all rebroadcasts, not unlike CLIENT_MUTE role.
*/
NONE = 4;
/*
* Ignores packets from non-standard portnums such as: TAK, RangeTest, PaxCounter, etc.
* Only rebroadcasts packets with standard portnums: NodeInfo, Text, Position, Telemetry, and Routing.
*/
CORE_PORTNUMS_ONLY = 5;
}
/*
* Defines buzzer behavior for audio feedback
*/
enum BuzzerMode {
/*
* Default behavior.
* Buzzer is enabled for all audio feedback including button presses and alerts.
*/
ALL_ENABLED = 0;
/*
* Disabled.
* All buzzer audio feedback is disabled.
*/
DISABLED = 1;
/*
* Notifications Only.
* Buzzer is enabled only for notifications and alerts, but not for button presses.
* External notification config determines the specifics of the notification behavior.
*/
NOTIFICATIONS_ONLY = 2;
/*
* Non-notification system buzzer tones only.
* Buzzer is enabled only for non-notification tones such as button presses, startup, shutdown, but not for alerts.
*/
SYSTEM_ONLY = 3;
/*
* Direct Message notifications only.
* Buzzer is enabled only for direct messages and alerts, but not for button presses.
* External notification config determines the specifics of the notification behavior.
*/
DIRECT_MSG_ONLY = 4;
}
/*
@ -127,14 +203,9 @@ message Config {
/*
* Disabling this will disable the SerialConsole by not initilizing the StreamAPI
* Moved to SecurityConfig
*/
bool serial_enabled = 2;
/*
* By default we turn off logging as soon as an API client connects (to keep shared serial link quiet).
* Set this to true to leave the debug log outputting even when API is active.
*/
bool debug_log_enabled = 3;
bool serial_enabled = 2 [deprecated = true];
/*
* For boards without a hard wired button, this is the pin number that will be used
@ -167,13 +238,30 @@ message Config {
/*
* If true, device is considered to be "managed" by a mesh administrator
* Clients should then limit available configuration and administrative options inside the user interface
* Moved to SecurityConfig
*/
bool is_managed = 9;
bool is_managed = 9 [deprecated = true];
/*
* Disables the triple-press of user button to enable or disable GPS
*/
bool disable_triple_click = 10;
/*
* POSIX Timezone definition string from https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv.
*/
string tzdef = 11;
/*
* If true, disable the default blinking LED (LED_PIN) behavior on the device
*/
bool led_heartbeat_disabled = 12;
/*
* Controls buzzer behavior for audio feedback
* Defaults to ENABLED
*/
BuzzerMode buzzer_mode = 13;
}
/*
@ -251,18 +339,18 @@ message Config {
enum GpsMode {
/*
* GPS is present but disabled
*/
* GPS is present but disabled
*/
DISABLED = 0;
/*
* GPS is present and enabled
*/
* GPS is present and enabled
*/
ENABLED = 1;
/*
* GPS is not present on the device
*/
* GPS is not present on the device
*/
NOT_PRESENT = 2;
}
@ -287,7 +375,7 @@ message Config {
/*
* Is GPS enabled for this node?
*/
bool gps_enabled = 4[deprecated = true];
bool gps_enabled = 4 [deprecated = true];
/*
* How often should we try to get GPS position (in seconds)
@ -299,7 +387,7 @@ message Config {
/*
* Deprecated in favor of using smart / regular broadcast intervals as implicit attempt time
*/
uint32 gps_attempt_time = 6 [deprecated = true];
uint32 gps_attempt_time = 6 [deprecated = true];
/*
* Bit field of boolean configuration options for POSITION messages
@ -344,30 +432,28 @@ message Config {
*/
message PowerConfig {
/*
* If set, we are powered from a low-current source (i.e. solar), so even if it looks like we have power flowing in
* we should try to minimize power consumption as much as possible.
* YOU DO NOT NEED TO SET THIS IF YOU'VE set is_router (it is implied in that case).
* Advanced Option
* Description: Will sleep everything as much as possible, for the tracker and sensor role this will also include the lora radio.
* Don't use this setting if you want to use your device with the phone apps or are using a device without a user button.
* Technical Details: Works for ESP32 devices and NRF52 devices in the Sensor or Tracker roles
*/
bool is_power_saving = 1;
/*
* If non-zero, the device will fully power off this many seconds after external power is removed.
* Description: If non-zero, the device will fully power off this many seconds after external power is removed.
*/
uint32 on_battery_shutdown_after_secs = 2;
/*
* Ratio of voltage divider for battery pin eg. 3.20 (R1=100k, R2=220k)
* Overrides the ADC_MULTIPLIER defined in variant for battery voltage calculation.
* Should be set to floating point value between 2 and 4
* Fixes issues on Heltec v2
* https://meshtastic.org/docs/configuration/radio/power/#adc-multiplier-override
* Should be set to floating point value between 2 and 6
*/
float adc_multiplier_override = 3;
/*
* Wait Bluetooth Seconds
* The number of seconds for to wait before turning off BLE in No Bluetooth states
* 0 for default of 1 minute
* Description: The number of seconds for to wait before turning off BLE in No Bluetooth states
* Technical Details: ESP32 Only 0 for default of 1 minute
*/
uint32 wait_bluetooth_secs = 4;
@ -380,17 +466,14 @@ message Config {
uint32 sds_secs = 6;
/*
* Light Sleep Seconds
* In light sleep the CPU is suspended, LoRa radio is on, BLE is off an GPS is on
* ESP32 Only
* 0 for default of 300
* Description: In light sleep the CPU is suspended, LoRa radio is on, BLE is off an GPS is on
* Technical Details: ESP32 Only 0 for default of 300
*/
uint32 ls_secs = 7;
/*
* Minimum Wake Seconds
* While in light sleep when we receive packets on the LoRa radio we will wake and handle them and stay awake in no BLE mode for this value
* 0 for default of 10 seconds
* Description: While in light sleep when we receive packets on the LoRa radio we will wake and handle them and stay awake in no BLE mode for this value
* Technical Details: ESP32 Only 0 for default of 10 seconds
*/
uint32 min_wake_secs = 8;
@ -398,6 +481,12 @@ message Config {
* I2C address of INA_2XX to use for reading device battery voltage
*/
uint32 device_battery_ina_address = 9;
/*
* If non-zero, we want powermon log outputs. With the particular (bitfield) sources enabled.
* Note: we picked an ID of 32 so that lower more efficient IDs can be used for more frequently used options.
*/
uint64 powermon_enables = 32;
}
/*
@ -455,7 +544,7 @@ message Config {
string wifi_psk = 4;
/*
* NTP server to use if WiFi is conneced, defaults to `0.pool.ntp.org`
* NTP server to use if WiFi is conneced, defaults to `meshtastic.pool.ntp.org`
*/
string ntp_server = 5;
@ -478,6 +567,31 @@ message Config {
* rsyslog Server and Port
*/
string rsyslog_server = 9;
/*
* Flags for enabling/disabling network protocols
*/
uint32 enabled_protocols = 10;
/*
* Enable/Disable ipv6 support
*/
bool ipv6_enabled = 11;
/*
* Available flags auxiliary network protocols
*/
enum ProtocolFlags {
/*
* Do not broadcast packets over any network protocol
*/
NO_BROADCAST = 0x0000;
/*
* Enable broadcasting packets via UDP over the local network
*/
UDP_BROADCAST = 0x0001;
}
}
/*
@ -485,45 +599,10 @@ message Config {
*/
message DisplayConfig {
/*
* How the GPS coordinates are displayed on the OLED screen.
* Deprecated in 2.7.4: Unused
*/
enum GpsCoordinateFormat {
/*
* GPS coordinates are displayed in the normal decimal degrees format:
* DD.DDDDDD DDD.DDDDDD
*/
DEC = 0;
/*
* GPS coordinates are displayed in the degrees minutes seconds format:
* DD°MM'SS"C DDD°MM'SS"C, where C is the compass point representing the locations quadrant
*/
DMS = 1;
/*
* Universal Transverse Mercator format:
* ZZB EEEEEE NNNNNNN, where Z is zone, B is band, E is easting, N is northing
*/
UTM = 2;
/*
* Military Grid Reference System format:
* ZZB CD EEEEE NNNNN, where Z is zone, B is band, C is the east 100k square, D is the north 100k square,
* E is easting, N is northing
*/
MGRS = 3;
/*
* Open Location Code (aka Plus Codes).
*/
OLC = 4;
/*
* Ordnance Survey Grid Reference (the National Grid System of the UK).
* Format: AB EEEEE NNNNN, where A is the east 100k square, B is the north 100k square,
* E is the easting, N is the northing
*/
OSGR = 5;
enum DeprecatedGpsCoordinateFormat {
UNUSED = 0;
}
/*
@ -546,24 +625,29 @@ message Config {
*/
enum OledType {
/*
* Default / Auto
* Default / Autodetect
*/
OLED_AUTO = 0;
/*
* Default / Auto
* Default / Autodetect
*/
OLED_SSD1306 = 1;
/*
* Default / Auto
* Default / Autodetect
*/
OLED_SH1106 = 2;
/*
* Can not be auto detected but set by proto. Used for 128x128 screens
* Can not be auto detected but set by proto. Used for 128x64 screens
*/
OLED_SH1107 = 3;
/*
* Can not be auto detected but set by proto. Used for 128x128 screens
*/
OLED_SH1107_128_128 = 4;
}
/*
@ -573,9 +657,10 @@ message Config {
uint32 screen_on_secs = 1;
/*
* Deprecated in 2.7.4: Unused
* How the GPS coordinates are formatted on the OLED screen.
*/
GpsCoordinateFormat gps_format = 2;
DeprecatedGpsCoordinateFormat gps_format = 2 [deprecated = true];
/*
* Automatically toggles to the next page on the screen like a carousel, based the specified interval in seconds.
@ -587,7 +672,7 @@ message Config {
* If this is set, the displayed compass will always point north. if unset, the old behaviour
* (top of display is heading direction) is used.
*/
bool compass_north_top = 4;
bool compass_north_top = 4 [deprecated = true];
/*
* Flip screen vertically, for cases that mount the screen upside down
@ -639,6 +724,70 @@ message Config {
* Should we wake the screen up on accelerometer detected motion or tap
*/
bool wake_on_tap_or_motion = 10;
enum CompassOrientation {
/*
* The compass and the display are in the same orientation.
*/
DEGREES_0 = 0;
/*
* Rotate the compass by 90 degrees.
*/
DEGREES_90 = 1;
/*
* Rotate the compass by 180 degrees.
*/
DEGREES_180 = 2;
/*
* Rotate the compass by 270 degrees.
*/
DEGREES_270 = 3;
/*
* Don't rotate the compass, but invert the result.
*/
DEGREES_0_INVERTED = 4;
/*
* Rotate the compass by 90 degrees and invert.
*/
DEGREES_90_INVERTED = 5;
/*
* Rotate the compass by 180 degrees and invert.
*/
DEGREES_180_INVERTED = 6;
/*
* Rotate the compass by 270 degrees and invert.
*/
DEGREES_270_INVERTED = 7;
}
/*
* Indicates how to rotate or invert the compass output to accurate display on the display.
*/
CompassOrientation compass_orientation = 11;
/*
* If false (default), the device will display the time in 24-hour format on screen.
* If true, the device will display the time in 12-hour format on screen.
*/
bool use_12h_clock = 12;
/*
* If false (default), the device will use short names for various display screens.
* If true, node names will show in long format
*/
bool use_long_node_name = 13;
/*
* If true, the device will display message bubbles on screen.
*/
bool enable_message_bubbles = 14;
}
/*
@ -740,6 +889,46 @@ message Config {
* Singapore 923mhz
*/
SG_923 = 18;
/*
* Philippines 433mhz
*/
PH_433 = 19;
/*
* Philippines 868mhz
*/
PH_868 = 20;
/*
* Philippines 915mhz
*/
PH_915 = 21;
/*
* Australia / New Zealand 433MHz
*/
ANZ_433 = 22;
/*
* Kazakhstan 433MHz
*/
KZ_433 = 23;
/*
* Kazakhstan 863MHz
*/
KZ_863 = 24;
/*
* Nepal 865MHz
*/
NP_865 = 25;
/*
* Brazil 902MHz
*/
BR_902 = 26;
}
/*
@ -754,13 +943,15 @@ message Config {
/*
* Long Range - Slow
* Deprecated in 2.7: Unpopular slow preset.
*/
LONG_SLOW = 1;
LONG_SLOW = 1 [deprecated = true];
/*
* Very Long Range - Slow
* Deprecated in 2.5: Works only with txco and is unusably slow
*/
VERY_LONG_SLOW = 2;
VERY_LONG_SLOW = 2 [deprecated = true];
/*
* Medium Range - Slow
@ -786,6 +977,36 @@ message Config {
* Long Range - Moderately Fast
*/
LONG_MODERATE = 7;
/*
* Short Range - Turbo
* This is the fastest preset and the only one with 500kHz bandwidth.
* It is not legal to use in all regions due to this wider bandwidth.
*/
SHORT_TURBO = 8;
/*
* Long Range - Turbo
* This preset performs similarly to LongFast, but with 500Khz bandwidth.
*/
LONG_TURBO = 9;
}
enum FEM_LNA_Mode {
/*
* FEM_LNA is present but disabled
*/
DISABLED = 0;
/*
* FEM_LNA is present and enabled
*/
ENABLED = 1;
/*
* FEM_LNA is not present on the device
*/
NOT_PRESENT = 2;
}
/*
@ -887,6 +1108,11 @@ message Config {
*/
float override_frequency = 14;
/*
* If true, disable the build-in PA FAN using pin define in RF95_FAN_EN.
*/
bool pa_fan_disabled = 15;
/*
* For testing it is useful sometimes to force a node to never listen to
* particular other nodes (simulating radio out of range). All nodenums listed
@ -898,6 +1124,15 @@ message Config {
* If true, the device will not process any packets received via LoRa that passed via MQTT anywhere on the path towards it.
*/
bool ignore_mqtt = 104;
/*
* Sets the ok_to_mqtt bit on outgoing packets
*/
bool config_ok_to_mqtt = 105;
/*
* Set where LORA FEM is enabled, disabled, or not present
*/
FEM_LNA_Mode fem_lna_mode = 106;
}
message BluetoothConfig {
@ -934,6 +1169,52 @@ message Config {
uint32 fixed_pin = 3;
}
message SecurityConfig {
/*
* The public key of the user's device.
* Sent out to other nodes on the mesh to allow them to compute a shared secret key.
*/
bytes public_key = 1;
/*
* The private key of the device.
* Used to create a shared key with a remote device.
*/
bytes private_key = 2;
/*
* The public key authorized to send admin messages to this node.
*/
repeated bytes admin_key = 3;
/*
* If true, device is considered to be "managed" by a mesh administrator via admin messages
* Device is managed by a mesh administrator.
*/
bool is_managed = 4;
/*
* Serial Console over the Stream API."
*/
bool serial_enabled = 5;
/*
* By default we turn off logging as soon as an API client connects (to keep shared serial link quiet).
* Output live debug logging over serial or bluetooth is set to true.
*/
bool debug_log_api_enabled = 6;
/*
* Allow incoming device control over the insecure legacy admin channel.
*/
bool admin_channel_enabled = 8;
}
/*
* Blank config request, strictly for getting the session key
*/
message SessionkeyConfig {}
/*
* Payload Variant
*/
@ -945,5 +1226,8 @@ message Config {
DisplayConfig display = 5;
LoRaConfig lora = 6;
BluetoothConfig bluetooth = 7;
SecurityConfig security = 8;
SessionkeyConfig sessionkey = 9;
DeviceUIConfig device_ui = 10;
}
}
}

View file

@ -5,7 +5,7 @@ package meshtastic;
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "ConnStatusProtos";
option java_package = "com.geeksville.mesh";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
message DeviceConnectionStatus {

View file

@ -0,0 +1,12 @@
*DeviceUIConfig.screen_brightness int_size:8
*DeviceUIConfig.screen_timeout int_size:16
*DeviceUIConfig.ring_tone_id int_size:8
*DeviceUIConfig.calibration_data max_size:16
*DeviceUIConfig.compass_mode int_size:8
*DeviceUIConfig.gps_format int_size:8
*NodeFilter.node_name max_size:16
*NodeFilter.hops_away int_size:8
*NodeFilter.channel int_size:8
*NodeHighlight.node_name max_size:16
*GeoPoint.zoom int_size:8
*Map.style max_size:20

389
meshtastic/device_ui.proto Normal file
View file

@ -0,0 +1,389 @@
syntax = "proto3";
package meshtastic;
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "DeviceUIProtos";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
/*
* Protobuf structures for device-ui persistency
*/
message DeviceUIConfig {
/*
* A version integer used to invalidate saved files when we make incompatible changes.
*/
uint32 version = 1;
/*
* TFT display brightness 1..255
*/
uint32 screen_brightness = 2;
/*
* Screen timeout 0..900
*/
uint32 screen_timeout = 3;
/*
* Screen/Settings lock enabled
*/
bool screen_lock = 4;
bool settings_lock = 5;
uint32 pin_code = 6;
/*
* Color theme
*/
Theme theme = 7;
/*
* Audible message, banner and ring tone
*/
bool alert_enabled = 8;
bool banner_enabled = 9;
uint32 ring_tone_id = 10;
/*
* Localization
*/
Language language = 11;
/*
* Node list filter
*/
NodeFilter node_filter = 12;
/*
* Node list highlightening
*/
NodeHighlight node_highlight = 13;
/*
* 8 integers for screen calibration data
*/
bytes calibration_data = 14;
/*
* Map related data
*/
Map map_data = 15;
/*
* Compass mode
*/
CompassMode compass_mode = 16;
/*
* RGB color for BaseUI
* 0xRRGGBB format, e.g. 0xFF0000 for red
*/
uint32 screen_rgb_color = 17;
/*
* Clockface analog style
* true for analog clockface, false for digital clockface
*/
bool is_clockface_analog = 18;
/*
* How the GPS coordinates are formatted on the OLED screen.
*/
GpsCoordinateFormat gps_format = 19;
/*
* How the GPS coordinates are displayed on the OLED screen.
*/
enum GpsCoordinateFormat {
/*
* GPS coordinates are displayed in the normal decimal degrees format:
* DD.DDDDDD DDD.DDDDDD
*/
DEC = 0;
/*
* GPS coordinates are displayed in the degrees minutes seconds format:
* DD°MM'SS"C DDD°MM'SS"C, where C is the compass point representing the locations quadrant
*/
DMS = 1;
/*
* Universal Transverse Mercator format:
* ZZB EEEEEE NNNNNNN, where Z is zone, B is band, E is easting, N is northing
*/
UTM = 2;
/*
* Military Grid Reference System format:
* ZZB CD EEEEE NNNNN, where Z is zone, B is band, C is the east 100k square, D is the north 100k square,
* E is easting, N is northing
*/
MGRS = 3;
/*
* Open Location Code (aka Plus Codes).
*/
OLC = 4;
/*
* Ordnance Survey Grid Reference (the National Grid System of the UK).
* Format: AB EEEEE NNNNN, where A is the east 100k square, B is the north 100k square,
* E is the easting, N is the northing
*/
OSGR = 5;
/*
* Maidenhead Locator System
* Described here: https://en.wikipedia.org/wiki/Maidenhead_Locator_System
*/
MLS = 6;
}
}
message NodeFilter {
/*
* Filter unknown nodes
*/
bool unknown_switch = 1;
/*
* Filter offline nodes
*/
bool offline_switch = 2;
/*
* Filter nodes w/o public key
*/
bool public_key_switch = 3;
/*
* Filter based on hops away
*/
int32 hops_away = 4;
/*
* Filter nodes w/o position
*/
bool position_switch = 5;
/*
* Filter nodes by matching name string
*/
string node_name = 6;
/*
* Filter based on channel
*/
int32 channel = 7;
}
message NodeHighlight {
/*
* Hightlight nodes w/ active chat
*/
bool chat_switch = 1;
/*
* Highlight nodes w/ position
*/
bool position_switch = 2;
/*
* Highlight nodes w/ telemetry data
*/
bool telemetry_switch = 3;
/*
* Highlight nodes w/ iaq data
*/
bool iaq_switch = 4;
/*
* Highlight nodes by matching name string
*/
string node_name = 5;
}
message GeoPoint {
/*
* Zoom level
*/
int32 zoom = 1;
/*
* Coordinate: latitude
*/
int32 latitude = 2;
/*
* Coordinate: longitude
*/
int32 longitude = 3;
}
message Map {
/*
* Home coordinates
*/
GeoPoint home = 1;
/*
* Map tile style
*/
string style = 2;
/*
* Map scroll follows GPS
*/
bool follow_gps = 3;
}
enum CompassMode {
/*
* Compass with dynamic ring and heading
*/
DYNAMIC = 0;
/*
* Compass with fixed ring and heading
*/
FIXED_RING = 1;
/*
* Compass with heading and freeze option
*/
FREEZE_HEADING = 2;
}
enum Theme {
/*
* Dark
*/
DARK = 0;
/*
* Light
*/
LIGHT = 1;
/*
* Red
*/
RED = 2;
}
/*
* Localization
*/
enum Language {
/*
* English
*/
ENGLISH = 0;
/*
* French
*/
FRENCH = 1;
/*
* German
*/
GERMAN = 2;
/*
* Italian
*/
ITALIAN = 3;
/*
* Portuguese
*/
PORTUGUESE = 4;
/*
* Spanish
*/
SPANISH = 5;
/*
* Swedish
*/
SWEDISH = 6;
/*
* Finnish
*/
FINNISH = 7;
/*
* Polish
*/
POLISH = 8;
/*
* Turkish
*/
TURKISH = 9;
/*
* Serbian
*/
SERBIAN = 10;
/*
* Russian
*/
RUSSIAN = 11;
/*
* Dutch
*/
DUTCH = 12;
/*
* Greek
*/
GREEK = 13;
/*
* Norwegian
*/
NORWEGIAN = 14;
/*
* Slovenian
*/
SLOVENIAN = 15;
/*
* Ukrainian
*/
UKRAINIAN = 16;
/*
* Bulgarian
*/
BULGARIAN = 17;
/*
* Czech
*/
CZECH = 18;
/*
* Danish
*/
DANISH = 19;
/*
* Simplified Chinese (experimental)
*/
SIMPLIFIED_CHINESE = 30;
/*
* Traditional Chinese (experimental)
*/
TRADITIONAL_CHINESE = 31;
}

View file

@ -1,18 +1,18 @@
# options for nanopb
# https://jpa.kapsi.fi/nanopb/docs/reference.html#proto-file-options
# FIXME pick a higher number someday? or do dynamic alloc in nanopb?
*DeviceState.node_db_lite max_count:100
# FIXME - max_count is actually 32 but we save/load this as one long string of preencoded MeshPacket bytes - not a big array in RAM
*DeviceState.receive_queue max_count:1
*ChannelFile.channels max_count:8
*OEMStore.oem_text max_size:40
*OEMStore.oem_icon_bits max_size:2048
*OEMStore.oem_aes_key max_size:32
*DeviceState.node_remote_hardware_pins max_count:12
*NodeInfoLite.channel int_size:8
*NodeInfoLite.channel int_size:8
*NodeInfoLite.hops_away int_size:8
*NodeInfoLite.next_hop int_size:8
*UserLite.long_name max_size:40
*UserLite.short_name max_size:5
*UserLite.public_key max_size:32 # public key
*UserLite.macaddr max_size:6 fixed_length:true

View file

@ -2,17 +2,176 @@ syntax = "proto3";
package meshtastic;
/* trunk-ignore(buf-lint/COMPILE) */
import "meshtastic/channel.proto";
import "meshtastic/config.proto";
import "meshtastic/localonly.proto";
import "meshtastic/mesh.proto";
import "meshtastic/telemetry.proto";
import "meshtastic/module_config.proto";
import "nanopb.proto";
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "DeviceOnly";
option java_package = "com.geeksville.mesh";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
option (nanopb_fileopt).include = "<vector>";
/*
* Position with static location information only for NodeDBLite
*/
message PositionLite {
/*
* The new preferred location encoding, multiply by 1e-7 to get degrees
* in floating point
*/
sfixed32 latitude_i = 1;
/*
* TODO: REPLACE
*/
sfixed32 longitude_i = 2;
/*
* In meters above MSL (but see issue #359)
*/
int32 altitude = 3;
/*
* This is usually not sent over the mesh (to save space), but it is sent
* from the phone so that the local device can set its RTC If it is sent over
* the mesh (because there are devices on the mesh without GPS), it will only
* be sent by devices which has a hardware GPS clock.
* seconds since 1970
*/
fixed32 time = 4;
/*
* TODO: REPLACE
*/
Position.LocSource location_source = 5;
}
message UserLite {
/*
* This is the addr of the radio.
*/
bytes macaddr = 1 [deprecated = true];
/*
* A full name for this user, i.e. "Kevin Hester"
*/
string long_name = 2;
/*
* A VERY short name, ideally two characters.
* Suitable for a tiny OLED screen
*/
string short_name = 3;
/*
* TBEAM, HELTEC, etc...
* Starting in 1.2.11 moved to hw_model enum in the NodeInfo object.
* Apps will still need the string here for older builds
* (so OTA update can find the right image), but if the enum is available it will be used instead.
*/
HardwareModel hw_model = 4;
/*
* In some regions Ham radio operators have different bandwidth limitations than others.
* If this user is a licensed operator, set this flag.
* Also, "long_name" should be their licence number.
*/
bool is_licensed = 5;
/*
* Indicates that the user's role in the mesh
*/
Config.DeviceConfig.Role role = 6;
/*
* The public key of the user's device.
* This is sent out to other nodes on the mesh to allow them to compute a shared secret key.
*/
bytes public_key = 7;
/*
* Whether or not the node can be messaged
*/
optional bool is_unmessagable = 9;
}
message NodeInfoLite {
/*
* The node number
*/
uint32 num = 1;
/*
* The user info for this node
*/
UserLite user = 2;
/*
* This position data. Note: before 1.2.14 we would also store the last time we've heard from this node in position.time, that is no longer true.
* Position.time now indicates the last time we received a POSITION from that node.
*/
PositionLite position = 3;
/*
* Returns the Signal-to-noise ratio (SNR) of the last received message,
* as measured by the receiver. Return SNR of the last received message in dB
*/
float snr = 4;
/*
* Set to indicate the last time we received a packet from this node
*/
fixed32 last_heard = 5;
/*
* The latest device metrics for the node.
*/
DeviceMetrics device_metrics = 6;
/*
* local channel index we heard that node on. Only populated if its not the default channel.
*/
uint32 channel = 7;
/*
* True if we witnessed the node over MQTT instead of LoRA transport
*/
bool via_mqtt = 8;
/*
* Number of hops away from us this node is (0 if direct neighbor)
*/
optional uint32 hops_away = 9;
/*
* True if node is in our favorites list
* Persists between NodeDB internal clean ups
*/
bool is_favorite = 10;
/*
* True if node is in our ignored list
* Persists between NodeDB internal clean ups
*/
bool is_ignored = 11;
/*
* Last byte of the node number of the node that should be used as the next hop to reach this node.
*/
uint32 next_hop = 12;
/*
* Bitfield for storing booleans.
* LSB 0 is_key_manually_verified
* LSB 1 is_muted
*/
uint32 bitfield = 13;
}
/*
* This message is never sent over the wire, but it is used for serializing DB
@ -54,13 +213,15 @@ message DeviceState {
/*
* Used only during development.
* Indicates developer is testing and changes should never be saved to flash.
* Deprecated in 2.3.1
*/
bool no_save = 9;
bool no_save = 9 [deprecated = true];
/*
* Some GPS receivers seem to have bogus settings from the factory, so we always do one factory reset.
* Previously used to manage GPS factory resets.
* Deprecated in 2.5.23
*/
bool did_gps_reset = 11;
bool did_gps_reset = 11 [deprecated = true];
/*
* We keep the last received waypoint stored in the device flash,
@ -73,84 +234,20 @@ message DeviceState {
* The mesh's nodes with their available gpio pins for RemoteHardware module
*/
repeated NodeRemoteHardwarePin node_remote_hardware_pins = 13;
}
message NodeDatabase {
/*
* A version integer used to invalidate old save files when we make
* incompatible changes This integer is set at build time and is private to
* NodeDB.cpp in the device code.
*/
uint32 version = 1;
/*
* New lite version of NodeDB to decrease memory footprint
*/
repeated NodeInfoLite node_db_lite = 14;
}
message NodeInfoLite {
/*
* The node number
*/
uint32 num = 1;
/*
* The user info for this node
*/
User user = 2;
/*
* This position data. Note: before 1.2.14 we would also store the last time we've heard from this node in position.time, that is no longer true.
* Position.time now indicates the last time we received a POSITION from that node.
*/
PositionLite position = 3;
/*
* Returns the Signal-to-noise ratio (SNR) of the last received message,
* as measured by the receiver. Return SNR of the last received message in dB
*/
float snr = 4;
/*
* Set to indicate the last time we received a packet from this node
*/
fixed32 last_heard = 5;
/*
* The latest device metrics for the node.
*/
DeviceMetrics device_metrics = 6;
/*
* local channel index we heard that node on. Only populated if its not the default channel.
*/
uint32 channel = 7;
}
/*
* Position with static location information only for NodeDBLite
*/
message PositionLite {
/*
* The new preferred location encoding, multiply by 1e-7 to get degrees
* in floating point
*/
sfixed32 latitude_i = 1;
/*
* TODO: REPLACE
*/
sfixed32 longitude_i = 2;
/*
* In meters above MSL (but see issue #359)
*/
int32 altitude = 3;
/*
* This is usually not sent over the mesh (to save space), but it is sent
* from the phone so that the local device can set its RTC If it is sent over
* the mesh (because there are devices on the mesh without GPS), it will only
* be sent by devices which has a hardware GPS clock.
* seconds since 1970
*/
fixed32 time = 4;
/*
* TODO: REPLACE
*/
Position.LocSource location_source = 5;
repeated NodeInfoLite nodes = 2 [(nanopb).callback_datatype = "std::vector<meshtastic_NodeInfoLite>"];
}
/*
@ -171,82 +268,36 @@ message ChannelFile {
}
/*
* TODO: REPLACE
* The on-disk backup of the node's preferences
*/
enum ScreenFonts {
message BackupPreferences {
/*
* TODO: REPLACE
* The version of the backup
*/
FONT_SMALL = 0;
uint32 version = 1;
/*
* TODO: REPLACE
* The timestamp of the backup (if node has time)
*/
FONT_MEDIUM = 1;
fixed32 timestamp = 2;
/*
* TODO: REPLACE
* The node's configuration
*/
FONT_LARGE = 2;
LocalConfig config = 3;
/*
* The node's module configuration
*/
LocalModuleConfig module_config = 4;
/*
* The node's channels
*/
ChannelFile channels = 5;
/*
* The node's user (owner) information
*/
User owner = 6;
}
/*
* This can be used for customizing the firmware distribution. If populated,
* show a secondary bootup screen with custom logo and text for 2.5 seconds.
*/
message OEMStore {
/*
* The Logo width in Px
*/
uint32 oem_icon_width = 1;
/*
* The Logo height in Px
*/
uint32 oem_icon_height = 2;
/*
* The Logo in XBM bytechar format
*/
bytes oem_icon_bits = 3;
/*
* Use this font for the OEM text.
*/
ScreenFonts oem_font = 4;
/*
* Use this font for the OEM text.
*/
string oem_text = 5;
/*
* The default device encryption key, 16 or 32 byte
*/
bytes oem_aes_key = 6;
/*
* A Preset LocalConfig to apply during factory reset
*/
LocalConfig oem_local_config = 7;
/*
* A Preset LocalModuleConfig to apply during factory reset
*/
LocalModuleConfig oem_local_module_config = 8;
}
/*
* RemoteHardwarePins associated with a node
*/
message NodeRemoteHardwarePin {
/*
* The node_num exposing the available gpio pin
*/
uint32 node_num = 1;
/*
* The the available gpio pin for usage with RemoteHardware module
*/
RemoteHardwarePin pin = 2;
}

View file

@ -0,0 +1 @@
*InterdeviceMessage.nmea max_size:1024

View file

@ -0,0 +1,44 @@
syntax = "proto3";
package meshtastic;
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "InterdeviceProtos";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
// encapsulate up to 1k of NMEA string data
enum MessageType {
ACK = 0;
COLLECT_INTERVAL = 160; // in ms
BEEP_ON = 161; // duration ms
BEEP_OFF = 162; // cancel prematurely
SHUTDOWN = 163;
POWER_ON = 164;
SCD41_TEMP = 176;
SCD41_HUMIDITY = 177;
SCD41_CO2 = 178;
AHT20_TEMP = 179;
AHT20_HUMIDITY = 180;
TVOC_INDEX = 181;
}
message SensorData {
// The message type
MessageType type = 1;
// The sensor data, either as a float or an uint32
oneof data {
float float_value = 2;
uint32 uint32_value = 3;
}
}
message InterdeviceMessage {
// The message data
oneof data {
string nmea = 1;
SensorData sensor = 2;
}
}

View file

@ -8,7 +8,7 @@ import "meshtastic/module_config.proto";
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "LocalOnlyProtos";
option java_package = "com.geeksville.mesh";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
/*
@ -58,6 +58,11 @@ message LocalConfig {
* NodeDB.cpp in the device code.
*/
uint32 version = 8;
/*
* The part of the config that is specific to Security settings
*/
Config.SecurityConfig security = 9;
}
message LocalModuleConfig {
@ -114,7 +119,7 @@ message LocalModuleConfig {
/*
* The part of the config that is specific to the Ambient Lighting module
*/
ModuleConfig.AmbientLightingConfig ambient_lighting = 12;
ModuleConfig.AmbientLightingConfig ambient_lighting = 12;
/*
* The part of the config that is specific to the Detection Sensor module
@ -126,10 +131,25 @@ message LocalModuleConfig {
*/
ModuleConfig.PaxcounterConfig paxcounter = 14;
/*
* StatusMessage Config
*/
ModuleConfig.StatusMessageConfig statusmessage = 15;
/*
* The part of the config that is specific to the Traffic Management module
*/
ModuleConfig.TrafficManagementConfig traffic_management = 16;
/*
* TAK Config
*/
ModuleConfig.TAKConfig tak = 17;
/*
* A version integer used to invalidate old save files when we make
* incompatible changes This integer is set at build time and is private to
* NodeDB.cpp in the device code.
*/
uint32 version = 8;
}
}

View file

@ -3,30 +3,46 @@
*macaddr max_size:6 fixed_length:true # macaddrs
*id max_size:16 # node id strings
*public_key max_size:32 # public key
*User.long_name max_size:40
*User.short_name max_size:5
*RouteDiscovery.route max_count:8
*RouteDiscovery.snr_towards max_count:8
*RouteDiscovery.snr_towards int_size:8
*RouteDiscovery.route_back max_count:8
*RouteDiscovery.snr_back max_count:8
*RouteDiscovery.snr_back int_size:8
# note: this payload length is ONLY the bytes that are sent inside of the Data protobuf (excluding protobuf overhead). The 16 byte header is
# outside of this envelope
*Data.payload max_size:237
*Data.payload max_size:233
*Data.bitfield int_size:8
*NodeInfo.channel int_size:8
*NodeInfo.hops_away int_size:8
# Big enough for 1.2.28.568032c-d
*MyNodeInfo.firmware_version max_size:18
*MyNodeInfo.device_id max_size:16
*MyNodeInfo.pio_env max_size:40
*MyNodeInfo.air_period_tx max_count:8
*MyNodeInfo.air_period_rx max_count:8
*MyNodeInfo.firmware_edition int_size:8
*MyNodeInfo.nodedb_count int_size:16
# Note: the actual limit (because of header bytes) on the size of encrypted payloads is 251 bytes, but I use 256
# here because we might need to fill with zeros for padding to encryption block size (16 bytes per block)
*MeshPacket.encrypted max_size:256
*MeshPacket.payload_variant anonymous_oneof:true
*MeshPacket.hop_limit int_size:8
*MeshPacket.hop_start int_size:8
*MeshPacket.channel int_size:8
*MeshPacket.next_hop int_size:8
*MeshPacket.relay_node int_size:8
*QueueStatus.res int_size:8
*QueueStatus.free int_size:8
@ -38,14 +54,35 @@
*Routing.variant anonymous_oneof:true
*LogRecord.message max_size:64
*LogRecord.source max_size:8
*LogRecord.message max_size:384
*LogRecord.source max_size:32
*FileInfo.file_name max_size:228
*ClientNotification.message max_size:400
*KeyVerificationNumberInform.remote_longname max_size:40
*KeyVerificationNumberRequest.remote_longname max_size:40
*KeyVerificationFinal.remote_longname max_size:40
*KeyVerificationFinal.verification_characters max_size:10
*KeyVerification.hash1 max_size:32
*KeyVerification.hash2 max_size:32
*StoreForwardPlusPlus.message_hash max_size:32
*StoreForwardPlusPlus.commit_hash max_size:32
*StoreForwardPlusPlus.root_hash max_size:32
*StoreForwardPlusPlus.message max_size:240
*RemoteShell.payload max_size:200
*StatusMessage.status max_size:80
# MyMessage.name max_size:40
# or fixed_length or fixed_count, or max_count
#This value may want to be a few bytes smaller to compensate for the parent fields.
*Compressed.data max_size:237
*Compressed.data max_size:233
*Waypoint.name max_size:30
*Waypoint.description max_size:100
@ -57,3 +94,7 @@
*MqttClientProxyMessage.topic max_size:60
*MqttClientProxyMessage.data max_size:435
*MqttClientProxyMessage.text max_size:435
*ChunkedPayload.chunk_count int_size:16
*ChunkedPayload.chunk_index int_size:16
*ChunkedPayload.payload_chunk max_size:228

File diff suppressed because it is too large Load diff

View file

@ -2,8 +2,8 @@
*MQTTConfig.address max_size:64
*MQTTConfig.username max_size:64
*MQTTConfig.password max_size:64
*MQTTConfig.root max_size:16
*MQTTConfig.password max_size:32
*MQTTConfig.root max_size:32
*AudioConfig.ptt_pin int_size:8
*AudioConfig.i2s_ws int_size:8
@ -25,4 +25,7 @@
*AmbientLightingConfig.blue int_size:8
*DetectionSensorConfig.monitor_pin int_size:8
*DetectionSensorConfig.name max_size:20
*DetectionSensorConfig.name max_size:20
*DetectionSensorConfig.detection_trigger_type max_size:8
*StatusMessageConfig.node_status max_size:80

View file

@ -2,10 +2,12 @@ syntax = "proto3";
package meshtastic;
import "meshtastic/atak.proto";
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "ModuleConfigProtos";
option java_package = "com.geeksville.mesh";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
/*
@ -70,6 +72,36 @@ message ModuleConfig {
* If true, we can use the connected phone / client to proxy messages to MQTT instead of a direct connection
*/
bool proxy_to_client_enabled = 9;
/*
* If true, we will periodically report unencrypted information about our node to a map via MQTT
*/
bool map_reporting_enabled = 10;
/*
* Settings for reporting information about our node to a map via MQTT
*/
MapReportSettings map_report_settings = 11;
}
/*
* Settings for reporting unencrypted information about our node to a map via MQTT
*/
message MapReportSettings {
/*
* How often we should report our info to the map (in seconds)
*/
uint32 publish_interval_secs = 1;
/*
* Bits of precision for the location sent (default of 32 is full precision).
*/
uint32 position_precision = 2;
/*
* Whether we have opted-in to report our location to the map
*/
bool should_report_location = 3;
}
/*
@ -100,34 +132,59 @@ message ModuleConfig {
* Whether the Module is enabled
*/
bool enabled = 1;
/*
* Interval in seconds of how often we should try to send our
* Neighbor Info to the mesh
* Neighbor Info (minimum is 14400, i.e., 4 hours)
*/
uint32 update_interval = 2;
/*
* Whether in addition to sending it to MQTT and the PhoneAPI, our NeighborInfo should be transmitted over LoRa.
* Note that this is not available on a channel with default key and name.
*/
bool transmit_over_lora = 3;
}
/*
* Detection Sensor Module Config
*/
message DetectionSensorConfig {
message DetectionSensorConfig {
enum TriggerType {
// Event is triggered if pin is low
LOGIC_LOW = 0;
// Event is triggered if pin is high
LOGIC_HIGH = 1;
// Event is triggered when pin goes high to low
FALLING_EDGE = 2;
// Event is triggered when pin goes low to high
RISING_EDGE = 3;
// Event is triggered on every pin state change, low is considered to be
// "active"
EITHER_EDGE_ACTIVE_LOW = 4;
// Event is triggered on every pin state change, high is considered to be
// "active"
EITHER_EDGE_ACTIVE_HIGH = 5;
}
/*
* Whether the Module is enabled
*/
bool enabled = 1;
/*
* Interval in seconds of how often we can send a message to the mesh when a state change is detected
* Interval in seconds of how often we can send a message to the mesh when a
* trigger event is detected
*/
uint32 minimum_broadcast_secs = 2;
/*
* Interval in seconds of how often we should send a message to the mesh with the current state regardless of changes
* When set to 0, only state changes will be broadcasted
* Works as a sort of status heartbeat for peace of mind
* Interval in seconds of how often we should send a message to the mesh
* with the current state regardless of trigger events When set to 0, only
* trigger events will be broadcasted Works as a sort of status heartbeat
* for peace of mind
*/
uint32 state_broadcast_secs = 3;
/*
* Send ASCII bell with alert message
* Useful for triggering ext. notification on bell
@ -147,10 +204,9 @@ message ModuleConfig {
uint32 monitor_pin = 6;
/*
* Whether or not the GPIO pin state detection is triggered on HIGH (1)
* Otherwise LOW (0)
* The type of trigger event to be used
*/
bool detection_triggered_high = 7;
TriggerType detection_trigger_type = 7;
/*
* Whether or not use INPUT_PULLUP mode for GPIO pin
@ -229,6 +285,92 @@ message ModuleConfig {
*/
uint32 paxcounter_update_interval = 2;
/*
* WiFi RSSI threshold. Defaults to -80
*/
int32 wifi_threshold = 3;
/*
* BLE RSSI threshold. Defaults to -80
*/
int32 ble_threshold = 4;
}
/*
* Config for the Traffic Management module.
* Provides packet inspection and traffic shaping to help reduce channel utilization
*/
message TrafficManagementConfig {
/*
* Master enable for traffic management module
*/
bool enabled = 1;
/*
* Enable position deduplication to drop redundant position broadcasts
*/
bool position_dedup_enabled = 2;
/*
* Number of bits of precision for position deduplication (0-32)
*/
uint32 position_precision_bits = 3;
/*
* Minimum interval in seconds between position updates from the same node
*/
uint32 position_min_interval_secs = 4;
/*
* Enable direct response to NodeInfo requests from local cache
*/
bool nodeinfo_direct_response = 5;
/*
* Minimum hop distance from requestor before responding to NodeInfo requests
*/
uint32 nodeinfo_direct_response_max_hops = 6;
/*
* Enable per-node rate limiting to throttle chatty nodes
*/
bool rate_limit_enabled = 7;
/*
* Time window in seconds for rate limiting calculations
*/
uint32 rate_limit_window_secs = 8;
/*
* Maximum packets allowed per node within the rate limit window
*/
uint32 rate_limit_max_packets = 9;
/*
* Enable dropping of unknown/undecryptable packets per rate_limit_window_secs
*/
bool drop_unknown_enabled = 10;
/*
* Number of unknown packets before dropping from a node
*/
uint32 unknown_packet_threshold = 11;
/*
* Set hop_limit to 0 for relayed telemetry broadcasts (own packets unaffected)
*/
bool exhaust_hop_telemetry = 12;
/*
* Set hop_limit to 0 for relayed position broadcasts (own packets unaffected)
*/
bool exhaust_hop_position = 13;
/*
* Preserve hop_limit for router-to-router traffic
*/
bool router_preserve_hops = 14;
}
/*
@ -268,6 +410,17 @@ message ModuleConfig {
NMEA = 4;
// NMEA messages specifically tailored for CalTopo
CALTOPO = 5;
// Ecowitt WS85 weather station
WS85 = 6;
// VE.Direct is a serial protocol used by Victron Energy products
// https://beta.ivc.no/wiki/index.php/Victron_VE_Direct_DIY_Cable
VE_DIRECT = 7;
// Used to configure and view some parameters of MeshSolar.
// https://heltec.org/project/meshsolar/
MS_CONFIG = 8;
// Logs mesh traffic to the serial pins, ideal for logging via openLog or similar.
LOG = 9; // includes other packets
LOGTEXT = 10; // only text (channel & DM)
}
/*
@ -432,6 +585,11 @@ message ModuleConfig {
* TODO: REPLACE
*/
uint32 history_return_window = 5;
/*
* Set to true to let this node act as a server that stores received messages and resends them upon request.
*/
bool is_server = 6;
}
/*
@ -453,6 +611,12 @@ message ModuleConfig {
* ESP32 Only
*/
bool save = 3;
/*
* Bool indicating that the node should cleanup / destroy it's RangeTest.csv file.
* ESP32 Only
*/
bool clear_on_reboot = 4;
}
/*
@ -501,35 +665,52 @@ message ModuleConfig {
uint32 air_quality_interval = 7;
/*
* Interval in seconds of how often we should try to send our
* air quality metrics to the mesh
* Enable/disable Power metrics
*/
bool power_measurement_enabled = 8;
/*
* Interval in seconds of how often we should try to send our
* air quality metrics to the mesh
* power metrics to the mesh
*/
uint32 power_update_interval = 9;
/*
* Interval in seconds of how often we should try to send our
* air quality metrics to the mesh
* Enable/Disable the power measurement module on-device display
*/
bool power_screen_enabled = 10;
/*
* Preferences for the (Health) Telemetry Module
* Enable/Disable the telemetry measurement module measurement collection
*/
bool health_measurement_enabled = 11;
/*
* Interval in seconds of how often we should try to send our
* health metrics to the mesh
*/
uint32 health_update_interval = 12;
/*
* Enable/Disable the health telemetry module on-device display
*/
bool health_screen_enabled = 13;
/*
* Enable/Disable the device telemetry module to send metrics to the mesh
* Note: We will still send telemtry to the connected phone / client every minute over the API
*/
bool device_telemetry_enabled = 14;
/*
* Enable/Disable the air quality telemetry measurement module on-device display
*/
bool air_quality_screen_enabled = 15;
}
/*
* TODO: REPLACE
* Canned Messages Module Config
*/
message CannedMessageConfig {
/*
@ -620,13 +801,13 @@ message ModuleConfig {
/*
* Enable/disable CannedMessageModule.
*/
bool enabled = 9;
bool enabled = 9 [deprecated = true];
/*
* Input event origin accepted by the canned message module.
* Can be e.g. "rotEnc1", "upDownEnc1" or keyword "_any"
* Can be e.g. "rotEnc1", "upDownEnc1", "scanAndSelect", "cardkb", "serialkb", or keyword "_any"
*/
string allow_input_source = 10;
string allow_input_source = 10 [deprecated = true];
/*
* CannedMessageModule also sends a bell character with the messages.
@ -636,11 +817,10 @@ message ModuleConfig {
}
/*
Ambient Lighting Module - Settings for control of onboard LEDs to allow users to adjust the brightness levels and respective color levels.
Initially created for the RAK14001 RGB LED module.
Ambient Lighting Module - Settings for control of onboard LEDs to allow users to adjust the brightness levels and respective color levels.
Initially created for the RAK14001 RGB LED module.
*/
message AmbientLightingConfig {
/*
* Sets LED to on or off.
*/
@ -667,6 +847,16 @@ message ModuleConfig {
uint32 blue = 5;
}
/*
* StatusMessage config - Allows setting a status message for a node to periodically rebroadcast
*/
message StatusMessageConfig {
/*
* The actual status string
*/
string node_status = 1;
}
/*
* TODO: REPLACE
*/
@ -735,6 +925,37 @@ message ModuleConfig {
* TODO: REPLACE
*/
PaxcounterConfig paxcounter = 13;
/*
* TODO: REPLACE
*/
StatusMessageConfig statusmessage = 14;
/*
* Traffic management module config for mesh network optimization
*/
TrafficManagementConfig traffic_management = 15;
/*
* TAK team/role configuration for TAK_TRACKER
*/
TAKConfig tak = 16;
}
/*
* TAK team/role configuration
*/
message TAKConfig {
/*
* Team color.
* Default Unspecifed_Color -> firmware uses Cyan
*/
Team team = 1;
/*
* Member role.
* Default Unspecifed -> firmware uses TeamMember
*/
MemberRole role = 2;
}
}
@ -773,4 +994,4 @@ enum RemoteHardwarePinType {
* GPIO pin can be written to (high / low)
*/
DIGITAL_WRITE = 2;
}
}

View file

@ -1,3 +1,8 @@
*ServiceEnvelope.packet type:FT_POINTER
*ServiceEnvelope.channel_id type:FT_POINTER
*ServiceEnvelope.gateway_id type:FT_POINTER
*ServiceEnvelope.gateway_id type:FT_POINTER
*MapReport.long_name max_size:40
*MapReport.short_name max_size:5
*MapReport.firmware_version max_size:18
*MapReport.num_online_local_nodes int_size:16

View file

@ -2,12 +2,13 @@ syntax = "proto3";
package meshtastic;
import "meshtastic/config.proto";
import "meshtastic/mesh.proto";
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "MQTTProtos";
option java_package = "com.geeksville.mesh";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
/*
@ -30,4 +31,82 @@ message ServiceEnvelope {
* the globally trusted nodenum
*/
string gateway_id = 3;
}
}
/*
* Information about a node intended to be reported unencrypted to a map using MQTT.
*/
message MapReport {
/*
* A full name for this user, i.e. "Kevin Hester"
*/
string long_name = 1;
/*
* A VERY short name, ideally two characters.
* Suitable for a tiny OLED screen
*/
string short_name = 2;
/*
* Role of the node that applies specific settings for a particular use-case
*/
Config.DeviceConfig.Role role = 3;
/*
* Hardware model of the node, i.e. T-Beam, Heltec V3, etc...
*/
HardwareModel hw_model = 4;
/*
* Device firmware version string
*/
string firmware_version = 5;
/*
* The region code for the radio (US, CN, EU433, etc...)
*/
Config.LoRaConfig.RegionCode region = 6;
/*
* Modem preset used by the radio (LongFast, MediumSlow, etc...)
*/
Config.LoRaConfig.ModemPreset modem_preset = 7;
/*
* Whether the node has a channel with default PSK and name (LongFast, MediumSlow, etc...)
* and it uses the default frequency slot given the region and modem preset.
*/
bool has_default_channel = 8;
/*
* Latitude: multiply by 1e-7 to get degrees in floating point
*/
sfixed32 latitude_i = 9;
/*
* Longitude: multiply by 1e-7 to get degrees in floating point
*/
sfixed32 longitude_i = 10;
/*
* Altitude in meters above MSL
*/
int32 altitude = 11;
/*
* Indicates the bits of precision for latitude and longitude set by the sending node
*/
uint32 position_precision = 12;
/*
* Number of online nodes (heard in the last 2 hours) this node has in its list that were received locally (not via MQTT)
*/
uint32 num_online_local_nodes = 13;
/*
* User has opted in to share their location (map report) with the mqtt server
* Controlled by map_report.should_report_location
*/
bool has_opted_report_location = 14;
}

View file

@ -5,7 +5,7 @@ package meshtastic;
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "PaxcountProtos";
option java_package = "com.geeksville.mesh";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
/*

View file

@ -5,7 +5,7 @@ package meshtastic;
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "Portnums";
option java_package = "com.geeksville.mesh";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
/*
@ -48,28 +48,28 @@ enum PortNum {
/*
* The built-in position messaging app.
* Payload is a [Position](/docs/developers/protobufs/api#position) message
* Payload is a Position message.
* ENCODING: Protobuf
*/
POSITION_APP = 3;
/*
* The built-in user info app.
* Payload is a [User](/docs/developers/protobufs/api#user) message
* Payload is a User message.
* ENCODING: Protobuf
*/
NODEINFO_APP = 4;
/*
* Protocol control packets for mesh protocol use.
* Payload is a [Routing](/docs/developers/protobufs/api#routing) message
* Payload is a Routing message.
* ENCODING: Protobuf
*/
ROUTING_APP = 5;
/*
* Admin control packets.
* Payload is a [AdminMessage](/docs/developers/protobufs/api#adminmessage) message
* Payload is a AdminMessage message.
* ENCODING: Protobuf
*/
ADMIN_APP = 6;
@ -85,7 +85,7 @@ enum PortNum {
/*
* Waypoint payloads.
* Payload is a [Waypoint](/docs/developers/protobufs/api#waypoint) message
* Payload is a Waypoint message.
* ENCODING: Protobuf
*/
WAYPOINT_APP = 8;
@ -105,6 +105,21 @@ enum PortNum {
*/
DETECTION_SENSOR_APP = 10;
/*
* Same as Text Message but used for critical alerts.
*/
ALERT_APP = 11;
/*
* Module/port for handling key verification requests.
*/
KEY_VERIFICATION_APP = 12;
/*
* Module/port for handling primitive remote shell access.
*/
REMOTE_SHELL_APP = 13;
/*
* Provides a 'ping' service that replies to any packet it receives.
* Also serves as a small example module.
@ -124,6 +139,22 @@ enum PortNum {
*/
PAXCOUNTER_APP = 34;
/*
* Store and Forward++ module included in the firmware
* ENCODING: protobuf
* This module is specifically for Native Linux nodes, and provides a Git-style
* chain of messages.
*/
STORE_FORWARD_PLUSPLUS_APP = 35;
/*
* Node Status module
* ENCODING: protobuf
* This module allows setting an extra string of status for a node.
* Broadcasts on change and on a timer, possibly once a day.
*/
NODE_STATUS_APP = 36;
/*
* Provides a hardware serial interface to send and receive from the Meshtastic network.
* Connect to the RX/TX pins of a device with 38400 8N1. Packets received from the Meshtastic
@ -174,7 +205,7 @@ enum PortNum {
/*
* Provides a traceroute functionality to show the route a packet towards
* a certain destination would take on the mesh.
* a certain destination would take on the mesh. Contains a RouteDiscovery message as payload.
* ENCODING: Protobuf
*/
TRACEROUTE_APP = 70;
@ -184,13 +215,56 @@ enum PortNum {
* ENCODING: Protobuf
*/
NEIGHBORINFO_APP = 71;
/*
* ATAK Plugin
* Portnum for payloads from the official Meshtastic ATAK plugin
*/
ATAK_PLUGIN = 72;
/*
* Provides unencrypted information about a node for consumption by a map via MQTT
*/
MAP_REPORT_APP = 73;
/*
* PowerStress based monitoring support (for automated power consumption testing)
*/
POWERSTRESS_APP = 74;
/*
* LoraWAN Payload Transport
* ENCODING: compact binary LoRaWAN uplink (10-byte RF metadata + PHY payload) - see LoRaWANBridgeModule
*/
LORAWAN_BRIDGE = 75;
/*
* Reticulum Network Stack Tunnel App
* ENCODING: Fragmented RNS Packet. Handled by Meshtastic RNS interface
*/
RETICULUM_TUNNEL_APP = 76;
/*
* App for transporting Cayenne Low Power Payload, popular for LoRaWAN sensor nodes. Offers ability to send
* arbitrary telemetry over meshtastic that is not covered by telemetry.proto
* ENCODING: CayenneLLP
*/
CAYENNE_APP = 77;
/*
* ATAK Plugin V2
* Portnum for payloads from the official Meshtastic ATAK plugin using
* TAKPacketV2 with zstd dictionary compression.
*/
ATAK_PLUGIN_V2 = 78;
/*
* GroupAlarm integration
* Used for transporting GroupAlarm-related messages between Meshtastic nodes
* and companion applications/services.
*/
GROUPALARM_APP = 112;
/*
* Private applications should use portnums >= 256.
* To simplify initial development and testing you can use "PRIVATE_APP"
@ -208,4 +282,4 @@ enum PortNum {
* Currently we limit port nums to no higher than this value
*/
MAX = 511;
}
}

103
meshtastic/powermon.proto Normal file
View file

@ -0,0 +1,103 @@
syntax = "proto3";
package meshtastic;
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "PowerMonProtos";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
/* Note: There are no 'PowerMon' messages normally in use (PowerMons are sent only as structured logs - slogs).
* But we wrap our State enum in this message to effectively nest a namespace (without our linter yelling at us)
*/
message PowerMon {
/* Any significant power changing event in meshtastic should be tagged with a powermon state transition.
* If you are making new meshtastic features feel free to add new entries at the end of this definition.
*/
enum State {
None = 0;
CPU_DeepSleep = 0x01;
CPU_LightSleep = 0x02;
/*
The external Vext1 power is on. Many boards have auxillary power rails that the CPU turns on only
occasionally. In cases where that rail has multiple devices on it we usually want to have logging on
the state of that rail as an independent record.
For instance on the Heltec Tracker 1.1 board, this rail is the power source for the GPS and screen.
The log messages will be short and complete (see PowerMon.Event in the protobufs for details).
something like "S:PM:C,0x00001234,REASON" where the hex number is the bitmask of all current states.
(We use a bitmask for states so that if a log message gets lost it won't be fatal)
*/
Vext1_On = 0x04;
Lora_RXOn = 0x08;
Lora_TXOn = 0x10;
Lora_RXActive = 0x20;
BT_On = 0x40;
LED_On = 0x80;
Screen_On = 0x100;
Screen_Drawing = 0x200;
Wifi_On = 0x400;
/*
* GPS is actively trying to find our location
* See GPSPowerState for more details
*/
GPS_Active = 0x800;
}
}
/*
* PowerStress testing support via the C++ PowerStress module
*/
message PowerStressMessage {
/*
* What operation would we like the UUT to perform.
* note: senders should probably set want_response in their request packets, so that they can know when the state
* machine has started processing their request
*/
enum Opcode {
/*
* Unset/unused
*/
UNSET = 0;
PRINT_INFO = 1; // Print board version slog and send an ack that we are alive and ready to process commands
FORCE_QUIET = 2; // Try to turn off all automatic processing of packets, screen, sleeping, etc (to make it easier to measure in isolation)
END_QUIET = 3; // Stop powerstress processing - probably by just rebooting the board
SCREEN_ON = 16; // Turn the screen on
SCREEN_OFF = 17; // Turn the screen off
CPU_IDLE = 32; // Let the CPU run but we assume mostly idling for num_seconds
CPU_DEEPSLEEP = 33; // Force deep sleep for FIXME seconds
CPU_FULLON = 34; // Spin the CPU as fast as possible for num_seconds
LED_ON = 48; // Turn the LED on for num_seconds (and leave it on - for baseline power measurement purposes)
LED_OFF = 49; // Force the LED off for num_seconds
LORA_OFF = 64; // Completely turn off the LORA radio for num_seconds
LORA_TX = 65; // Send Lora packets for num_seconds
LORA_RX = 66; // Receive Lora packets for num_seconds (node will be mostly just listening, unless an external agent is helping stress this by sending packets on the current channel)
BT_OFF = 80; // Turn off the BT radio for num_seconds
BT_ON = 81; // Turn on the BT radio for num_seconds
WIFI_OFF = 96; // Turn off the WIFI radio for num_seconds
WIFI_ON = 97; // Turn on the WIFI radio for num_seconds
GPS_OFF = 112; // Turn off the GPS radio for num_seconds
GPS_ON = 113; // Turn on the GPS radio for num_seconds
}
/*
* What type of HardwareMessage is this?
*/
Opcode cmd = 1;
float num_seconds = 2;
}

View file

@ -5,7 +5,7 @@ package meshtastic;
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "RemoteHardware";
option java_package = "com.geeksville.mesh";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
/*

View file

@ -1 +1 @@
*RTTTLConfig.ringtone max_size:230
*RTTTLConfig.ringtone max_size:231

View file

@ -5,7 +5,7 @@ package meshtastic;
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "RTTTLConfigProtos";
option java_package = "com.geeksville.mesh";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
/*

View file

@ -0,0 +1 @@
*StoreAndForward.text max_size:233

View file

@ -5,7 +5,7 @@ package meshtastic;
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "StoreAndForwardProtos";
option java_package = "com.geeksville.mesh";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
/*
@ -58,6 +58,16 @@ message StoreAndForward {
*/
ROUTER_STATS = 7;
/*
* Router sends a text message from its history that was a direct message.
*/
ROUTER_TEXT_DIRECT = 8;
/*
* Router sends a text message from its history that was a broadcast.
*/
ROUTER_TEXT_BROADCAST = 9;
/*
* Client is an in error state.
*/
@ -130,12 +140,12 @@ message StoreAndForward {
bool heartbeat = 7;
/*
* Is the heartbeat enabled on the server?
* Maximum number of messages the server will return.
*/
uint32 return_max = 8;
/*
* Is the heartbeat enabled on the server?
* Maximum history window in minutes the server will return messages from.
*/
uint32 return_window = 9;
}
@ -155,7 +165,8 @@ message StoreAndForward {
uint32 window = 2;
/*
* The window of messages that was used to filter the history client requested
* Index in the packet history of the last message sent in a previous request to the server.
* Will be sent to the client before sending the history and can be set in a subsequent request to avoid getting packets the server already sent to the client.
*/
uint32 last_request = 3;
}
@ -165,7 +176,7 @@ message StoreAndForward {
*/
message Heartbeat {
/*
* Number of that will be sent to the client
* Period in seconds that the heartbeat is sent out that will be sent to the client
*/
uint32 period = 1;
@ -200,8 +211,8 @@ message StoreAndForward {
Heartbeat heartbeat = 4;
/*
* Empty Payload
* Text from history message.
*/
bool empty = 5;
bytes text = 5;
}
}

View file

@ -1,4 +1,19 @@
# options for nanopb
# https://jpa.kapsi.fi/nanopb/docs/reference.html#proto-file-options
*EnvironmentMetrics.iaq int_size:16
*EnvironmentMetrics.wind_direction int_size:16
*EnvironmentMetrics.soil_moisture int_size:8
*EnvironmentMetrics.one_wire_temperature max_count:8
*LocalStats.num_online_nodes int_size:16
*LocalStats.num_total_nodes int_size:16
*LocalStats.num_tx_dropped int_size:16
*HealthMetrics.heart_bpm int_size:8
*HealthMetrics.spO2 int_size:8
*HostMetrics.load1 int_size:16
*HostMetrics.load5 int_size:16
*HostMetrics.load15 int_size:16
*HostMetrics.user_string max_size:200

File diff suppressed because it is too large Load diff

View file

@ -5,7 +5,7 @@ package meshtastic;
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "XmodemProtos";
option java_package = "com.geeksville.mesh";
option java_package = "org.meshtastic.proto";
option swift_prefix = "";
message XModem {

185
nanopb.proto Normal file
View file

@ -0,0 +1,185 @@
// Custom options for defining:
// - Maximum size of string/bytes
// - Maximum number of elements in array
//
// These are used by nanopb to generate statically allocable structures
// for memory-limited environments.
syntax = "proto2";
import "google/protobuf/descriptor.proto";
option go_package = "github.com/meshtastic/go/generated";
option java_package = "fi.kapsi.koti.jpa.nanopb";
enum FieldType {
FT_DEFAULT = 0; // Automatically decide field type, generate static field if possible.
FT_CALLBACK = 1; // Always generate a callback field.
FT_POINTER = 4; // Always generate a dynamically allocated field.
FT_STATIC = 2; // Generate a static field or raise an exception if not possible.
FT_IGNORE = 3; // Ignore the field completely.
FT_INLINE = 5; // Legacy option, use the separate 'fixed_length' option instead
}
enum IntSize {
IS_DEFAULT = 0; // Default, 32/64bit based on type in .proto
IS_8 = 8;
IS_16 = 16;
IS_32 = 32;
IS_64 = 64;
}
enum TypenameMangling {
M_NONE = 0; // Default, no typename mangling
M_STRIP_PACKAGE = 1; // Strip current package name
M_FLATTEN = 2; // Only use last path component
M_PACKAGE_INITIALS = 3; // Replace the package name by the initials
}
enum DescriptorSize {
DS_AUTO = 0; // Select minimal size based on field type
DS_1 = 1; // 1 word; up to 15 byte fields, no arrays
DS_2 = 2; // 2 words; up to 4095 byte fields, 4095 entry arrays
DS_4 = 4; // 4 words; up to 2^32-1 byte fields, 2^16-1 entry arrays
DS_8 = 8; // 8 words; up to 2^32-1 entry arrays
}
// This is the inner options message, which basically defines options for
// a field. When it is used in message or file scope, it applies to all
// fields.
message NanoPBOptions {
// Allocated size for 'bytes' and 'string' fields.
// For string fields, this should include the space for null terminator.
optional int32 max_size = 1;
// Maximum length for 'string' fields. Setting this is equivalent
// to setting max_size to a value of length+1.
optional int32 max_length = 14;
// Allocated number of entries in arrays ('repeated' fields)
optional int32 max_count = 2;
// Size of integer fields. Can save some memory if you don't need
// full 32 bits for the value.
optional IntSize int_size = 7 [default = IS_DEFAULT];
// Force type of field (callback or static allocation)
optional FieldType type = 3 [default = FT_DEFAULT];
// Use long names for enums, i.e. EnumName_EnumValue.
optional bool long_names = 4 [default = true];
// Add 'packed' attribute to generated structs.
// Note: this cannot be used on CPUs that break on unaligned
// accesses to variables.
optional bool packed_struct = 5 [default = false];
// Add 'packed' attribute to generated enums.
optional bool packed_enum = 10 [default = false];
// Skip this message
optional bool skip_message = 6 [default = false];
// Generate oneof fields as normal optional fields instead of union.
optional bool no_unions = 8 [default = false];
// integer type tag for a message
optional uint32 msgid = 9;
// decode oneof as anonymous union
optional bool anonymous_oneof = 11 [default = false];
// Proto3 singular field does not generate a "has_" flag
optional bool proto3 = 12 [default = false];
// Force proto3 messages to have no "has_" flag.
// This was default behavior until nanopb-0.4.0.
optional bool proto3_singular_msgs = 21 [default = false];
// Generate an enum->string mapping function (can take up lots of space).
optional bool enum_to_string = 13 [default = false];
// Generate bytes arrays with fixed length
optional bool fixed_length = 15 [default = false];
// Generate repeated field with fixed count
optional bool fixed_count = 16 [default = false];
// Generate message-level callback that is called before decoding submessages.
// This can be used to set callback fields for submsgs inside oneofs.
optional bool submsg_callback = 22 [default = false];
// Shorten or remove package names from type names.
// This option applies only on the file level.
optional TypenameMangling mangle_names = 17 [default = M_NONE];
// Data type for storage associated with callback fields.
optional string callback_datatype = 18 [default = "pb_callback_t"];
// Callback function used for encoding and decoding.
// Prior to nanopb-0.4.0, the callback was specified in per-field pb_callback_t
// structure. This is still supported, but does not work inside e.g. oneof or pointer
// fields. Instead, a new method allows specifying a per-message callback that
// will be called for all callback fields in a message type.
optional string callback_function = 19 [default = "pb_default_field_callback"];
// Select the size of field descriptors. This option has to be defined
// for the whole message, not per-field. Usually automatic selection is
// ok, but if it results in compilation errors you can increase the field
// size here.
optional DescriptorSize descriptorsize = 20 [default = DS_AUTO];
// Set default value for has_ fields.
optional bool default_has = 23 [default = false];
// Extra files to include in generated `.pb.h`
repeated string include = 24;
// Automatic includes to exclude from generated `.pb.h`
// Same as nanopb_generator.py command line flag -x.
repeated string exclude = 26;
// Package name that applies only for nanopb.
optional string package = 25;
// Override type of the field in generated C code. Only to be used with related field types
optional google.protobuf.FieldDescriptorProto.Type type_override = 27;
// Due to historical reasons, nanopb orders fields in structs by their tag number
// instead of the order in .proto. Set this to false to keep the .proto order.
// The default value will probably change to false in nanopb-0.5.0.
optional bool sort_by_tag = 28 [default = true];
// Set the FT_DEFAULT field conversion strategy.
// A field that can become a static member of a c struct (e.g. int, bool, etc)
// will be a a static field.
// Fields with dynamic length are converted to either a pointer or a callback.
optional FieldType fallback_type = 29 [default = FT_CALLBACK];
}
// Extensions to protoc 'Descriptor' type in order to define options
// inside a .proto file.
//
// Protocol Buffers extension number registry
// --------------------------------
// Project: Nanopb
// Contact: Petteri Aimonen <jpa@kapsi.fi>
// Web site: http://kapsi.fi/~jpa/nanopb
// Extensions: 1010 (all types)
// --------------------------------
extend google.protobuf.FileOptions {
optional NanoPBOptions nanopb_fileopt = 1010;
}
extend google.protobuf.MessageOptions {
optional NanoPBOptions nanopb_msgopt = 1010;
}
extend google.protobuf.EnumOptions {
optional NanoPBOptions nanopb_enumopt = 1010;
}
extend google.protobuf.FieldOptions {
optional NanoPBOptions nanopb = 1010;
}

105
packages/rust/Cargo.lock generated Normal file
View file

@ -0,0 +1,105 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 4
[[package]]
name = "anyhow"
version = "1.0.102"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
[[package]]
name = "bytes"
version = "1.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
[[package]]
name = "either"
version = "1.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
[[package]]
name = "itertools"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
dependencies = [
"either",
]
[[package]]
name = "meshtastic_protobufs"
version = "2.5.5"
dependencies = [
"prost",
"prost-types",
]
[[package]]
name = "proc-macro2"
version = "1.0.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
dependencies = [
"unicode-ident",
]
[[package]]
name = "prost"
version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568"
dependencies = [
"bytes",
"prost-derive",
]
[[package]]
name = "prost-derive"
version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b"
dependencies = [
"anyhow",
"itertools",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "prost-types"
version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7"
dependencies = [
"prost",
]
[[package]]
name = "quote"
version = "1.0.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
dependencies = [
"proc-macro2",
]
[[package]]
name = "syn"
version = "2.0.117"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "unicode-ident"
version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"

15
packages/rust/Cargo.toml Normal file
View file

@ -0,0 +1,15 @@
[package]
name = "meshtastic_protobufs"
edition = "2021"
version = "__PACKAGE_VERSION__"
description = "Meshtastic Protobuf definitions"
repository = "https://github.com/meshtastic/protobufs"
license-file = "LICENSE"
include = [
"**/*.rs",
"Cargo.toml",
]
[dependencies]
prost = "0.14.3"
prost-types = "0.14.3"

View file

5
packages/rust/src/lib.rs Normal file
View file

@ -0,0 +1,5 @@
extern crate prost;
extern crate core;
extern crate prost_types;
include!("generated/mod.rs");

15
packages/ts/deno.json Normal file
View file

@ -0,0 +1,15 @@
{
"name": "@meshtastic/protobufs",
"version": "__PACKAGE_VERSION__",
"exports": {
".": "./mod.ts"
},
"imports": {
"@bufbuild/protobuf": "npm:@bufbuild/protobuf@^2.2.3"
},
"publish": {
"exclude": [
"!lib"
]
}
}

16
packages/ts/deno.lock generated Normal file
View file

@ -0,0 +1,16 @@
{
"version": "4",
"specifiers": {
"npm:@bufbuild/protobuf@^2.2.3": "2.2.3"
},
"npm": {
"@bufbuild/protobuf@2.2.3": {
"integrity": "sha512-tFQoXHJdkEOSwj5tRIZSPNUuXK3RaR7T1nUrPgbYX1pUbvqqaaZAsfo+NXBPsz5rZMSKVFrgK1WL8Q/MSLvprg=="
}
},
"workspace": {
"dependencies": [
"npm:@bufbuild/protobuf@^2.2.3"
]
}
}

0
packages/ts/lib/.gitkeep Normal file
View file

20
packages/ts/mod.ts Normal file
View file

@ -0,0 +1,20 @@
export * as Admin from "./lib/admin_pb.ts";
export * as AppOnly from "./lib/apponly_pb.ts";
export * as ATAK from "./lib/atak_pb.ts";
export * as CannedMessages from "./lib/cannedmessages_pb.ts";
export * as Channel from "./lib/channel_pb.ts";
export * as ClientOnly from "./lib/clientonly_pb.ts";
export * as Config from "./lib/config_pb.ts";
export * as ConnectionStatus from "./lib/connection_status_pb.ts";
export * as LocalOnly from "./lib/localonly_pb.ts";
export * as Mesh from "./lib/mesh_pb.ts";
export * as ModuleConfig from "./lib/module_config_pb.ts";
export * as Mqtt from "./lib/mqtt_pb.ts";
export * as PaxCount from "./lib/paxcount_pb.ts";
export * as Portnums from "./lib/portnums_pb.ts";
export * as PowerMon from "./lib/powermon_pb.ts";
export * as RemoteHardware from "./lib/remote_hardware_pb.ts";
export * as Rtttl from "./lib/rtttl_pb.ts";
export * as StoreForward from "./lib/storeforward_pb.ts";
export * as Telemetry from "./lib/telemetry_pb.ts";
export * as Xmodem from "./lib/xmodem_pb.ts";

32
packages/ts/package.json Executable file
View file

@ -0,0 +1,32 @@
{
"name": "@meshtastic/protobufs",
"description": "Protobuf definitions for the Meshtastic project",
"version": "__PACKAGE_VERSION__",
"homepage": "https://github.com/meshtastic/protobufs",
"license": "GPLV3",
"publishConfig": {
"access": "public"
},
"type": "module",
"main": "./dist/mod.js",
"module": "./dist/mod.js",
"types": "./dist/mod.d.ts",
"dependencies": {
"@bufbuild/protobuf": "^2.2.3"
},
"devDependencies": {
"tsdown": "^0.13.4",
"typescript": "^5.8.3"
},
"scripts": {
"build": "tsdown"
},
"tsdown": {
"entry": "mod.ts",
"dts": true,
"format": [
"esm"
],
"splitting": false
}
}

6
renovate.json Normal file
View file

@ -0,0 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended"
]
}