PyPSUcurvetrace: a flexible, open-source curve tracer using programmable power supplies

Yes, there is always some offset and hysteresis between the DUT temperature and the temperature reading inside the copper block. I minimized this by arranging the temperature sensor such that it sits immediately below the DUT. Also, copper has a pretty high heat conductance, so the sensor is thermally well connected to the DUT. The temperature reading is therefore quite close to the DUT temperature. In any case, the compression effects I saw before using the copper block are now completely gone.

Using a sample and hold would certainly work, but it would add more complexity and would take away the beauty of using just two programmable power supplies and nothing else. The whole idea was to make a curve tracer without any extra boards and stuff.
 
If the copper block were liquid cooled then you could in principle raise and lower its temperature.
Yep. In fact, I could easily sink some heat and get it to below room temperature by using cold water flowing across the attached heatsink. I didn't have any need for this so far.

EDIT: I attached a photo of the whole thing, maybe that helps to understand how things work.
 

Attachments

  • 20220124_185650.jpg
    20220124_185650.jpg
    562.8 KB · Views: 228
  • Like
Reactions: 1 users
I realised that so far I have used PyPSUcurvetrace for FETs and tubes only, which are all voltage controlled. I gave it a shot with some BJTs that were floating around the garage and added a few options to the software to make it easier to deal with current-controlled parts. The attached curves from a BC550 shows that this works very nicely!

More details and examples at GitHub (scroll down to see the good stuff): https://github.com/mbrennwa/PyPSUcurvetrace
 

Attachments

  • BC550C.png
    BC550C.png
    25.7 KB · Views: 107
  • Like
Reactions: 1 user
Member
Joined 2016
Paid Member
Hi Guy's,

Interesting to see you guys have been working on something similar.
I also made my own curve tracer.

Programmed in python and controlled by two rigol dp832 power supplies and a RSDM-9061 is taking the measurements.
 

Attachments

  • IMG-20230102-WA0009.jpg
    IMG-20230102-WA0009.jpg
    127.4 KB · Views: 140
  • IMG-20230101-WA0000.jpg
    IMG-20230101-WA0000.jpg
    259.9 KB · Views: 138
I got my hands on a Riden/Ruiden RD6006P power supply. These kit PSUs are relatively cheap, but provide 100 nA / 1 mV resolution from zero to 6 A / 60 V output. PyPSUcurvetrace already has experimental support for the RD power supplies! Once this is polished, the RD power supplies will allow a very powerful, precise, and flexible curvetracer setup for about $300 or less :cool:
 
  • Like
Reactions: 1 user
I got my hands on a Riden/Ruiden RD6006P power supply. These kit PSUs are relatively cheap, but provide 100 nA / 1 mV resolution from zero to 6 A / 60 V output. PyPSUcurvetrace already has experimental support for the RD power supplies! Once this is polished, the RD power supplies will allow a very powerful, precise, and flexible curvetracer setup for about $300 or less :cool:
Where to get these Riden/Ruiden RD6006P?
 
I may be interesting in creating a python class for the multicomp pro series (a common load cost rebranded SMPS PSU) which as a USB serial command interface through which you can control the voltage, the limits and measure the voltage and current. It measures to 1mA but can only limit from 250mA upwards.
I'm not the best python programmer (I added a software AWG including sound generation to an existing bode GitHub project for the SDS1104X-E) but I do have 25+ years of software programming. So when I have the time I will look into it.

Another addition I may be interested in adding is the SDG1032X signal generator (for HiZ such as mosfet gate +/- 10Vdc, for 50R +/- 5Vdc 3mV accuracy). That has a USB SCPI interface. The SDS1104X-E has a SCPI interface too - it can measure DC at a push.
Lastly the Brymen 868s and series do have a proprietary protocol but the IR interface protocol has been published which could be added as a higher precision measuring device.
 
Last edited:
Where to get these Riden/Ruiden RD6006P?
I got mine from bastelgarage.ch, but the Riden units are available from many different sellers. Google is your friend.

very good,do we need 2pcs of this power for PyPSUcurvetrace?
Yes. Please take a look at the PyPSUcurvetrace website for details: https://github.com/mbrennwa/PyPSUcurvetrace (scroll down to see the README with all the information).

do you have windows version?
PyPSUcurvetrace is a Python program, so once you have Python on your Windows machine, it should work. I am not a Windows person, so I may not be able to help you with Windows specific details.

I may be interesting in creating a python class for the multicomp pro series (a common load cost rebranded SMPS PSU) which as a USB serial command interface through which you can control the voltage, the limits and measure the voltage and current. It measures to 1mA but can only limit from 250mA upwards.
I took a quick look at these PSUs. If you already have them, they might be nice to use with PyPSUcurvetrace and you are of course most welcome to add support for them to PyPSUcurvetrace (via the GitHub repository). However, at this pricepoint, there are better PSUs out there with higher power and better resolution of the meters.

I know this is deviation but you could use the USB interface for Brymen for measurement too and then plot on pyplot also using the scope interface for measurement rather than also display.
I am not quite sure what this is about. PyPSU curvetrace does not use a scope. Data acquisition is from the PSU meters, and display of the data is done separately on the computer.
 
I am not quite sure what this is about. PyPSU curvetrace does not use a scope. Data acquisition is from the PSU meters, and display of the data is done separately on the computer.
The concept would be to separate voltage control and measurement as interfaces on the class. A good PSU could support both interfaces (ie control and measurement), but for low cost and improving the measurement this may be better having the PSU implementing the control interface with a separate device implementing the measuring interface.

The low end of the market (like the 60V multicomp pro MP710081 I have) can do both but a higher precision/accuracy measurement could be done by adding a separate device to measure (DMM/scope).

I wasn't thinking of the scope as a display but rather a DMM using it as DC coupled but providing a 4 channel DC measurement device for current sensing resistors.

Separate control and measure interfaces could allow a DC SAR ADC for increased accuracy measurements ;)

I know this is complicating the concept of a control the PSU as a smart and simple way to curve trace.
 

Attachments

  • RD6006Pkit.jpg
    RD6006Pkit.jpg
    128.4 KB · Views: 60
Member
Joined 2019
Paid Member
The concept would be to separate voltage control and measurement as interfaces on the class. A good PSU could support both interfaces (ie control and measurement), but for low cost and improving the measurement this may be better having the PSU implementing the control interface with a separate device implementing the measuring interface.

The low end of the market (like the 60V multicomp pro MP710081 I have) can do both but a higher precision/accuracy measurement could be done by adding a separate device to measure (DMM/scope).

I wasn't thinking of the scope as a display but rather a DMM using it as DC coupled but providing a 4 channel DC measurement device for current sensing resistors.

Separate control and measure interfaces could allow a DC SAR ADC for increased accuracy measurements ;)

I know this is complicating the concept of a control the PSU as a smart and simple way to curve trace.
Abstraction makes sense from a programming perspective.

Define separate interfaces for control and measurement with PSU & scope implementations to those interfaces.

If it's pluggable then the opportunities for additional devices to be added without disturbing core code are much enhanced.
 
  • Like
Reactions: 1 user
The concept would be to separate voltage control and measurement as interfaces on the class. A good PSU could support both interfaces (ie control and measurement), but for low cost and improving the measurement this may be better having the PSU implementing the control interface with a separate device implementing the measuring interface.
Ok, I see. stuartmp did exactly this (see post #64).

Such a setup would require a major redesign of the PyPSUcurvetrace software. Also, the hardware would certainly be a lot more more expensive. I don't think the improved precision/resolution would be a game changer, especially since typical measurements will not benefit from much better precision/resolution than 0.1 mA or 0.1 mA. Also, the accuracy of the meters in my power supplies are usually accurate to withing their precision, so there's not much to be gained in terms of accuracy, too.
It is needed that part only?
On ebay.it I found a seller that can supply it, but also can supply a metal case and a SMPS power supply for a complete working unit:
https://i.ebayimg.com/images/g/CP8AAOSwZIxg-mwm/s-l1600.jpg
The RIDEN units are modular. You can get just the main unit and take it from there, or you could also get the SMPS, case and fan (that's what I did).