breadboard
14 · When it fights back

Troubleshooting & FAQ

What the diagnostics mean and the classic bench mistakes, with fixes.

Reading the diagnostics

floating pin
An input is connected to nothing. Logic inputs and MCU pins want a defined level. Wire it, or add a pull resistor.
short circuit
A supply sees a near-zero-ohm path. Follow the + rail with the hover tooltip until the volts collapse.
bus contention
Two push-pull outputs drive the same net to different levels. One of them should be an input (or use a resistor).
component burned out
Past its rating for too long. Fix the design (series resistor? bigger rating?), then ⟲ Restart to fit a fresh part.
firmware error
Open Engine status in the header for the error details and check Serial output. Check that the file targets this exact board and firmware profile; a blinking demo is not proof that your upload ran.
convergence failure
The solver couldn’t settle, usually because of an extreme circuit (ideal loops, enormous gain). Add realistic resistance.

The classics

  • “My LED doesn't light.” Anode/cathode backwards, missing series resistor path, or the sim is paused, in that order of likelihood.
  • “My MicroPython script didn't run.” First check the board has MicroPython firmware, power and a running simulation. Open Serial and wait for the >>> prompt, then press Run on board. Shared projects wait for that click. A traceback is a Python error; read it in Serial. See loading Pico firmware and the Code workflow.
  • “The button does nothing in firmware.” The input needs a defined level. Internal pulls are real on the ESP32-C3, S3, and C6 (Pin(n, Pin.IN, Pin.PULL_UP)) and on the AVR boards (INPUT_PULLUP); the classic ESP32 doesn't model them, so give it an external ~10 kΩ pull resistor like its examples do.
  • “I²C finds nothing.” Scan first: I2C(0, scl=Pin(9), sda=Pin(8)).scan() on the C3 and S3 (the C6's default bus is scl=Pin(22), sda=Pin(23)). No device? Check the sensor has power (3V3) and SDA/SCL aren't swapped.
  • “The MQ-2 alarms immediately / reads high.” That's the heater warm-up; real MQ sensors do this. Wait the ~5 s; the alarm is suppressed until it settles.
  • “The e-paper shows nothing.” RAM writes are invisible until Master Activation (0x20) completes its refresh (~1.38 s for the 1.54″ full OTP waveform), so poll BUSY like the badge example.

A project opens, but its firmware or files are missing

Select the affected board or microSD card and check the Inspector. Uploaded files may be referenced by the project without being present in this browser. Upload the original file again, or compile the saved Arduino source for the correct board. See what a project save contains.

Performance

The header compares simulation time with elapsed real time: 1× means one simulated second per real second; 0.5× means a simulated second takes two real seconds. Firmware boot, busy loops and circuits with many switching parts can lower that ratio. A delay in a script follows simulation time, so it can take longer on your clock. Pause when you do not need the circuit to run (building already pauses it for you), and close other busy benches.