Revisiting an old effort of mine

I am still quite busy during work hours, but I decided to take a few days off to rest a bit. As a consequence, I started checking some old prototypes of mine, trying to free up a few breadboards as I am always running short of them. That’s when I discovered something I left unfinished in July 2019: the driver for an ILI9225 display that uses the 8080-parallel bus (as opposite to the ubiquitous SPI).

I sometimes use community or vendor frameworks/SDKs to be faster at prototyping, and this was no exception: the display driver was initially written for Mbed, targeting my STM32 F1 MCU (the famous “blue pill” that I also used for a couple of my devices).

I don’t usually use frameworks/SDKs for finished products, going the hard route with bare metal programming. However, I shipped a few prototypes of the Commodore 64 Cartridge Dumper (hardware version 1) that did use Mbed.

Here’s a simple diagram showing what I developed with what:

Overview of the frameworks I use by Luigi Di Fraia
Overview of the frameworks I use

At the bottom I put bare metal projects, i.e. most of my devices: this usually means using gcc and make. At the top I put Arduino libraries and sketches I developed to be quick with prototyping while retaining the interface of my own libraries. In the middle there’s Mbed and libopencm3 which I also used quite a bit for faster development of proofs-of-concept. I must say that I quite like low-level, but I never go down to assembly: either C or CPP are my languages of choice.

Here’s the results of this morning’s development: a fully functional display driver 🙂

ILI9225 display driver in action by Luigi Di Fraia
ILI9225 display driver in action

The test scenario I am displaying in the above picture proves that the software support for orientation/rotation is working as expected. All in all, a nifty little display to work with and I can say that I finally got closure having finished coding its driver. I now plan to write a bare metal version of it and perhaps one that relies on libopencm3, although I am not sure I will ever need the latter.

Stay tuned for more!

About Luigi Di Fraia

I am a Senior DevOps Engineer so I get to work with the latest technologies and open-source software. However, in my private time I enjoy retro-computing.
This entry was posted in Embedded systems, Technical and tagged , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s