Blazor app with can interface
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Twirpytherobot b6ab373801 Merge branch 'master' of https://slghome.duckdns.org/PoopLord/IOModuleBlazorTest 1 week ago
IOModuleTestBlazor Merge branch 'master' of https://slghome.duckdns.org/PoopLord/IOModuleBlazorTest 1 week ago
.gitignore Initial commit 3 months ago
CLAUDE.md WIP 1 week ago
IOModuleTestBlazor.slnx Initial commit 3 months ago
README.md WIP 1 week ago

README.md

IO Module Blazor Dashboard

A Blazor Server web application for monitoring and controlling the STM32H723ZG Nucleo IO module over CAN bus and serial.

What This App Does

  • Button Status — Live indicators for the three push buttons (User/Button1/Button2) received via CAN
  • Termination Control — Toggle TERM_ON and TERM_OFF outputs on the CAN hat (sends CAN 0x240)
  • CAN Monitor — Full CAN management: connect/disconnect, live message stream, filter and signal decoder, manual message sender
  • Serial Terminal — Connect to the STM32's ST-Link VCP for NVMEM EEPROM read/write commands

Requirements

  • .NET 10 SDK
  • PEAK PCAN adapter (e.g. PCAN-USB) with PCAN-Basic drivers installed
  • STM32H723ZG Nucleo board running the IOModuleBlazorTest firmware

Running the App

cd IOModuleTestBlazor
dotnet run

Then open https://localhost:5001 in a browser.

Pages

Page Route Description
Home / Button status, termination control, CAN message list
CAN Monitor /can-monitor Full CAN management — connect, filters, signal decoder, send
Serial Terminal /serial ST-Link VCP terminal for NVMEM EEPROM commands

CAN Bus Setup

  1. Connect the PCAN-USB adapter to the Nucleo CAN transceiver
  2. Open the app and navigate to CAN Monitor
  3. Select the PCAN channel and set bitrate to 500 kbps
  4. Click Connect — the app auto-scans for available PCAN USB channels

Termination Control (Home page)

Two independent toggles map directly to the CAN hat's termination relay outputs:

Button CAN 0x240 bit STM32 pin
TERM_ON Bit 0 PB10 (CN10-32)
TERM_OFF Bit 1 PB11 (CN10-34)

Clicking a toggle immediately sends a 0x240 frame. Buttons are disabled when not connected.

Serial Terminal (NVMEM Commands)

Connect to the Nucleo's ST-Link USB virtual COM port at 115200 baud.

Command Description
r <addr> <len> Read len bytes (1–5) from EEPROM at hex address
w <addr> <b0> [b1...] Write 1–5 bytes to EEPROM
? Show help

Example: r 0000 4 reads 4 bytes at address 0x0000.

See STM32 firmware docs/NVMEMCommands.md for the full reference.

Project Structure

IOModuleTestBlazor/
├── Components/
│   ├── Layout/
│   │   └── NavMenu.razor          # Navigation sidebar
│   └── Pages/
│       ├── Home.razor             # Dashboard: buttons + termination + messages
│       ├── CanMonitor.razor       # Full CAN management UI
│       └── SerialTerminal.razor   # NVMEM serial command terminal
├── Services/
│   ├── ICanService.cs / CanService.cs     # PCAN adapter wrapper
│   └── ISerialPortService.cs / SerialPortService.cs  # Serial port wrapper
├── Models/
│   └── CanModels.cs               # CanMessageDto, CanFilter, CanBitmask
├── CanWorker.cs                   # Background CAN message reader
└── Program.cs                     # DI registration, middleware

Dependencies

Package Purpose
Peak.PCANBasic.NET PCAN hardware CAN adapter driver
Microsoft.AspNetCore.SignalR.Client Real-time Blazor Server transport