Skip to content

uCAN v2.1.0 - Device Name Management & Platform Limits

Choose a tag to compare

@ril3y ril3y released this 28 Oct 05:07
· 18 commits to main since this release

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