Get up and running on Linux, Windows, or macOS in 5 minutes!
| 🐧 Linux | 🪟 Windows | 🍎 macOS |
| Jump to Linux → | Jump to Windows → | Jump to macOS → |
# Ubuntu/Debian:
sudo apt install libasound2-dev pkg-config libgtk-3-dev
# Fedora:
sudo dnf install alsa-lib-devel gtk3-devel
# Arch:
sudo pacman -S alsa-lib gtk3curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/envcd paddle_decoder_cross_platform
./build_linux.sh
cargo run --releaseDone! 🎉
📖 Detailed guide: BUILD_LINUX.md
Download and run: https://rustup.rs
Download: https://visualstudio.microsoft.com/downloads/
Install "Desktop development with C++" workload.
Open PowerShell:
cd paddle_decoder_cross_platform
.\build_windows.ps1
cargo run --releaseOr just double-click paddle_decoder.exe in target\release\!
Done! 🎉
📖 Detailed guide: BUILD_WINDOWS.md
xcode-select --installcurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/envcd paddle_decoder_cross_platform
./build_macos.sh
cargo run --releaseDone! 🎉
📖 Detailed guide: BUILD_MACOS.md
- Install Arduino IDE
- Add Digispark support:
- File → Preferences → Additional Board Manager URLs
- Add:
http://digistump.com/package_digistump_index.json
- Tools → Board Manager → Install "Digistump AVR Boards"
- Tools → Manage Libraries → Install "DigiMIDI"
- Open
paddle_decoder.ino - Tools → Board → Digispark (Default - 16.5mhz)
- Sketch → Upload (plug in when prompted)
ATtiny85 Pin 2 (P2) → LEFT paddle (Dit)
ATtiny85 Pin 0 (P0) → RIGHT paddle (Dah)
ATtiny85 GND → Paddle common
- LED blinks 5 times on startup ✓
- LED lights when you press paddle ✓
┌────────────────────────────────────┐
│ 🎹 MORSE CODE PADDLE DECODER │
├────────────────────────────────────┤
│ WPM: [====20====] ← Drag me! │
│ Frequency: [=600Hz=] ← Drag me! │
├────────────────────────────────────┤
│ LEFT (Dit) RIGHT (Dah) │
│ 🔴 ⚪ ← Status │
├────────────────────────────────────┤
│ Current: -.- ← Your keying │
├────────────────────────────────────┤
│ Decoded: HELLO ← Your text │
│ [Add Space] [Clear Text] │
└────────────────────────────────────┘
Try letter E (easiest):
- Press LEFT paddle
- Release
- Wait 300ms
- Should show: E ✅
Try letter T:
- Press RIGHT paddle
- Release
- Wait 300ms
- Should show: T ✅
Try letter D:
- Press RIGHT (dah)
- Press LEFT (dit)
- Press LEFT (dit)
- Wait 300ms
- Should show: D ✅
Check USB:
- Linux:
lsusb | grep 16c0 - Windows: Device Manager → USB devices
- macOS:
system_profiler SPUSBDataType | grep 16c0
Solution: Plug in Digispark, verify LED blinks.
Test audio:
- Linux:
speaker-test -t sine -f 600 - Windows: Check Volume Mixer
- macOS: System Preferences → Sound
Solution: Check volume, unmute application.
Example: Type D (-..) but shows T
Cause: Timing too fast
Solution:
- Pause between elements
- Wait 300ms after last element
- Try adjusting WPM slider
Platform-specific guides:
- BUILD_LINUX.md - Complete Linux guide
- BUILD_WINDOWS.md - Complete Windows guide
- BUILD_MACOS.md - Complete macOS guide
General:
- README.md - Main documentation
- TIMING_FIX.md - Timing adjustments
- ✅ Build and run the application
- ✅ Connect your Digispark
- ✅ Test with E and T
- ✅ Adjust WPM to your comfort
- ✅ Start practicing!
- Start at 15 WPM - Comfortable for learning
- Try 600 Hz - Most popular frequency
- Pause 300ms - Between letters for decode
- Watch indicators - Visual feedback helps!
- Practice daily - Consistency builds skill
- Check platform-specific guide (BUILD_*.md)
- Review troubleshooting section above
- Verify hardware connections
- Test with diagnostic commands
Fire it up and start decoding!
# Linux/macOS:
cargo run --release
# Windows:
cargo run --release
# Or double-click paddle_decoder.exe73! 📻🎹✨