A walk down the low-cost MCU-road

Introduction

Some projects here at Norwegian Creations involves MCUs with a good selection of internal modules in hardware. But sometimes cost is very(!!) important, and much other things are not (how much RAM does your headlamp need?).

So in cases like that: If we need an MCU, how low in performance (=> price) can we go to meet the minimum system behavior?

In 2019 Tim’s blog published an exciting piece called “The “terrible” 3 cent MCU – a short survey of sub $0.10 microcontrollers.”

And as you can read, did things from Padauk come up as a good choice.

Combined with with the open source toolchain Free PDK (and the Easy PDK Programmer) was this a no-brain contender for more exploration.

Enter the PFS154 from Padauk

The first choice for this part-exploration adventure fell on the PFS154.

Mainly because it was possible to program multiple times, and that sourcing was not a super-big issue.

As you can see doesn’t the PFS154 have so many features compared to a MCU in the SAM S70 Series.

But that means only 45 registers and a very short datasheet (91 pages compared to 1942 pages in the SAM S70 datasheet). And who wants to pay for things they do not use? (e.g. what do you say when you find a SAM S70 in your toothbrush?)

Sourcing

An important challenge to solve was get our hands on this thing. Because it’s impossible to source through suppliers such as Digi-Key, Mouser or Farnell.

But chineese places like LCSC has them, and the price is rather okey (but have increased much during the ongoing “chip shortage“).

So we bought some different PFS154-packages to around US$0.1/piece and was happy 😀

Toolchain

Padauk has a proprietary (and closed) toolchain, but Free PDK is an open source toolchain based on the SDCC compiler made for several Padauk-MCUs.

We will use the Free PDK-toolchain when we dive deeper into this. Mainly because it gives us the ability to program for the SDCC C-compiler (not the Padauk-proprietary “miniC“).

Getting ready to test the PFS154

We made a quick PCB that had the goal of supporting this experimentation. So a bunch of headers and easy access to different things was highly valued!

The simple schematic for the PFS154-experimentation-PCB

The quickly assembled experimentation-PCB (with an PFS154-S14 mounted) on top of an easy-pdk-programmer

An assembled easy-pdk-programmer-PCB
The easy-pdk-programmer inside a 3D-printed casing

Example project, what to make?

With so simple architecture we cannot make fancy things like a object-detection-system on a PFS154, but there exists a lot of simple things where it really can shine!

Look around you! In your headlamp, what do you think controls the blinking speed? An expensive automotive-grade MCU?

For our example project we thought of thing such as a power sequence controller, a state-remembering push-button-controller, a user-input-filter,a DS18B20 interpreter etc. But the final decision fell on a “TRNG” (a true random number generator).

Is it possible to make a “TRNG” on a PFS154?

And how do we get the created data out?

We talked about randomness in this post, and the implementation (and discussion) became several pages long, so we divide this out in a separate post!

Final thoughts

It can be a challenge to create useful things with “low cost” MCU’s. Obviously the cost is reduced where it can be, with accompanying sacrifices.

But, it’s no fun without some challenge.

In this space it’s all about squeezing out the required performance, features and cost (and balance them) to meet the operation requirements (and make both the CPO and CFO happy).

Stay tuned, in a later blog post we will start our journey where we test out a “TRNG” on a PFS154! (Update 17.11.2022: Continue reading the example here).

Related Posts