Free PDK is an open sourced and independently created tool-chain for the Padauk 8-Bit Microcontrollers, created as an alternative to the proprietary and closed tools provided by the Taiwanese company itself.

This includes the EasyPDKProg µC programmer hardware, adding support for the Padauk µCs to the SDCC C-Compiler, as well as comprehensive documentation of the instruction set architecture, and code examples.

The main focus is on supporting µCs of two Padauk series:

Padauk µCs are extremely inexpensive, priced as low as $0.03/pc in volumes of 100, which is why they generated a lot of interest after being featured by Dave from the EEVblog (first video and a bunch of follow-up videos). Despite the low price, it was found that the Padauk µCs sport an interesting architecture that can be a seen as a significant and meaningful extension of the Microchip PIC architecture. There is an extensive and active discussion on the EEVblog forum for this project and further discussion here on µC.net (German).

This page provides an overview of the different sub-projects created in the free-pdk GitHub organization. It also provides custom pinout diagrams for some of the Padauk µCs.

:link: Easy PDK Programmer

Image of the Programmer

Padauk µCs are programmed via a proprietary high-voltage protocol. The protocol was reverse engineered and a fully open source programmer that already supports almost two dozen Padauk µCs has been created. All sources for the programmer are available at:

:link: SDCC-based Open Source Tool-Chain

Padauk’s own tool-chain is based on a custom programming language called “Mini-C” with a syntax based on the C-language. This language is only supported by their own tool-chain, including IDE (“Padauk Developer Studio”) and programmer (“Writer”). The tool-chain also uses a custom binary format with encryption/obfuscation. Should you be interested in code samples in that custom language, take a look at free-pdk/fppa-code-examples.

The open source tool-chain is based on the Small Device C-Compiler (SDCC) and therefore does support Standard C and common binary output formats (intel hex and bin), including those used by the Easy PDK Programmer.

Please note that right now there is no interchangeability between both tool-chains. Binaries generated by SDCC cannot be written by the official Padauk programmer, but only by the Easy PDK Programmer.

Padauk µCs use different kinds of instruction sets: 13, 14, 15, or 16 bit (more information on these instruction sets can be found below). Support for the 14 and 15 bit Padauk instruction sets has been added to SDCC, a C compiler for small devices. Support for the 13 bit Padauk instruction set is being worked on.

Helpful SDCC resources:

:link: Installing SDCC

The latest binaries and sources of SDCC can be obtained on the SDCC website. If SDCC is available via your operating system’s package manager, please ensure that it is at least SDCC 4.0.0; older versions may not have support or only limited support for the Padauk µC.

:link: µC-specific Information and Pinouts

Note: Other µCs than the µCs listed here may be supported. If you want to learn more about the naming scheme, read more here.

:link: MTP (Flash) Variants

MCU OSS Status Arch. max IO ROM RAM Timers PWM CMP ADC Special Padauk Links
PFS154 Supported PDK14 14

2 KW

128 T16
T2 T3
2x 8‑Bit
3x 11‑Bit
1 LCD Product Page
Datasheet
PFS172 Supported PDK14 14

2 KW

128 T16
T2 T3
2x 8‑Bit 1 8‑Bit Product Page
Datasheet
PFS173 Supported PDK15 18

3 KW

256 T16
T2 T3
2x 8‑Bit
3x 11‑Bit
1 8‑Bit LCD Product Page
Datasheet

:link: OTP Variants

MCU OSS Status Arch. max IO ROM RAM Timers PWM CMP ADC Special Padauk Links
PMS150C Supported PDK13 6

1 KW

64 T16
T2
1x 8‑Bit 1 - Product Page
Datasheet
PMS15A Supported PDK13 6

0.5 KW
 (1 KW *)

64 T16
T2
1x 8‑Bit 1 - Product Page
Datasheet
PMS152 Supported PDK14 14

1.25 KW

80 T16
T2
1x 8‑Bit
3x 11‑Bit
1 - Product Page
Datasheet
PMS154C Supported PDK14 14

2 KW

128 T16
T2 T3
2x 8‑Bit
3x 11‑Bit
1 LCD Product Page
Datasheet
PMS171B Supported PDK14 14

1.5 KW

96 T16
 T2 T3
2x 8‑Bit 1 8‑Bit - Product Page
Datasheet

:link: Evaluation Boards

These are evaluation boards for the online-programmable MTP (as opposed to the OTP parts, which can only be programmed offline and once) Padauk µC. free-pdk/f-eval-boards.

:link: Instruction Sets, Opcodes, and Programming Sequence

The different Padauk µCs use either 13, 14, 15, or 16 bit instruction sets. The following files provide an overview over the different instruction sets.

More information, including information on the programming sequence, can be found at free-pdk/fppa-pdk-documentation

:link: Other Tools

  • Schematic Symbols: A collection of schematic symbols for many of the Padauk µCs.
  • Padauk µC Emulator written in VHDL: This project aims to provide a fully functional, timing accurate VHDL model for simulating PADAUK FPPA microcontrollers. free-pdk/fppa-pdk-emulator-vhdl
  • A bunch more tools are located at free-pdk/fppa-pdk-tools.
    • Disassembler: dispdk supports 13 bit, 14 bit, 15 bit and 16 bit opcodes
    • Emulator: emupdk supports 14 bit opcodes, no peripheral support yet requires mapping of processor ID in emucpu.c
    • PDK converter: depdk convert/deobfuscate any PDK file to binary

:link: Projects from the Community

These projects are auto-populated once per day by searching GitHub for repositories with the padauk topic. Projects that additionally have the free-pdk topic are highlighted as Uses Free PDK toolchain. Projects that contain .PRE files are marked as Uses proprietary toolchain.

:link: Latest Activity

The latest activity in the free-pdk GitHub organization is fetched at least once per day and displayed below.

avatar image

@freepdk commented on issue free-pdk/easy-pdk-programmer-software#10
PFC161 support
Support was added with commit e064f5d29259fe69321697e12b6a9cd4ae1abd6c

In fact PFC151 and PFC161 are identical (just rebranded).


avatar image

@freepdk commented on issue free-pdk/easy-pdk-programmer-software#9
PFC151 support
Support was added with commit e064f5d29259fe69321697e12b6a9cd4ae1abd6c

In fact PFC151 and PFC161 are identical (just rebranded).


avatar image
@freepdk pushed to free-pdk/easy-pdk-programmer-software
  • e064f5d add support for PFC151 and PFC161 (the physical ICs are identical)

avatar image
@freepdk pushed to free-pdk/easy-pdk-programmer-software
  • fd47836 clarify default fuse is setting 2 core mode

avatar image
@freepdk pushed to free-pdk/easy-pdk-programmer-software
  • 6843400 refactor programmer protocol and moved several ic specific programming things to parameter
    add support for limited voltage writes

avatar image
@spth pushed to free-pdk/fppa-pdk-documentation
  • 5cce485 Comment on relation between PFC886 and MF520, MF616.

avatar image
@spth pushed to free-pdk/fppa-pdk-documentation

avatar image
@spth pushed to free-pdk/fppa-pdk-documentation
  • 5bf08a4 Document PFC886 instructions.

avatar image

@sengiv commented on issue free-pdk/easy-pdk-programmer-hardware#16
No easy way to thank you, short of opening an issue
@brainsmoke thanks for your reply, you're right prices have changed. At the current prices it's becoming more economical to get the original programmer : )

Btw, if you dont mind sharing some details about your project. What are you using this mcu's for? Production or hobby? Would you say these mcu's are worth the extra work?

As far as I can see the extra cost & work doesnt make sense unless I'm going for scaled production.


avatar image

@brainsmoke commented on issue free-pdk/easy-pdk-programmer-hardware#16
No easy way to thank you, short of opening an issue
The STM32F072 has been going up in price from US$2.50 to US$6.92 (and it's out-of-stock)
I paid US$23.65 for enough parts for three (with extras for many parts), but the same parts list
is US$33 now excluding the STM32.

This is the BOM for the order for comparison: (I might have left out stuff that I had already)
At the time the boost converter was not in stock, so I used a compatible part.

[LCSC_Exported_20210609_011821.csv](https://github.com/free-pdk/easy-pdk-programmer-hardware/files/6618480/LCSC_Exported_20210609_011821.csv)


avatar image

@sengiv commented on issue free-pdk/easy-pdk-programmer-hardware#16
No easy way to thank you, short of opening an issue
how much did this cost you?
where did you source the parts?

looking to build one like yours, but my cost (lcsc.com) seems to high.


avatar image
@freepdk pushed to free-pdk/easy-pdk-programmer-software
  • 6449876 build with macos11 image on gh workflows
  • b97f3fb enable build on feature branches

avatar image
@freepdk pushed to free-pdk/easy-pdk-programmer-software
  • b97f3fb enable build on feature branches

avatar image

@Vanbatai123 commented on issue free-pdk/easy-pdk-programmer-software#59
Shield padauk programmer bluepill
i read some comment and it said that stm32f103 don't have dac so it cant use for this programmer.


avatar image

@EDU-BR-TAR commented on issue free-pdk/easy-pdk-programmer-hardware#15
Should the design be easy to get via JLCPCB (and distribution in the EU be feasible)?
i understand , thanks for answering

________________________________
De: freepdk ***@***.***>
Enviado: quinta-feira, 3 de junho de 2021 10:49
Para: free-pdk/easy-pdk-programmer-hardware ***@***.***>
Cc: EDU-BR-TAR ***@***.***>; Comment ***@***.***>
Assunto: Re: [free-pdk/easy-pdk-programmer-hardware] Should the design be easy to get via JLCPCB (and distribution in the EU be feasible)? (#15)


I have a humble idea to lower the cost of the board, I can make a shield for the bluepill board many people have this board in their hands, I just need someone's help to modify the firmware for the stm32f103c8t6

There was a discussion about this already. STM32F10x does not have 2 DACs which are needed in order to provide the reference voltages for the opamp.

And a big heads up to all people thinking they have a so called "BluePill" board.
In some other projects I did, it turned out that >90% of all sold bluepill boards come with a FAKE STM32 IC. Some of them (using the GD32F103) seem to be 95% compatible but some using the cheaper fakes (CS32F103/CH32F103) struggle with many problems (even USB is not working without adding quirks to the firmware). The most annoying fact is that the fake ICs also come with a fake label claiming to be a "real" STM32F103. Dealing with this situation in a hobby open source project is something I can strongly recommend to AVOID.

My point of view:
==> There is no STM32F103 anymore which "many people" have (almost all of them buying clones)
==> Do not use STM32F103 for any project where you do not manufacture the complete hardware yourself and you source the IC directly from ST / DigiKey / Mouser / ...
==> Do not create add on hardware for devices which most likely contain clone STM32F103. You will waste more time dealing with the clone problems than you can spent on the actual project.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub<https://github.com/free-pdk/easy-pdk-programmer-hardware/issues/15#issuecomment-853884461>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AUKI5YRGKSEZLIPTGKEH2ZLTQ6B7HANCNFSM4NJICR2A>.


avatar image

@freepdk commented on issue free-pdk/easy-pdk-programmer-hardware#15
Should the design be easy to get via JLCPCB (and distribution in the EU be feasible)?
> I have a humble idea to lower the cost of the board, I can make a shield for the bluepill board many people have this board in their hands, I just need someone's help to modify the firmware for the stm32f103c8t6

There was a discussion about this already. STM32F10x does not have 2 DACs which are needed in order to provide the reference voltages for the opamp.

**And a big heads up to all people thinking they have a so called "BluePill" board.**
In some other projects I did, it turned out that >90% of all sold bluepill boards come with a FAKE STM32 IC. Some of them (using the GD32F103) seem to be 95% compatible but some using the cheaper fakes (CS32F103/CH32F103) struggle with many problems (even USB is not working without adding quirks to the firmware). The most annoying fact is that the fake ICs also come with a fake label claiming to be a "real" STM32F103. Dealing with this situation in a hobby open source project is something I can strongly recommend to AVOID.

My point of view:
==> There is no STM32F103 anymore which "many people" have (almost all of them buying clones)
==> Do not use STM32F103 for any project where you do not manufacture the complete hardware yourself and you source the IC directly from ST / DigiKey / Mouser / ...
==> Do not create add on hardware for devices which most likely contain clone STM32F103. You will waste more time dealing with the clone problems than you can spent on the actual project.


avatar image

@EDU-BR-TAR commented on issue free-pdk/easy-pdk-programmer-hardware#15
Should the design be easy to get via JLCPCB (and distribution in the EU be feasible)?
I have a humble idea to lower the cost of the board, I can make a shield for the bluepill board many people have this board in their hands, I just need someone's help to modify the firmware for the stm32f103c8t6


avatar image

@Vanbatai123 commented on issue free-pdk/easy-pdk-programmer-software#58
Issue with pfs173 and compile source code. Please help me!
After trying to make a new hardware, i saw it can program the pfs173 chip, but verify still show error. I ignore verify step and it work, Hope you can fix this issue.
_$ ./easypdkprog -n PFS173 --noverify write helloworld_pfs173.ihx
Erasing IC... done.
Writing IC (184 words)... done.
Calibrating IC
* IHRC SYSCLK=8000000Hz @ 4.00V ... calibration result: 7966812Hz (0x83) done._



avatar image
@freepdk pushed to free-pdk/easy-pdk-showcase-projects
  • e744a1b new sample project 'noiseplug' in assembly (includes PFS154 emulator for host PC)

avatar image

@stm8stm8stm8 commented on issue free-pdk/easy-pdk-programmer-software#57
PMS271 support
pfc886,8核心的有研究吗?
https://bbs.21ic.com/icview-3134134-1-1.html
感兴趣的话一起研究一下.我邮箱suzhiming@88.com


avatar image
@freepdk pushed to free-pdk/easy-pdk-showcase-projects

avatar image
@cmfcmf pushed to free-pdk/free-pdk.github.io
  • 4fd10f7 Bump nokogiri from 1.11.1 to 1.11.4 (#52)

    Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.11.1 to 1.11.4.
    - [Release notes](https://github.com/sparklemotion/nokogiri/releases)
    - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.11.1...v1.11.4)

    Signed-off-by: dependabot[bot] <support@github.com>

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>