Vail Adapter Firmware Update

1
Model
2
Board
3
Update

Which Vail device do you have?

Choose your device type.

ðŸ“Ą

Vail Adapter

USB adapter that connects paddles to your computer for web-based CW

⛰ïļ

Vail Summit

Standalone morse code trainer with built-in screen and keyboard

What model of Vail Adapter do you have?

Choose the PCB version that matches your adapter.

🎛ïļ

Basic PCB

Standard Vail Adapter PCB with paddle inputs and sidetone

⚡

Advanced PCB

Includes radio output port and built-in capacitive touch points

ðŸŠķ

Vail Lite

USB stick form factor with buzzer sidetone only - no buttons, capacitive touch, headphone jack, or radio output

🔧

DIY No PCB

Hand-wired or breadboard build following GitHub specs

Which Arduino board are you using?

Select the microcontroller on your adapter.

🔷

Adafruit QT Py SAMD21

Look for "QT Py" labeling on the board

ðŸ’Ą Most purchased Adapters will likely be a QT Py when in doubt
ðŸ”ķ

Seeeduino XIAO SAMD21

Look for "XIAO" labeling on the board

Flash Your Firmware

You've selected:

1

Plug In Your Adapter

Use a USB-C cable (must support data transfer) and connect your Vail Adapter to your computer.

2

Enter Boot Mode

Choose one of these methods to put your adapter into bootloader mode:

Method 1: WebSerial (Recommended)

Click the button below to automatically trigger boot mode. Works in Chrome, Edge, and Opera browsers.

Activity Log:


                    

Method 2: Manual Reset (Double-tap)

Quickly double-tap the reset button on your adapter. The board should appear as a USB storage device (e.g., "QTPYBOOT" or "XIAOBOOT").

3

Download Firmware

Download the firmware file for your configuration:

⮇ïļ Download UF2 File
4

Copy Firmware to Device

  1. Open your file explorer (Finder on Mac, File Explorer on Windows)
  2. Find your Downloads folder and locate the downloaded .uf2 file
  3. Look for the adapter drive (named "QTPYBOOT", "XIAOBOOT", "ADAPTERBOOT", or similar)
  4. Drag and drop the .uf2 file onto the adapter drive
  5. Wait for the LED to stop flashing - the drive will automatically disconnect when complete
5

Finalize Setup

  1. Wait 10 seconds after the firmware copies
  2. Unplug and reconnect your Vail Adapter
  3. Important: Visit vailmorse.com (the official Vail web repeater) to configure your keyer type, speed, and tone settings
  4. Your settings will be saved to the device and can be used with any compatible CW application
✅ You're all set! Your Vail Adapter is now running the latest firmware.

❓ Troubleshooting

Device doesn't appear as storage drive

Try these steps:

  • Try the double-tap reset method instead of WebSerial
  • Use a different USB-C cable (some cables are charge-only)
  • Try a different USB port on your computer
  • Wait 5 seconds between taps when double-tapping the reset button
WebSerial button doesn't work

WebSerial requires Chrome, Edge, or Opera browser. If you're using Firefox or Safari, please switch browsers or use the manual reset method.

Linux: Permission denied

Add your user to the dialout group: sudo usermod -a -G dialout $USER then log out and back in.

Flash Vail Summit Firmware

Web-based ESP32 flasher for the Vail Summit

1

Select Firmware Version

Choose which firmware version to flash. The latest stable release is selected by default.

2

Connect Your Device

Make sure your Vail Summit is plugged in via USB-C.

3

Flash Firmware

Click the button below to connect to your Summit. The flasher will automatically enter bootloader mode and show flash options.

⚠ïļ Connection not working? Try manual bootloader entry

If automatic connection fails (e.g., "port in use" error), manually enter bootloader mode:

  1. Hold down the BOOT button on your Summit
  2. While holding BOOT, press and release RESET
  3. Release the BOOT button
  4. Your device will now show as "USB JTAG/Serial" instead of "TinyUSB CDC"

Flash Log:


                
4

Complete!

Once flashing is complete, your device will automatically restart with the new firmware. If it doesn't restart automatically:

  1. Unplug your Vail Summit from USB
  2. Wait 2 seconds
  3. Plug it back in to power it on
  4. Follow the on-screen setup wizard to configure WiFi and preferences
✅ You're all set! Your Vail Summit is ready for morse code training.

❓ Troubleshooting

Browser doesn't support Web Serial

Web Serial API is required for ESP32 flashing. Please use Chrome, Edge, or Opera browser. Firefox and Safari are not currently supported.

"Port in use" or "Cannot access COM port" error

This is common on Windows. Try these solutions:

  1. Use manual bootloader entry: Expand the yellow section above and follow the BOOT + RESET instructions.
  2. Close other programs: Make sure Arduino IDE, PuTTY, or any other serial terminal is completely closed.
  3. Windows Device Manager fix:
    • Open Device Manager (Win+X → Device Manager)
    • Find the COM port under "Ports (COM & LPT)"
    • Right-click → Disable device, wait 2 seconds
    • Right-click → Enable device
    • Try flashing again
  4. Try a different USB port - preferably a USB 2.0 port if available.
Device shows as "TinyUSB CDC" but won't connect

Some devices use TinyUSB which doesn't support automatic bootloader entry. Use manual bootloader entry:

  1. Hold down the BOOT button
  2. While holding BOOT, press and release RESET
  3. Release the BOOT button
  4. Device will now show as "USB JTAG/Serial"
  5. Click "I'm in Bootloader Mode - Connect Now"
Flashing failed or stuck

If flashing fails:

  • Unplug the device, wait 5 seconds, and reconnect
  • Try manual bootloader entry (BOOT + RESET)
  • Try a different USB cable (some cables are charge-only)