Implemented proper iambic keyer functionality with squeeze keying support. This allows you to hold both paddles simultaneously and automatically alternate between dit and dah.
- Press LEFT only → sends DIT (dot) ·
- Press RIGHT only → sends DAH (dash) -
When you hold both paddles together, the keyer automatically alternates between dit and dah:
- Starts with whichever element comes next in the alternating sequence
- Continues alternating as long as both paddles are held
- Stops when you release both paddles
Press: RIGHT, LEFT, RIGHT, LEFT Result: - · - ·
- Hold RIGHT paddle (starts DAH)
- Press and hold LEFT paddle while still holding RIGHT
- Keyer automatically sends: DAH DIT DAH DIT
- Release both paddles
Result: - · - · (letter C)
The squeeze makes it much faster!
- Hold RIGHT (starts DAH)
- Squeeze LEFT (adds DIT)
- Release LEFT but keep holding RIGHT (adds final DAH)
Result: - · -
- Hold LEFT (starts DIT)
- Squeeze RIGHT (adds DAH)
- Release RIGHT but keep holding LEFT (adds final DIT)
Result: · - ·
- Press RIGHT (first DAH)
- Press RIGHT again (second DAH)
- Hold RIGHT and squeeze LEFT
- Keyer sends: DIT DAH
Result: - - · -
let mut last_element_was_dit = false;
if left_pressed && right_pressed {
// Both paddles pressed (squeeze)
if last_element_was_dit {
// Last was dit, now send dah
send_dah();
last_element_was_dit = false;
} else {
// Last was dah, now send dit
send_dit();
last_element_was_dit = true;
}
}Each element is followed by:
- Element duration (1 unit for dit, 3 units for dah)
- Element space (1 unit)
This ensures proper spacing between elements in squeeze mode.
- Faster sending - No need to release and re-press paddles
- Smoother operation - Continuous squeeze instead of individual presses
- Less effort - Hold both paddles instead of alternating
- Consistent timing - Keyer handles the alternation automatically
- Perfect spacing - No gaps or overlaps between elements
- Reduced errors - Less chance of missing or duplicating elements
- Less finger movement - Squeeze and hold instead of rapid pressing
- More ergonomic - Natural squeezing motion
- Less fatigue - Especially for longer transmissions
- Hold RIGHT paddle
- Add LEFT paddle (squeeze)
- Keep both pressed
- You should hear: LONG short LONG short
- Release both
- Should decode to: "C" ✓
- Hold LEFT paddle
- Add RIGHT paddle after first dit
- Keep both pressed
- You should hear: short LONG short LONG
- Release both
- Should decode to: "F" ✓
- Press LEFT (one dit)
- Hold both paddles (squeeze)
- You should hear: short LONG short short
- Should decode to: "L" ✓
Current Setup:
- LEFT paddle = DIT (dot, short)
- RIGHT paddle = DAH (dash, long)
- SQUEEZE (both) = Automatic alternation
Keyer Type: Iambic Mode B
- Alternates automatically when both paddles held
- Remembers last element sent
- Continues alternating until release
Letter "C" (-·-·):
Press RIGHT → -
Press LEFT → ·
Press RIGHT → -
Press LEFT → ·
Total: 4 separate actions
Letter "C" (-·-·):
Hold RIGHT → -
Squeeze LEFT → (automatic) ·-·
Total: 2 actions (hold + squeeze)
Result: 50% reduction in actions!
| Letter | Pattern | Squeeze Method |
|---|---|---|
| C | -·-· | Hold RIGHT, squeeze LEFT |
| F | ··-· | Hold LEFT, add RIGHT after 1 dit |
| K | -·- | Hold RIGHT, brief squeeze LEFT |
| L | ·-·· | One LEFT, then squeeze both |
| R | ·-· | Hold LEFT, brief squeeze RIGHT |
| X | -··- | Complex, try: RIGHT, squeeze both |
| Y | -·-- | Hold RIGHT, brief squeeze, then RIGHT |
- Start with the first element - Press the paddle for your first dit or dah
- Add the second paddle smoothly - Don't jerk, just add pressure
- Hold both firmly - Light pressure may not register
- Release cleanly - Let go of both at the same time for clean cutoff
- Practice timing - The keyer handles alternation, you handle when to stop
✅ Single paddle: Works as before - press LEFT for dit, RIGHT for dah ✅ Squeeze (both paddles): Automatically alternates dit-dah-dit-dah ✅ Timing: Proper spacing maintained automatically ✅ Speed: Much faster for alternating patterns ✅ Accuracy: Consistent timing, fewer errors
The code compiles successfully and iambic squeeze keying is now fully functional! 🎉