So, I’ve gotten back to this project having spent a lot of my time on work, the Yarraman to Wulkuraka bike ride and the charging controller #Solar-powered cloud computing — just to name 3 things vying for my attention.
In the test board, I had wired up some LEDs for debugging, dead-bugged 0805s, which were hooked between the output of the octal latch and 0V. I omitted the series resistor, as I presumed that, given the output was PWMed with a maximum duty cycle of ⅛, the LEDs shouldn’t burn out.
Turns out I had forgotten a property that all diodes exhibit, that is the desire to clamp the voltage across them. Today I was testing the board, and wondering why some channels were dim, others didn’t work at all, but one worked so much better. Did I accidentally put the wrong current limiting resistor in series with the drain? No, all checked out as about 12 ohms.
I put a program on the MCU that just turned a channel on when the button was pressed. No music, no fancy PWM stuff, just turn on a LED when the corresponding button was pressed. Measuring the gate voltage showed about 2V.
Even with the PWM output forced low, the output was still 2V. Moreover, I was using my new bench supply, and with nothing running, the circuit was drawing ~300mA! Why?
Turns out, the LEDs I had dead-bugged in, were trying, and succeeding, in clamping the output voltage. 2V was just barely enough to trigger the output MOSFETs, but clearly this was borderline as some worked better than others. I was likely in the linear region.
Snip out the common connection for the LEDs to 0V, and the problems disappeared. I’ve dead-bugged a 1kOhm resistor in series with the lot, and that’s got my debug LEDs back and working again. The MOSFET outputs now work properly.
The bigger chunkier MOSFETs I bought by mistake could have worked just fine: maybe I was just driving them wrong!
Two prospects have crossed my mind:
- Getting the MOSFET board made professionally
- Getting a board that combines all components onto one PCB made professionally
The version that is shown was really designed for the home PCB maker to be able to produce. The traces are wide and the board is fundamentally single-sided: when etching, you just etch one side of the board and leave the other side unetched. When drilling the holes, you just countersink the holes a bit on all pins not connected to 0V.
A smaller board with everything in one would be worth making now that I’ve proven the concept. Not sure there’s a good reason to go to SMT at this stage: I still want to make assembly simple. The thinking is the all-in-one would have some headers so you can conceivably break things out for other projects and just omit parts as required.
This could theoretically be entered into the #The 2018 Hackaday Prize as part of the musical instrument contest, as that’s what it is: it’s a musical instrument for the severely physically handicapped. There is a video of a slightly earlier prototype in this post .
Code wise, I’ve done little. The basic functionality is there, it makes noises, it flashes LEDs, that’s about what it needs to do for now. I did have to increase the start-up delay so that the buttons were detected properly, as without this, if I used my bench-top supply, it would fail to see any inputs. People aren’t going to notice 100ms boot-up delay vs 1ms, but it makes a difference if the power supply is a little slow.