Open ilium007 opened 4 years ago
I also have a spare v2.4 board that I haven’t touched as yet.
It turns out my spare board was a DPS5020
But it’s output measured on the same meter is spot on. I’m not confident now putting OpenDPS on the DPS5020 and ending up with two paperweights.
You need to calibrate the device
When you turn it on the screen displays what the ADCs see after it's internal calibration parameters are applied
If you turn it on and the true output doesn't match what you set it to then the DAC calibration parameters are wrong
Is there a guide for this process?
If you don't have a communication interface you can manually set the parameters by pressing m1 + m2 at the same time to get to the calibration screen.. I think anyway
I’ve just had a look through the commits referenced above and it looks like I understand enough to calibrate. How far apart do the voltage references have to be? Would 3.3v and 24v be far enough apart?
Fair enough, they are almost disposable at the cost they are.
I think the main readme.md could do with a disclaimer, pulling the factory programmed calibration parameters is present in the part 3 of the blog but it's not obvious to people who aren't clicking through to every link
Would 3.3v and 24v be far enough apart
Are you referring to the input voltage, the one that feeds into the back of the supply? If so 3.3v sounds kind of low and I'm not sure it will function correctly with it. I used another DPS to feed my one and used 6v as my lower value and then the max I could output. You'll want to set the current limit to be high
If you're referring to the output voltage then this is a good range yes
I did save the txt files during my initial flashing ad per the readme. I didn’t realise there were calibration values in there.
When I try to run dpsctl.py within a clean pipenv that has pycrc and pyserial I get the error below
Both are installed:
I did save the txt files during my initial flashing ad per the readme. I didn’t realise there were calibration values in there.
I've never done this but maybe I recall reading something about it. I just threw on OpenDPS straight away and realised it needed calibrating which is why I added the routine for it
I thought the bug you were seeing was likely fixed in #213 but I guess not. The issue tracker is #215 I can probably look into this when I'm home if you don't manage to resolve it. We don't use pycrc that extensively so if it's just a case of updating the API calls to the latest version then it's an easy fix
If you could give me your pipenv setup commands that would be great as I'm not familiar with it
Got a bit further tonight, I will try and fix and raise a PR.
~/opendps/dpsctl master*
dpsctl-JB5bKZwA ❯ ./dpsctl.py -d /dev/cu.usbserial-1430 -C
For calibration you will need:
A multimeter
A known load capable of handling the required power
A thick wire for shorting the output of the DPS
2 stable input voltages
Please ensure nothing is connected to the output of the DPS before starting calibration!
Traceback (most recent call last):
File "./dpsctl.py", line 1204, in <module>
main()
File "./dpsctl.py", line 1198, in main
handle_commands(args)
File "./dpsctl.py", line 577, in handle_commands
do_calibration(comms, args)
File "./dpsctl.py", line 723, in do_calibration
t = raw_input("Would you like to proceed? (y/n): ")
NameError: name 'raw_input' is not defined
~/opendps/dpsctl master*
dpsctl-JB5bKZwA ❯
Looks like raw_input
should have changed to input
when the code was ported to python3
Thats it. I just made the change on mine
Why is the calibration routine asking for a load resistance if the latest calibration uses a solid short? Is it expecting me to input 0?
Load resistance in ohms:
opendps_i7-0FvMkaG2 ❯ ./dpsctl.py -d /dev/cu.usbserial-1430 -C
For calibration you will need:
A multimeter
A known load capable of handling the required power
A thick wire for shorting the output of the DPS
2 stable input voltages
Please ensure nothing is connected to the output of the DPS before starting calibration!
Would you like to proceed? (y/n): y
Input Voltage Calibration:
Please hook up the first lower supply voltage to the DPS now
ensuring that the serial connection is connected after boot
Type input voltage in mV: 6230
Please hook up the second higher supply voltage to the DPS now
ensuring that the serial connection is connected after boot
Type input voltage in mV: 19990
Output Voltage Calibration:
Finding maximum output V_DAC value.......................... Done
Calibration Point 1 of 2, 10% of Max
Type measured voltage on output in mV: 1723
Calibration Point 1 of 2, 90% of Max
Type measured voltage on output in mV: 15940
Output Current Calibration:
Max output current of your DPS (e.g 5 for the DPS5005) in amps: 5
Load resistance in ohms: 0
Load wattage rating in watts: 1000
Please connect the load to the output of the DPS, then press enter
Backed out of calibration. I had my 12AWG 'thick wire' ready for the current calibration but then it asked for load resistance settings.
You need a known load for current calibration yes. Ideally a beefy wire wound low resistance one. If you have thick wire you could use a long length of it I suppose. The list of requirements is the first thing the calibration routine prints to the console
“A thick wire for shorting the output of the DPS”
“shorting”
This to me did not sound like a power resistor. Didn’t I read in of the threads on here that the outputs are literally “shorted”?
"A known load capable of handling the required power" is the section I'm referring to Could probably be changed to power resistor for clarity though
At one stage of the calibration you do literally short the terminals though yes
Ok. That makes it clearer
What defines “required power”? If I have a 24V power supply capable of 10A, let say I want max 20V from the DPS5015 what sort of power resistor am I looking for? The biggest wire wound resistors I can source locally are 10W
Hi, for 10 A current at 20 V you will need 2 Ohm 200 W resistor, but for short time, like few seconds measure probably 50 W will be enough. It's better to connect few resistors in parallel or in series, that will reduce needed Wats, per single resistor. For example eight 16 Ohm 10 Wats resistors in parallel give about 2 Ohm summary resistance and about 80 W, or for longer measurements try fifteen 30 Ohm in parallel, it gives about 2 Ohm and 150 W, or place resistors on some large heatsink with fan. Remember, high temperature change a resistance a bit, so if you need accuracy then always measure with approx the same resistors temperature.
Regarding to voltage results from original DPS5020, have you checked voltage at some load? for example 10A? Is it the same accuracy when there is no load?
@Xenoamor sorry to dig this up again but my DPS5020 is still bricked and I need to get it working again. You mentioned above that I need a 'thick wire' for shortign the terminals for one step of the calibration routine and you said also that I do need a load resistor. I went and read #122 where you state that the load resistor is no longer required:
I've tweaked how the constant current calibration works. It no longer uses a load resistor and instead you short the output terminals. This is effectively the equivalent of the open circuit calibration routine for the voltage but for current
This means it now can sweep the entire current range giving a greater degree of accuracy output current sweep shorted
I was about to spend $50 on a 2Ω 200W load resistor but now I'm confused. Do I need the load resistor or can I short the terminals during calibration?
I think you still need a load actually, ignore my many edits! The shorting is for calibrating the current ADC but not the DAC.
I can't quite remember how it works but you should be able to just use a spool of wire if you have it and it will handle the current. I designed this around the DPS5005 which requires far less current so didn't really appreciate how much wattage might need to be dissipated. You can just use a lower wattage load resistor if you want and the tools will ask you for the value and current limit appropriately, you'll just lose some current accuracy at the very high values. 50W for instance should be plenty
ahhh ok, looks like mine will be a brick for a while until I can find some bulk resistance
I have compiled for the DPS5015 (v2.3) but output values are inaccurate - see photos.
I set 3.300V - once output is enabled the DPS5015 screen shows a voltage slump to 2.84V and I measure 2.858V
I set 15.000V - once output is enabled the DPS5015 screen shows a voltage slump to 14.100V and I measure 14.25V
Is there anything I can do to fix or have I just created a paperweight?