Electronic Load 100 - Page 1
Forum section: electronics / projects

author: Bootalito
author_rank: Unknown
timestamp: April 04, 2018, 02:42:29 am
content: 7/19/2018 UPDATE:Here is my final schematic and board layout for this project. Again this project is just a test board to allow me to evaluate the design and develop software. It by no means is a final product.1/1/2019 UPDATE:I've tested my design below (PCB v0.1) and its pretty successful for a first revision board. Some stats:1. 0.02A/us Slew Rate achieved. (estimated 0.5A/us slew rate for next revision)2. Voltage precision (Noise Free), auto ranging w/ 2 ranges, 32SPS with 8SPS lower noise option :0.050-12.000V (0.39mV ADC LSB)12.00 - 100.00V (3.1mV ADC LSB)Accuracy of course depends on your calibration equipment. I was able to calibrate mine against an AliXpress LM399H Reference. Voltage is accurate to well within 2LSB (2mV @0-12V, 20mW @ 0-100V)3. Current measurement (noise free), auto ranging w/ 2 ranges, 32SPS with 8SPS lower noise option :0.0050 - 1.5000A (0.000048A ADC LSB)1.500 - 10.000A (0.00039A ADC LSB)I calibrated against a $30, 0.25% chassis mounted shunt, and its accurate within the error of my best multimeter (500,000 count meter).4. TemperatureFan speed varied between 30-100% between 40C and 60C50W @ 48C @ 64% fan speed100W @ 56C @ 83% fan speed150W @ 66C @ 100% fan speed200W @ 77C @ 100% fan speed(thermistor calibrated against a thermocouple, so really only 1C accuracy6. Changes to next Revision:a. Deleting buck-boost converter (too noisy)b. Increasing voltage to 150V max (Change TVS diode and add a 3rd voltage range when > 100V)c. LM77805 negative voltage reference used to ensure op amp could cut off all current. Was implemented wrong in v0.1PCB, but is not needed as the MCP4735 DAC is able to choke off all current down to about 100uA.d. Unused 2 channels on expensive 4chan op amp (AD8630) changed to 2 channels (AD8630)e. Expensive precision op amp (AD8630) unnecessarily used for current control. Changed to high current (5mA vs 250mA) op amp (AD8534). Should increase slew rate from 0.02A/us to ~0.5A/usf. Lower noise to DAC and ADC power by using ferrite beads, TL431 (technically TL432) and optimizing AGNDg. Error in 12V TVS diode placementh. Misc: Cheaper smd nfet to turn fan on/off, buzzer added, removal of unnecessary bypass caps, 62K resistor added to non-inverting terminal of current op amp for input bias current balancing, deletion of potentiometer for DAC output, resistors added to data lines forI'm working on optimizing the software and adding in the interface, as I only have a serial interface for testing at the moment. This design should be able to scale up easily by adding a 2nd heat sink for about 400W and 32A by changing out the current shunt(1mR vs 10mR).-------------------------------------------I wasn't able to find any electronic load schematic online that was similar enough to how commercial loads are constructed so I spent the past 4 months designing my own. Any open source load schematic / project on the web that I've found had some combination of flaws or lack of features when compared to commercially available designs: 1. None or Bad Linear mosfet load sharing, 2. Not very high current or voltage, 3. minimal interface, 4. Poor PCB design, 5. Low quality component selection where it counts (low tempco resisters etc). This load is meant to be a first step to evaluate the components and performance, get the programming and interface fully flushed out, then design a larger one based on a linear design for less noise and higher accuracy(16 or 18bit dac and a 24bit adc). The intent here was to take a first step and learn about all of the aspects required to design such a device, then as a second step try to built one that rivals a top tier commercial load. At least in performance.My requirements:10A, 100V, 100WWiFi enabled with fully featured web front endFully featured Telnet/Serial controlSD card Logging with RTC time stampReuse some components I had lying around such as the Dc-DC converter boards, ADC and DAC dev boards, and AD8630 op amps even if they aren't the perfect fit.Functional choices:Custom designed ESP32 dev module. Why would I do this?! I didn't want a PCB antenna inside the case, and I couldn't find any module with a USB-B connectorESP32-WROOM-32U choosen (no PCB antenna, U.FL connector only for external antennae)Full size USB-B jackI will be using FreeRTOS to utilize both CPU cores maximally. I've already written about half of the functional code during testing and design4x4 keypad with an arduino pro mini "backpack" to offload this task. Arduino will interrupt ESP32 when a new key is pressed ( to set a flag), buffer any new new keys in a FIFO stack and communicate the buffer over I2C. Probably won't need the FIFO stack as the ESP32 is blazing fast and should be able to grab the new key before a human can press another one. Either way this low priority task is off loadedSocket 1156 CPU cooler sandwiching (4) IRFP250NPBF TO-247s. 25W and 3Amps per fet at a calculated 28C temp rise. Second design will be a more typical 8-10 fets using (2) long rectangular heat sinks which I've already purchased. But for now...this is good enough, as CPU coolers are designed with heat pipes specifically to wick away around 100W of heat. I may only get about 75W out of the heat sink I've choosen though, but its a good first start.Each fet individually controlled by op amp.16-bit ADC from AD8630 chopper amps configured as a diff amp for voltage, and intverting amp on current. ADC PGA gain will change dynamically for increased resolution at the low end. Conversion speed will also dynamically adjust based on the task: I.E. Pulse test change to 860SPS at 12bit to capture more data, or drain a battery, switch to 10SPS at 16-bit for more accuracy.Low tempco 4 terminal shunt12-bit DAC...because I had it in my parts bin.3.5" Nextion Touch Screen as I wanted to evaluate the technology. and because I wanted to offload visualization to another controller.Front mounted sense terminals for 4-wire measurement.No power button. Software only: Turn off Nextion display, go to low power mode on ESP32.Comments you may make and my initial answers to them.1. Using Switching converters is noisy! Yup. Will be using a linear power supply and 4 layer design in the final version4. Why do you have a -0.23V generator? Because I wanted to evaluate it as a ground reference for the DAC and FET control op amps. Although I think it will be too noisy. But it will allow me to completely turn off the fets as the DAC will be able to control the op amps below 0V.5. Why didn't you use a cheaper op amp or one with a higher voltage? Because I had them even if they are over speced for the job. All of the fets I've tested switch out of the linear region at around 4.3V and fully saturate by about 4.6, so there really wasn't a reason to use a cheaper inferior op amp with a higher voltage. Besides having practically no offset voltage or input bias current will only help.6. I used a crappy voltage reference. Yup...version 2 will likely have a the MAX6225 and a DAC8830, so that should do the business.Special Thanks go to:Andreas Spiess for his ESP32 videosScullcom Hobby Electronics long DC Load SeriesI'm getting ready to pull the trigger to order the PCB so I welcome any feedback on the schematic or PCB layout. Especially if I've gotten something seriously wrong, as this level of design is on the edge of my knowledge as a hobbyist! I fully expect to have to make at least 3 or 4 revs of this board before I get it correct, but if anyone can save me a rev that would be super!EasyEDA.com project home pagehereBut feel free to just look at the screen shots below tooSchematic:Front Panel Design:Top PCBBottom PCB

author: xani
author_rank: Frequent Contributor
timestamp: April 04, 2018, 05:27:31 am
content: Might want to look intoRigol getting tested by one of forum membersIt seems to me Rigol engineers haven't seen that video seriesOut of curiosity, why WiFI and not more common Ethernet ? Just cos ESP32 has it or you have some interesting use case for it?

author: Jeroen3
author_rank: Super Contributor
timestamp: April 04, 2018, 08:18:31 am
content: The features look promising and ambitious! Hope you get the sharing to work properly.Is 5V enough to drive the gate? Granted, you are using the fets in linear mode, but keeping the capabilities just at the start of Vgs/Id line seems optimistic.When I made a prototype load, I had to use 9V to ensure I had sufficient gate drive, and -9V to eliminate opamp offset and make sure it could turn off.I did many other things wrong though...

author: mk_
author_rank: Regular Contributor
timestamp: April 04, 2018, 08:37:40 am
content: Quote from: Bootalito on April 04, 2018, 02:42:29 amHow do you handle the situation that you setup your load with... 5A and then connect your source (akkupack?) to the load?When setup is done at no loadcurrent the FETS are full open and then connecting the source results in really high currents as long as either SW or HW doesn`t avoid this scenario...

author: C
author_rank: Super Contributor
timestamp: April 04, 2018, 08:58:31 am
content: You should consider adding a CAN Bus transceiver chip to your design. The ESP32 has the capability.This would let you easily connect other micro controllers to what you have and just need a software change to ESP32.For example you could offload most of the processing of more rotary encoders to a cheap STM32 chip.The ESP32 would only need to process a can packet on change.You could off load your Nextion display or keypad via this interface.For the low cost of transceiver chip could be dumb mistake not to.Next think of the testing process. If you put two in series you could have one creating the changes to test the other.You could think of a electronic load as a shunt regulator. With one voltage input a shunt regulator can become a three terminal regulator.

author: Bootalito
author_rank: Unknown
timestamp: April 04, 2018, 10:17:18 am
content: Quote from: xani on April 04, 2018, 05:27:31 amThe wifi was a novel thing I havn't seen in many products yet, and I'm most comfortable using the esp32 for programming as I have all of the programming worked out for this particular chip from previous projects. I. E. Static vs DHCP, storage of info in a json on spiffs, and the full suite of serial and telnet commands to handle the wifi, as well as a decent webpage already developed using Java script for editing the network info. So it was really more of a convenience at this point.

author: Bootalito
author_rank: Unknown
timestamp: April 04, 2018, 10:20:34 am
content: Quote from: Jeroen3 on April 04, 2018, 08:18:31 amThanks. Yeah I spot checked the fets from my purchase and they fully saturate around 4.3v. Between 4.3 and 10v I think they only went from like 0.15ohm down to 0.1ohm. Or something like that. Just doing it from memory.

author: Bootalito
author_rank: Unknown
timestamp: April 04, 2018, 10:33:29 am
content: Quote from: mk_ on April 04, 2018, 08:37:40 amI've thought about this and should be a simple SW implementation: only switch the load on when there is voltage detected at the terminals.When there is no voltage detected( say <0.01V) turn the fets off and switch the adc to a high sampling rate and high gain. Then while the voltage is low even if the user presses the LOAD ON/OFF button, don't actually do anything. Maybe pop a message saying "no voltage detected" for like 2 seconds to give brief feedback to user that they have done something wrong/unexpected.I'm even considering keeping the ADC and high speed mode and just doing a software low- pass filter. This way I always know very quickly if the user has disconnected the load by looking at the pre filtered voltage and can get high accuracy by filtering it, effectively just doing software oversampling instead of the Adc doing it

author: mk_
author_rank: Regular Contributor
timestamp: April 04, 2018, 11:39:35 am
content: Quote from: Bootalito on April 04, 2018, 10:33:29 amsounds good to me as long as you give this task a really high priority...Anyway - you should also add a TVS between Vin+ and Vin- rated lower then your FETs but higher then the 100V. If you drop the load fast and there are some long wires from source to load this helps to handle the voltgae spike on the load. The snubber is fine but won`t be always enough.

author: Bootalito
author_rank: Unknown
timestamp: April 04, 2018, 01:27:12 pm
content: Quote from: mk_ on April 04, 2018, 11:39:35 amThat's a really good idea thanks for the suggestion.I'm also worried about the user reversing polarity on the load or sense. I think my high input impedance and 5 volt bi-directional tvsd should handle it, but I'm not 100% sure. What I think will happen is the fets diodes will start conducting creating an almost effective short there by blowing the fuse. But even after the fuse has blown the TV s diode will still be conducting. I'm not 100% sure how that's going to affect my circuit, and plus what if the device under test can't handle an almost Short Circuit, and then you got to replace the fuse anyway.How do commercial units handle reversing the load terminals?

author: schmitt trigger
author_rank: Super Contributor
timestamp: April 04, 2018, 01:48:53 pm
content: The way I did it on a E-load that I built many moons ago is to use an output relay. Not a Mosfet, but an actual metal-contact relay.By default the relay is always open. Once that you are ready and the test setup is complete, I have a pushbutton connected to a microcontroller port. The microcontroller then energized the relay (via a transistor).This allows me to do something: I monitor the output after the relay contact, and if I determine that the voltage is reversed and/or the voltage has been exceeded, the microcontroller ignores the pushbutton request to energize the relay, sounds a buzzer, and sounds an alarm.If any overcurrent/overtemperature/overvoltage conditions are detected during actual operation, the microcontroller will also open the relay.That is the way I did it, and so far has saved me from a couple of mistakes. I bet some other forum member will have other ideas, too.

author: Jeroen3
author_rank: Super Contributor
timestamp: April 04, 2018, 02:15:37 pm
content: I used a relay on my DC load prototype as well. With hardware over-temperature limit with an NTC. I've also added a 10A slow fuse, since I wanted to use it to discharge batteries, and batteries do not forgive. I used a cheap fuse + holder, and the contacts got hot, 60C-ish.Also you shouldn't float the unused opamps in the package like this.Tie them down.I don't know what the different lengths of mosfet wiring will do. Maybe you do can do something with the layers here. Since the via stitching isn't of much use when the mosfets are facing tab side up.

author: Mechatrommer
author_rank: Super Contributor
timestamp: April 04, 2018, 02:33:34 pm
content: Quote from: schmitt trigger on April 04, 2018, 01:48:53 pmmyconstant current load designuses relays too but doesnt require power relay contact to check for reverse polarity. checking is made from another path smaller relay SR1, when there is legitimate +ve voltage within spec, power relay SR2 and 3 will be energized just few ms before load testing is made. any violation, relays will not respond. so mosfet/bjt elements will experience 0s reverse polarity or overvoltage. another features is mosfet damage check (beep), voltage cut off level (usefull for battery discharge), fan speed based on temperature, temperature limit load cut off, pulsed PWM load test mode, but only few Hz rate since its using software timer and need to do descent resolution of duty cycle. the pulse is made with Q15, the current transient respond is fast (~2us rise time, ~20us settling time), more than enough to make me smile when compared torigol d3000 report in the above link, the design can be made 40 - 200 KHz 50% duty PWM pulse if needed, but i dont need that for now. the thing its lacking are nice tft screen, keypads and wifi for new kids on the block playing with smartphone connectivity, its just bare metal 2 x 7 segments x 3 digits voltmeters, potentiometers and toggle switches.

author: mdijkens
author_rank: Regular Contributor
timestamp: April 04, 2018, 03:05:05 pm
content: Wow, really interesting and very much to learn from your design skills!Thanks for posting thisOne remark (as a total beginner):Inmy thread about my first PCB design around the ESP8266I got a comment on the antenna not on the PCB and especially not over a ground planeDon't know if you need/want to take that into account?Please keep posting your progress, very interesting!

author: Bootalito
author_rank: Unknown
timestamp: April 04, 2018, 06:02:00 pm
content: Quote from: mdijkens on April 04, 2018, 03:05:05 pmThanks. Unfortunately I too also consider myself a beginner, so there may be many hidden design flaws, so be careful thinking that this is a professionally designed project.I'm using the esp32-wrover with an external coaxial antenna connector, then I'll be using to connect a standard Wi-Fi external antenna on the back. This will be a very fine coax cable coming out of the top right of the module free airing up to the back panel of the enclosure. It'll be traversing over top of noisy digital domain thing so I'm not too worried about it. But that does give me a thought, I should probably cut the PCB antenna Trace as to not induce high frequency current Loops in the ground plane underneath it. Thanks again

author: Bootalito
author_rank: Unknown
timestamp: April 04, 2018, 06:10:20 pm
content: Quote from: Jeroen3 on April 04, 2018, 02:15:37 pmThanks that's very helpful with tying down the unused op amps . I think I'll do that.I thought of using a relay , But ultimately want to make a 20 or 30 amp version and at those levels the relays become real expensive. I'll probably use a reverse end Channel mosfet on the negative load terminal. But any fat that I found was going to be dissipating five or more watts which means it would have needed a heatsink which means I would need more space on my PCB. Also I want to drive it with a higher voltage to be able to lower the on Resistance. I was thinking of getting rid of one of the fence under the heat sink and replacing it with this one. But I haven't tested this configuration so I didn't put it in this design yet.

author: schmitt trigger
author_rank: Super Contributor
timestamp: April 05, 2018, 01:31:29 pm
content: There are many very robust, automotive grade relays which are rated for 30 amps, and because they are mass produced, are not that expensive.Only available with 12 volt coils, though.

author: Marco
author_rank: Super Contributor
timestamp: April 05, 2018, 01:40:28 pm
content: Starter solenoids are rated for a lot more than that, but not really designed to be on for a long time and take a lot of power to actuate.

author: ledtester
author_rank: Super Contributor
timestamp: April 30, 2018, 04:49:22 pm
content: I would take hand-soldering convenience into consideration. There's plenty of board area, so I'd use larger footprint components and space things out more.Also, I would look into separating the MOSFET control electronics from the MCU to make it easy for others to use their own microcontroller. Perhaps the board could be designed so that you could cut it along a perforation to separate the two.

author: Bootalito
author_rank: Unknown
timestamp: July 20, 2018, 05:54:57 pm
content: Initial post updated for my "final" design for rev 0.1

author: RikV
author_rank: Regular Contributor
timestamp: July 06, 2021, 09:06:53 pm
content: Has this project stopped or has it been continued elsewhere?