Author Topic: EEVblog #1144 - Padauk Programmer Reverse Engineering  (Read 759279 times)

0 Members and 64 Guests are viewing this topic.

Offline bitwelder

  • Super Contributor
  • ***
  • Posts: 1048
  • Country: fi
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1500 on: July 01, 2025, 10:16:48 am »
Wow, 6 years since the video and first post and Padauk is apparently still going strong.  :)
Has the product family being updated?
 

Offline MOSTAFA IL IDRISSI

  • Newbie
  • Posts: 1
  • Country: fr
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1501 on: September 12, 2025, 09:14:30 am »
Hello

No one can help me?
Which is the actual version? Where can I find it? On github is only 1.3 Where can I find an actual .dfu firmware?

Hello
I did had the same message as you but finally I get it functionning. in Windows I downloaded this folder EASYPDKPROG_WIN_20200713_1.3 from https://github.com/free-pdk/easy-pdk-programmer-software/releases/tag/1.3 , and then made sure that all compilation and upload are done in CMD inside the folder containing easypdkprog.exe.
I bought some chips in Apr 2025 and the programmer is still functionning
regards
« Last Edit: September 12, 2025, 09:18:48 am by MOSTAFA IL IDRISSI »
 

Offline spth

  • Regular Contributor
  • *
  • Posts: 170
  • Country: de
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1502 on: November 04, 2025, 11:57:08 am »
Has the product family being updated?

Yes. See the news section on their website (https://www.padauk.com.tw/en/news/). It is mostly datasheet updates, but each time the version of the datasheet is v0.00, that is a new device.
 
The following users thanked this post: icraftcrafts

Offline tim_

  • Frequent Contributor
  • **
  • Posts: 260
  • Country: de
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1503 on: November 17, 2025, 09:44:19 pm »
LCSC got a lot of new Padauk Microcontrollers:

https://www.lcsc.com/category/941.html?brand=1246

PML100B (OTP) for $0.0276: https://www.lcsc.com/product-detail/C49173943.html
PFS123B (Flash) for $0.0433: https://www.lcsc.com/product-detail/C49173944.html

They also have the PFC460 in stock now, with 4 FPPAs: https://www.lcsc.com/product-detail/C22365212.html
 
The following users thanked this post: icraftcrafts

Offline tim_

  • Frequent Contributor
  • **
  • Posts: 260
  • Country: de
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1504 on: November 17, 2025, 10:02:44 pm »
The PML100B are actually quite interesting. They are capable of driving LEDs at >200mA on three pins. I am suspecting that they are being used in all the low-cost battery powered lights.

PFS123B is a bit more powerful than the earlier flash devices. And it supports a 5V low voltage programming mode - maybe it is possible to program it directly with an arduino or other 5V MCU?
 

Offline tim_

  • Frequent Contributor
  • **
  • Posts: 260
  • Country: de
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1505 on: November 17, 2025, 10:20:10 pm »
It's possible to configure the driving capability of the high current pins. That way you can even get rid of any external resistors. That's truely low cost engineering.

The pin-out and functionality exactly fits to one battery operated light I have analyzed.
 

Offline tim_

  • Frequent Contributor
  • **
  • Posts: 260
  • Country: de
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1506 on: January 31, 2026, 11:14:56 pm »
I did some experiments towards a CH32V003 based programmer. This comes at a BOM of <$0.50...

https://github.com/cpldcpu/Splinter/tree/master
 
The following users thanked this post: oPossum, icraftcrafts

Offline crasheg

  • Newbie
  • Posts: 2
  • Country: by
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1507 on: February 28, 2026, 02:40:55 pm »
Greetings.
Thank you for the interesting forum thread; you've done a great job!
Has anyone encountered errors with the original PADAUK 5S-P-003 programmer during development?
When using in-circuit programming (I select On-board programming when compiling the project), I get the "IC not working" error. What could be causing this? In my humble opinion, this could be due to the high capacitance on the VDD pin. Is it possible to modify the original programmer for use with the PMS171B given the high capacitance on the power supply line (470uF)?
 

Offline crasheg

  • Newbie
  • Posts: 2
  • Country: by
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1508 on: February 28, 2026, 02:43:25 pm »
Previously, I installed a Schottky diode directly before the PMS171B and programming went without problems, but now I want to get rid of it by modifying the programmer.
 

Offline spth

  • Regular Contributor
  • *
  • Posts: 170
  • Country: de
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1509 on: April 16, 2026, 10:51:36 am »
I printed it with a very fine resolution (0.2mm nozzle, 0.1mm layer height) so it  took a bit longer than needed, however your can print this in less than 30 minutes.

Here the stats:
Build time: 1 hours 43 minutes
Filament length: 2200.6 mm
Plastic weight: 6.62 g (0.01 lb)
Material cost: 0.30 USD

(3D printer used from our local hacker space, Filament used PET-G, not this rubbish ABS).

I've looked into printing some cases using a Sovol Zero using PETG through the standard 0.4mm nozzle in 16min. I had to experiment with support settings a bit to get a good balance between sufficient support, and too-hard-to-remove support. The cases turned out okayish, though naturally not as nice as yours.
I wonder if we should modify the design a little bit to make it work better for the common 0.4mm nozzles. Looking at the 1.2 pcb, there should at least be enough space to make that round column a bit bigger.
 
The following users thanked this post: icraftcrafts

Offline tim_

  • Frequent Contributor
  • **
  • Posts: 260
  • Country: de
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1510 on: June 05, 2026, 10:56:20 am »
It seems Padauk is also jumping on 32Bit now:

https://www.padauk.com.tw/en/product/show.aspx?num=263&kind=44

 

Offline ataradov

  • Super Contributor
  • ***
  • Posts: 12464
  • Country: us
    • Personal site
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1511 on: June 05, 2026, 01:59:20 pm »
Looks like a decent RISC-V device, seems to be much better characterized than typical.

But a thing that is missing right away - flash wait states specification. It looks like it needs at least 1 WS regardless of the clock and it supports up to 7 WS. If you actually need 7 WS at 60 MHz, it would be one slow device.

But this really needs to compete with WCH. If it is not significantly cheaper, then there is no point.

Same STM-inspired peripherals are getting tired. Some vendor has a chance to stand out with some better designed peripherals.
« Last Edit: June 05, 2026, 02:09:55 pm by ataradov »
Alex
 

Offline tim_

  • Frequent Contributor
  • **
  • Posts: 260
  • Country: de
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1512 on: June 12, 2026, 08:00:36 pm »
There is a new list of supported devices now:

https://github.com/free-pdk/easy-pdk-programmer-software/issues/94
 
The following users thanked this post: bingo600

Offline tim_

  • Frequent Contributor
  • **
  • Posts: 260
  • Country: de
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1513 on: June 12, 2026, 09:47:09 pm »
>Same STM-inspired peripherals are getting tired.

Agreed. It would be cool to have a <5cent RV32EC device with spartanic periphery.
 

Offline Waldek_S

  • Newbie
  • Posts: 1
  • Country: pl
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1514 on: July 12, 2026, 05:01:09 pm »
Hi everyone,
Many years ago (maybe 5), I bought an XL4015 converter with voltage and current LED displays on the top PCB, with a working RxD and TxD serial interface circuit through which I could read the currently measured and displayed voltage and current values. There was a 20-pin MCU soldered in there (probably an STM8S003F3P6). I've been trying to buy these converters with a voltmeter and ammeter two years ago (link: https://pl.aliexpress.com/item/1005007284538281.html?spm=a2g0o.productlist.main.29.3a4bbOPObOPO5f&algo_pvid=e6bb761c-811d-4ac0-a950-7f4896adfc72&algo_exp_id=e6bb761c-811d-4ac0-a950-7f4896adfc72-28&pdp_ext_f=%7B%22order%22%3A%2215%22%2C%22spu_best_type%22%3A%22price%22%2C%22eval%22%3A%221%22%2C%22fromPage%22%3A%22search%22%7D&pdp_npi=6%40dis%21PLN%2122.15%2122.99%21%21%2138.73%2140.19%21%40211b6c1717838632501684229e9ed6%2112000040068875832%21sea%21PL%210%21ABX%211%210%21n_tag%3A-29910%3Bd%3Ac4a09ebd%3Bm03_new_user%3A-29895&curPageLogUid=488jqG0LOLQK&utparam-url=scene%3Asearch%7Cquery_from%3A%7Cx_object_id%3A1005007284538281%7C_p_origin_prod%3A), but unfortunately, in the currently HW-035 V3.0.0 version, the MCU was replaced with one in an SOIC16 package (unmarked), and despite two pins being connected to the serial pin connector, there's no transmission. Most Chinese vendors do have a description of this serial pin (GND RxD TxD), but it display (Not Connected) in parentheses.
 Since I need a computer to read the voltage and current values ​​to calculate power and charge, I spent a long time searching for an MCU that could replace the one is currently use. The requirements are VDD pin 1, GND pin 16, ADC pin 9, ADC pin 12, and GPIO for remaining 12 pins. I found a PADAUK PFS122-S16A, which basically meets my requirements. I assembled the easypdkprog programmer (I've read all 61 pages of posts, and thank you for your titanic work to the contributors on this forum, especially Dave with the video in post #0, spth, js_12345678_55AA, tim_, serisman, jacola, who addressed the PFS132 issue in 2023, which is of particular interest to me right now).
 I programmed the PFS122-S16A without any problems, but it underestimates the voltage measurement, displaying 5.22V-5.37V instead of constans 6.00V, while the one desoldered from the PCB displays the correct and accurate value of 6.00V. I believe this is because the PFS122-S16A can only use VCC as a reference voltage for the ADC. I know I could change the divider on the ADC input, but I decided to use the PFS132-S16A, whose pinout also fits this application and offers a wider range of ADC reference voltage options. And here's the reason for my initial activity on this forum – namely, does anyone know if the PSF132-S16A can be programmed using easypdkprog? If so, what are the contents of the FPDKICDATA structure for the PFS132-S16A? And especially what should be the value of id12bit, otpid (0x2db0 is ok?), type (by the way, what is the difference between FPDK_IC_FLASH_1 and FPDK_IC_FLASH_2?), vdd_cmd_read, vpp_cmd_read, vdd_read_hv, vpp_read_hv, vdd_cmd_write, vpp_cmd_write, vdd_write_hv, vpp_write_hv, vdd_cmd_erase, vpp_cmd_erase, vdd_erase_hv, vpp_erase_hv, write_block_size, write_block_clock_groups, write_block_clock_per_group, erase_clocks?
 Based on PFS132.inc, I prepared the sdcc/include/pdk/device/PFS132.h file for compiling sdcc with a modified file sdcc/include/pdk/device.h:
...
#include "device/pfs173.h"
#elif defined(PFS132) // add WS
#include "device/pfs132.h" // add WS
#elif defined(PMS131)
...

I modified the FPDKICDATA structure by copying the structure for PFS172, changing: name[32] to "PFS132", id12bit 0x2db0, id12bit 0x764. When I connect the PFS132-S16A to easypdkprog and run the command:

C:\Free_pdk\easypdkprog\EASYPDKPROG_WIN_1.3>easypdkprog -v probe
Searching programmer... found: COM4
FREE-PDK EASY PROG - Hardware: 1.2 Firmware: 1.3 Protocol: 1.3
Probing IC... found.
TYPE: FLASH RSP: 0x3B6 VPP=4.50 VDD=2.00
Unsupported IC

When I changed the ID12bit to 0x76C and reduced the vpp_cmd_read voltage from 5.5V to 5.0V, I got the following after running the command:

C:\Free_pdk\easypdkprog\EASYPDKPROG_WIN_1.3>easypdkprog -v probe
Searching programmer... found: COM4
FREE-PDK EASY PROG - Hardware: 1.2 Firmware: 1.3 Protocol: 1.3
Probing IC... found.
TYPE: FLASH RSP:0x3B6 VPP=4.50 VDD=2.00
IC is supported: PFS132 ICID:0x76C

Then the read command also doesn't display an error:
C:\Free_pdk\easyPDKprog\EASYPDKPROG_WIN_1.3>easyPDKprog -v -n PFS132 -b read HW035_V300_WS132.bin
Searching programmer... found: COM4
FREE-PDK EASY PROG - Hardware:1.2 Firmware:1.3 Protocol:1.3
Reading IC (2048 words)...done.

But the read content of the FLASH memory of the not-yet-programmed PFS132-S16A doesn't look correct - I think that, apart from the last 16 words, the rest should contain the words 0x3FFF, but they don't.

Errors are generated by invoking the following commands:
C:\Free_pdk\easypdkprog\EASYPDKPROG_WIN_1.3>easypdkprog -v -n PFS132 erase
Searching programmer... found: COM4
FREE-PDK EASY PROG - Hardware:1.2 Firmware:1.3 Protocol:1.3
Erasing IC... FPDK_ERROR: command ack failed / wrong icid
and
C:\Free_pdk\easypdkprog\EASYPDKPROG_WIN_1.3>easypdkprog -v -n PFS132 -f 0x017d --runvdd=3.30 write HW035_V300_3.hex
Searching programmer... found: COM4
FREE-PDK EASY PROG - Hardware:1.2 Firmware:1.3 Protocol: 1.3
Erasing IC... FPDK_ERROR: command ack failed / wrong icid

And when I connect the PFS122-S16A to easypdkprog and run the command:

C:\Free_pdk\easypdkprog\EASYPDKPROG_WIN_1.3>easypdkprog -v probe
Searching programmer... found: COM4
FREE-PDK EASY PROG - Hardware: 1.2 Firmware: 1.3 Protocol: 1.3
Probing IC... found.
TYPE: FLASH RSP: 0xE53 VPP=4.50 VDD=2.00
IC is supported: PFS172 ICID: 0xCA6

BTW, what does RSP: 0x3b6 or RSP: 0xE53 mean?
I'm counting on your help.
Regards,
Waldek
« Last Edit: August 02, 2026, 07:02:17 pm by Waldek_S »
 

Offline pastaclub

  • Regular Contributor
  • *
  • Posts: 68
  • Country: th
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1515 on: September 01, 2026, 01:20:27 pm »
I wrote a syntax highlighter for Padauk Mini-C in VSCode.

It can be installed via VSCode Extension Marketplace (search for Padauk) or you can clone the github repo and run the install script:
https://github.com/pastaclub/vscode-padauk-mini-c

This is for Padauk's own Mini C, not for SDCC. It supports Padauk style macros, unrolled loops, registers, flags, and padauk instructions in inline assembly.
 
The following users thanked this post: oPossum


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf