Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DPS5015 output inaccurate both on DPS screen and measured on multimeter #216

Open
ilium007 opened this issue May 27, 2020 · 26 comments
Open

Comments

@ilium007
Copy link
Contributor

ilium007 commented May 27, 2020

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?

image

image

image

image

@ilium007 ilium007 changed the title DPS5015 output changes from set value once enabled DPS5015 output inaccurate both on DPS screen and measured on multimeter May 27, 2020
@ilium007
Copy link
Contributor Author

I also have a spare v2.4 board that I haven’t touched as yet.

5082A49A-9D35-4840-A28D-9D5177CD444D

@ilium007
Copy link
Contributor Author

ilium007 commented May 27, 2020

It turns out my spare board was a DPS5020

4E5AD446-5073-40A8-BC3C-A2BDBBB1BA44

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.

9EF6A91A-EC65-4CAA-8921-06EE03227BFE

DB8687DB-8DC6-448D-A431-F09DF71E5622

@Xenoamor
Copy link
Contributor

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

@ilium007
Copy link
Contributor Author

Is there a guide for this process?

@Xenoamor
Copy link
Contributor

#120 and #122 are the related PRs that added in the calibration routine. It's done via the communication interface though. There's not a good guide though and I've since moved on from this project

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

@ilium007
Copy link
Contributor Author

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?

@Xenoamor
Copy link
Contributor

Xenoamor commented May 27, 2020

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

@ilium007
Copy link
Contributor Author

I did save the txt files during my initial flashing ad per the readme. I didn’t realise there were calibration values in there.

@ilium007
Copy link
Contributor Author

When I try to run dpsctl.py within a clean pipenv that has pycrc and pyserial I get the error below

D9A0D411-92D2-492F-9844-EBFF66591DA3

Both are installed:

3F42947E-1D6F-41DD-957B-5F5D0D9A18D8

@Xenoamor
Copy link
Contributor

Xenoamor commented May 27, 2020

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

@ilium007
Copy link
Contributor Author

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 ❯

@Xenoamor
Copy link
Contributor

Looks like raw_input should have changed to input when the code was ported to python3

@ilium007
Copy link
Contributor Author

Thats it. I just made the change on mine

@ilium007
Copy link
Contributor Author

ilium007 commented May 28, 2020

Raised PR #217

@ilium007
Copy link
Contributor Author

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:

@ilium007
Copy link
Contributor Author

ilium007 commented May 28, 2020

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

@ilium007
Copy link
Contributor Author

Backed out of calibration. I had my 12AWG 'thick wire' ready for the current calibration but then it asked for load resistance settings.

@Xenoamor
Copy link
Contributor

Xenoamor commented May 28, 2020

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

@ilium007
Copy link
Contributor Author

“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”?

@Xenoamor
Copy link
Contributor

Xenoamor commented May 28, 2020

"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

@ilium007
Copy link
Contributor Author

Ok. That makes it clearer

@ilium007
Copy link
Contributor Author

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

@polihedron
Copy link
Contributor

polihedron commented May 31, 2020

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?

@ilium007
Copy link
Contributor Author

@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?

@Xenoamor
Copy link
Contributor

Xenoamor commented Nov 17, 2020

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

@ilium007
Copy link
Contributor Author

ahhh ok, looks like mine will be a brick for a while until I can find some bulk resistance

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants