Skip to content

CIRCUITERA FIELD GUIDE

Upload Handshake Failed

Check target selection, Nano bootloader settings, reset timing, serial ownership and adapter voltage when the upload bootloader does not respond.

What you see

Connection diagnostics say “Upload handshake failed”; the uploader can also report “The Uno bootloader did not respond in time.”

Likely causes

  • The selected profile, protocol or bootloader baud does not match the device.
  • Another program owns the port or external wiring interferes with serial/reset.
  • An adapter lacks a usable reset signal, or the bootloader has not entered its listening window.

Diagnostic steps

  1. Confirm target identity

    Use the board marking and processor, not only the USB bridge name. Uno R4 and newer Nano families are not covered by classic AVR profiles.

  2. Check profile-specific behavior

    For classic Nano, try the profile matching the installed old or new bootloader. Leonardo/Micro use native USB and a 1200-baud reset sequence; Pro Mini uses a matching-voltage serial adapter and DTR or a timed manual reset.

  3. Release the connection cleanly

    Close other monitors and let Circuitera finish the current handoff before retrying. Unplug power before changing circuit wiring around RX/TX.

  4. Retest Blink

    Verify a minimal Blink sketch for the exact target. An open port alone is not bootloader validation, and a successful compile cannot repair a missing bootloader.

Board-specific notes

Uno/Nano use their USB-to-serial bridge. Mega’s extra UARTs are not separate browser ports. Leonardo/Micro native USB may re-enumerate during reset. Pro Mini requires an external adapter with the correct logic voltage.

Safe recovery

Do not burn or replace a bootloader as the first response. Check the cable, profile and reset path first; use the official board instructions for hardware servicing.

Evidence and references

Reviewed 2026-10-23 against Circuitera’s actual behavior. An editorial review is separate from a physical board test.

Circuitera implementation evidence

src/connectionDiagnostics.js; src/serial.js: Stk500Transport.readByte

Testing and capability boundaries →

Keep exploring.