Using the NKC RGB LCD Shield with the FEZ Domino
With the popularity of the Arduino it’s only natural that development boards for other systems would be offered in the same form factor. An advantage of this is it allows each system to take advantage of add-on boards developed for the other. However, just because two boards share the same form-factor and pin-out, that doesn’t mean they are immediately compatible.
This was the problem when I tried to hook up an RGB LCD Shield offered by NKC Electronics to a FEZ Domino board. The FEZ Domino is a 3.3V system that uses the Arduino form-factor and pin-out but is meant for development using the .NET MicroFramework.
The display used in the LCD shield uses 1.8V logic levels so it has voltage dividers on each of its digital inputs that act as level shifters. This works fine in most cases but on the Domino board the pins used to drive the LCD’s chip select (CS) and reset (RST) are open-collector with a 2.2K pull-up resistor. When these lines are set high the additional drop across this resistor reduces the voltage levels at the LCD such that they no longer register as logic high.
The fix is straightforward. Replace the 1K resistors R1 and R2 with shorts, then replace the 1.3K resistors at R6 and R7 with 2.7K resistors (I got this value by soldering a 2.2K resistor in series with a 470, then covering the two with heat shrink tubing). These 2.7K resistors along with the 2.2K included on the Domino board form the divider that provides the 1.8V logic level needed by the LCD.
The photo below shows my updated board with the voltage step-up board removed. The white tubes show where the original resistors were replaced. The sample code from the NKC Electronics site works well (if slowly) once it is ported to C# so the next step is to see if it can’t be speeded up a bit.