October 2022


Active supporter of WikiPedia
Support Wikipedia


Profile for uwezi

The TIAN MA A2C00096100 LCD

The electronics distributor is often selling surplus displays, but normally these are not very well documented. The TIAN MA A2C00096100  LCD module is a 90 mm x 20 mm character display with on-board chip-on-glass controller. It has 20 alphanumeric character positions, actually 18+2 since there is a vertical 1-pixel wide bar separating the last two characters, as well as 29 icons or symbols. The controller is an PCF2119AU with an I2C interface connected out, as has been figured out in a discussion on

However, it appears that the investigation in the forum did not cover all details, especially not the icons under the display. It might be doubtful if you ever would want to use these symbols in your own project unless you are designing a car stereo, but it might at the same time interfere with the use of custom characters for the font.

The character set contains all standard ASCII characters, many European accented characters and an interesting set of arrows.

The PCF2119 controller chip – much like the well-known HD44780 – has two volatile RAM areas, the DDRAM for the alphanumeric characters were each memory location serves as an index to the character font. The character codes 0x00 to 0x0F are referring to the CGRAM where groups of 8 subsequent memory locations form a single, user definable character. The display is only 5 pixels wide, stretching bit positions 0-4, and 7 rows high, corresponding to the first 7 out of 8 bytes per block.

Interestingly, the symbol row below the display directly maps to bits contained in the second CGRAM block at addresses 0x09 to 0x0F, which also means that you should not use this block for your own user characters. The following image shows the mapping of the character display positions, which is a bit odd, as well as the mapping of the icons.

One special case is the character position at DDRAM address 0x0D which is only representing a single column instead of a 5 column wide character. However, it derives its contents from the bit 4 of the font data for the character stored at 0x0D in DDRAM. In order to fully control the display at this position you will have to sacrifice one user-defined character from the CGRAM and set/clear the corresponding bit 4 at the rows 0-7.

The following is a slight modification from the code I used in the youtube video above in order to test and highlight the features of this display and should make it possible for you to use this display in your own projects. The code was tested on an ATmega32U4 running at 8 MHz and utilizing the I2C hardware master library from Peter Fleury.

(Deutsch) Ach Ihr schon wieder…

Sorry, this entry is only available in German.

Nicely rendered 7-segment numbers

User cbm80amiga has uploaded a nice library to render 7-segment numbers on graphical displays – especially for Arduinos. But the code can as well be used without any Arduino in the proximity, just a slight change in the library made it an universal C++ object.

It had the ambition to follow up with further […]

Continue reading Nicely rendered 7-segment numbers

Temperature measurements with an NTC thermistor

sagecell.makeSagecell({“inputLocation”: “.sage”}); Following a discussion on Facebook I put here an online tool to calculate the output of a voltage divider consisting of a fixed resistor and an NTC thermistor following a first order Steinhart–Hart equation.

The calculations are based on a voltage divider where either the voltage over the NTC or over […]

Continue reading Temperature measurements with an NTC thermistor

Not WormFood’s AVR Baud Rate Calculator

This page without a frame:

.errordiv { padding:10px; margin:10px; border: 1px solid #555555;color: #000000;background-color: #f8f8f8; width:500px; }#advanced_iframe {visibility:visible;opacity:1;vertical-align:top;}.ai-info-bottom-iframe { position: fixed; z-index: 10000; bottom:0; left: 0; margin: 0px; text-align: center; width: 100%; background-color: #ff9999; padding-left: 5px;padding-bottom: 5px; border-top: 1px solid #aaa } {font-weight: bold;}#ai-layer-div-advanced_iframe p {height:100%;margin:0;padding:0} .ai-fullscreen { position:fixed; z-index:9000 !important; top:0px !important; left:0px !important;
margin:0px !important;
width:100% !important;
height:100% !important;
}var ai_iframe_width_advanced_iframe = 0;var ai_iframe_height_advanced_iframe = 0;var aiIsIe8=false;var aiOnloadScrollTop=”true”;var aiShowDebug=false;
if (typeof aiReadyCallbacks === ‘undefined’) {
var aiReadyCallbacks = [];
} else if (!(aiReadyCallbacks instanceof Array)) {
var aiReadyCallbacks = [];
} function aiShowIframeId(id_iframe) { jQuery(“#”+id_iframe).css(“visibility”, “visible”); } function aiResizeIframeHeight(height) { aiResizeIframeHeight(height,advanced_iframe); } function aiResizeIframeHeightId(height,width,id) {aiResizeIframeHeightById(id,height);}var ifrm_advanced_iframe = document.getElementById(“advanced_iframe”);var hiddenTabsDoneadvanced_iframe = false;
function resizeCallbackadvanced_iframe() {}

Some Toner-Transfer PCB Highlights

Some recent highlights from my home-made circuit boards using the toner-transfer method.

0.5 mm FPC breakout board

Yes, I have been told that I am crazy before… Designed in KiCAD

0.5 mm pitch FPC breakout board – before etching

0.5 mm pitch FPC breakout board – half-way etched

Continue reading Some Toner-Transfer PCB Highlights

Canvas: Using Python to create Calculated Questions


I just recently started with Canvas because Uppsala University has decided to use it as its upcoming LMS platform after a failed attempt with another product. Therefore I had already spent some time with Blackboard and was quite fond of the calculated questions type in quizzes. I quickly found out that Canvas offers […]

Continue reading Canvas: Using Python to create Calculated Questions

A tiny watchdog

In a recent quick-and-dirty project with a Wemos D1 mini clone I had some problems with the reliability of the code. The ESP8266 contains two watchdogs which have the sole purpose to reset the chip if the firmware ever should get stuck. Previously I experienced these watchdogs to be too aggressive, but this was […]

Continue reading A tiny watchdog

Hacking IKEA trådfri lighting automation

I recently visited IKEA again and got interested in their affordable line of home automation/LED lighting products called TRÅDFRI (meaing wireless in a play-with-words kind of Swedish). Of course there was already an internet community active in hacking these devices and I joined in.

Getting started

I installed the gateway and after pairing devices […]

Continue reading Hacking IKEA trådfri lighting automation

project update: a TTL/CMOS computer

Exactly one month later – our electronics course at Uppsala University just approaches its end – and I got the next shipment for my new project: 1.1 km of equipment wire.