Merry Christmas!
Making the 2024 Christmas Card: A New Look, Same Core
As the festive season approaches, it’s time for another dive into the making of our annual Christmas card here at Norwegian Creations.
This year, we’re excited to share the 2024 edition, which continues to feature the Paduak-circuit with the PFS154, albeit with a fresh PCB design.
While the circuit remains fundamentally the same, there are a few things worth noting, particularly in the board’s design and its low power consumption.
The Design Process: A Gingerbread Man with a Circuit Heart
As you probably have understood by looking at our earlier blog post:
Each year they have a different look
This year’s card has a fresh new look that’s sure to bring a smile to your face =)
While the Paduak PFS154-microcontroller are still at the heart of the card, we’ve given it a new twist by designing the PCB in the shape of a gingerbread man (another member (and the last?) of the “Gingerbreadfamily”).
So the change is mostly cosmetic!
The body pure FR4, while the “hair” is copper, the white details are solder-mask and the black colors are silk screen.
The circuit
The PFS154 micro-controller remains the brain of the operation, orchestrating the Christmas magic.
As stated in last years post (and worth repeating); you can read more about the simplistic nature of this MCU in the posts located here!
Low Power, “High Impact”
One of the features of the created Padauk-cards is the low power consumption.
Some of the implemented low-power-design-methods:
- After the “intro” is played to turn the card ON, do we reduce the clock speed to an absolute minimum
- PWM in the ON-state (with reduced clock speed) to decrease LED power consumption
- The PWM duty cycle is selected based on current battery voltage (behavior adjustment based on battery voltage can be read more about here)
- OFF-state can only be canceled by an interrupt. In this OFF-state is uses ~0,18 uA!
How to program it?
The Christmas Card can handle the programming voltages, but the battery cannot, so the battery should not be present when programming happens!
We programmed it using the Easy PDK programmer, and the firmware is written in C and compiled it using the Free PDK toolchain (docs: Easy PDK Programmer (Software & Hardware)).
We used last years Tag-Connect compatible programming header, and used a Tag-Connect (TC2030-IDC-NL) + an adapter.
The compiled firmware can be downloaded here.
(Remember that this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.)
After initial setup, we got the following output when programming:
λ make all program run makebin -p .output/NC_christmas_card_PFS154.ihx .output/NC_christmas_card_PFS154.bin ---------- Segments ---------- . .ABS. 00000000 00000000 = 0. bytes (ABS,CON) . .ABS. 00000000 00000000 = 0. bytes (ABS,CON) FUSE4 00000000 00000002 = 2. bytes (ABS,CON) HEADER1 00000000 00000002 = 2. bytes (ABS,CON) HEADER3 00000000 00000010 = 16. bytes (ABS,CON) PREG2 00000000 00000002 = 2. bytes (ABS,CON) RSEG0 00000000 00000008 = 8. bytes (ABS,CON) DATA 00000002 00000020 = 32. bytes (REL,CON) HOME 00000022 00000002 = 2. bytes (REL,CON) SSEG 00000022 00000001 = 1. bytes (REL,CON) GSINIT 00000024 00000042 = 66. bytes (REL,CON) GSFINAL 00000066 00000002 = 2. bytes (REL,CON) CODE 00000068 000005AC = 1452. bytes (REL,CON) CONST 00000614 00000022 = 34. bytes (REL,CON) ------------------------------ Size of NC_christmas_card_PFS154.bin: 4096 bytes EASYPDKPROG/easypdkprog -n PFS154 write .output/NC_christmas_card_PFS154.ihx Erasing IC... done. Writing IC (2047 words)... done. Calibrating IC * ILRC SYSCLK=54400Hz @ 3.00V ... calibration result: 55468Hz (0xC0) done. Setting of security fuse disabled. Use '--allowsecfuse' to set security fuse. Writing IC Fuse... (0x30FD) done. EASYPDKPROG/easypdkprog -r 3.5 start Running IC (3.50V)... IC started, press [Esc] to stop.
The Stand
The stand was created as previous and that can be studied in more detail in this post 🙂
As earlier, was the result 3D-printed in-house.
The Result
As stated earlier is this the last person in the Gingerbread-family. What will start next year?