Profi-Max Laboratory

Handmade Wonders

New Alternative firmware for DPS3003... DPS5020

  • Rigorous technical design.
  • Large digits on the display. 3- or 4-digit display
  • Ten general profiles and ten preset profiles for charging Li-Ion batteries.
  • Profile setup menu.
  • General parameters menu.
  • Calibration menu.
  • Screensaver. Screen rotation.
  • Amp and watt hour meters. Shutdown timer.
  • Recovery after external power failure.
  • Indication of the charge of the external power supply battery.
  • Possibility of connecting additional modules: a gyro sensor for screen rotation and a digital thermometer with an additional fan.
  • Changing the color of the indication at the user’s choice.
  • Control via USB (Com-port) or bluetooth.
  • Firmware update via USB/UART
  • Compatible with Chinese control software.
Main screen

You can change the voltage and amperage after pressing buttons “V” or “A”. Rotate the knob to select menu or counters pages. Navigate menu items using up and down buttons. To leave any menu without saving changes just push “ON/OFF” button.

At the main screen push  “SET” button and rotate the knob to select a profile. There are 20 profiles:

  • M0..M9 – general profiles.
  • C0…C9 – profiles for Li-Ion battery charge. 

Output power on/off

When you turn on the output power, the display color changes. CV (constant voltage)  or CC (constant current) mode is displayed.

Changing voltage and current while output is on

You can change the values after pressing buttons “V” or “A”.

The adjustment range is limited to avoid overvoltage.

Output level indicator

Depending on CV or CC mode you can see the level of output:

  • In CV mode – The level is output current as a percentage of “I set”.
  • In CC mode – The level is output voltage as a percentage of “U set”.
In CV mode you can see the output current percentage
In CC mode you can see the output voltage percentage

Smart or Normal display

Now you can select between 3-digit or 4-digit display.

Go to  “Parameters” menu, the item “Smart Display” to change the selection.


Press the “V” button to select the voltage range. 

Press the “A” button to select the current range.

Press the “SET” button to select the mode:

  • Single voltage beam
  • Single current beam
  • Both beams. Voltage ahead
  • Both beams. Current ahead

Whenever the U setting or I setting is changed, the autorange function starts and changes the ranges.

Counters screen

Rotate the knob to go to the counter screen.

The counters are reset every time the output is turned on, if the following is selected in the “Parameters” menu: Reset counters = Yes. Otherwise, the counters will be cumulative.

In addition, you can reset the counters by pressing the “SET” button for 3 seconds.

For C0-C9 profiles you can see charge process.

Profile setup menu (M0...M9 C0...C9)

When output is off rotate the knob to go to different menu. Use arrow-up and arrow-down buttons to navigate through menu items. The selected item is blinking and go green. Change value with the knob.
If you wish to save changes select “Save?” – Yes and then “Exit”.
To leave menu without saving just push “ON/OFF” button.

  • OVP – Over Voltage Protection.
  • OCP – Over Current Protection.
  • OPP – Over Power Protection.
  • Overtime – The time in minutes of the load shutdown timer.
  • Soft Front – When turned on, the voltage increases gradually.

To disable the timer, set Overtime = 0.

Parameters menu

  • Temp. – Tempearture and choice of Celsius or Fahrenheit.
  • Overheat – The temperature when output will be turned off.
  • Backlight – Screen brightness. 1 – minimum, 5 – maximum, 6 – maximum plus screensaver.
  • Smart display – Three or four digit display.
  • Battery source – The main page displays the state of charge of the input battery. Used for Li-ion powered mobile DPS.
  • Max Memory – Determines how many memory cells will be available to the user using the “SET” button.
  • Reset counters – Specifies the behavior of the counters. If set to Yes, the counters will be reset each time the output is turned on.

If the screensaver is activated, then five minutes after pressing the buttons, the screen brightness will decrease from maximum to minimum. The maximum brightness is restored again after any button is pressed or an error occurs.

Communication menu

Hold the “M1” (arrow-up) button after power-on during the logo screen.  For the first few seconds, the device looks for a bluetooth connection.

Baud Rate and Modbus Address should be the same as in PC/Android application.

Please note: The pin code is stored in the BT module itself, and not in the internal memory of the PSU.

BT connected – means BT board found. No matter connection with PC/Android device.

The “BT Debug” menu item allows you to see the AT command passed to the BT module. Whites are commands and greens are answers.

Communication menu

Restore default configuration

Hold “SET”  button after power-on during the logo screen. 

If you choose Restore? Yes, all memory and calibration settings will be erased and replaced with the default.

There is a choice of hardware version. This is necessary for various revisions of printed circuit boards for calibration to work.

Screen rotation menu

Hold “M2” (arrow-down) button after power-on during the logo screen. 

Set ” Rotate” to ” Yes”.

Then go to “Position” menu item and select the rotation.

The automatic screen rotation is available with external MPU6050 Gyroscope Sensor .

You can place the sensor in any position and then set the correct screen rotation in this menu.

Key Lock

Push rotary knob to lock-unlock device buttons.

NOTE: When device is connected with PC/Android application all the buttons are locked automatically.

Recovery after an external power failure

After turning on the output power with the “ON / OFF” button and then blocking the buttons by pressing the encoder, the state is stored in the non-volatile memory. Thus, after an external power failure, the unit will completely restore its state.

Modbus communication protocol

The basic data of the communication protocol is the same as the stock Chinese protocol of DPS devices. Additional data has been added. Read more here.


When the power output is on, press and hold “SET” button for 3 seconds.

The calibration procedure is pretty straightforward. You only need a multimeter and an external power supply. Do not use a load during calibration.
The basic principle of calibration is to define two points – LOW point and HIGH point. For example, we can calibrate the input voltage at 6 V (low point) and 25 V (high point). It’s enough.
The low and high points are already preset in the device, but you must enter the correct values ​​displayed on the multimeter.

Navigate menu item by pressing arrow up and down buttons. To start item press “SET” button. When the item blinking set correct value by the knob. To apply the value push the rotary knob for 3 second.  The applied value goes blue. To store the changes select “Save?” – Yes and then “Exit”.

To achieve greater accuracy, repeat the calibration procedure 2 or 3 times.
If something goes wrong, you can restore the default settings at any time.
NOTE. Select I out H current value suitable for the maximum current of the multimeter.

How to calibrate in detail

Video – How to calibrate in Russian

If the calibration doesn’t work – READ HERE


Since firmware version 3.8 a page with calibration data has been added. This page is mainly for information. Do not manually change the values on this page unnecessarily.

If you have a revision with a different hardware version and the calibration values differ significantly from the default ones, you can send me a photo of the VALUE-ADC-DAC page with a description of your model so that I can use your data in the next firmware revisions.

Firmware Update via USB/UART

Press “ON/OFF” button after enabling power during the logo screen to enter  the “Update mode”.  

When the screen goes black, you can upload new firmware using STM32CubeProgrammer (or ST’s old Flasher / or DPSmaster application).

Connect USB cable to PC, start STM32CubeProgrammer, select UART, then correct COM port (any baudrate, but with parity “EVEN”), click “Connect” and start programming.

NOTE: The update doesn’t work via bluetooth because your BT whistle on PC can’t transmit  “EVEN ” parity.

Connecting additional modules

Starting with firmware version 3.6, it is possible to connect an external gyro sensor to rotate the screen.

Starting with firmware version 3.7, it is possible to connect an external digital temperature sensor and an additional cooling fan.


DPSmaster is Windows PC application for communicate to RIDEN DPS (Digital Power Suplly)  via USB or Bluetooth:

  • DPS3003
  • DPS3005
  • DPS3012
  • DPS5005
  • DPS5015
  • DPS5020
  • DPS8005

Single application for all models.  The application is 5Mb executable file without installation and any middleware. It works with stock and alternative firmware.


Connecting any rechargeable batteries directly to the output of the unit can crash the DPS device !!!

  1. In case of polarity reversal – 100% failure of any DPS model.
  2. When the output voltage of the power supply is turned off, the voltage from the battery will flow back to the power supply. This could damage it.
  3. These features are associated with the circuitry of the power supplies and do not depend on the firmware.
  4. To avoid the above charging problems, use an additional diode as shown in the figure below. Consider the amperage and voltage drop across the diode when charging.
  5. If you find it difficult to understand the above problems, do not charge the batteries using DPS power supplies, use specialized chargers instead.

Домашняя Forums Rd Tech DPS

Viewing 19 reply threads
  • Author
    • #3577

      DPS3003 DPS3005 DPS3012 DPS5005 DPS5015 DPS5020 DPS8005
      Новая прошивка версии 4.3
      1)Расширенная защита.
      2) Индикация автосохранения.
      3) Скорость связи увеличена до 115200 бит/сек
      4) Улучшена отзывчивость на запросы Modbus
      5) Внесены дополнения в протокол
      Подробности тут:

      • This topic was modified 9 months, 2 weeks ago by profi-max.
    • #3783

      А можно сделать прошивку под дисплей 3,5 дюйма, и распаять все кнопки и дисплей, прибор отличный, но мелкий экран и близко все кнопки.

    • #3784

      >А можно сделать прошивку под дисплей 3,5 дюйма, и распаять все кнопки и дисплей, прибор отличный, но мелкий экран и близко все кнопки.
      В ближайшее время таких планов нет. И свободного времени тоже нет. Может быть когда-нибудь, но не факт.

    • #3834

      DPS5020 китайская прошивка. Пользователь несколько лет.
      Зарегестрировался тут, чтоб поговорить о наболевшем.
      1. Три цифры индикации это мало. Использую 4 цифры (штатный экран) на ток и внешний 5 цифр на напряжение (китайский модуль 5 знаков с поверкой в Самарском центре стандартизации).
      Ваши три цифры – ни о чём.
      2. Использую провод 7AWG чтоб при значительном выходном токе напряжение было похоже на то, которое на экране DPS5020.
      3. Практически использую только m1 и m2 настройку. 1,65 и 14,5 вольт соответственно. Остальное под текущую задачу довожу донастройкой. Остальные m настройки я просто не запоминаю (забываю).
      4. В штатном комплекте почему-то графики в Еxcel удавалось сохранить только на телефон (android). Они нафиг там не нужны. Нужны в компьютере, но компьютерное ПО их не пишет. За то имеет кучу настроек самого блока ( а они нужны как раз на телефоне.
      5. Совершенно неочевидное управление кнопками и ручкой при настройке.

    • #3835

      Вспомнил ещё пару взаимосвязанных пунктов:
      6. Очень неудобное расположение кнопки включения DPS5020 под энкодером. Важно, что решение этой проблемы достаточно простое – положить (или поставить) DPS5020 на бок. Так что бы выходные клеммы были снизу. При этом решается проблема с доступом к кнопке включения и уменьшается используемое место на столе. Однако,это выявляет ещё одну проблему:
      7. Экран не поворачивает информацию, если расположение DPS5020 отличается от горизонтального.

    • #3836

      С удовольствием пообсуждаю эти блоки. В режиме обмена мнениями и информацией. Разные точки зрения приветствуются)
      >>>Три цифры индикации мало.
      Ответ: Выбрать 4 цифры вместо 3 можно в меню “Parameters” пункт “Smart Display”. Кроме этого, задать выходное напряжение и ток с высокой точностью можно в меню профиля M0…M9 Profile, даже когда включен 3 значный режим индикации.

      Посчитаем теоретически возможную точность DPS5020. Установлен процессор STM32F100 который имеет 12-разрядные АЦП и ЦАП. Двенадцать разрядов – это 4096 отсчетов. Получаем теоретическую точность для напряжения: 50 вольт разделить на 4096 равно 0,012 вольт. Теоретическая точность для тока: 20 ампер разделить на 4096 равно 0,00488 ампер (тоесть 5 мА).
      Фактическая точность ещё хуже по двум причинам: 1) Используется не весть диапазон АЦП и ЦАП (что разумно и не спалит АЦП)
      2) Очень большой уровень помех и наводок на входы АЦП. Наводки идут с самого блока, так как он импульсный. Никаких фильтров и экранов для защиты АЦП там нет (что объяснимо для очень бюджетного блока питания).

      Моё резюме такое. Не стоит ждать от блока питания за $30 такой же точности как у БП за $300.
      В радиолюбительской практике в 99% случаев достаточно точности 0,1 вольт и 0,01 ампер.
      В тех редких случаях, когда нужна высокая точность, я бы советовал использовать внешние вольт- амперметры.

    • #3837

      Наверное я хочу слишком много от такого блока питания. Однако точность я на контроллерах повышал делая 2, 4, 8 или более замеров с последующим усреднением.
      Это не проблема, если требуемое число результатов в секунду является приемлемым.
      Собственно требуется для тока только обеспечить минимально хотя бы 10 милиампер, а следующим шагом удвоить то, что есть. Это не контроль, а установка нужного. Для контроля ошибка в 4 знаке не столь важна.
      Однако, для напряжения точность нужна выше и это при том, что как правильно отмечалось, импульсный блок генерирует ужасный сигнал, который содержит сильный шум. Меня спасает двойной Т-мост конденсаторный, без катушек перед внешним вольтметром с 5-ю цифрами. Да, вы правы. Только внешний вольтметр с отдельным питанием обеспечит точность измерения. Однако, теряется обратная связь с блоком питания для коррекции режимов по факту измерения.
      Хотелось бы иметь возможность влиять на процесс обеспечения питания, если нагрузкой является заряжаемый аккумулятор.
      p.s. Не ожидал быстрый ответ. Хотел только озвучить проблемы с которыми столкнулся. Вчера боролся с наводкой на осцилогаф от импульсных БП. Заметно помогло включение в разные розетки БП и осцилографа. Хотелось бы пообщаться Вайбером.

    • #3838

      >>>Однако, теряется обратная связь с блоком питания для коррекции режимов по факту измерения.
      >>>Хотелось бы иметь возможность влиять на процесс обеспечения питания, если нагрузкой является заряжаемый аккумулятор.
      В моей прошивке, как думаю и в китайской, нет программной обратной связи. Вся обратная связь реализована аппаратно в драйвере TL594. Входы АЦП используются только для отображения фактического напряжения и тока.
      Подробнее можно прочитать тут

      Усреднение в моей прошивке есть. Основной цикл программы составляет 100 миллисекунд. За каждый основной цикл прошивка выполняет следующие задачи: Замер напряжения и тока в АЦП, Опрос кнопок, Отрисовка экрана, Ответы на запросы модбас. В самом цикле замера делается 16 замеров через 3 миллисекунды. Потом эти 16 значений усредняются, пересчитываются через коэффициенты в напряжение и ток для последующего вывода на экран. Усредненное значение имеет уже 16 разрядов, что как бы повышает точность. Иногда называют такой подход повышения точности OVERSAMPLING, но я не уверен что это научно обосновано))))

    • #3839

      Сделал контроллер идеального диода по типовой схеме.
      Единственно, получилось два выхода (2 плюса).
      Один, как блок питания с обратной связью и второй только для заряда аккумуляторов -выше 2,5 вольта.

      You must be logged in to view attached files.
    • #3841

      Дисплей катастрофически мелкий, не позволяет использовать DPS с блоком питания в одном корпусе-
      нет гармонии. Большой ящик с микро дисплеем. Хорошая задумка, но размер дисплея убивает.
      С большим дисплеем- потрясающая конструкция получилась бы.
      Сделал ему переднюю панель. Перенес разъемы на другую сторону платы и развел печатку, как мне удобно.
      Все будет на алюминиевом шасси. В процессе… Радиатор медный, куллер австрийский.

    • #3842


      You must be logged in to view attached files.
    • #3844

      Ого! Супер конструкция получилась!!!
      Фотографии размером больше 1.5 МБ движок форума не даёт загружать. Уменьшайте размер фоток.
      Согласен, дисплей катастрофически маленький.
      Но сделать переход на дисплей с разрешением 240х320 точек почти не реально на имеющемся процессоре STM32F100. Для экрана с большим разрешением будут нужны уже другие шрифты, которые занимают в 4 раза больше места. А в прошивке уже нет свободной памяти. Да и тактовая частота 24Мгц очень низкая, чтобы комфортно прорисовывать дисплей с большим разрешением.

      Мне видится, что для перехода на большой дисплей нужно будет ещё дополнительный процессор помощнее, который бы управлял DPSом через UART по имеющемуся протоколу. Что-то вроде внешней панели оператора.

    • #3845

      А если использовать сопроцессор (еще один) для управления только индикатором?

    • #3846

      Если только индикацию, тогда на новом экране не будет меню. Поэтому нужно что-то полноценное.

    • #3847

      I have a few of these and they’ve been working well, but one of them has stopped regulating. vout is always the same as vin when it’s on. I have tried calibration and resetting defaults, has it broken? What could have caused this? Do you know a way to repair it?

    • #3848

      It is best to look at the gate signal of the output MOSFET with an oscilloscope. There should be a meander with an amplitude of Vin minus 5 volts and a frequency of about 65 kHz. The PWM should change depending on the Vset voltage. This signal is generated in the TL594 driver. Check out the diagrams here:

    • #3998

      Как вам новинка?

      • This reply was modified 4 months, 3 weeks ago by Doodad.
      You must be logged in to view attached files.
      • #4008

        Интересная новинка. Но как-то дороговато.

    • #4010

      5020 не прошивает на 4.4 стоит 4.3
      Шнуры, скорости, драйвера- менял
      При прошивке происходит выключение экрана и обрыв связи

      • #4013

        Чем прошиваете ST-Link или через USB? Какой программой прошиваете? Нужно больше подробностей. Желательно с фото или видео.

      • #4020

        Здравствуйте вот фото
        Прошивал чз USB

        • This reply was modified 4 months ago by mavi.
        • This reply was modified 4 months ago by mavi.
        • #4023

          Пожалуйста снизьте размер фото до 1Мб, чтобы они загрузились на сайт.

    • #4024

      Здравствуйте не получается

      You must be logged in to view attached files.
      • #4027


        You must be logged in to view attached files.
        • #4031

          Попробуйте прошить через USB с помощью STM32CubeProgrammer.
          Если и это не поможет, тогда остается только прошивать через ST-Link

          • #4032

            Спасибо за подсказку
            Прошился Cube по uart

            • #4033

              Может вы кнопки нажимали во время прошивки через DPSmaster?
              DPSmaster сам переводит блок в Update mode и никакие кнопки нажимать не нужно.

              • #4034

                Про то что DPSмастер переводит блок в Update mode Я знал.
                Кнопки не нажимались. Ели при включн войти в Update mode то нет связи с DPSмастером. На 1фото связь есть. На 2фото обрыв связи при прошивке. Как-то так. Спасибо.

    • #4035

      while trying to flash the firmware I think I shorted SWDIO and SWCLK or GND on my DPS5020 with the sewing needles as a connector. I got a spark, but DPS was still showing something on the screen and reacting to buttons. Now, after one powercycle, the display stays dead 🙁
      Any idea what happend and if I can revive my DPS5020?

      • #4036

        Hi. Most likely your DPS5020 is alive. Try another ST-Link if possible.

        • #4037

          Ok, will do. Any clue why the DPS5020 screen is staying dead now? I did not stated flashing while the shortcut occured!

Viewing 19 reply threads
  • You must be logged in to reply to this topic.

This Post Has 5 Comments

  1. Mitek

    Большое человеческое спасибо за DPS3003

  2. Bob

    С выхода регулятора ставим дроссель 3,2-3,6 мкгн, за ним электролит, микрофарад на 10. Далее схему на двух транзисторах IPB017N06N3

    и LTC4372. LTC4372 запитываем отдельно- от регулятора. Обратную связь переделываем на выход защиты и дублируем на случай обрыва резистором.

    Или, если нет падения через транзисторы, то лучше обратную связь установить за дроссель. А параллельно дросселю установить резистор 47 Ом.

    Но установить этот аварийный резистор на случай обрыва цепей обратной связи на самой плате регулятора.

    Это самый эффективный вариант защиты и от переполюсовки и от обратного напряжения и от пропадания питания.

  3. steven

    A great job you’ve done!

Comments are closed.