Bare Conductive Starter Article 10

Troubleshooting Common Issues

Systematic debugging for the most common Touch Board problems — false triggers, no sound, upload failures, and paint issues.

⏱ 18 min read troubleshooting debug false triggers no sound upload

A systematic approach

Before trying random fixes, isolate which part of the system has the problem. The Touch Board has four distinct subsystems:

  1. Power — is the board getting 5V?
  2. Touch sensor (MPR121) — is it detecting touches correctly?
  3. Audio (VS1053 + SD card) — is it playing sound?
  4. Electrodes — are the physical connections good?

Test each in order.

Power problems

Symptom: No LEDs light up when USB is connected.

Fixes:

  • Try a different USB cable — many micro-USB cables are charge-only (no data wires)
  • Try a different USB port on your computer
  • Try a different USB power source (wall charger vs computer)
  • Check that the USB cable clicks firmly into the Touch Board

Symptom: Board keeps resetting (LEDs cycle repeatedly).

Fixes:

  • Power supply doesn’t provide enough current — use a charger that provides at least 500mA
  • USB hub without external power — connect directly to computer
  • Short circuit in your electrode connections — disconnect all crocodile clips and test bare board

No sound

Symptom: Board powers on (PWR LED lit) but no sound when touching electrodes.

Fixes (in order):

  1. Is the SD card inserted firmly (click in place)?
  2. Is the SD card formatted as FAT32? (exFAT won’t work)
  3. Do the MP3 files have the exact correct names: TRACK000.mp3 (uppercase, no spaces)?
  4. Are the MP3 files actually in the root directory of the card (not inside a folder)?
  5. Is the audio cable connected? Is the volume up?
  6. Is the MP3 file a valid MP3? Try a known-good file from another source.
  7. Re-flash the default firmware (File → Examples → Touch Board → Touch_MP3)

Symptom: Some tracks play, others don’t.

Fixes:

  • Check the specific missing track file — it may be named incorrectly
  • Check file size — a corrupt or 0-byte file won’t play
  • Some encoders produce MP3 files with non-standard headers; re-encode with Audacity (Export → MP3)

False triggers (triggering without touch)

Symptom: Sounds play randomly with nobody touching the electrodes.

This is the most common issue with painted/wired electrodes.

Fixes:

  1. Reduce cable length — long crocodile clip cables act as antennas. Keep under 50cm where possible.
  2. Keep cables apart — bundled cables can cross-talk. Spread them out.
  3. Reduce sensitivity — in your sketch:
    MPR121.setTouchThreshold(60);   // higher = less sensitive
    MPR121.setReleaseThreshold(40);
    
  4. Add a guard electrode — run a grounded trace between electrode traces to reduce cross-coupling
  5. Power supply noise — switch from a computer USB to a wall charger; computers can inject noise
  6. Wet environment — moisture on electrodes creates false contacts. Ensure paint is fully dry.
  7. Electrode too large — large painted areas have high capacitance that pushes against the threshold. Reduce electrode size or increase threshold.

Touch not detected (electrode doesn’t respond)

Symptom: One electrode doesn’t trigger even when touched firmly.

Fixes (in order):

  1. Check crocodile clip connection at both ends
  2. Measure electrode resistance with a multimeter — should be under 1 MΩ
  3. Check for paint gaps in traces with a magnifying glass
  4. Try connecting directly to the electrode pad with a clip (bypass the trace) — if this works, the trace has a break
  5. Check the corresponding MP3 file exists and is valid
  6. In the Serial Monitor sketch (article 8), does the serial output show the touch? If yes, it’s a sound issue, not a sensing issue.

Arduino upload failures

Symptom: “avrdude: stk500v2_ReceiveMessage(): timeout” or similar.

Fixes:

  1. Select the correct board: Tools → Board → Arduino Leonardo (or Touch Board if installed)
  2. Select the correct port: Tools → Port — only one port should appear when the board is connected
  3. Close the Serial Monitor before uploading (it holds the serial port)
  4. Try the double-tap reset method: click Upload, then immediately double-tap the RESET button on the Touch Board — this forces bootloader mode for 8 seconds
  5. Try a different USB cable

Symptom: Board uploads successfully but doesn’t run the sketch.

  • The sketch may have a crash. Add Serial.println("setup start") at the very beginning of setup() and check the Serial Monitor.

Electric Paint issues

Symptom: Painted trace has too high resistance.

  • Add more layers — each additional coat reduces resistance
  • Ensure complete coverage with no thin spots
  • Use slightly wider traces on long runs

Symptom: Paint cracks after the piece is assembled.

  • The piece is flexing. Mount on a rigid backing.
  • Paint was applied too thickly in one layer. Thin layers are more flexible.

Helpful diagnostic sketch

Upload this to see all electrode data in the Serial Monitor:

#include <MPR121.h>
#include <Wire.h>

void setup() {
  Serial.begin(57600);
  if (!MPR121.begin(0x5C)) { Serial.println("MPR121 failed"); while(1); }
  MPR121.setInterruptPin(4);
}

void loop() {
  MPR121.updateAll();
  for (int i = 0; i < 12; i++) {
    Serial.print(MPR121.getFilteredData(i));
    Serial.print("\t");
  }
  Serial.println();
  delay(50);
}

Open Serial Monitor at 57600 baud. You’ll see 12 numbers — the filtered capacitance reading for each electrode. Watch how the number for an electrode changes when you hover your hand near it vs touch it. This lets you see exactly what the sensor is doing.


Key takeaways

  • Isolate the problem: power → touch sensing → audio → electrodes
  • False triggers are usually caused by long cables, cable proximity, or high sensitivity settings — increase thresholds
  • Non-responsive electrodes are usually broken paint traces or bad crocodile clip connections
  • The filtered-data diagnostic sketch shows raw sensor values and is invaluable for debugging
  • Re-flashing the default firmware (Touch_MP3 example) fixes most firmware-related issues