Skip to content

Add Rust/WASM WebUI with WebUSB Gowin programming#9

Open
ArthurHeymans wants to merge 7 commits into
masterfrom
webui
Open

Add Rust/WASM WebUI with WebUSB Gowin programming#9
ArthurHeymans wants to merge 7 commits into
masterfrom
webui

Conversation

@ArthurHeymans

@ArthurHeymans ArthurHeymans commented Apr 27, 2026

Copy link
Copy Markdown
Owner

Summary

  • Refactor CLI protocol/chip parsing into shared library modules for reuse by WASM
  • Add Trunk/egui WebUI using WebSerial for NORbert runtime operations
  • Add WebUSB Gowin/Tang Primer 25K loader using ftdi-nusb feat/wasm-webusb for SRAM and external flash bitstream programming
  • Add GitHub Actions for CI, Pages deployment, FPGA bitstream artifacts, and release artifacts

Notes

  • The WebUSB FPGA loader depends on the ftdi-nusb feat/wasm-webusb branch, which has also been pushed to ArthurHeymans/ftdi-nusb.
  • External flash programming is implemented via the GW5A JTAG-SPI path and exposes verify/unprotect/chip-erase options in the WebUI.

Validation

  • cargo fmt --manifest-path tool/Cargo.toml --all -- --check
  • cargo check --manifest-path tool/Cargo.toml --target wasm32-unknown-unknown --no-default-features --features web --bin norbert-web
  • RUSTC="$(rustup which --toolchain nightly rustc)" CARGO_TARGET_DIR=tool/target-validate-web-nightly rustup run nightly cargo clippy --manifest-path tool/Cargo.toml --target wasm32-unknown-unknown --no-default-features --features web --bin norbert-web -- -D warnings
  • nix develop --command sh -c 'cd tool && trunk build --release'
  • nix develop --command sh -c 'CARGO_TARGET_DIR=tool/target-validate-cli cargo test --manifest-path tool/Cargo.toml --no-default-features --features cli'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant