How to modify an eMac to use as an external monitor

Overview edit

Hardware hacking enthusiasts have talked about updating the eMac's logic board with a more modern Intel based logic board to make a Hackintosh while others have proposed using the eMac as a second monitor. Several have removed the CRT, analog boards and logic board replacing them by a single lcd display. This is described in the eMac LCD conversion personal page.

Using the original CRT and analogs board has proven difficult because the IVAD board that is mounted directly to the back of the CRT needs to be initialized via its I2C interface before a VGA signal can be sent. The initialization sequence was finally recorded and then implemented in software using an arduino uno clone allowing the removal of the logic board.

pieMac edit

 

The pieMac is an apple eMac computer that has had the logic board removed and replaced by a raspberry pi. The pieMac was inspired by a thread on macrumors by patriciooholegu. The idea was to replace the logic board with a raspberry pi but this hack will allow the CRT to be used with just about any device that can provide a VGA signal at eMac resolutions and refresh rates.

Component layout edit

 

Images of how the components were arranged for this pieMac.

 
An exploded side view of the raspberry pi mounted in the eMac.

Wiring The Video Connector edit

 

The eMac uses standard VGA signals simplifying the task of interfacing to the CRT. The wiring was inspired by the Headless eMac project. The Headless eMac project describes how to use an eMac logic board with an external monitor while this article describes how to use the eMac's CRT as an external monitor. The image on the right depicts the eMac VGA connector on the logic board, a DB15 female VGA connector and a map of how to wire the IVAD VGA able to the DB15F VGA connector. This DB15 connector can be swapped for a male connector if plugged directly into a source rather than to a standard VGA monitor cable.



Wiring The Arduino edit

 

The image to the right shows the minimum wiring needed to activate the IVAD board using an arduino and a push button. The code for this circuit can be downloaded from https://github.com/qbancoffee/emac_ivad_board_init .This circuit does not show the relay circuit used to power the CRT. The CRT can be turned on by providing 5 volts to the wires that were connected to pins 4 and 10 of the eMac logic board.



Notes edit

I've figured out which hex byte controls some of the properties of the monitor (eg. brightness). Some of these are normally controlled using the settings panel in OSX, I've been trying to implement them using an Arduino. Not all seem to be available in OSX, so presumably some a preset, unless there's some kind of advanced system properties I don't know about. If you send a command out of range it can cause the screen to go blank. Some need to be sent to device 0x46 on the i2c bus and some to 0x4C, see the arduino code linked below for an example of how to send the commands. Not sure about the correct terminology for some of the adjustments below...

Device 0x46
Property Hex code Range
Contrast 0x00 0x80-0xFF
Green backlight (or maybe colour temp) 0x01 0x00-0xFF
Blue backlight (colourtemp?) 0x02 0x00-0xFF
Red backlight (colourtemp?) 0x03 0x00-0xFF
Top pinch/width 0x04 0x00-0x7F, 0x80-0xFF
Top 'lean' 0x05 0x00-0x7F, 0x80-0xFF
Bottom 'lean' 0x06 0x00-0x7F, 0x80-0xFF
Horizontal Position 0x07 0x80-0xFF
Vertical Size 0x08 0x80-0xFF
Vertical Position 0x09 0x00-0x7F, 0x80-0xFF
Shape adjustment, like a sphere 0x0A 0x00-0xFF
Keystone 0x0B 0x00-0xFF
Pincushion 0x0C 0x00-0xFF
Horizontal Size 0x0D 0x00-0x7F, 0x80-0xFF
Top & Bottom pull left/right 0x0E 0x80-0xFF
Paralellogram 0x0F 0x00-0xFF
Gamma (?) 0x10 0x80-0xBF, 0xC0-0xFF
Brightness 0x11 0x00-0x3F, 0x40-0x7F
Alternate horizontal size (?) 0x12 0x00-0xFF
Alternate vertical size (?) 0x14 0x00-0x7F, 0x80-0xFF
Bottom pinch/width 0x15 0x00-0x7F, 0x80-0xFF
Device 0x4C
Backlight/colourtemp blue>red 0x00 0x00-0xFF
Backlight/colourtemp yellow>blue 0x01 0x00-0xFF
Backlight/colourtemp magenta>blue 0x02 0x00-0xFF
Rotation 0x03 0x00-0xFF

See Also edit

Code edit

IVAD initialisation code.

eMac edid simulator code

Videos edit

eMac CRT as monitor mod 1

eMac CRT as monitor mod 2

eMac CRT as monitor assembled

pieMac as retro gaming box

pieMac overheating

pieMac adding fan

eMac CRT simulator