element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Test Instrumentation
  • Challenges & Projects
  • Project14
  • Test Instrumentation
  • More
  • Cancel
Test Instrumentation
Blog XY-FZ35 - Inexpensive Electronic Load
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Test Instrumentation to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: fmilburn
  • Date Created: 30 Sep 2021 6:28 AM Date Created
  • Views 10710 views
  • Likes 0 likes
  • Comments 24 comments
  • fz35
  • mcp2221a
  • dc electronic load
  • mcp2221
  • serial
  • xy-fz35
  • electronic load
Related
Recommended

XY-FZ35 - Inexpensive Electronic Load

fmilburn
fmilburn
30 Sep 2021

I was scrolling through Amazon and ended up buying this the other day for $18 delivered.

image

 

Specifications

 

Input voltage range: DC5.0-30.0V (with reverse connection protection)

Load voltage range: DC1.5-25.0V (with reverse connection protection)

Load current range: 0.00-5.00A

Discharge power: 35W

Constant current precision: ±(1%+3digits)

Voltage precision: ±(0.5%+1digit)

Over voltage protection(OVP): default 25.2V (can be reset)

Over current protection(OCP): default 5.10A (can be reset)

Over power protection(OPP): default 35.5W (can be reset)

Low voltage protection(LVP): default 1.5V (can be reset)

Over temperature protection(OTP): default about 80℃(cannot be reset)

Fan rotation speed: 8000±10%RPM

 

I went down the rabbit hole looking at reviews and found a couple and a thread on the EEVBlog.  Not mentioned above, but what caused me to buy it is that it can be controlled over serial.  Besides, it was $18 and I can't even buy take-out pizza for the grandkids when they come to visit for that.

 

I didn't pay careful attention to the specifications before buying, but now that I have it, note the following:

  • The minimum input voltage is poor (1.5V) so can't even discharge an alkaline cell with that
  • The only mode is constant current
  • The current increment settings are coarse at 0.01A
  • The current resolution is low at 0.01A
  • The current precision is poor considering it is 3 digits and resolution is 0.01A

 

Take it Apart

 

It arrived packaged nicely enough and undamaged.  The enclosure is designed to be snapped into a panel and is open in the back.  There are two PCBs sandwiched together with 0.1-inch headers that pull apart easily with no tools.  The PCB on the back has the fan attached and a TIP122TIP122 BJT Darlington NPN transistor that serves as the load.

image

 

The PCB attached to the front has the microcontroller and a chip with the identification sanded off.  It also has some solder spatter.

image

First Test

 

I powered it up with one benchtop power supply and provided the load with a second.  I'm using 18AWG wire for connections.  The power supply on the right is the one under load.  It is a Multicomp Pro MP710086MP710086 that I have written about here on element14.  In my tests, the current display with that power supply was accurate to within 0.5mA right down to 0 and the voltage display was pretty much bang on over the entire range.

image

 

The electronic load can be powered by 5V and draws less than 30mA as can be seen by the power supply on the left.  For the first tests, I manually set the control parameters with the simple user interface.  The controls consist of a button to start and stop the load test and a rotary encoder with a push-button used to set parameters.  The description of the parameters is a bit unusual but I got used to it and the manual control fairly quickly.  For this first set of tests, I recorded the results in my notebook.

image

The two columns on the left are for the DC Electronic Load.  The two columns on the right are the readings from the bench power supply which is thought to be pretty accurate.  A couple of things to note:

  • The fan seems to be controlled by current - it turns on at 1.5A
  • Voltage measurement seems OK - there is a voltage difference (drop) but I'm not using Kelvin 4-wire measurement
  • The current agreement isn't that great but meets the FZ35 specs (1% + 3digits) which aren't that great either

 

Serial Link

 

As noted above, my interest was the serial control.  There is some discussion about this on the EEVBlog and at the bottom of the posts, there are two GitHub links.  One is "copyrighted" and one only seems to have an executable.  They seem to plot the voltage as a function of time with the electronic load set to a constant current.  That is not what I want to do.  I'd like to set the current and read the voltage from Python in the same script that I am controlling other instruments with SCPI.

 

To test that idea out I used an MCP2221A breakout board from Adafruit to talk to the FZ35.  These only cost $6.50 and have the advantage of being 5V tolerant which is important because the FZ35 communicates at 5V.  The serial connection is made on a 0.1-inch pitch header.  Jumpers were then made between the MCP2221A and the FZ35: TX to RX, RX to TX, and GND to GND.  The MCP2221A was connected to my Windows 10 PC over USB.

 

Data Sheet

 

The commands must be sent and read in a rigid format.  The commands are shown below.

image

So for example, sending 1.0A does not work.  1.00A works.  Sending OPP:5.00 does not work.  OPP:05.00 works.

 

The only information we get in the datasheet for receiving data is this:

image

Python Script

 

I used PyCharm in the Anaconda suite for development.  The script sets the protection parameters for the electronic load and then cycles through currents from 0.1A to 1.0A in 0.1A increments while reading the voltages and printing the results.  Here is the code:

 

# MCP2221A with FZ35 Electronic Load
# Uses the MCP2221A to send commands to the constant current FZ35 Electronic Load
# Note that the commands must be sent in the exact format shown and byte encoded.
# Electronic load requires a pause after commands before reading (timing not fully investigated)
#
# This code is free to use by all
# Tested on Windows 10 machine with Python 3.8
# F Milburn Sept, 2021


import serial
import time


ser = serial.Serial(port='COM9', baudrate=9600, timeout=2)


# Set Protection
LVP = b'LVP:01.5'        # low voltage
OVP = b'OVP:06.0'        # over voltage
OCP = b'OCP:1.00'        # over current
OPP = b'OPP:06.00'       # over power
ser.write(LVP)
time.sleep(0.1)
ser.write(OVP)
time.sleep(0.1)
ser.write(OCP)
time.sleep(0.1)
ser.write(OPP)
time.sleep(0.1)
print(ser.read_all(), '\n')      # read setting success


# Vary current and read results
print('Voltage(V), Current(A)')
current = 0.0
for x in range(0, 10, 1):
    current = current + 0.1
    strCurrent = '{:.2f}'.format(current) + 'A'    # must be in exact format
    ser.write(strCurrent.encode('utf-8'))          # byte encoding
    time.sleep(0.1)
    ser.read_all()                                 # dummy read
    time.sleep(1)                                  # let things settle
    # check for valid input
    keepLooping = True
    while keepLooping:
        rawResult = (ser.read_all())
        time.sleep(0.1)
        if len(rawResult) > 5:
            if chr(rawResult[5]) == "V":
                result = rawResult.decode('utf-8')                      # decode it - make it a string
                result = result[:12]                                    # strip off end
                result = ''.join(i for i in result if not i.isalpha())  # strip alphabetic chars
                result = ''.join(i for i in result if i.isprintable())  # strip non-printable chars
                if result[0] == '0':
                    result = result[1:]                                 # strip off first zero if present
                print(result)
                keepLooping = False
            ser.flushInput()

 

I'm not a Pythonista so undoubtedly this could be improved.  I'm not going to go through it line by line either but below are comments on some things that tripped me up initially.

  • Serial is sent in byte format so there is some encoding and decoding prior to sending and after receiving.  In some places, I used encode/decode and in others b'xxx'.
  • It is necessary to give some time after issuing commands.  I used 0.1 seconds.
  • The FZ35 sends data every second or so and care must be taken to assure the data in the buffer is what is needed.
  • The raw data read in needs some massaging prior to use.

 

Here is the resulting output.

image

 

This output could be plotted in Python but I copy/pasted it into a spreadsheet.

image

Conclusion

 

This is not a particularly impressive pieced of test gear but then it only costs $18.  And it works.  I have had it running for a couple of days with no issues. The primary things I'd like to see improved are:

  • Lower voltage capability down to below 1V
  • Improved current accuracy and resolution to 1mA

 

I fooled around trying to make something similar DIY a while back but didn't complete the project. One of these days I will get back to that project or maybe even buy a better instrument.  Thanks for reading, comments are always welcome.

  • Sign in to reply
Parents
  • rsjawale24
    rsjawale24 over 4 years ago

    I did try to make one. But often the DIY one costs much more than these inexpensive Chinese electronic items.

    For example, recently I was looking for a SMD practice board on Banggood. Later, I thought why not to make a PCB myself? You can get 5 PCBs for 2USD from JLCPCB.

    But when I calculated the shipping it was around 27 USD (Fedex) to India (Add 10 USD more for customs). Then buying 30 pcs each of SMD caps (0402,0603,0805), resistors (0402,0603,0805) and SOT packages, cost me around 300 INR ~ 4 USD

     

    DIY Cost = 2 + 27 + 10 + 4 = 43 USD

    SMD board (with Components from banggood) = 500 INR + 200 INR shipping (direct mail) = 700 INR ~ 9.43 USD

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Andrew J
    Andrew J over 4 years ago in reply to rsjawale24

    You can't make something yourself cheaper than these types of things, you just don't have the economies of scale.  Price up a case, an LCD, some buttons/encoders/knobs etc and you could buy this, rip out the guts and have quite a useful set of components for a quarter (or better) of the price of buying those items individually.  Frank has already started a project to look at making a DC load so has bits etc.  Also, he doesn't live in India which seems to have a pretty onerous import duty judging by the regular comments about such on here.

     

    I have used an SMD practice board and they are useful to a degree: if you made your own I wouldn't bother with sizes less than 0805 for passives and SOIC for ICs unless you intend to go for high frequency projects and the like.  I only resort to TSSOP and VSSOP and smaller if there is absolutely no SOIC alternative from the same or different manufacturer.  I've even re-designed stuff to avoid the IC that only comes in DFN or similar!  By the time you've practiced on 0805 and SOICs you can do these smaller sizes with a bit of care as you will have 'gotten your eye in' as we say in the UK.  In fact the biggest problem you'll face cost-wise is a decent temperature controlled soldering iron, small tip, flux and thin solder.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • Andrew J
    Andrew J over 4 years ago in reply to rsjawale24

    You can't make something yourself cheaper than these types of things, you just don't have the economies of scale.  Price up a case, an LCD, some buttons/encoders/knobs etc and you could buy this, rip out the guts and have quite a useful set of components for a quarter (or better) of the price of buying those items individually.  Frank has already started a project to look at making a DC load so has bits etc.  Also, he doesn't live in India which seems to have a pretty onerous import duty judging by the regular comments about such on here.

     

    I have used an SMD practice board and they are useful to a degree: if you made your own I wouldn't bother with sizes less than 0805 for passives and SOIC for ICs unless you intend to go for high frequency projects and the like.  I only resort to TSSOP and VSSOP and smaller if there is absolutely no SOIC alternative from the same or different manufacturer.  I've even re-designed stuff to avoid the IC that only comes in DFN or similar!  By the time you've practiced on 0805 and SOICs you can do these smaller sizes with a bit of care as you will have 'gotten your eye in' as we say in the UK.  In fact the biggest problem you'll face cost-wise is a decent temperature controlled soldering iron, small tip, flux and thin solder.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
  • rsjawale24
    rsjawale24 over 4 years ago in reply to Andrew J

    I completely agree with you. Indian customs is a huge problem. The government is literally looting people with high custom duties.

     

    Well, I'm used to 0603 and 0402 hand soldering. Also, currently I'm pursuing a masters in RF so no way to escape soldering those tiny RF diodes and switches.

    Recently, I hand soldered this p-i-n diode https://cdn.macom.com/datasheets/MADP-000907-14020x.pdf  0.75 x 0.38 mm2 for use in a frequency reconfigurable antenna. It's under publication so I'll post the pictures here once it is available on IEEEXplore.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • fmilburn
    fmilburn over 4 years ago in reply to Andrew J

    Yes, I have all the parts including a nice big MOSFET.  And the preliminary work with the microcontroller was promising.  I really need to drag that box of parts back out and design the PCB.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube