
Firmware Finesse, Hardware Harmony, DIY Driven
I love electronic developments in all its phases: from defining the requirements, creating the electrical circuit, placing components and routing the PCB, to defining the firmware structure, implementing low-level drivers and designing tasks with FreeRTOS with mutexes and queues.
Only in this way does the project come to life!

Feel free to explore the entire list of my projects…

This is a portable LED controller based on the ESP32 SoC. It is powered by 18650 lithium-polymer batteries and it is designed to synchronize LED patterns with music. To achieve this, I developed an analog circuit with a high SPL microphone connected to a PCM1808 DAC via a low-pass filter preamplifier. The input signal to read more…

This is a 5x5x5 LED cube based on the Cortex-M0+ SoC ATSAML21E16B. The 125 RGB LEDs are multiplexed and controlled by 5 shift registers of 16 bits each, which also control the LEDs Anode. The CPU is running FreeRTOS, which manage the reading of the LEDs animations from a uSD card and the LEDs multiplexing. read more…

This is a demo board I created to test the I2S PCM1808 DAC. An XTAL oscillator based on SN74LVC1GX04 generates the DAC SCKI clock signal, and a very low-power DC-DC boost converter is responsible for powering the analog circuitry. The signal from a microphone is amplified and filtered before entering the DAC. Test with Raspberry read more…

These are a series of very simple PCBs developed for LED lighting. They are employed to connect two strips of Pixel LED placed at a considerable distance, ensuring that the digital control signal for the pixels does not degrade. WS281x 485 This is a versatile and cofigurable RS485 TX-RX transceiver for long range serial LED strip read more…

This clock is based on the ATSAML21E16B, a Cortex-M0+ microcontroller. The LTC4080DC-DC converter handles both charging the battery and powering the CPU, both during the charging phase and regular operation. The CPU controls a 6×3 matrix of LEDs in multiplex and a buzzer through PWM. The idea behind designing this circuit arises from the desire read more…

This is a compact single-sided circuit based on a small 8-bit microcontroller (PIC16F18313) that controls a LED2001, a buck LED controller with current feedback. It enables powering a high-power LED with up to 10W. First prototype Firstly, I created a functional prototype by producing the PCB in my laboratory using the “press ‘n’ peel” technology. read more…

This is a Nixie tube clock that combines the charm of vintage technology used until the 1940s with modern circuit solutions based on a microcontroller. The heart of this system is an ATXMEGA128A3U microcontroller running a state machine firmware. The CPU controls the Nixie tubes brightness through high-voltage shift registers connected on the SPI bus. read more…
Feel free to explore all other tricks…

Enhancing code efficiency and simplifying complexity through the implementation of a State Machine, achieved with the elegance of only two simple elements: Switch statement and Enum. In the dynamic world of firmware engineering, efficient code organization is crucial. One powerful… read more…

Here’s how to light up many LEDs using few I/O and optimized firmware. Understanding Multiplexing Multiplexing is a method that enables the control of multiple LEDs using fewer pins on a microcontroller or other controlling devices. It involves rapidly switching… read more…

Peripheral Module Disable: firmware strategies for optimal power savings One of the key challenges in designing low power devices is to minimize power consumption, especially in battery-powered applications. The use of Peripheral Module Disable (PMD), that is for example available… read more…

Using lookup talbes to optimize slow 8-bit CPU calculations. The challenge: Fast calc on 8-bit CPU In the realm of low-power microcontrollers, performing complex calculations can become a significant challenge. 8-bit microcontrollers are characterized by limited resources: executing complex mathematical… read more…