Display Project

I worked with John Loffink to co-develop the  LCD display module.  The design is an adaptation of my PSIM display module using an ATTINY2313 microcontroller with an 8 MHz crystal. I adapted the code to use the 14 pin parallel interface to a standard 2x16 LCD.

Here is a photo of the development environment using the STK500.  I used a 2x20 display for the initial code development and later adapted this to also support 40x2 display.  A PSIM MIDI interface is the board behind the display in this photo.



This video demonstrates using the display to set a number of parameters for the SuperSequencer program.

Vide Demo 1  


This video demonstrates the performance of the display used as eight output level indicators for my CVS Joystick Generator program.  The numbers correspond to the output channels, the symbols indicate the quadrant of the joystick, and the bar levels were created using the programmable characters.

Vide Demo 1



Design Information

John Loffink designed the LCD_Support PCB which interfaces directly to the back of the LCD module.  

CVS LCD Schematics and Design Documentation 
Complete documentation including software guide, schematics, parts list, PCB layout, component placement, and FAQ is located in the LCD_Support folder in the files section on the Yahoo ComputerVoltageSources group.

Here is the PCB layout.


Here are photos of the LCD and assembled display module. I later reduced the backlight brightness which sufficiently reduced the power so I could eliminate the heat sink.



Display Functionality

The LCD software checks for a MIDI sysex command with educational ID=$7d and processes characters contained in the message.  Once a sysex message has been started, characters may be sent irregardless of timing and the LCD software will update the display appropriately.  All non-LCD sysex commands are sent to the MIDI output so display messages will be  filtered.

The software supports the following display commands:
(backspace) Moves the active display position one backwards
     0x09: (tab) Moves the active display position one forward
     0x0a: (line feed) Clears the display and sets the active display position to beginning of line 1
     0x0b: (vertical tab) Sets the active display position to beginning of line 2
     0x0c: (form feed) Clears the display and sets the active display position to beginning of line 2
     0x0d: (carriage return) Sets the active display position to beginning of line 1
     0x0e: (shift out) Selects the lower characters set for display
     0x0f: (shift in) Selects the upper characters set for display
     0x10: Program Character0 <data>,<data> <data> (8 bytes total)
     0x11: Program Character1 <data>,<data> <data> (8 bytes total)
     0x12: Program Character2 <data>,<data> <data> (8 bytes total)
     0x13: Program Character3 <data>,<data> <data> (8 bytes total)
     0x14: Program Character4 <data>,<data> <data> (8 bytes total)
     0x15: Program Character5 <data>,<data> <data> (8 bytes total)
     0x16: Program Character6 <data>,<data> <data> (8 bytes total)
     0x17: Program Character7 <data>,<data> <data> (8 bytes total)
     0x18: Sets the display mode to overwrite; new characters overwrite previous
     0x19: Sets the display mode to scroll; display scrolls for new characters
     0x1a: Sets Absolute Position <data> (2 bytes total)
     0x1b: Sets Relative Position <data> (2 bytes total)
     0x1c: Reserved
     0x1d: Reserved
     0x1e: Reserved
     0x1f:  Write Message <data>,<data> <data> (33 bytes total)

The Write Message command stores a new default power-on message in the eeprom to personalize the module.

There is a second mode that will operate with a special  build option of the PCB which supports a scrolling MIDI monitor display. All MIDI data received will be displayed in a scrolling hexadecimal format, passed through to MIDI out, and indicated by an indicator LED.  A MIDI monitor power-on message is displayed and is cleared by the first MIDI data received.

This special build PCB configuration has MIDI input and output circuits which can be used to provide MIDI and display functionality for the PSIM.  A single 4 pin cable connects this module to the PSIM.

Here is a photo of the MIDI monitor display in my custom 2x40 version.


A complete software guide is here and also on the ComputerVoltageSources Yahoo group in the Files>LCD Support folder.