Troubleshooting - SukkoPera/SMSPlusPlus GitHub Wiki

If you are experiencing unexpected behaviour with SMS++, here are some instructions to help troubleshooting the issue:

  • If you power your Arduino stright from the SMS, remove the +5V wire, but leave GND connected. If you want to avoid this step, you can put a Schottky diode on the +5V line, so that the SMS will power the Arduino but not the other way round. Note that a Schottky diode (or any diode dropping < 0.5V) is required, if you use a regular diode (which drops 0.6-0.7V) you can damage your Arduino!

  • Plug a known-working pad into the SMS.

  • Turn on the SMS and immediately after that plug the Nano into your PC. The screen might flicker and/or the SMS will reset, but don't worry, that's entirely expected. Once you get the SMS working normally and the Nano powered on through USB you're all set.

  • Open the Arduino IDE and load the SMS++ sketch. Look around line 96 (if you are using an Uno) or 195 (Nano) and find the lines that read:

#define MODE_LED_R_PIN 0
#define MODE_LED_G_PIN 1

Comment them out (i.e.: place two slashes - // - in front of them). Recompile and reupload (The Nano will reset, screen flicker and or SMS reset, don't worry again). This will enable debug mode. If you have wired leds, they will act weirdly when debug mode is activated, just ignore them.

  • Open the Arduino built-in serial terminal, set speed to 115200 bps and you should be able to read some text, saying at least the detected pad type. If that does not correspond to the actual pad you are using, well, that's pretty weird.

  • If type corresponds, Go to line 349 and look for:

//~ #define DEBUG_PAD

UNcomment it (i.e., remove the leading //~, tilde included), recompile and reupload. Now press some buttons on your pad and you should see them reported in the serial monitor: please try them one at a time first, then in combos, and check if they are reported correctly. If so, check that UP+DOWN and LEFT+RIGHT are NEVER reported at the same time.

If anything weird occurs, check your wiring and that the traces you cut are actually interrupted. When you have fixed the issue, follow the instructions in the reverse order and rollback any changes you made to the sketch, finally recompile and reupload it.

I hope these instructions are clear, but I think it's actually easier done than said ;).