Green: 1st Stage
Red: 2nd Stage
Celeste: 3rd Stage
I had another exciting and problematic feature that has been a challenge to create. Market feedback suggested that some constant current capability would be appreciated. At first I thought I may be able to shoehorn this in with a software fix. It turned out to be just too slow to work. When you require constant current you really don't want to overshoot too far or you can fry your load before the circuit has a chance to moderate the current. On the latest iteration of the I added some pretty clever hardware constant current stuff by taking advantage of some features on the MOSFET driver that were for another purpose but could support a constant current function with a little external help. I thought about it for a while and drew up a circuit and had boards built but I never bothered to do ALL the math required to fully understand the circuit I designed. It turned out when it was finished that I didn't understand all the variables that controlled the timing of the circuit. I ended up with a perfectly adequate constant current source, but it oscillated at 20Hz instead of the 200Hz I expected. At first I thought I just dropped a decimal when I was doing the math because 20Hz and 200Hz look suspiciously similar. I redid the math and I had not screwed that up so I had to look more closely to see what was happening. I put it on the scope and then it became quite clear. Remember that 50ms number I mentioned about the settling speed of the 3 stage RC filter I created? Well, if you do the math, you will find that 20Hz is a synonym for 50ms. That was the problem. My filter was too slow to support the constant current feature I wanted to offer. I needed another 10x increase in performance. I knew this was going to be a big challenge and I also knew that my LMV324 op-amps (that were part of the circuit) were not going to be up to the task of moving so fast. I completely redesigned the constant current circuit with high performance op amps and much faster filter. I then went ahead and used LTSpice to model the circuit to confirm the design. This is a somewhat time consuming process, but these 4 layer boards and accompanying stainless steel stencils I am buying cost $200 and take about two weeks to get so its worth the effort to prove out the design before wasting all that time and money.
LTSpice is an incredibly useful tool for these sorts of electrical engineering problems. You can see that I am able to get reasonably fast PWM signal that is at a constant current over a roughly 100Hz time frame. The 100Hz speed is a compromise between the slow speed of the former version and fast speed that I desire. My secret sauce here is that I am using only 2 stages of the filter for this instead of 3 and I am adjusting the the first stages a bit. This is the compromise. I could other wise pretty easily get any speed I wanted but I'd have to have even more passive components on the board and its already packed with parts.
I suppose I"ll leave with a couple videos showing the circuit in action.