I am using a Spark Core to control a LEGO train (link here). Works great - however - the train took a few tumbles (have been running demos with it the last 2 weeks with lots of kids). Now, even when disconnecting everything and just plugging in the Core to USB, the Spark runs really hot, to the point that you burn your fingers if you try to press the RST button. I’m afraid something is broken - anyone have any pointers as to what might be wrong and how I can troubleshoot?
@PhilB, the onboard regulator may be damaged. Assuming your core actually runs, you may want to factory reset the Core and then measure the voltages at Vin, 3.3V and 3.3V* while powered via USB. Is it the cc3000 that is getting hot?
@peekay123: Here are the voltages compared against the GND pin of the core:
VIN = 4.42V
3V3 = 3.28V
3V3* = 3.27V
That seems to be within spec - the VIN is perhaps a little low. It is indeed the CC3300 that is superhot - but I have done a full reset of the Core and now the temperature is much more under control - going to reconfigure it via USB serial, then reflash and rewire my circuitry to see if the issue was perhaps a bitflip somewhere in the memory causing a loop of some sort … will post back soon
It seems to work again - still debugging why same circuit, same program suddenly refuses to let the motor turn backwards but that is likely not a topic for this forum. Unit still gets hot - hotter than I ever recall before yesterday (touch one of the pins next to the RST button and you can feel heat) but you can actually place a finger on the CC3300 now without burning it - which was not the case this morning - so that’s progress.
@PhilB, the question is whether it is the cc3000 getting hot or the STM32 on the opposite side of the board heating it up? I would look for excessive current draw on the I/O pins as a start. If possible, can you measure the current draw on the USB side?
Under some circumstances, the LDO on the core can oscillate - which may lead to overheating as you describe, and assorted flakiness.
The prime cause appears to be noisy Vin/USB supply, which may be your situation if you have motors involved, I have also seen it with cheap USB wall warts and other 5V supplies that have switchers inside that generate enough ripple to provoke the LDO into oscillation. This will not show up with a multimeter, you need an oscilloscope to see it.
Thanks @AndyW and @peekay123 - I have a (basic) oscilloscope so will take a look tomorrow, and I have a USB Volt/Amp meter as well so I can do both measurements as you suggested. After switching out my DRV8835 driver for a DRV8838, then switching back to my DRV8835 but now in EN/PH mode, I’ve gotten all functionality back, and the train performed well tonight when it ran for 3 hours straight at my expo booth. Didn’t notice any excessive heat issues. I think that somehow my DRV8835 has been damaged and does not work correctly anymore in IN/IN mode - I couldn’t get it to do a reverse, though all input signals seemed to be ok (when measured with my multimeter). Switching both the circuit and the mode made it work again. This might have been where the heat build-up came from.
Oh - and my circuit has its own LDO (to go from 9V battery power to 5V power for my circuits including powering the Spark) and that thing was smoking hot when the issues happened, which might indicate that something was indeed pulling an excessive amount of current.
Actually no - I’m using a mini-RFID reader from seeedstudio. I have several RC522’s on order to try out (at less than $3.50 per reader I just couldn’t resist ) to see if this gives me an easier way to replicate tags (TK4100/EM4100 125Mhz tags are read-only, though I am also still playing with a tag copier to see if the reader picks up EM4305 or T5557 tags).