Really great looking build! I love the mods and I’m glad you stuck with it and got it all working. Nothing like that feeling of accomplishment once you have the thing up and running.
Would love any feedback you might have (here or on DM) about how the course material helped or hindered making mods like you did.
Not getting to testing was more an issue of time and other obligations than anything else. But testing will happen today!
“Mad my little baby programmer eyes glaze over”… As a not-so-baby programmer, that made me laugh! What is it about this Adafruit library that’s giving you trouble? Which library is it?
OK, now I’m totally jealous, because mine doesn’t work! I need to do some more investigation tomorrow, but the current limiting bit… uh… doesn’t limit the current! Not very useful. I have a suspicion that it’s down to trying to be clever clever (rarely a good idea). I used a really small sense resistor to avoid power dissipation there, but that means that the op amp driving the FET ends up comparing really tiny signals (a few mV, and it’s running from a single 3.3V supply). Now I have the thing assembled in front of me, that seems just a little bit silly! There might be something else going on as well, but that seems like the most likely cause of trouble. I’ll work out what’s going on and write it up in my own build log. In any case, I think I’ll have the “opportunity” to do a rev 2 of this one.
So, extra kudos to you for having it work first time!
@ChrisGammell Thanks! I worked hard on all of the simulation and thought really deeply about the voltage levels for the Op-Amps and how I wanted to handle the power input.
I’ll have to have a think about feedback for the course more though. For sure what I remember was the math for the power input and how the feedback for the load needs to be relative to that. There wasn’t much that I watched of the layout or testing. Although I should have watched more of Layout since I could certainly learn more there. Last thing off of the top of my head is that the version of KiCAD used was quite old and while most of the core UI/features haven’t changed, it was a bit jarring.
@ian Ooooo How did the testing go? If it’s testing time! I took so long getting around to finishing writing this that I see that yours is having issues! A few mV seems a little dangerous. For reference I designed mine to go up to 100mV at 2A load when being powered from 12V. But shouldn’t you be able to swap out your resistor values though to get the signal levels a bit higher without a re-spin of the board? See my picture below for how I did it / with values to have it make a bit more sense. The issue that I had to debug was wrong resistor values for R302 and R303. I used 51R opposed to 51k (Who needs to read, lol). This meant that I was saturating the Op-Amp’s input extremely quickly. Maybe you have something similar going on!
As for the library, which is here, I was looking for the core functions in terms of what bits are sent for what commands. I wanted to write my own library for what “write a pixel” or “start display” so I could learn more about the hardware requirements before I design the hardware for the overall display driver that I want to make. I probably just need to find the raw datasheet for the display and see if I can make heads of tails of that, but I haven’t gotten that far just yet.
My idea for the hardware was some form of micro or FPGA (if I’m feeling particularly spicy) with some external flash or EEPROM to store the animation images. But since I wanted to know how the data is sent, I wanted to be able to structure the data for the images nicely for myself and write the whole stack from converting the image, storing it on the boards, then display it myself. But yeah, since I can’t quite figure out how the library works, I’m a little stuck.
One of the changes I made to the design was the 12V changeover for the current range that the device will draw. It’s quite the simple modification (parallel resistor values with a FET control), but it was nice to be able to come to that idea and have it work out really well. I know I went lower on the current shunt than Chris did to reduce the power on the little guy, but I’m not sure why I settled on 100mV = 2A. Maybe the math was just easy at that point.
I don’t even know what it is supposed to be doing, but seems like Q301 is just turned on fully and feeds a current into the devider setting the current source level
Normally driving a FET current source like that is difficult to stabilize, needing a cap from the output of the opamp to the invirting input to introduce a zero in the transfer function
You’re absolutely right about trying replacing resistors. I’ll definitely try something like that before doing a respin. I was just being slightly melodramatic “My board doesn’t work! O woe is me! Electronics is too hard!”, etc., etc.
That graphics library has quite a bit going on, and it’s not written in a way that’s particularly accessible. It looks good, and it seems to have been written for the convenience of users rather than being simple to understand. If I was you, I would just get the datasheet for the display and do some minimalist noodling with it connected to an Arduino or something, driving it without any library or anything to see how to make things happen.
Also, the LM358 device is known to have cross over distortion due to the class B output stage and very slow slew rate, so for linear operation it is a poor choice. It even shares the current source for the long tailed pair between opamps, so one opamp operation can propagate noise into another opamp
Interesting… I’ll have to spend some time thinking about what that all really means, haha. Thanks though!
As for Q301, you are right, it’s just switching on a voltage divider to change the current source level. The idea was that if 12V was present, then a fan is available to help cool the FET and therefore can have a higher wattage on the FET and still stay within a human safe temperature.
On a side note, I just blew up the FET and possibly the LM358 last night while trying to run some temperature tests on it. I was running it at 20W (10V, 2A load) and saw that the heatsink was at a stable 58C (I’m assuming it was a little higher than that based on how I was making a connection from HS to thermocouple). So I thought I would see what 30W (15V, 2A) would look like when something shorted. I had gotten to around 14.7/14.8V when it failed. My power supply also ranges at around that voltage and I’m wondering if the ranging induced a spike which killed the FET. There was no black smoke or any visible signs of failure on the board, which makes it even more suspicious to me. Measuring the FET, I’m seeing 0R between it’s pins, so I’m assuming it was that, but I’m not quite sure what would have been the cause. Interestingly, I did just put some silicon grease (which was clear and runny and a surprise to me) onto the FET/heatsink just before it failed.
I’ll have to replace it tonight if I get the chance and see if I can track down any other failures on the board. I’m hopeful it’s just the FET as pulling off an SOIC-8 with just a single iron will be painful for sure!
Had some time to replace the FET and run some more testing, and it’s back alive! It was just the FET that went boom, although I have to say that it didn’t really do much when it went the first time.
I’m thinking that it was the power supply re-ranging that caused the failure now. I have since bodged on one of my 15V TVSs to help take care of any of those spikes in the future should they occur. My plan was to limit it to 15V anyways since I can’t see myself needing over 15V unless I’m doing something very special, which… I have more boards and could always change up how I do my voltage limiting (or even just pull off the voltage limiting in general.
I ran some more testing at 15V, 2A and from what I could tell, the tab was getting up to around 95C. Adding 25 degrees for junction temp and I’m just at the border of what I’m comfortable with. But, that’s at max voltage and current, which I don’t expect to need. The fan is a lovely little addition and I think it’s great.
So I’ll have to do more testing of the various bits still to see, but honestly, it seems really stable! So time to get cracking on testing my power board testing and starting on my next project! Also, need to work on a case for it. But that will come a little later. Still very stoked for sure!
Did some more testing, and I’m pretty happy with it. Mostly I think I’m having issues with my AD2 and it’s calibration more than anything else really. I don’t have an amazing DMM (Extech EX330) so I can’t take great measurements of it’s outputs to calibrate the scope probes. As can be seen in the first image, there is a -13.67 mV offset. At the minimum load current (around 2-3 mA), it’s at -12.99 mV, then at 1A it’s at 41.1mV. There is some offset/scaling issue present in the AD2 for sure.
I can finally start trying to debug my USB power board and how it behaves. These screenshots are taken using it as the load source. The ~200 mV output voltage drop at 1A isn’t great, but it’s also not so bad. Maybe I’ll be able to figure out where that drop is coming from and swap it out. As it is now, the inductor is getting quite hot! I can’t touch it for more than a couple of seconds without it getting uncomfortable.
But! The output is clean and stable and that’s mostly what I care about! If I was to change something, I think I would put a negative rail in the allow the output to go to 0 mA and put some form of display on the board so I don’t -need- another device to measure the current.
It’s been awhile since I’ve posted anything on my build log. I’ve been working on a project that I’m not quite ready to talk about yet, but I do have a question for it. I’m looking for a high power LED that is the same or similar to the one that is used by the Adafruit 3W RGB LED. I wanted to mount the LED to the board directly and I don’t have access to a hot air station or a reflow oven. I will only be building between 10-20 of these boards too, but I’m also trying to design it for larger volumes as an exercise for myself.
I’m wondering if at this volume it’s just makes more sense to use the Adafruit part and solder some wires down from it to the base PCB, or if there’s another good option that’s similar in price.
I see this part from Osram Duris E RGBW that’s in a 5050 package, but looking at it’s footprint, I’m not sure that its solder-able without hot air/reflow. It’s also less bright, but I could use two of them for the price.
In terms of specs, I’m mostly using the LED as a red and a false white at the moment, at around 50% brightness on the red and 30% on all three (haven’t tweaked that code yet to account for the different lumens). But I would like to keep the option to go a little brighter if possible.
With that said, what are your go to high power LEDs? Both discrete red/white or RGB/RGBW options that are solder-able with an iron?
Side note, should there be a general “Crowd sourced parts search” mega topic that people can use?
Probably reflow is your best bet. I have hand soldered similar and it is a bit tricky but with practice you can do it. This could well be a candidate for hot-plate (or frying pan) reflow.
But, more importantly is the thermal profile. I had to dig for the datasheet. (why do lighting LED makers always seem to make it hard to find?) After crunching a few numbers, it looks like at 100 mA, the chip will see a max temp rise of 45C above ambient. Not terrible but the DS doesn’t give you any hints about best (or any) thermal practices. The OSRAM site may have more info, worth looking for. I’d worry about good ventilation and a generous copper area. Even an open area that has no ventilation upward (as in the PCB facing downward) will cause runaway heat buildup. My kitchen LEDs fail once a year or so because of that kind of design (no upward venting).
Yeah that’s what I thought for that Duris part. Makes me want to strike that off.
I’m not super concerned with the thermals, it will only be on for short bursts of time. No more than 15 minutes max, but likely much shorter than that. But I certainly was thinking about how I could make sure to keep the LED(s) cool and was planning on dedicating as much board space as I can to heatsinking them. There is room in the enclosure for heat to radiate away too.
Since my volumes are so low, I’ve been avoiding anything that might need reflow. Although maybe I could look into getting a hotplate for it…
At this point, I would recommending SDG electronics’ (is he on this forum and I haven’t noticed?) video on the thermal comparison of FR4 + thermal design features vs aluminium PCBs - https://youtu.be/K_kke_tENYo
He looks at a paper by Lumileds and does his own tests. Alu does not always have a significant thermal advantage, although as @phil_from_seattle says, housing and ventilation will be significant factors to consider outside the PCB design.
Thermal design is super important and it doesn’t end at the PCB. Unfortunately, like a lot of hobbyists, complex thermal analysis is not my forte. You mention enclosure - that forms the ambient environment. Without ventilation, even 15 minutes might be too long. It depends on how big and what kind material it is made out of.
By the way, reflow is not hard. The hot plate approach I mentioned before works ok. I use an unmodified toaster oven and eyeball it. Works ok, I haven’t burned any boards yet. Use the temperature probe that comes with a lot of DMMs but also watch for the solder paste to melt. Get a stencil made, it is usually pretty cheap and gives you a lot of control over the paste.
So to back up a bit, it’s going to go into this enclosure here (with the clear lid) (unless I can find a better one) and will be deployed outside with a breather vent on the “bottom”. It will be mounted on a pole. The current prototype has the Adafruit LED mentioned above mounted to a 1" square heatsink, although I was looking to drop the heatsink in favor of large copper pours due to wanting to make it a bit easier to manufacture the total product. I haven’t noticed any issues with it as is though.
I’ve done a bit of LED design in the past at a job, so while not an expert on the thermal consideration for LEDs, I at least know I need to be aware of it. I’d make sure I’d use both top and bottom layers with vias and I’m also considering 2oz copper. I’m also aware that might not be enough, but I need to find an LED first.
As for reflow, I started looking at it some more and I might get a hot plate and hot air station. The latter is one that Julia Truchsess said she uses. This combo would give me some more options for rework than a toaster oven. Although I might also need to get an oven later too.
My main issue is LED choice though. I feel like whatever the final product looks like is pretty heavily dependent on the LED(s) that I use. I’m not opposed to wires and heatsinks I guess, but it’s the mounting that I’m not sure how I would do it. I’m not the best mechanical designer and since the PCB is mounted 90 degrees to the orientation of the light, I lose a few normal options. Saying that, I guess I should look for a different enclosure to see if I can mitigate this issue.
How much power is going to be dissipated inside this box? Is it going to operate in sunlight? It’s going to get hot in there quickly unless you find a way to get the heat out, and a vent on the bottom is obviously not optimal. A heatsink on the PCB components does nothing for the ambient temp inside the enclosure.
It will be mostly just be the LED. There are batteries, the microcontroller and driver FETs for the LED. I’m looking for around 20-40 lm out of the red LED and around the same on white. Using the current LED, I’d be looking at ~1.15W with all three dies at 33%, which would be the highest power dissipation for this LED. Assuming 20% efficiency, that’s around 0.9W, but I’d be happy to just cut that out for the added power of the micro + FETs switching losses + battery discharge heating.
The idea behind the heatsink was the keep the LED cool for the burst of time that it will be on, then allowing the heat to slowly dissipate over the hours it will be off. I could look at tracking ambient temp inside the case and having a safety cutoff if it ever gets too hot.
It will be used primarily around dawn/dusk. So not much worry about heating from the sun. And the max on time should be no more than 15 mins. Although I can certainly do some testing of longer term heating to see what the temps becomes.
Humm, I’ll have to do some more thinking on all of this for sure. Maybe finding a case that allows me to mount the LED to a heatsink that’s got more of a direct path to outside.
1W for 15 minutes should be OK. I’d have a look at how hot it will get in sunlight even when not operating, just to make sure the batteries can stand it.