Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
5b79da8
Generic peripheral bridge for the interdevice link
caveman99 Jul 12, 2026
0bf7988
Interdevice payload bounds: 256B I2C, full-length filenames, 64 bit f…
caveman99 Jul 12, 2026
b072049
Compute SD statistics in the background
caveman99 Jul 12, 2026
7d0e10e
Harden the link RX path and correlate responses
caveman99 Jul 12, 2026
0c2bfd4
Address review: stats retry on transient failure, Wire timeout, full-…
caveman99 Jul 12, 2026
598a30e
Move SD ownership to core1, answer ping, buffer NMEA downlink
caveman99 Jul 12, 2026
148e023
Link resync, ping/stats protocol update, scan cap, watchdog
caveman99 Jul 12, 2026
0797cf5
Regen protos for I2CResult UNSPECIFIED, drop core debug port define
caveman99 Jul 12, 2026
954da28
Nack unhandled requests, classify I2C errors with a probe
caveman99 Jul 13, 2026
cb0b9dd
Version handshake: answer ping with the protocol version we speak
caveman99 Jul 13, 2026
1ca576c
Regen protos: interdevice protocol version 2
caveman99 Jul 13, 2026
109ff26
Report a status per file operation, keep maintenance off the request …
caveman99 Jul 13, 2026
cf1c3b7
Do not report a card as absent while it is being mounted, bound the s…
caveman99 Jul 13, 2026
71a265e
Detect a pulled card on reads, list directories without reopening ent…
caveman99 Jul 13, 2026
deab3ec
Announce ourselves at boot, account free space instead of rescanning
caveman99 Jul 13, 2026
739887e
Suppress library warnings
caveman99 Jul 13, 2026
8e32a0b
wire up github
caveman99 Jul 13, 2026
836e07e
Regen protos: FileStatus back on the original tags
caveman99 Jul 13, 2026
f0eb58a
Regen protos: ping/pong carry the InterdeviceVersion enum
caveman99 Jul 13, 2026
5f308d0
Point the protobufs submodule at the merged upstream commit
caveman99 Jul 13, 2026
dc17e2c
Pin PlatformIO Core to a fixed commit in both workflows
caveman99 Jul 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .trunk/configs/.shellcheckrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
enable=all
source-path=SCRIPTDIR
disable=SC2154

# If you're having issues with shellcheck following source, disable the errors via:
# disable=SC1090
# disable=SC1091
20 changes: 12 additions & 8 deletions .trunk/trunk.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,31 @@
# To learn more about the format of this file, see https://docs.trunk.io/reference/trunk-yaml
version: 0.1
cli:
version: 1.22.10
version: 1.24.0
# Trunk provides extensibility via plugins. (https://docs.trunk.io/plugins)
plugins:
sources:
- id: trunk
ref: v1.6.7
ref: v1.7.1
uri: https://github.com/trunk-io/plugins
# Many linters and tools depend on runtimes - configure them here. (https://docs.trunk.io/runtimes)
runtimes:
enabled:
- node@18.20.5
- go@1.21.0
- node@22.16.0
- python@3.10.8
# This is the section where you manage your linters. (https://docs.trunk.io/check/configuration)
lint:
enabled:
- markdownlint@0.44.0
- checkov@3.2.378
- oxipng@9.1.5
- shellcheck@0.10.0
- shfmt@3.6.0
- markdownlint@0.45.0
- checkov@3.2.447
- git-diff-check
- prettier@3.5.2
- trufflehog@3.88.14
- yamllint@1.35.1
- prettier@3.6.2
- trufflehog@3.89.2
- yamllint@1.37.1
- clang-format@16.0.3
actions:
disabled:
Expand Down
4 changes: 2 additions & 2 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"Jason2866.esp-decoder",
"pioarduino.pioarduino-ide",
"platformio.platformio-ide"
],
"unwantedRecommendations": [
Expand Down
18 changes: 18 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"files.associations": {
"random": "cpp",
"array": "cpp",
"deque": "cpp",
"list": "cpp",
"string": "cpp",
"unordered_map": "cpp",
"vector": "cpp",
"string_view": "cpp",
"format": "cpp",
"initializer_list": "cpp",
"span": "cpp",
"text_encoding": "cpp",
"regex": "cpp",
"chrono": "cpp"
}
}
76 changes: 36 additions & 40 deletions platformio.ini
Original file line number Diff line number Diff line change
@@ -1,40 +1,36 @@
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:seeed_indicator_rp2040]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git#c7502925e3b08af70e9f924d54ab9d00a7e64781
platform_packages = framework-arduinopico@https://github.com/earlephilhower/arduino-pico.git#4.4.4
framework = arduino

board = seeed_indicator_rp2040
board_build.core = earlephilhower
board_build.filesystem_size = 0.5m

build_flags =
-Wno-missing-field-initializers
-Wno-format
-Isrc
-Isrc/generated
-Wl,-Map,.pio/build/output.map
-Os
-Wno-unused-variable
-Wcast-align
-D__PLAT_RP2040__

lib_deps =
sensirion/Sensirion Core@0.7.1
sensirion/Sensirion I2C SCD4x@1.0.0
sensirion/Sensirion I2C SGP40@0.1.0
sensirion/Sensirion Gas Index Algorithm@3.2.3
nanopb/Nanopb@0.4.91
https://github.com/Seeed-Studio/Seeed_Arduino_AHT20.git#v1.0.1


monitor_speed = 115200
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:seeed_indicator_rp2040]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git#aa70b802be8851668053d4f09734e4089fe41932
framework = arduino

board = seeed_indicator_rp2040
board_build.core = earlephilhower

build_flags =
-Wno-missing-field-initializers
-Wno-format
-Isrc
-Wl,-Map,.pio/build/output.map
-Os
-Wno-unused-variable
-Wcast-align
-D__PLAT_RP2040__
-DDEBUG_RP2040_PORT=Serial
-DHW_SPI1_DEVICE

lib_deps =
# renovate: datasource=custom.pio depName=Nanopb packageName=nanopb/library/Nanopb
nanopb/Nanopb@0.4.91

monitor_speed = 115200

debug_tool = cmsis-dap
2 changes: 1 addition & 1 deletion protobufs
Submodule protobufs updated 72 files
+15 −0 .coderabbit.yaml
+18 −0 .github/pull_request_template.md
+6 −5 .github/workflows/create_tag.yml
+33 −0 .github/workflows/kmp-pull-request.yml
+95 −0 .github/workflows/publish-kmp.yml
+234 −14 .github/workflows/publish.yml
+8 −12 .github/workflows/pull_request.yml
+5 −7 .github/workflows/schema-registry.yml
+76 −0 .github/workflows/snapshot-kmp.yml
+7 −0 .gitignore
+6 −0 README.md
+5 −0 buf.gen.yaml
+23 −14 buf.yaml
+10 −0 meshtastic/admin.options
+427 −6 meshtastic/admin.proto
+1 −1 meshtastic/apponly.proto
+103 −1 meshtastic/atak.options
+1,972 −2 meshtastic/atak.proto
+1 −1 meshtastic/cannedmessages.proto
+4 −3 meshtastic/channel.proto
+1 −1 meshtastic/clientonly.options
+11 −1 meshtastic/clientonly.proto
+2 −0 meshtastic/config.options
+275 −68 meshtastic/config.proto
+1 −1 meshtastic/connection_status.proto
+2 −0 meshtastic/device_ui.options
+134 −31 meshtastic/device_ui.proto
+16 −0 meshtastic/deviceonly.options
+94 −32 meshtastic/deviceonly.proto
+7 −0 meshtastic/deviceonly_legacy.options
+50 −0 meshtastic/deviceonly_legacy.proto
+11 −0 meshtastic/interdevice.options
+110 −0 meshtastic/interdevice.proto
+21 −1 meshtastic/localonly.proto
+43 −1 meshtastic/mesh.options
+938 −31 meshtastic/mesh.proto
+3 −0 meshtastic/mesh_beacon.options
+42 −0 meshtastic/mesh_beacon.proto
+9 −0 meshtastic/module_config.options
+267 −7 meshtastic/module_config.proto
+1 −1 meshtastic/mqtt.options
+7 −1 meshtastic/mqtt.proto
+1 −1 meshtastic/paxcount.proto
+75 −2 meshtastic/portnums.proto
+22 −23 meshtastic/powermon.proto
+1 −1 meshtastic/remote_hardware.proto
+1 −1 meshtastic/rtttl.proto
+6 −0 meshtastic/serial_hal.options
+63 −0 meshtastic/serial_hal.proto
+1 −1 meshtastic/storeforward.proto
+8 −0 meshtastic/telemetry.options
+409 −35 meshtastic/telemetry.proto
+1 −1 meshtastic/xmodem.proto
+1 −0 nanopb.proto
+117 −0 packages/kmp/README.md
+154 −0 packages/kmp/build.gradle.kts
+9 −0 packages/kmp/gradle.properties
+ packages/kmp/gradle/wrapper/gradle-wrapper.jar
+9 −0 packages/kmp/gradle/wrapper/gradle-wrapper.properties
+248 −0 packages/kmp/gradlew
+82 −0 packages/kmp/gradlew.bat
+16 −0 packages/kmp/settings.gradle.kts
+105 −0 packages/rust/Cargo.lock
+15 −0 packages/rust/Cargo.toml
+0 −0 packages/rust/src/generated/.gitkeep
+5 −0 packages/rust/src/lib.rs
+15 −0 packages/ts/deno.json
+16 −0 packages/ts/deno.lock
+0 −0 packages/ts/lib/.gitkeep
+20 −0 packages/ts/mod.ts
+36 −0 packages/ts/package.json
+18 −0 renovate.json
10 changes: 10 additions & 0 deletions src/buzzer.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#include "buzzer.h"

uint32_t buzz_off = 0;

void beep_init(void) { pinMode(BUZZER_GPIO, OUTPUT); }
void beep_off(void) { digitalWrite(BUZZER_GPIO, LOW); }
void beep_on(uint32_t duration) {
analogWrite(BUZZER_GPIO, 127);
Comment thread
caveman99 marked this conversation as resolved.
Outdated
buzz_off = millis() + duration;
}
16 changes: 16 additions & 0 deletions src/buzzer.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#pragma once

#ifndef BUZZER_H
#define BUZZER_H

#define BUZZER_GPIO 19

#include <Arduino.h>

extern uint32_t buzz_off;

void beep_init(void);
void beep_off(void);
void beep_on(uint32_t duration);

#endif // BUZZER_H
Loading