Button Hat Hardware Modification Guide

Required for Basic PCB V2 and Advanced PCB with Button Hat purchased in 2025 - Firmware dated November 11, 2025 or later

📌 Why is this modification needed?

The latest firmware moves the button input from pin A3 to pin A8. For the Advanced PCB, this avoids conflicts with radio output functionality. For the Basic PCB V2, this ensures consistent pin mapping across all button hat installations.

This requires a simple one-time hardware modification to reroute the button signal.

This modification is only required for button hats purchased in 2025. Button hats from 2026 onward will use updated PCBs with the correct pin routing and will not require any user modification.

If you don't have a button hat installed, you don't need this modification.

🛠️ Materials Needed

Skill Level: Basic soldering experience required

Time Required: 10-15 minutes

⚠️ Wire Length is Critical!

The jumper wire MUST be 25mm (1 inch) long. Longer or shorter wires will change the electrical characteristics and may cause the buttons to malfunction with the current firmware calibration values.

Step 0: Understand the Pin Layout

Before starting, familiarize yourself with the QT Py SAMD21 pinout. You'll be working with pins A3 and A8 on the bottom row of the board.

QT Py SAMD21 Pin Diagram
QT Py SAMD21 pinout diagram - Note the location of A3 and A8 on the bottom edge

Important pins to identify:

Step 1: Cut the A3 Header Pin

The first step is to disconnect the button hat's A3 connection from the QT Py board.

Procedure:

  1. Remove power: Ensure your Vail Adapter is completely unplugged from USB
  2. Identify pin A3: Locate the A3 header pin on the underside of the QT Py board (where the pins connect to the PCB)
  3. Cut the pin: Using wire cutters, carefully cut the A3 header pin between the QT Py board and the PCB
    • Leave enough pin length on the QT Py side to solder a wire to (about 2-3mm)
    • This disconnects the button hat from the old pin location
  4. Verify the cut: Gently wiggle the QT Py board to confirm pin A3 is no longer physically connected
⚠️ Important: Be very careful not to cut any other pins! Double-check you're cutting A3 before making the cut.

Step 2: Solder Jumper Wire from A3 to A8

Now you'll create a new connection from the button hat signal (A3 pin on button hat side) to the new button input (A8 on the QT Py).

Procedure:

  1. Prepare the wire: Cut a jumper wire to exactly 25mm (1 inch) length and strip both ends
    • Important: Wire length must be 25mm for proper button calibration
    • Use 22-24 AWG solid core wire for best results
  2. Tin both ends: Apply a small amount of solder to both ends of the wire
  3. Solder to A3 pad: On the PCB side (where the button hat connects), solder one end of the wire to the A3 pad/pin stub
    • This is the button hat side that was just disconnected
    • The signal needs to come from the button hat to route to the new pin
  4. Route the wire: Run the wire along the bottom of the board toward pin A8
  5. Solder to A8 pin: Solder the other end of the wire to the A8 header pin on the QT Py side
    • A8 is located on the bottom edge of the QT Py (see pinout diagram)
    • Make sure you have a good solder connection with electrical continuity
Example of completed modification - view 1
Example 1: Completed modification showing jumper wire from A3 to A8
Example of completed modification - view 2
Example 2: Alternative angle showing wire routing and solder joints

Step 3: Test Your Modification

After completing the modification, test to ensure everything works correctly.

Testing Procedure:

  1. Visual inspection: Check that:
    • A3 pin is fully cut and disconnected
    • Jumper wire has good solder joints at both A3 and A8
    • No solder bridges between adjacent pins
  2. Continuity test (optional): Use a multimeter to verify:
    • Continuity between button hat A3 pad and QT Py A8 pin
    • No continuity between button hat A3 and QT Py A3
  3. Flash firmware: Return to the firmware updater and flash the latest firmware
  4. Test buttons: After flashing:
    • Press each button (B1, B2, B3) individually to verify detection
    • Test combo presses (B1+B2, B1+B3, B2+B3)
    • Buttons should respond reliably without double-triggering

✅ Success Indicators

  • Adapter powers on normally (LED indicator working)
  • All three buttons respond when pressed
  • Long press on B3 enters speed adjustment mode (plays speed in morse)
  • No false button triggers or erratic behavior

❓ Troubleshooting

Buttons don't respond at all

Buttons trigger erratically or give wrong values

One specific button doesn't work

📞 Need Help?

If you run into issues or have questions about this modification:

Photos of your setup can be very helpful for troubleshooting - feel free to include them when reaching out!

← Return to Firmware Updater