Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
4e769ad
Add SSH config storage support
brainstorm Jun 1, 2025
c01b70d
Update references to sunset config system(s)
brainstorm Jun 12, 2025
dd07731
[ci skip] Continue adapting config/storage/flashstorage interfaces fr…
brainstorm Jun 16, 2025
359dede
[ci skip] Stubborn 'unresolved import' for SSHEncode/SSHDecode traits…
brainstorm Jun 17, 2025
717bed1
[ci skip] Same SSHDecode/SSHEncode 'unresolved import' issue /cc @mkj
brainstorm Jun 17, 2025
97f5338
[ci skip] Apply @mkj's fix for sshwire derive, compiles now, thx :D
brainstorm Jun 18, 2025
d46b3d5
[ci skip] Init config/storage from main, will most probably refactor …
brainstorm Jun 21, 2025
6bf0573
[ci skip] Pass config through tasks
brainstorm Jun 26, 2025
96c910a
Merge branch 'main' into fix_passwd_auth
brainstorm Jun 26, 2025
8077954
[ci skip] AnyPin::steal is unsafe(), need to find a way to safely rec…
brainstorm Jun 27, 2025
c981001
[ci skip] Switch to multi-thread (feature flag) in sunset-async to ge…
brainstorm Jun 28, 2025
e8b7cbe
[ci skip] Experiment with suggestions given on esp-rs/esp-hal matrix …
brainstorm Jul 1, 2025
7f98af9
[ci skip] This should be simpler, too much mutex/static cell/etc...
brainstorm Jul 6, 2025
30e2fe7
Use SunsetMutex() for the UART reconfiguration scheme.
brainstorm Jul 8, 2025
d416aea
Change default SSID string (instead of using server id string)
brainstorm Jul 9, 2025
517eed8
When updating espflash to 4.x, esp_bootloader_esp_idf::esp_app_desc()…
brainstorm Jul 9, 2025
ff30894
Disable custom partitions for now and SunsetMutex seems to interfere …
brainstorm Jul 9, 2025
90b4321
Merge branch 'main' into fix_passwd_auth
brainstorm Jul 9, 2025
0d6ee1a
Fix mutex issues with uart_task and draft PinConfig struct/impl for R…
brainstorm Jul 14, 2025
0419520
Merge branch 'fix_passwd_auth' of github.com:brainstorm/esp_hosted_ss…
brainstorm Jul 14, 2025
a0bebbd
Complex types such as Mutex<CriticalSectionRawMutex> complicate the s…
brainstorm Jul 16, 2025
24c009e
Cargo.lock
brainstorm Jul 16, 2025
7f9f399
[ci skip] Working through PinConfig types issues, small cleanup
brainstorm Jul 19, 2025
6be7ce2
Serializable type on Pinconfig.
brainstorm Jul 21, 2025
6630c64
[ci skip] Testing/refactoring idea proposed in https://github.com/bra…
brainstorm Jul 28, 2025
c35a3c6
[ci skip] Big mess, ignore macro-heavy experiment :-S
brainstorm Jul 29, 2025
becd503
Adding channels and realising that unsafe is almost surely needed for…
brainstorm Aug 4, 2025
bb7cdfa
Get rid of unsafe via .degrade and Option<> (thx @bugadani for the tip!)
brainstorm Aug 15, 2025
7e6ec0e
Cleanup before considering Signals (instead of channels) and how to p…
brainstorm Aug 20, 2025
9968552
Attempt to use automatic Send/Receive PinChannel struct... issue with…
brainstorm Aug 25, 2025
73e8c5c
Bit more cleanup
brainstorm Aug 25, 2025
a54ae13
Nightly works, AsyncFnOnce should be stabilised around 6 months to 1 …
brainstorm Aug 25, 2025
1ea08e8
Working on hardware now, the channels/signaling logic needs to be fix…
brainstorm Aug 29, 2025
d4f84cc
Available gpios, not just gpios
brainstorm Sep 9, 2025
c19423a
Event itself should trigger env/config/serialization
brainstorm Sep 9, 2025
bbcc09e
Re-enabled partitions.csv since it's needed for NVS/SSHConfig/FlashCo…
brainstorm Sep 21, 2025
53f1923
Separate sunset and ssh-stamp errors, add ipv6 stub to determine some…
brainstorm Sep 22, 2025
3dbcf3b
Merge channel_pins_nicer branch to fix_passwd_auth
brainstorm Sep 22, 2025
d461377
Config hash still on ~2 bytes offset, now getting PacketWrong while s…
brainstorm Sep 23, 2025
d9ccdd3
Feature-gate ipv6 for now, it was meant as an experiment to add/remov…
brainstorm Oct 1, 2025
d52ccff
[ci skip] New config serialised correctly... unsure if format is corr…
brainstorm Oct 6, 2025
fa70369
[ci skip] Back to shifted hash config error
brainstorm Oct 6, 2025
9a331fe
[ci skip] Fixed SSHEncode/Decode for SSHStampConfig, unfortunately it…
brainstorm Oct 7, 2025
e2ee151
[ci skip] Try to experiment with probe-rs debugging support on ESP ta…
brainstorm Oct 8, 2025
df554ee
Experiments with vscode/probe-rs debugging failed due to dev tooling …
brainstorm Nov 10, 2025
7cf834a
Only one admin key, do not use option_env because we'll be using ssh …
brainstorm Nov 11, 2025
821126b
Turns out that calc_hash was failing because we had SerdePinConfig wi…
brainstorm Nov 11, 2025
7a6eb55
Thorough dbg cleanup...
brainstorm Nov 11, 2025
aba0244
Refactor to accomodate SessionType and share channels between types.
brainstorm Nov 11, 2025
e79b485
cargo fmt
brainstorm Nov 17, 2025
70177c2
Separate 'regular' SSHConfig from Pins-related configuration and oper…
brainstorm Nov 17, 2025
e741242
Comment out SessionType(s) not needed for now
brainstorm Nov 17, 2025
8a8fe3d
Fix up PinChannel logic so that pins are updated on the connection_lo…
brainstorm Nov 17, 2025
cfa619a
Initial implementation of Hierarchical State Machine (HSM) to replace…
Autofix Dec 9, 2025
0b41d1a
Cleanup various warnings.
Autofix Dec 9, 2025
f1e7aa4
Restore SSH pin config by passing pin_channel rather than pin_channel…
Autofix Jan 28, 2026
a693dd8
Implement additional 'Tcp socket enabled' state, making tcp_socket be…
Autofix Jan 28, 2026
8b86e3d
Added temporary software reset to all HSM cleanup functions. Future i…
Autofix Jan 28, 2026
d9fd1cb
Rust format cleanup
Autofix Jan 28, 2026
40de634
Use same chan_pipe for connection loop and bridge.
Autofix Jan 29, 2026
49c55ba
Start UART after ssh connection is made. This means that SSH ENV requ…
Autofix Feb 2, 2026
3c1db13
Merged https://github.com/brainstorm/ssh-stamp/commit/522ba5c15250bfd…
Autofix Feb 9, 2026
c9cc4a1
Rename config_storage.rs to store.rs
Autofix Feb 9, 2026
3d45d76
net::if_up split into separate steps: prepare_ap_stack -> wifi_up -> …
Autofix Feb 9, 2026
c9c3c53
Revert to using embassy_executor tasks in net.rs due to being stuck w…
Autofix Feb 10, 2026
ab806cf
Remove ESP32 feature from esp-alloc
Autofix Feb 11, 2026
854c1f6
Update config.toml
Autofix Feb 11, 2026
38927ba
Add different GPIO for ESP32 vs other ESP32 targets.
Autofix Feb 11, 2026
5856796
Change uart_task to embassy future, and poll at last HSM state in sel…
Autofix Feb 13, 2026
640cc6a
Move various functions from main.rs into relevant files.
Autofix Feb 16, 2026
6573b3a
Restore tcp_socket to main.rs due to flash init block.
Autofix Feb 16, 2026
2f199e0
Return uart_task back into main.rs as embassy task. Start task proces…
Autofix Feb 17, 2026
7189736
Increase priority of UART interrupt to Priority3 as it was becoming b…
Autofix Feb 18, 2026
6c7adfb
Cleanup main and update UART pins for all ESP32 targets
Autofix Feb 18, 2026
0d94911
Move uart task to buffered_uart.rs.
Autofix Feb 19, 2026
b0ef820
Restore tcp_socket creation from main back into net::accept_requests()
Autofix Feb 19, 2026
da4e46a
Cleanup unneeded HSM state functions due to uart being in task.
Autofix Feb 19, 2026
0c34e67
Remove unused pins.rs
Autofix Feb 19, 2026
c81afe4
Start TCP socket in main to resolve ESP32 block in bridge connection.
Autofix Feb 19, 2026
6b40573
Merge branch 'main'. HSM branch to override most src files due to alr…
Autofix Feb 20, 2026
398e7f5
Remove unused storage/src/esp.rs
Autofix Feb 21, 2026
57fc6a0
Move UART_BUFFER_SIZE setting to settings.rs
Autofix Feb 21, 2026
0e92030
Fix ESP32-S2 target compilation. Target will still not run.
Autofix Feb 21, 2026
f093b7f
Restore OTA Packer build to config.toml
Autofix Feb 21, 2026
a0d1789
Fix clippy lint errors for ESP32-C6.
Autofix Feb 21, 2026
557b649
Update README with default UART pins for all targets.
Autofix Feb 21, 2026
f38b8cf
Change to stable branch for building OTA packer.
Autofix Feb 21, 2026
d60ed9e
Update github build to fix clippy warning:
Autofix Feb 21, 2026
d9dfdd1
Leverage semver to pin HAL versions to only major API changes, CI wil…
brainstorm Feb 21, 2026
8fcdafd
Get rid of hardcoded hostkey, fixes issue https://github.com/brainsto…
brainstorm Feb 21, 2026
afb8200
Cleanup/clarification based on @jubeormk1 feedback for @brainstorm/ss…
Autofix Feb 22, 2026
41784aa
Merge branch 'ssh-stamp-hsm' of git@github.com:Autofix/ssh-stamp.git
Autofix Feb 22, 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
23 changes: 13 additions & 10 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

[alias]
# No default features avoids selecting the default target (esp32c6) which would conflict with other target features.

# -Z only works on nightly
#build-esp32 = "build --release --target xtensa-esp32-none-elf --no-default-features --features esp32"
build-esp32 = "build --release --target xtensa-esp32-none-elf --no-default-features --features esp32 -Z build-std=core,alloc"
build-esp32c2 = "build --release --target riscv32imc-unknown-none-elf --no-default-features --features esp32c2 "
build-esp32c3 = "build --release --target riscv32imc-unknown-none-elf --no-default-features --features esp32c3 "
Expand Down Expand Up @@ -35,21 +36,20 @@ test-ota = "test --package ota --target x86_64-unknown-linux-gnu"
build-ota-packer = "build --package ota --bin ota-packer --target x86_64-unknown-linux-gnu"
ota-packer = "run --package ota --bin ota-packer --target x86_64-unknown-linux-gnu"


[target.xtensa-esp32-none-elf]
[target.xtensa-esp32-none-elf] # ESP32
runner = "espflash flash --baud=921600 --monitor --chip esp32"
rustflags = ["-C", "link-arg=-nostartfiles", '--cfg=feature="esp32"']
[target.riscv32imc-unknown-none-elf]
[target.riscv32imc-unknown-none-elf] # ESP32-C2 / ESP32-C3
runner = "espflash flash --baud=921600 --monitor"
rustflags = ["-C", "force-frame-pointers"]
[target.riscv32imac-unknown-none-elf]
[target.riscv32imac-unknown-none-elf] # ESP32C6
runner = "espflash flash --baud=921600 --partition-table partitions.csv --monitor"
rustflags = ["-C", "force-frame-pointers"]

[target.xtensa-esp32s2-none-elf]
[target.xtensa-esp32s2-none-elf] # ESP32-S2
runner = "espflash flash --baud=921600 --monitor --chip esp32s2"
rustflags = ["-C", "link-arg=-nostartfiles", '--cfg=feature="esp32s2"']
[target.xtensa-esp32s3-none-elf]
[target.xtensa-esp32s3-none-elf] # ESP32-S3
runner = "espflash flash --baud=921600 --monitor --chip esp32s3"
rustflags = ["-C", "link-arg=-nostartfiles", '--cfg=feature="esp32s3"']

Expand All @@ -70,6 +70,9 @@ target = "riscv32imac-unknown-none-elf"
# target = "x86_64-unknown-linux-gnu"

[unstable]
build-std = []
# build-std core and alloc has been moved as per alias parameter since
# `unstable` section MUST be global and cannot be definde per target.
build-std = ["core","alloc"]
# build-std = []
# TODO Resolve build-std for different targets on stable channel.
# build-std = ["core","alloc"] # For ESP32, ESP32-S2, ESP32-S3: When using stable channel enable this. -Z option only works on nightly channel.
# build-std core and alloc has been moved as per alias parameter since
# `unstable` section MUST be global and cannot be defined per target.
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ jobs:
- name: Check lints and format
if: ${{ contains(fromJson('["esp32c6"]'), matrix.device.soc) }}
run: |
cargo +${{ matrix.device.toolchain }} clippy --features ${{ matrix.device.soc }} --target riscv32imac-unknown-none-elf -- -D warnings
cargo +${{ matrix.device.toolchain }} clippy --release --features ${{ matrix.device.soc }} --target riscv32imac-unknown-none-elf -- -D warnings
cargo +${{ matrix.device.toolchain }} fmt -- --check
ota-packer:
name: OTA Packer
Expand All @@ -68,4 +68,4 @@ jobs:
target: riscv32imac-unknown-none-elf
toolchain: stable
- name: Build utility
run: cargo build-ota-packer
run: cargo build-ota-packer
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@ target/

# VSCode workspace(s)
*.code-workspace

# Temporarily ignore book from this branch
docs/book
2 changes: 1 addition & 1 deletion .vscode/settings.json
Comment thread
brainstorm marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"rust-analyzer.check.allTargets": false,
"rust-analyzer.check.allTargets": false,
}
Loading
Loading