HP9150VFD Display Module Information
The VFD (vacuum fluorescent display) module from the discontinued HP z500 Series Digital Entertainment Center media PCs are a conveniently sized, bright display capable of displaying 2 rows of 16 character wide text and a number of A/V system icons. This page provides additional hardware details. See also the HpDecVfd library page.
|1||Clear rectangle LED A|
|2||Clear rectangle LED B|
|3||IR receiver A|
|5||RST on VFD controller|
|6||SCK on VFD controller|
|7||MOSI on VFD controller|
|8||MISO on VFD controller|
|9||LDR signal out|
|10||IR Receiver C|
- +5v current requirement measured at 450ma
- The VFD controller is an Atmel AT89S52 microcontroller with custom markings
- The 4 connections to the VFD microcontroller can be used to access the in circuit programming interface
- RST (pin 5) should normally be left unconnected as the board already has the necessary reset timing circuitry. If this pin is tied directly high or low the microcontroller will not start correctly
- From examining the circuit, it appears that the LDR circuit simply outputs 0 or 5V depending on amount of light hitting the LDR
- The red LED is turned on when pin 4 is driven by 5V. The LED circuit includes a 1K current limiting resistor
The following information was determined through experimentation and is most certainly incomplete and perhaps even inaccurate.
Each byte of data is serially clocked into the display using pin 6 (SCK) for clock and pin 7 (MOSI) for data. Data is latched on the high to low transition of the clock line. The minimum clock period is 56 microseconds which translates to approximately 0.5 milliseconds to transmit a complete byte.
Communication consists of distinct commands consisting of one or more byte of data. The command bytes are send to the display, then after having received no further data for a period of time, the display will process the command. This delay between commands is mandatory. Experimentation found the delay needed is at least 3 milliseconds. The HP DEC PC is using delays of 15 milliseconds.
The known commands are as follows:
- 0x00 0x00 - Clear the text from the display and home the cursor. Note that the cursor homes to the first character on the bottom line of the display. The HpDecVfd library hides this oddity and will home the cursor to the top character on the first line.
- 0x00 0x08 - Blank the display output
- 0x00 0x0C - Unblank the display output
- 0x00 0b1nnnnnnn - Sets the cursor position to the address specified by nnnnnnn in the second byte. Note that each line is 64 characters long with only the first 16 bytes normally visible. Note also that addressing starts on the bottom line and wraps onto the top line. The HpDecVfd library hides this oddity
- 0x20 0xnn 0xnn .... - Draws the ASCII text character following the first byte to the display. The cursor is advanced forward by one position, even if more than one character is drawn
- 0x40 0xnn 0xnn 0xnn - Sets or unsets the display icons. Each bit in the second through third bytes is assigned to one of the icons, starting it the top left corner of the display. See the enum Icon declaration in HpDecVfd for more specifics
- 0xAn - Sets display brightness to the value specified by n, where 0 is the dimmest and F is the brightest. The default appears to be approximately C
- 0xFA - Resets the display. The display will not respond to commands for approximately 65ms after this command
- HpDecVfd library page
- Forum post on deciphering this display. Includes information on sourcing the displays