I've spent the last few days trying to track down the faults. Here's what I've done on each board of a batch of six:
- Reflowed the solder and cleaned the board again - made no difference.
- Unsoldered the H-bridge chip, cleaned underneath, resoldered in place - made no difference.
- Reflashed the bootloader, recompiled and uploaded code, reclalibrated OSCCAL - made no difference.
- Wondered if an update to the Arduino IDE was somehow causing a bug, so got the one working unit and did the bootloader, upload, recalibration to that too - it still worked perfectly afterwards, so it's not that.
- Used the AVRdude program to check the settings of the ATtiny85 'fuses' (internal settings, some of which the Arduino IDE doesn't change). All the same as the one working unit.
- Removed the H-bridge chip, fitted brand new one, cleaned, belled out every track on the board to test for shorts - made no difference.
- Fitted extra decoupling capacitors - made no difference.
- Measured the total decoupling capacitance of each board - all similar and all the same as the working board, to within normal capacitor tolerances.
- Tied ATtiny RST line high (on the board it's pulled up by a resistor) - made no difference.
The fault is that the pulser works correctly for low-power pulsing, but as the 'aux' channel is increased for more power, the motor suddenly switches to just run in one direction. If the 'aux' channel is reduced, the motor continues to run. Resetting the ATtiny, by momentarily shorting RST to GND corrects the problem until the next time 'aux' is increased beyond some (low) threshold. The one working unit, an older one, which is apparently identical in all respects, works fine up to 100% AUX input with the same power supply, pulser motor, receiver and transmitter.
It appears that load on the motor and H-bridge somehow causes the ATtiny to hang, but I've no idea why and can't think of anything else to try.
If it were a fresh batch of chips, I'd think I'd bought some fake ones (either the ATtiny85, not that I've come across fakes of those) or the H-bridge. But I'm 99% sure that the chips were left over from building the previous (all working) batches of boards a few years ago - and they've lived in their anti-static packaging in room temperature storage ever since.
So I'm going to have to give up on these boards, unless someone can think of something else to try. Sorry Spike. I've spent most of my spare time for the last week building and fault-finding these damn things, and I'm now completely out of ideas.
