Minimalism AVR development board

Lacking of proper development board always poses huge resistance for me to jump onto a new MCU. Even with the most prototyping friendly DIP packages, wiring a programming header onto the breadboard is both troublesome and unreliable. Things become worse when the MCU is an AVR. There is absolutely no way to mount a 2×3 0.1in pitch programming header onto the breadboard. It was such a pain until recently I found a elegant way to make a quick and dirty minimalism board. Here is how.

Continue reading “Minimalism AVR development board”

HOWTO: Use STM32 SPI half duplex mode

I’ve got my hands onto some STM32F030F4P6 ARM-Cortex M0 processors. Though touted as “32 cents 32-bit micro”, it is not that inexpensive from DigiKey in one-off quantity ($1.45). However it is still cheaper than ATmegas and offers 3 times the performance. The chip comes in 20-pin TSSOP package. Limited pins require much more thoughts when assigning pin function. For example, using 3-pin half-duplex SPI instead of 4-pin full-duplex SPI saves me 1 very precious GPIO pin. Continue reading “HOWTO: Use STM32 SPI half duplex mode”

HOWTO: Write a display driver for SEGGER emWin

One lucky day you wake up to find your dream of creating sophisticated graphics user interface for MCU projects comes true, because STMicroelectronics has released a free version of SEGGER emWin for STM32 line of ARM controllers. But your excitement is quickly balanced by the frustration that your favourite LCD panel is not supported. That is a typical day of mine, and my favourite LCD is a 2.6″ 400×240 IPS panel, model TFT1P5971-E by Truly. This post is about how to make the LCD usable with emWin. Continue reading “HOWTO: Write a display driver for SEGGER emWin”

Opensource STM32 development

In an upcoming project I need a micro controller that operates: 1x 16-bit DAC (SPI); 1x 24-bit ADC (SPI); 1x 8-bit parallel LCD; 1x rotary encoder; 1x PWM fan; 1x fan tachometer; 1x temperature sensor (DS18B20); 2x analog switches; 1x uplink UART; 4x push buttons, and some voltage monitoring for various power rails. To my estimation these peripherals require about 40 pins. Considering the additional clock, power and programming/debug lines, the minimal pin count I’m going for is 64. So I went to element 14 parametric search to look for a suitable chip.

Continue reading “Opensource STM32 development”

Tutorial: 3.3V hacking for Arduino Nano

Hey I’m writing my first tutorial 🙂

During my recent OLED testing I wrote the software using Arduino Pro Mini 3.3 – the only Arduino board with 3.3V I/O (Lilipad may be the other one but not breadboard friendly). Originally I was using the SPI interface and everything works fine. But when I’m trying to test the I2C interface I suddenly realize the I2C lines are not on the breadboard pins! Instead they are on top of the board and I have to use jumper wires to connect them, not as neat as I would like ;p Continue reading “Tutorial: 3.3V hacking for Arduino Nano”