Skip to content

Latest commit

 

History

History
189 lines (145 loc) · 5.2 KB

File metadata and controls

189 lines (145 loc) · 5.2 KB

Iambic Squeeze Keying Implemented

What Was Added

Implemented proper iambic keyer functionality with squeeze keying support. This allows you to hold both paddles simultaneously and automatically alternate between dit and dah.

How Iambic Keying Works

Single Paddle Operation

  • Press LEFT only → sends DIT (dot) ·
  • Press RIGHT only → sends DAH (dash) -

Squeeze Keying (Both Paddles)

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

Example: Letter "C" (-·-·)

Method 1: Sequential (old way)

Press: RIGHT, LEFT, RIGHT, LEFT Result: - · - ·

Method 2: Squeeze (new way)

  1. Hold RIGHT paddle (starts DAH)
  2. Press and hold LEFT paddle while still holding RIGHT
  3. Keyer automatically sends: DAH DIT DAH DIT
  4. Release both paddles

Result: - · - · (letter C)

The squeeze makes it much faster!

More Squeeze Examples

Letter "K" (-·-)

  1. Hold RIGHT (starts DAH)
  2. Squeeze LEFT (adds DIT)
  3. Release LEFT but keep holding RIGHT (adds final DAH)

Result: - · -

Letter "R" (·-·)

  1. Hold LEFT (starts DIT)
  2. Squeeze RIGHT (adds DAH)
  3. Release RIGHT but keep holding LEFT (adds final DIT)

Result: · - ·

Letter "Q" (--·-)

  1. Press RIGHT (first DAH)
  2. Press RIGHT again (second DAH)
  3. Hold RIGHT and squeeze LEFT
  4. Keyer sends: DIT DAH

Result: - - · -

How It Works (Technical)

Alternation Logic

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;
    }
}

Timing

Each element is followed by:

  1. Element duration (1 unit for dit, 3 units for dah)
  2. Element space (1 unit)

This ensures proper spacing between elements in squeeze mode.

Benefits

Speed

  • 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

Accuracy

  • Consistent timing - Keyer handles the alternation automatically
  • Perfect spacing - No gaps or overlaps between elements
  • Reduced errors - Less chance of missing or duplicating elements

Comfort

  • Less finger movement - Squeeze and hold instead of rapid pressing
  • More ergonomic - Natural squeezing motion
  • Less fatigue - Especially for longer transmissions

Testing the Squeeze Feature

Test 1: Letter "C" (-·-·)

  1. Hold RIGHT paddle
  2. Add LEFT paddle (squeeze)
  3. Keep both pressed
  4. You should hear: LONG short LONG short
  5. Release both
  6. Should decode to: "C" ✓

Test 2: Letter "F" (··-·)

  1. Hold LEFT paddle
  2. Add RIGHT paddle after first dit
  3. Keep both pressed
  4. You should hear: short LONG short LONG
  5. Release both
  6. Should decode to: "F" ✓

Test 3: Letter "L" (·-··)

  1. Press LEFT (one dit)
  2. Hold both paddles (squeeze)
  3. You should hear: short LONG short short
  4. Should decode to: "L" ✓

Configuration Summary

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

Advantages Over Non-Iambic Keyers

Traditional Keyer (Before)

Letter "C" (-·-·):
Press RIGHT → -
Press LEFT → ·
Press RIGHT → -
Press LEFT → ·
Total: 4 separate actions

Iambic Keyer (Now)

Letter "C" (-·-·):
Hold RIGHT → -
Squeeze LEFT → (automatic) ·-·
Total: 2 actions (hold + squeeze)

Result: 50% reduction in actions!

Common Squeeze Patterns

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

Tips for Using Squeeze

  1. Start with the first element - Press the paddle for your first dit or dah
  2. Add the second paddle smoothly - Don't jerk, just add pressure
  3. Hold both firmly - Light pressure may not register
  4. Release cleanly - Let go of both at the same time for clean cutoff
  5. Practice timing - The keyer handles alternation, you handle when to stop

Summary

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! 🎉