| File | Purpose | Best For |
|---|---|---|
paddle_decoder_vusb.ino |
Main version | TRY THIS FIRST |
paddle_decoder_alt.ino |
Alternative impl | If first doesn't work |
paddle_decoder_diagnostic.ino |
Debug version | Troubleshooting |
# 1. Open Arduino IDE
# 2. File -> Open -> paddle_decoder_vusb.ino
# 3. Tools -> Board -> Digispark (Default - 16.5mhz)
# 4. Sketch -> Upload
# 5. Plug in Digispark when prompted
# 6. Wait for "Micronucleus done. Thank you!"P2 (Pin 2) β LEFT paddle (Dit)
P0 (Pin 0) β RIGHT paddle (Dah)
GND β Common ground
P1 (Pin 1) β LED (optional)
| Version | Dit Note | Dah Note | Channel |
|---|---|---|---|
| All new versions | 60 (C) | 62 (D) | 1 |
| Original | 1 | 2 | 1 |
# Check USB device
lsusb | grep "16c0:05e4"
# Check MIDI device
amidi -l
# Monitor MIDI messages
aseqdump -p "Digispark"
# Run your app
cd /home/developer/rust/paddle_decoder_cross_platform
cargo run --release- 5 fast blinks = Ready
- Quick flash = Paddle press
- 5 fast blinks = Firmware OK
- 1 long blink = USB init
- 3 medium blinks = MIDI ready
- Flash every 10s = Heartbeat
- Continuous = Both paddles pressed
| Problem | Solution |
|---|---|
| No USB device | Try different USB port, check udev rules |
| No MIDI device | Load module: sudo modprobe snd-seq |
| No LED blink | Re-upload firmware |
| Wrong notes | Update Rust code or change INO defines |
| Bouncing | Increase debounce time in code |
# Create file:
sudo nano /etc/udev/rules.d/49-digispark.rules
# Add:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05e4", MODE:="0666"
# Reload:
sudo udevadm control --reload-rules
sudo udevadm triggerIn any INO file, change:
#define NOTE_DIT 60 // Change to: 1
#define NOTE_DAH 62 // Change to: 2β
Arduino upload says "Micronucleus done"
β
LED blinks on startup
β
lsusb shows 16c0:05e4
β
amidi -l shows MIDI device
β
LED flashes when paddle pressed
β
aseqdump shows Note On/Off
β
Rust app receives events
Want to test quickly?
ββ> Use paddle_decoder_vusb.ino
Having problems?
ββ> Try paddle_decoder_alt.ino
Need to debug?
ββ> Use paddle_decoder_diagnostic.ino
Want original behavior (notes 1,2)?
ββ> Edit NOTE_DIT and NOTE_DAH in any file
See INO_README.md for complete details, troubleshooting, and explanations.
β
Better debouncing
β
Improved MIDI timing
β
LED pulse feedback (not continuous)
β
Multiple versions for different needs
β
Better USB enumeration
β
Diagnostic support
β
Proper state management
β
Compatible with VID:PID 16c0:05e4
73! π» DD6DS
For ham radio CW training