Skip to content

Releases

v2.1.1 - Bug Fix: Device Name Persistence

Choose a tag to compare

@ril3y ril3y released this 28 Oct 12:11

Bug Fix Release

Fixed

  • Custom device name now persists in CAPS response - The get:capabilities command now correctly returns the custom device name set via set:name instead of always reverting to the default board name.

Changes

  • CAPS response now uses get_device_name() instead of hardcoded platform_capabilities.board_name
  • Added CHANGELOG.md to track version history

Previous Issue

When you set a custom device name with set:name:MyDevice, it would work for get:name but the web UI would show the old name after querying capabilities because CAPS was still returning the default board name.

Downloads

Firmware files will be automatically built and attached by GitHub Actions in a few minutes.

  • uCAN-feather_m4_can-v2.1.1.uf2 - For Adafruit Feather M4 CAN (drag-and-drop installation)
  • uCAN-pico-v2.1.1.uf2 - For Raspberry Pi Pico (drag-and-drop installation)

Installation

  1. Connect your device while holding the BOOT button (enters bootloader mode)
  2. A drive named FTHRCANBOOT (Feather) or RPI-RP2 (Pico) will appear
  3. Drag the appropriate .uf2 file to the drive
  4. Device will automatically reset and run the new firmware

See CHANGELOG.md for full version history.

uCAN v2.1.0 - Device Name Management & Platform Limits

Choose a tag to compare

@ril3y ril3y released this 28 Oct 05:07

uCAN Firmware Release v2.1.0

🎉 New Features

Device Name Management:

  • set:name:{NAME} - Set custom device name for multi-device identification
  • get:name - Retrieve current device name
  • Supports alphanumeric, spaces, underscores, hyphens (max 31 chars)
  • Default name is board name (e.g., "Adafruit Feather M4 CAN")

Platform-Specific Rule Limits:

  • CAPS response now includes max_rules field
  • Feather M4 CAN (SAMD51): 64 rules
  • Raspberry Pi Pico (RP2040): 16 rules
  • ESP32: 32 rules (when implemented)

🧪 Testing & Quality

  • 269 hardware-independent unit tests (protocol parsing & validation)
  • 8 new device name integration tests
  • All tests pass in CI without hardware
  • Comprehensive test coverage for device naming feature

📚 Documentation

  • Complete set:name command documentation in PROTOCOL.md
  • max_rules field specification added to CAPS response
  • Device naming use cases and limitations documented
  • Updated examples and response formats

🔧 Improvements

  • Fixed pytest configuration conflicts (removed pytest-timeout dependency)
  • Updated .gitignore to properly allow test files in tests/ directory
  • CI/CD workflow now runs unit tests separately from integration tests

📦 Installation

For Adafruit Feather M4 CAN:

  1. Download uCAN-feather_m4_can-v2.1.0.uf2
  2. Double-click reset button → FEATHERBOOT drive appears
  3. Drag and drop UF2 file to FEATHERBOOT drive
  4. Board auto-resets with new firmware

For Raspberry Pi Pico:

  1. Download uCAN-pico-v2.1.0.uf2
  2. Hold BOOTSEL while plugging in USB → RPI-RP2 drive appears
  3. Drag and drop UF2 file to RPI-RP2 drive
  4. Connect MCP2551 CAN transceiver to GP4/GP5

🌐 Web Interface

Use with the web UI at: https://battlewithbytes.io/tools/ucan

📊 Firmware Stats

  • Flash Usage: 59,724 bytes (11.8% of 496KB)
  • RAM Usage: 4,220 bytes (2.1% of 192KB)
  • Protocol Version: 2.0
  • Firmware Version: 2.1.0

📖 Full Documentation

⚠️ Notes

  • Device name persistence to flash storage not yet implemented (resets on power cycle)
  • Name is stored in volatile RAM only
  • Flash storage implementation planned for future release

uCAN v2.0.0

Choose a tag to compare

@ril3y ril3y released this 28 Oct 00:43

uCAN Firmware Release v2.0.0

Installation Instructions

For Adafruit Feather M4 CAN:

  1. Download uCAN-feather_m4_can-v2.0.0.uf2 (500kbps default)
  2. Double-click reset button on board to enter bootloader mode
  3. Drag and drop UF2 file to FEATHERBOOT drive
  4. Board will auto-reset and run new firmware

For Raspberry Pi Pico:

  1. Download uCAN-pico-v2.0.0.uf2
  2. Hold BOOTSEL button while plugging in USB
  3. Drag and drop UF2 file to RPI-RP2 drive
  4. Connect MCP2551 CAN transceiver to GP4/GP5

Default Configuration

  • CAN bitrate: 500kbps (adjustable via web UI after installation)
  • All features enabled (GPIO, PWM, NeoPixel, I2C, Actions)

Features

  • Protocol v2.0 compliant - Full specification implementation
  • Rule-based action system - Trigger GPIO, PWM, NeoPixel, I2C actions from CAN messages
  • Multi-platform support - Feather M4 CAN (SAMD51) and Raspberry Pi Pico (RP2040)
  • Web UI compatible - Use with https://battlewithbytes.io/tools/ucan
  • Comprehensive testing - 91 passing integration tests (79% pass rate)

Web Interface

Use this firmware with the web UI at: https://battlewithbytes.io/tools/ucan

Documentation