Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

crozone

macrumors newbie
Feb 24, 2020
5
0
Australia
So just got around to testing the mic and I found that I had made a wiring mistake in the schematic so I'll have to fix that
but after I wired it correctly , I found that the mic is like you said "it's a bit crap". After playing with it for a while
I think the problem is that it needs a pre-amp before going into the mic input of a computer. I'm going to try
to make a small 1st stage transistor amplifier to see if it helps. If it does I'll add it to rev 2 of the circuit.

I'm going to make some recordings on my G3 tonight to test out the stock mic quality within macOS. I don't remember it being too terrible, so maybe it does just need a preamp.

My screen's a Sharp LQ150U1LW03 so similar to yours. I know what you mean about the colours - there's a bit of what looks like dithering at times on mine but it's not noticeable most of the time. I suspect they took a few shortcuts for colour representation in these older panels. Still, there aren't many choices for 15" displays. I think there's one panel that's higher than 1600x1200 res 'out there' but I couldn't actually find any available anywhere and I got this one for dirt cheap. The controller cost way more!

Yeah it has that dithered effect, and the colours are quite warm (probably because it's LED backlit instead of CCFL) it's only really noticeable in on dark/grey images (I was trying Crysis 1 and it showed up in the early night-time levels). This is partly why I'm so excited about keeping the CRT with space for a NUC, even though the resolution isn't great by modern standards, the colours and response time are amazing (and it fits the look of the iMac).

Are you using CAD to create models to 3D print? Is that how you did your panel mounts? It looks so much more professional than mine. Alas, I don't have a 3D printer and if I had waited until I got one, the old iMac would likely have sat in the cellar for another 10 years untouched. The only way I could get this done is by bodging it and hoping for the best.

I'm using OpenSCAD, which is programatic but somewhat slow and tedious. The industrial designer at my work thinks I'm crazy for using it (he uses SolidWorks so OpenSCAD looks like something from the 1970s to him). But, it's free and it gets the job done eventually. After I'm done with the model I 3D print it and test fit it, usually I'll go through 3-4 iterations for each part before it fits just right. That's a big advantage of the thermoplastic stuff, it's super fast.

Here's my current progress, I nearly have the motherboard mounts finished (mobo is going vertically a bit behind the screen). I think we might be using the exact same slot load bluray drive too, lol. My G3 was missing the entire logic board and side panel, so I'm probably going to have to come up with a replacement for that somehow. I'm quite impressed with how neat you got your side panel looking.
 

Spanky Deluxe

macrumors demi-god
Mar 17, 2005
5,285
1,789
London, UK
Your progress looks so clean, crozone, it’s going to be great!!

I’m almost there now. Hit a snag while putting it all together though. The front switch works by pushing a plastic button on the outside chassis that pushes a plastic push button with a spring that is clipped into the inner plastic chassis which pushes through to push a tiny push button on a circuit board inside the chassis. My ‘middle’ switch had slightly fallen apart. Namely, the plastic clips had broken off. I tried to superglue them back together but there’s just not enough plastic. The longest clip, which I think actually pushed the inner button was still attached but when I tried putting the lower case on (with some tape loosely holding the button and spring in place), it broke off leaving me spitting and cursing

C47B0927-A331-4D01-8C78-7126668F9B86.jpeg

I ended up coming up with a solution by using a little rectangular piece of plastic I had which I’ve slotted into the hole that leads to the inner button:


38A032F2-5187-4DD4-8576-7B8616FACE09.jpeg
Luckily this works! The remains of the middle button sit on top of this and the outer chassis button on top of that.

I still need to clean up and test everything but I hope to do that soon. In the meantime, here’s a sneak peek of the ports on the side, in situ:

EAB2290D-5164-44AB-99B2-6056C63D28F7.jpeg
I think they came out pretty great!
 

rockyhill

macrumors regular
Dec 24, 2016
214
67
Miami Fl, United States
Your progress looks so clean, crozone, it’s going to be great!!

I’m almost there now. Hit a snag while putting it all together though. The front switch works by pushing a plastic button on the outside chassis that pushes a plastic push button with a spring that is clipped into the inner plastic chassis which pushes through to push a tiny push button on a circuit board inside the chassis. My ‘middle’ switch had slightly fallen apart. Namely, the plastic clips had broken off. I tried to superglue them back together but there’s just not enough plastic. The longest clip, which I think actually pushed the inner button was still attached but when I tried putting the lower case on (with some tape loosely holding the button and spring in place), it broke off leaving me spitting and cursing

View attachment 901742

I ended up coming up with a solution by using a little rectangular piece of plastic I had which I’ve slotted into the hole that leads to the inner button:


View attachment 901743
Luckily this works! The remains of the middle button sit on top of this and the outer chassis button on top of that.

I still need to clean up and test everything but I hope to do that soon. In the meantime, here’s a sneak peek of the ports on the side, in situ:

View attachment 901744
I think they came out pretty great!

You did a really nice job on the side ports, I will definitely try and do what you did when I get to that juncture.
[automerge]1585338407[/automerge]
Dumb question. This new board is to allow you to connect the onboard switch to a pc and the onboard speakers to the amp?

It doesn't allow you to connect the headphone ports on the front to anything?

The board looks good just asking to understand. Have you had any joy getting the edid and init on one chip?


So I was finally able to get the EDID sent and the ivad initialization to work with one arduino.
I'll be posting what I did soon.
 
  • Like
Reactions: crozone

rockyhill

macrumors regular
Dec 24, 2016
214
67
Miami Fl, United States
Finally finished Rev2 of the J20 board. This board only has a single atmega328.
The board
  • detects button presses
  • sends the init sequence to the IVAD board
  • sends the "turn-on" signal to the down-converter board
  • has a control line "PROT" that when 5 volts are applied turns everything off. A shut-off signal can be sent here.
  • powers the green LED
  • sends EDID information via VGA cable so that a connected computer knows how to configure the monitor for use.
All of ti with a single atmega

It also has a serial interface so the one can send commands from a computer so that you can make it do extra things like
shut the CRT off when the operating system is shut down.

J20_board_rev2.png
 
  • Like
Reactions: crozone

rockyhill

macrumors regular
Dec 24, 2016
214
67
Miami Fl, United States
Thanks!

I'll order it when the other circuit board I just ordered arrives just in case I have to make revisions to it.
If I order them together, I can probably get the three boards for under $30.00 with shipping included.
The third board is a breakout board for the down-converter board so that I can provide a range of
standard computer voltages to things I want to add.

The boards usually take just under two weeks to arrive and the 3rd board should be here by Tuesday.
[automerge]1585529748[/automerge]
That is really incredible work, Rocky. How long do you think it’ll be for until you get the physical part in hand?

Thanks!

I'll order it when the other circuit board I just ordered arrives just in case I have to make revisions to it.
If I order them together, I can probably get the three boards for under $30.00 with shipping included.
The third board is a breakout board for the down-converter board so that I can provide a range of
standard computer voltages to things I want to add.

The boards usually take just under two weeks to arrive and the 3rd board should be here by Tuesday.
 

rockyhill

macrumors regular
Dec 24, 2016
214
67
Miami Fl, United States
That is really incredible work, Rocky. How long do you think it’ll be for until you get the physical part in hand?

So I just received the down-converter breakout board and it only took one week. It looks like things in China are improving
since the boards are being made over there.

I ordered the three boards for $25.55

Anyhow here is a video of the board in action.

 

rockyhill

macrumors regular
Dec 24, 2016
214
67
Miami Fl, United States
I just purchased an iMac G3 graphite in really good condition. No cracks in the inner bezel and it boots into
10.2 . I even used my modded G3 as a mirrored desktop with it.

I'll keep experimenting with the ones I have(that don't boot all the way) that are in pieces and I will eventually use this latest one as my final mod (hopefully).
I want to sniff the communications from the display control settings which requires me to sniff the i2c comms by physically connecting to the same wires used to send the init sequence.

I don't want to take this one apart just yet because I really don't have the space to keep it safe until I'm ready to mod it, so I'm wondering
if anyone has a disassembled booting machine and is willing to sniff the comms.

I would like to sniff

-brightness
-contrast
-screen position
-pinch

and all the other things available in the panel.

My goal is to write a small program with an interface similar to the one available on OSX to make these adjustments from any computer
attached to it.

I realize this is a lot to ask since the inner bezel is extremely fragile and you run the risk of cracking it.
 

Spanky Deluxe

macrumors demi-god
Mar 17, 2005
5,285
1,789
London, UK
Can you use a powered up logic board on its own to get the info you need? I'd try myself but I only have the logic board left from the insides of my iMac - all the power stuff went to the skip. About 15 years ago, I did run an eMac headless, connected to just an ATX power supply - technically that was my first mac. BTW saw your iMac mirrored video. The new iMac looks so nice and clean!
 

rockyhill

macrumors regular
Dec 24, 2016
214
67
Miami Fl, United States
Can you use a powered up logic board on its own to get the info you need? I'd try myself but I only have the logic board left from the insides of my iMac - all the power stuff went to the skip. About 15 years ago, I did run an eMac headless, connected to just an ATX power supply - technically that was my first mac. BTW saw your iMac mirrored video. The new iMac looks so nice and clean!

My latest iMac is in really good condition, I don't even want to breath too hard around it.....

I guess technically one could run it with an ATX power supply and monitor the lines while making the adjustments in the panel, that's not a bad a idea at all. Unfortunately my two disassembled machines don't boot into the OS but maybe I can get something up and running
by buying a spare part or two.....

Really good suggestion!
 

Spanky Deluxe

macrumors demi-god
Mar 17, 2005
5,285
1,789
London, UK
My latest iMac is in really good condition, I don't even want to breath too hard around it.....

I guess technically one could run it with an ATX power supply and monitor the lines while making the adjustments in the panel, that's not a bad a idea at all. Unfortunately my two disassembled machines don't boot into the OS but maybe I can get something up and running
by buying a spare part or two.....

Really good suggestion!

No problem! Yeah, it's how I got my first real taste of OS X back in early 2006. I was a student who had used PCs up until then but always had a soft spot for macs and then when Apple announced their transition to Intel, I realised I could get the best of both worlds. I managed to get an eMac logic board for £50 (an absolute steal because at the time, genuine mac minis with similar specs sold for about six times as much) and it wasn't too tricky to get it working as a headless unit. There's info hidden away on these forums somewhere about how to get it to work. I can't remember if I used an Apple wide video cable to VGA adapter (as I know I have one of those kicking around now) or if I used the video out. I think it was the latter as I seem to remember I didn't get output until I was at the desktop. That headless eMac quickly ended up becoming my 'main' machine, despite having a relatively high end gaming PC. I just loved the OS and found it so much easier for actual work. Six months later, the first Mac Pro was released and I got a great student deal at the time to switch to that and I haven't looked back (although I do now use a Windows PC for my gaming needs).
[automerge]1586196261[/automerge]
Here's a quick video of my iMac in action now that it's pretty much done:


I still need to connect the front headphone jacks internally somehow (will probably just mirror the side panel connections with one headphones and one mic instead) and I need to replace the speakers, which have started to fall apart. I got the replacement ones from China in the mail today. When I get a 3D printer someday, i'd like to redo how the screen is mounted as if you look at the right angle, the quick fix plastic looks a bit rough but with things as they are, I don't see myself getting a 3D printer for a while yet!

I'd like to do a complete tour of the machine and everything that I've done but I don't have the time to put that together right now as I'm too busy with work. Still, I'm pretty please with how it's all working right now!
 
Last edited:
  • Love
Reactions: Raging Dufus

rockyhill

macrumors regular
Dec 24, 2016
214
67
Miami Fl, United States
No problem! Yeah, it's how I got my first real taste of OS X back in early 2006. I was a student who had used PCs up until then but always had a soft spot for macs and then when Apple announced their transition to Intel, I realised I could get the best of both worlds. I managed to get an eMac logic board for £50 (an absolute steal because at the time, genuine mac minis with similar specs sold for about six times as much) and it wasn't too tricky to get it working as a headless unit. There's info hidden away on these forums somewhere about how to get it to work. I can't remember if I used an Apple wide video cable to VGA adapter (as I know I have one of those kicking around now) or if I used the video out. I think it was the latter as I seem to remember I didn't get output until I was at the desktop. That headless eMac quickly ended up becoming my 'main' machine, despite having a relatively high end gaming PC. I just loved the OS and found it so much easier for actual work. Six months later, the first Mac Pro was released and I got a great student deal at the time to switch to that and I haven't looked back (although I do now use a Windows PC for my gaming needs).
[automerge]1586196261[/automerge]
Here's a quick video of my iMac in action now that it's pretty much done:


I still need to connect the front headphone jacks internally somehow (will probably just mirror the side panel connections with one headphones and one mic instead) and I need to replace the speakers, which have started to fall apart. I got the replacement ones from China in the mail today. When I get a 3D printer someday, i'd like to redo how the screen is mounted as if you look at the right angle, the quick fix plastic looks a bit rough but with things as they are, I don't see myself getting a 3D printer for a while yet!

I'd like to do a complete tour of the machine and everything that I've done but I don't have the time to put that together right now as I'm too busy with work. Still, I'm pretty please with how it's all working right now!

Wow, I see nothing rough there, it looks very nice! Great mod!
 

rockyhill

macrumors regular
Dec 24, 2016
214
67
Miami Fl, United States
Just populated, mounted, and tested the latest boards. The J20 board now only has a single micro-controller taking care
of CRT functions and sending out EDID information.
Here is a video

 

rockyhill

macrumors regular
Dec 24, 2016
214
67
Miami Fl, United States
Looks fantastic you've done a fantastic job @rockyhill Do you have a shopping list of parts needed? Chips, resistors connectors etc?

@Spanky Deluxe that looks very clean and tidy job well done

Thanks! and yes.

Each board has a bill of materials in its respective project folder and the file is named "bill_of_materials.csv"
for each board. This file should open right up in whatever spreadsheet program you use.
The file includes manufacturer part numbers and vendor part numbers. Here is a --->link<--- to one of them but you
should use the most recent one when you download from the repo.

I ordered from digikey but there are many vendors so you can shop around for best value depending on where
you are in the world. The same goes for the PCB, I wrote a quick and dirty paragraph on how to order.
----> How to order the boards<----

This weekend I plan on writing up some instructions on how to solder the headers so that you can make good contact
when plugged in.

Here is the link to the repo

https://github.com/qbancoffee/imac_g3_ivad_board_init
 

rockyhill

macrumors regular
Dec 24, 2016
214
67
Miami Fl, United States
By the way, I just made a last minute change to the silkscreens of two of the boards. I basically increased the font size
for some of the labels to make them a little easier to read. No changes at all to the circuit.

Also, If anyone here is good at markup, please fork the repo and make it more readable an I'll merge any changes later on.
I'm terrible at markup and presentation so it might be a little weird to follow what I've written.
 

oshimai

macrumors member
Apr 7, 2020
53
31
Europe
Hi rockyhill,

Just wanted to check, but in your GitHub, is imac_g3_ivad_board_init/imacG3IvadInit/imacG3IvadInit.ino already adjusted with the changes for your custom PCB?

In my country DHL has seemingly banned all parcels from China so I can't easily get custom PCBs. I guess I have to basically backport your work with Jumper wires and an Arduino Nano, though all of the information and schematics seem to make this a lot less work than before.

One more thing I am curious about, what currently happens when the computer supplying the VGA signal is turned off or the VGA cable were to be unplugged? Does the iMac screen stay turned on? From what I can tell, it does. I wonder if there is a way to mimic a normal VGA monitor, i.e. no VGA signal = power off after 5 secs, VGA signal detected = power on.

I got my hands on this iMac G3 model with a failing logic board recently and the plan is to turn it into a all in one case for an Intel NUC knock-off.
 

rockyhill

macrumors regular
Dec 24, 2016
214
67
Miami Fl, United States
Hi rockyhill,

Just wanted to check, but in your GitHub, is imac_g3_ivad_board_init/imacG3IvadInit/imacG3IvadInit.ino already adjusted with the changes for your custom PCB?

In my country DHL has seemingly banned all parcels from China so I can't easily get custom PCBs. I guess I have to basically backport your work with Jumper wires and an Arduino Nano, though all of the information and schematics seem to make this a lot less work than before.

One more thing I am curious about, what currently happens when the computer supplying the VGA signal is turned off or the VGA cable were to be unplugged? Does the iMac screen stay turned on? From what I can tell, it does. I wonder if there is a way to mimic a normal VGA monitor, i.e. no VGA signal = power off after 5 secs, VGA signal detected = power on.

I got my hands on this iMac G3 model with a failing logic board recently and the plan is to turn it into a all in one case for an Intel NUC knock-off.

@oshimai

Yes, the code in the repo is the one I'm using for the current circuit and you can definitely do it with a nano. I have a couple of videos up with
a nano turning on the CRT and sending the EDID info. You can adjust the pins accordingly in the sketch and it should work.
Also, there are some wiring diagrams depicting the connections with an arduino nano, all of this should be in the repo if not let me know.

Currently the micro controller does not try to detect VGA signals bit that is something that can be included in a future revision.
You can however send it a signal via a serial port or i2c or spi to tell it to shut off. You just need to adjust the code for it.
I'm planning on adding that functionality to some raspberry pi code.

Can you order from another PCB company? There might be one in your country that can ship to you? They should all accept gerber
files.

Good luck and feel free to ask me questions.
 

oshimai

macrumors member
Apr 7, 2020
53
31
Europe
Thanks!

Looking around I actually found a local PCB made to order manufacturer that produces locally. So that's plan B for now.

I think it might be easy to hack in auto on/off. Basically I think one just watches VGA PIN 14 for regular VSYNC using pulseIn or something. No VSYNC = No picture = turn off. Otherwise turn on.

I will try to hack that in and maybe I can provide a patch when I get it working, but I can really only start end of next week. I will report how it goes. :)
 

anotherelise

macrumors newbie
Mar 22, 2020
17
0
so I'm wondering
if anyone has a disassembled booting machine and is willing to sniff the comms.

I would like to sniff

-brightness
-contrast
-screen position
-pinch

I ordered one of these and it arrived today https://www.sparkfun.com/products/15457

I've got it hooked up now and it's showing me everything going on between the motherboard and the monitor board. Including adjustments made in the Mac OS 9 "Monitors" control panel to things like geometry and color.

My plan is to get that made into an Arduino script for my particular iMac and post it here. My iMac has a slightly crooked monitor cause I broke the plastic pins the monitor mounts to inside the case. So my geometry settings account for that and probably won't be useful to others. With that in mind I'd like to document how to use i2c to control the monitor's settings and add a couple buttons to my Arduino to change those settings. That way others can configure it in a way that works for them.

I should get the Arduino script posted in the next day or so.
 

anotherelise

macrumors newbie
Mar 22, 2020
17
0
I have this model iMac M8582LL/A* - PowerMac4,1 - M5521 https://everymac.com/systems/apple/imac/specs/imac_500_indigo.html

Here is the entire i2c conversation between the motherboard and monitor board. From the time I press the power button to the time I'm at the desktop with all the geometry and color settings just right. Captured using this script https://github.com/jamesbowman/i2cdriver/blob/master/python/samples/capture.py with this board https://www.sparkfun.com/products/15457

Format is CSV

Code:
START,WRITE,70,ACK
BYTE,WRITE,0x13,ACK
BYTE,WRITE,0x00,ACK
STOP,,,
START,READ,70,ACK
BYTE,READ,0xdf,NACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x09,ACK
BYTE,WRITE,0x00,ACK
STOP,,,
START,WRITE,83,ACK
BYTE,WRITE,0x33,ACK
START,READ,83,ACK
BYTE,READ,0x0b,NACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x13,ACK
BYTE,WRITE,0x0b,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x00,ACK
BYTE,WRITE,0x00,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x08,ACK
BYTE,WRITE,0xe4,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x12,ACK
BYTE,WRITE,0xc9,ACK
STOP,,,
START,WRITE,83,ACK
BYTE,WRITE,0x00,ACK
START,READ,83,ACK
BYTE,READ,0xad,ACK
BYTE,READ,0x27,ACK
BYTE,READ,0x3d,ACK
BYTE,READ,0xe4,ACK
BYTE,READ,0xb4,ACK
BYTE,READ,0xc4,ACK
BYTE,READ,0xad,ACK
BYTE,READ,0x27,ACK
BYTE,READ,0x3d,ACK
BYTE,READ,0xe4,NACK
STOP,,,
START,WRITE,83,ACK
BYTE,WRITE,0x0a,ACK
START,READ,83,ACK
BYTE,READ,0xb4,ACK
BYTE,READ,0xc4,ACK
BYTE,READ,0xad,ACK
BYTE,READ,0x27,ACK
BYTE,READ,0x3d,ACK
BYTE,READ,0xe4,ACK
BYTE,READ,0xb4,ACK
BYTE,READ,0xc4,ACK
BYTE,READ,0xb5,ACK
BYTE,READ,0xff,NACK
STOP,,,
START,WRITE,83,ACK
BYTE,WRITE,0x14,ACK
START,READ,83,ACK
BYTE,READ,0x00,ACK
BYTE,READ,0x0a,ACK
BYTE,READ,0x80,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0x00,ACK
BYTE,READ,0x7f,ACK
BYTE,READ,0x00,ACK
BYTE,READ,0x7f,ACK
BYTE,READ,0x80,ACK
BYTE,READ,0xff,NACK
STOP,,,
START,WRITE,83,ACK
BYTE,WRITE,0x1e,ACK
START,READ,83,ACK
BYTE,READ,0x80,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0x80,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0x80,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0x00,ACK
BYTE,READ,0x7f,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0x0a,NACK
STOP,,,
START,WRITE,83,ACK
BYTE,WRITE,0x28,ACK
START,READ,83,ACK
BYTE,READ,0x82,ACK
BYTE,READ,0x82,ACK
BYTE,READ,0x82,ACK
BYTE,READ,0xa0,ACK
BYTE,READ,0xa0,ACK
BYTE,READ,0xa0,ACK
BYTE,READ,0x9e,ACK
BYTE,READ,0xbf,ACK
BYTE,READ,0xc0,ACK
BYTE,READ,0x46,NACK
STOP,,,
START,WRITE,83,ACK
BYTE,WRITE,0x32,ACK
START,READ,83,ACK
BYTE,READ,0x40,ACK
BYTE,READ,0x0b,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0x0a,ACK
BYTE,READ,0x82,ACK
BYTE,READ,0x82,ACK
BYTE,READ,0x82,ACK
BYTE,READ,0xa0,ACK
BYTE,READ,0xa0,ACK
BYTE,READ,0xa0,NACK
STOP,,,
START,WRITE,83,ACK
BYTE,WRITE,0x3c,ACK
START,READ,83,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0x5a,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,NACK
STOP,,,
START,WRITE,83,ACK
BYTE,WRITE,0x46,ACK
START,READ,83,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,NACK
STOP,,,
START,WRITE,83,ACK
BYTE,WRITE,0x50,ACK
START,READ,83,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,NACK
STOP,,,
START,WRITE,83,ACK
BYTE,WRITE,0x5a,ACK
START,READ,83,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,NACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x01,ACK
BYTE,WRITE,0x82,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x02,ACK
BYTE,WRITE,0x82,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x03,ACK
BYTE,WRITE,0x82,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x04,ACK
BYTE,WRITE,0xa0,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x05,ACK
BYTE,WRITE,0xa0,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x06,ACK
BYTE,WRITE,0xa0,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x07,ACK
BYTE,WRITE,0xad,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x08,ACK
BYTE,WRITE,0xe4,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x09,ACK
BYTE,WRITE,0x3d,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x0a,ACK
BYTE,WRITE,0x9e,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x0b,ACK
BYTE,WRITE,0xb4,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x0c,ACK
BYTE,WRITE,0xc4,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x0d,ACK
BYTE,WRITE,0x27,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x0e,ACK
BYTE,WRITE,0xbf,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x0f,ACK
BYTE,WRITE,0xc0,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x10,ACK
BYTE,WRITE,0x40,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x11,ACK
BYTE,WRITE,0x0a,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x12,ACK
BYTE,WRITE,0x5b,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x00,ACK
BYTE,WRITE,0xff,ACK
STOP,,,
START,WRITE,83,ACK
BYTE,WRITE,0x00,ACK
START,READ,83,ACK
BYTE,READ,0xad,ACK
BYTE,READ,0x27,ACK
BYTE,READ,0x3d,ACK
BYTE,READ,0xe4,ACK
BYTE,READ,0xb4,ACK
BYTE,READ,0xc4,ACK
BYTE,READ,0xad,ACK
BYTE,READ,0x27,ACK
BYTE,READ,0x3d,ACK
BYTE,READ,0xe4,ACK
BYTE,READ,0xb4,ACK
BYTE,READ,0xc4,ACK
BYTE,READ,0xad,ACK
BYTE,READ,0x27,ACK
BYTE,READ,0x3d,ACK
BYTE,READ,0xe4,NACK
STOP,,,
START,WRITE,83,ACK
BYTE,WRITE,0x10,ACK
START,READ,83,ACK
BYTE,READ,0xb4,ACK
BYTE,READ,0xc4,ACK
BYTE,READ,0xb5,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0x00,ACK
BYTE,READ,0x0a,ACK
BYTE,READ,0x80,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0x00,ACK
BYTE,READ,0x7f,ACK
BYTE,READ,0x00,ACK
BYTE,READ,0x7f,ACK
BYTE,READ,0x80,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0x80,ACK
BYTE,READ,0xff,NACK
STOP,,,
START,WRITE,83,ACK
BYTE,WRITE,0x20,ACK
START,READ,83,ACK
BYTE,READ,0x80,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0x80,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0x00,ACK
BYTE,READ,0x7f,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0x0a,ACK
BYTE,READ,0x82,ACK
BYTE,READ,0x82,ACK
BYTE,READ,0x82,ACK
BYTE,READ,0xa0,ACK
BYTE,READ,0xa0,ACK
BYTE,READ,0xa0,ACK
BYTE,READ,0x9e,ACK
BYTE,READ,0xbf,NACK
STOP,,,
START,WRITE,83,ACK
BYTE,WRITE,0x30,ACK
START,READ,83,ACK
BYTE,READ,0xc0,ACK
BYTE,READ,0x46,ACK
BYTE,READ,0x40,ACK
BYTE,READ,0x0b,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0x0a,ACK
BYTE,READ,0x82,ACK
BYTE,READ,0x82,ACK
BYTE,READ,0x82,ACK
BYTE,READ,0xa0,ACK
BYTE,READ,0xa0,ACK
BYTE,READ,0xa0,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0x5a,ACK
BYTE,READ,0xff,ACK
BYTE,READ,0xff,NACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x11,ACK
BYTE,WRITE,0x05,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x00,ACK
BYTE,WRITE,0xff,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x00,ACK
BYTE,WRITE,0x00,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x07,ACK
BYTE,WRITE,0xb1,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x0d,ACK
BYTE,WRITE,0x10,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x0c,ACK
BYTE,WRITE,0xc7,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x09,ACK
BYTE,WRITE,0x4a,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x08,ACK
BYTE,WRITE,0xea,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x0f,ACK
BYTE,WRITE,0xc0,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x0b,ACK
BYTE,WRITE,0xae,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x12,ACK
BYTE,WRITE,0x5b,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x00,ACK
BYTE,WRITE,0xff,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x11,ACK
BYTE,WRITE,0x05,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x00,ACK
BYTE,WRITE,0xff,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x10,ACK
BYTE,WRITE,0x40,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x06,ACK
BYTE,WRITE,0xa0,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x05,ACK
BYTE,WRITE,0xa0,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x04,ACK
BYTE,WRITE,0xa0,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x03,ACK
BYTE,WRITE,0x82,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x02,ACK
BYTE,WRITE,0x82,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x01,ACK
BYTE,WRITE,0x82,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x11,ACK
BYTE,WRITE,0x05,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x00,ACK
BYTE,WRITE,0xff,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x11,ACK
BYTE,WRITE,0x05,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x00,ACK
BYTE,WRITE,0xff,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x10,ACK
BYTE,WRITE,0x40,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x06,ACK
BYTE,WRITE,0xa0,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x05,ACK
BYTE,WRITE,0xa0,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x04,ACK
BYTE,WRITE,0xa0,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x03,ACK
BYTE,WRITE,0x82,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x02,ACK
BYTE,WRITE,0x82,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x01,ACK
BYTE,WRITE,0x82,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x11,ACK
BYTE,WRITE,0x05,ACK
STOP,,,
START,WRITE,70,ACK
BYTE,WRITE,0x00,ACK
BYTE,WRITE,0xff,ACK
STOP,,,

Working on making it into an Arduino script and testing it. I'll post that after I get it working.
 
Last edited:

anotherelise

macrumors newbie
Mar 22, 2020
17
0
Here's the initIvadBoard method for my iMac g3

I have this model iMac M8582LL/A* - PowerMac4,1 - M5521https://everymac.com/systems/apple/imac/specs/imac_500_indigo.html

This is giving me good looking color and brightness. On the MacBook I connected to it I set the resolution to Scaled 1280x960.

Code:
void initIvadBoard() {
    writeToIvad( 0x46,0x13,0x00);
    writeToIvad(0x46,0x13,0x00);
    readFromIvad(0x46,1);
    writeToIvad(0x46,0x09,0x00);
    writeToIvad(0x53,0x33);
    readFromIvad(0x53,1);
    writeToIvad(0x46,0x13,0x0b);
    writeToIvad(0x46,0x00,0x00);
    writeToIvad(0x46,0x08,0xe4);
    writeToIvad(0x46,0x12,0xc9);
    writeToIvad(0x53,0x00);
    readFromIvad(0x53,10);
    writeToIvad(0x53,0x0a);
    readFromIvad(0x53,10);
    writeToIvad(0x53,0x14);
    readFromIvad(0x53,10);
    writeToIvad(0x53,0x1e);
    readFromIvad(0x53,10);
    writeToIvad(0x53,0x28);
    readFromIvad(0x53,10);
    writeToIvad(0x53,0x32);
    readFromIvad(0x53,10);
    writeToIvad(0x53,0x3c);
    readFromIvad(0x53,10);
    writeToIvad(0x53,0x46);
    readFromIvad(0x53,10);
    writeToIvad(0x53,0x50);
    readFromIvad(0x53,10);
    writeToIvad(0x53,0x5a);
    readFromIvad(0x53,10);
    writeToIvad(0x46,0x01,0x82);
    writeToIvad(0x46,0x02,0x82);
    writeToIvad(0x46,0x03,0x82);
    writeToIvad(0x46,0x04,0xa0);
    writeToIvad(0x46,0x05,0xa0);
    writeToIvad(0x46,0x06,0xa0);
    writeToIvad(0x46,0x07,0xad);
    writeToIvad(0x46,0x08,0xe4);
    writeToIvad(0x46,0x09,0x3d);
    writeToIvad(0x46,0x0a,0x9e);
    writeToIvad(0x46,0x0b,0xb4);
    writeToIvad(0x46,0x0c,0xc4);
    writeToIvad(0x46,0x0d,0x27);
    writeToIvad(0x46,0x0e,0xbf);
    writeToIvad(0x46,0x0f,0xc0);
    writeToIvad(0x46,0x10,0x40);
    writeToIvad(0x46,0x11,0x0a);
    writeToIvad(0x46,0x12,0x5b);
    writeToIvad(0x46,0x00,0xff);
    writeToIvad(0x53,0x00);
    readFromIvad(0x53,10);
    writeToIvad(0x53,0x10);
    readFromIvad(0x53,10);
    writeToIvad(0x53,0x20);
    readFromIvad(0x53,10);
    writeToIvad(0x53,0x30);
    readFromIvad(0x53,10);
    writeToIvad(0x46,0x11,0x05);
    writeToIvad(0x46,0x00,0xff);
    writeToIvad(0x46,0x00,0x00);
    writeToIvad(0x46,0x07,0xb1);
    writeToIvad(0x46,0x0d,0x10);
    writeToIvad(0x46,0x0c,0xc7);
    writeToIvad(0x46,0x09,0x4a);
    writeToIvad(0x46,0x08,0xea);
    writeToIvad(0x46,0x0f,0xc0);
    writeToIvad(0x46,0x0b,0xae);
    writeToIvad(0x46,0x12,0x5b);
    writeToIvad(0x46,0x00,0xff);
    writeToIvad(0x46,0x11,0x05);
    writeToIvad(0x46,0x00,0xff);
    writeToIvad(0x46,0x10,0x40);
    writeToIvad(0x46,0x06,0xa0);
    writeToIvad(0x46,0x05,0xa0);
    writeToIvad(0x46,0x04,0xa0);
    writeToIvad(0x46,0x03,0x82);
    writeToIvad(0x46,0x02,0x82);
    writeToIvad(0x46,0x01,0x82);
    writeToIvad(0x46,0x11,0x05);
    writeToIvad(0x46,0x00,0xff);
    writeToIvad(0x46,0x11,0x05);
    writeToIvad(0x46,0x00,0xff);
    writeToIvad(0x46,0x10,0x40);
    writeToIvad(0x46,0x06,0xa0);
    writeToIvad(0x46,0x05,0xa0);
    writeToIvad(0x46,0x04,0xa0);
    writeToIvad(0x46,0x03,0x82);
    writeToIvad(0x46,0x02,0x82);
    writeToIvad(0x46,0x01,0x82);
    writeToIvad(0x46,0x11,0x05);
    writeToIvad(0x46,0x00,0xff);
}
 

anotherelise

macrumors newbie
Mar 22, 2020
17
0
Something else I'm thinking about is that in this initIvadBoard function were ignoring all the data coming back from the monitor board. I wonder if it's sending information about itself back. Maybe some kind of identifier that Mac OS knows about. If so it might be possible to update the Arduino sketch to do a case statement on the monitor data and run init code for this particular monitor. That way we could have the code for all iMac g3's in one sketch.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.