Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
The geometry and color controller responds at I²C address `0x37`. It appears to be an Apple IVAD-class CRT controller on the analog board. The slot-loading iMacs use a similar system at address `0x46`, which was the clue that helped point me in the right direction.
DingusPPC iMac emulation shows the system trying to send data to address 0x37:
Code:
(  87.124s)               dbdma.cpp:163    ERR| mesh: Invalid key 0 in LOAD_QUAD
(  88.591s)             viacuda.cpp:575   WARN| Cuda input data count (257) exceeds 256!
(  88.592s)             viacuda.cpp:575   WARN| Cuda input data count (258) exceeds 256!
(  88.592s)             viacuda.cpp:575   WARN| Cuda input data count (259) exceeds 256!
(  88.593s)             viacuda.cpp:1028  WARN| Unsupported I2C device 0x37 write buf:0000011fb945ac000efd1cffc732e40000fff1000000011fb94518001079f8001079f200107a031fb94440000c6bb8ffce71181fb947c800107a30ffc7309a0000fff1000000011fb945ac000efd1c1fb944ac000000001fb94460000ab464ffd7b38000000000001078f8000efd1c1fb94558000000041fb94480ffcfdec0ffce7560000339321fb945ac000efd1c0008eb80000000001fb944c000000000ffce65f80000000000000000001078e4000efd1068fff7401fb944fd00000000ffcfa21c00000000ffc74560000b55000000000000000000000000000000000000107aa0000000041fb944f04800040c00000000000000041fb9450088000404ff

The system makes 10 attempts to write those 256 bytes to 0x37.

These 256 bytes:
Code:
00000000: 0000 011f b945 ac00 0efd 1cff c732 e400  .....E.......2..
00000010: 00ff f100 0000 011f b945 1800 1079 f800  .........E...y..
00000020: 1079 f200 107a 031f b944 4000 0c6b b8ff  .y...z...D@..k..
00000030: ce71 181f b947 c800 107a 30ff c730 9a00  .q...G...z0..0..
00000040: 00ff f100 0000 011f b945 ac00 0efd 1c1f  .........E......
00000050: b944 ac00 0000 001f b944 6000 0ab4 64ff  .D.......D`...d.
00000060: d7b3 8000 0000 0000 1078 f800 0efd 1c1f  .........x......
00000070: b945 5800 0000 041f b944 80ff cfde c0ff  .EX......D......
00000080: ce75 6000 0339 321f b945 ac00 0efd 1c00  .u`..92..E......
00000090: 08eb 8000 0000 001f b944 c000 0000 00ff  .........D......
000000a0: ce65 f800 0000 0000 0000 0000 1078 e400  .e...........x..
000000b0: 0efd 1068 fff7 401f b944 fd00 0000 00ff  ...h..@..D......
000000c0: cfa2 1c00 0000 00ff c745 6000 0b55 0000  .........E`..U..
000000d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000e0: 107a a000 0000 041f b944 f048 0004 0c00  .z.......D.H....
000000f0: 0000 0000 0000 041f b945 0088 0004 04ff  .........E......
 
  • Like
Reactions: matchajp
As promised, I’ve uploaded my tray-loading iMac G3 geometry/colour control notes and toolkit here:


It’s not a polished finished project, but it has the wiring, protocol notes, register info, DAU reverse-engineering notes, and a small command-line tool for controlling the CRT geometry/colour settings.

Huge thanks to qbancoffee’s `imac_g3_ivad_board_init` work, that reference helped a lot.

If you have a 1998 tray-loading iMac G3, feel free to have a look, try it, test it, or build on it. Happy to take corrections too.

Also, if anyone has success with this, I’d like to eventually make a proper PCB that also incorporates the audio, mic, headphone, and power button header into one control board. I have a separate set of docs for that too, as I was able to confirm every pin and have built a separate prototype board with an amp for the speakers. I still need to try the mic and front panel outputs.
 
  • Like
Reactions: MacTech68
Hi! I'm really interested in doing this project for my G3.

Sorry if this is a super newbie question, but I just want to make sure I'm doing things correctly/safely.

Do I need to discharge the CRT for a project like this?

I haven't seen explicit instructions about doing it for this specific project, but rather general sentiment online that "ALWAYS DISCHARGE CRT OR UR GONNA DIE". But every guide about this and in Rocky's videos, I'm not seeing anything like that. He even turns the mac on while reaching into the internals. Offhand it seems like I wouldn't need to since I'm not really reaching into the CRT/analog part of the computer.

Nonetheless, just wanted to check before I do something potentially stupid!

Thanks you!
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.