ITXPlus: A ITX Sized Macintosh Plus Logicboard Reproduction

Nycturne

Tinkerer
Dec 18, 2024
87
50
18
The HD15 connector is a standard VGA output generated using GuruThree's Raspberry Pi Pico based converted - you can see the big 40pin footprint for the pico module on the right side of the board. PSU connector is a standard 24pin ATX connector

This actually raises an interesting point I'd probably need to dig into, but if someone already knows at least part of the answer, it would help.

So it looks like this converter reads in data using the original timings, and spits out a letterboxed version of the screen data using VESA timings (based on my not-so-careful reading of the code). So if I wanted to make this more of a pass-through of the Mac timings and let an external upscaler deal with it, I wonder if it's possible to simply bridge HSYNC/VSYNC to the outputs, and feed the video input to the RGB lines as outputs? I could probably tweak the converter code to be more of a passthrough, and even probably minimize the buffers involved when in that mode, but I'm kinda curious if the analog signals are close enough in this case to just skip the conversion outright.
 

max1zzz

Moderator
Staff member
Sep 23, 2021
259
644
93
28
I wonder if it's possible to simply bridge HSYNC/VSYNC to the outputs, and feed the video input to the RGB lines as outputs?
You could quite easily just jumper HSYNC, VSYNC and video through and remove the pico module however this will leave some extra resistors in line that may or may not cause issues but those could easily be removed. However I will also be adding internal video headers for both the mac and VGA side to the release version of the board which would make this easier
 

max1zzz

Moderator
Staff member
Sep 23, 2021
259
644
93
28
It's late and I'm not doing a full write-up tonight, but I'll just leave these here (excuse the potato video, it's that or a massive file and I cba with trying to compress it right now)
2A7E93C6-225D-4F73-BAF4-2D95FBDDA02C.jpg

 

Nycturne

Tinkerer
Dec 18, 2024
87
50
18
You could quite easily just jumper HSYNC, VSYNC and video through and remove the pico module however this will leave some extra resistors in line that may or may not cause issues but those could easily be removed. However I will also be adding internal video headers for both the mac and VGA side to the release version of the board which would make this easier

I thought that might be the case, but the ability to focus on things outside of work lately hasn't been great and so I'm not as certain of my thought process in areas where I'm only somewhat familiar as I normally would be. Prolonged stress isn't fun.

This really does sound like it'd hook into my setup rather nicely.

And the video looks great.
 

MeTheMac

New Tinkerer
Feb 20, 2025
54
10
8
Mars
RetroPods.io
It's late and I'm not doing a full write-up tonight, but I'll just leave these here (excuse the potato video, it's that or a massive file and I cba with trying to compress it right now)
Dude, that's awesome! So excited to pick up my own (if you start selling them)!
 
Last edited:
  • Like
Reactions: Nycturne

Trash80toG4

Active Tinkerer
Apr 1, 2022
1,071
309
83
Bermuda Triangle, NC USA
Fabulous! Absolutely amazing achievement, max.

One thing to look at. Scaling looks a bit stretched left to right to me. Is that just my perception or true? Throw a circle onscreen in a MacPaint or better. If it's elongated, scaling adjustment would remove some of the letterboxing? Not picking nits, trying to help out. ;)
 

max1zzz

Moderator
Staff member
Sep 23, 2021
259
644
93
28
Scaling looks a bit stretched left to right to me. Is that just my perception or true?
I do think it is a little stretched though I think this might be more a artefact of it being displayed on a 16:9 LCD as I have seen other peple using the same scaler setup and it looks fine. I was going to test this theory then I realised I don't actually have any 4:3 screens any more...... I might have to rescue one form ewaste at work :)
 

max1zzz

Moderator
Staff member
Sep 23, 2021
259
644
93
28
So, As mentioned above the board is now booting and working just fine but how did we get here?

When the board was initially tested after assembly it did nothing at all. No chime and no video. Though frustrating this is kind of what I expected, the scan of the apple schematics we have is not exactly the best scan ever, while laying the board out I cam across several missing connections where I had misread the schematics, maybe something similar was going on here?

After scanning through the schematic for the ITXPlus and comparing it with the apple schematics I noticed this:
1746309542715.png

Ahh yes, connecting the databus to the VIA backwards is not going to help. Lets fix that:
IMG_4334.jpg

That's a pretty big error and I was hopeful fixing that would get the board working however sorting this produced no change in behaviour at all. Back to looking through the schematics then.....

A little further on I noticed I had done the exact same thing with the SCSI chip. ooops, lets fix that too:
1746309717461.png
IMG_4335.jpg


Fixing that still did not produce any change from the board.
I couldn't see any more errors in the schematic so it was time to break the oscilloscope out. A bit of probing revealed activity on the RAM that looked very much like the initial power on RAM test, that's good! but why no video or chime?
Probing HSYNC and VSYNC revealed no activity a all, that seemed strange as I way always under the impression the video circuit was pretty much free running and that the sync signals should be present as long as power is on.....

Both sync's are generated by the LAG so lets start looking around there.
I started by comparing the connections on the ITXPlus board to the Plus Reloaded PCB (as this was faster than comparing to the schematic) everything looked fine till I got the the last pin, Pin 19 (aka RESNYB) was connected to two pins of U1F on the Plus Reloaded PCB but only one on the ITXPlus PCB. Looking at the schematic I was confused, It was connected to both pins in the schematic but only one on the PCB, what the hell! how did that pass DRC!?

Then I took a closer look. Pin 13, RESNYB. Pin 2, RESYNB... Hang on, RESYNB! that's not correct!
1746309866399.png

One quick jumper:
IMG_4332.jpg


On power on I now immediately got the normal checkerboard pattern followed shortly after with:
2A7E93C6-225D-4F73-BAF4-2D95FBDDA02C.jpg

It works!
Except there was still no sound....
The Board is using DosFox's design for a Sony Sound chip replacement, this is a design that is known to work fine so the issue has to be something I was doing wrong. Given up till now all the issues have been transcription errors so lets start with looking for those:
1746310060166.png
1746310092019.png

Yes someone was not paying enough attention when transcribing that and got a bunch of component values wrong. Fixing those (and a bunch more not pictured) was all that was needed to get sound working :)

So the board is working with some fairly minor (if slightly annoying) patches, I'll take that :)

But we are not done yet, at this point the board powers on but we have no way do anything. We need to sort out some I/O next!
 

max1zzz

Moderator
Staff member
Sep 23, 2021
259
644
93
28
So with the board booting it's time to look at the I/O

First to be tackled was the SCSI connectors, these where soldered on and the board booted Mac OS 7.1 from my BlueSCSI just fine. That's good! it's nice when stuff just works :)

Except.....
IMG_4339.jpg

Apparently I used the wrong footprint.... Oh well I'll correct that in the next revision and these ones will work just fine

With that working lets look at the Keyboard and Mouse
Originally I was just going to use a real Macintosh Plus Keyboard and mouse for the initial prototypes but that doesn't really fit with the "Build a new board from scratch" idea so I went hunting for adapters and found @Tashtari had made PS/2 adapters for both the keyboard and mouse using PIC12F1501's that where ideal
IMG_4338.jpg

Other than managing to order the 12F1501's in the wrong package these adapters pretty much worked fine out of the box, I did however notice one odd thing, with the mouse adapter connected the system would always skip the power on memory test and would freeze on the floppy icon until the mouse was moved. This was odd but not a major issue so I didn't initially look into this much, once I had finished most of the other testing I did a bit of experimenting and found disconnecting the mouse button output from the PIC fixed the issue, I couldn't really see why this would be the case but spoke to Tashtari who very quickly whipped up a modified version of the firmware that fixed the issue :) So what was the issue? By default the firmware initializes all of the outputs of the PIC to a low state until the mouse is moved, the has the effect of making the system think the mouse button is being held down until the mouse is moved and what dose holding the mouse button do? Make the system try and eject the floppy and given this board doesn't even have a IWM installed that is never going to happen!

Next up to look up was my sudo soft power setup, this was already kind of working at this point but had needed some patching to get there. The setup is pretty simple, a CD4017 counter with the power button hooked to the clock input, the first press toggles a transistor to turn on the ATX PSU and the second will reset the chip back to the beginning. The main issue here was I misread the datasheet (and the last time I used a 4017 was in secondary school well over a decade ago (Holy frig was that that long ago? It doesn't fell like it was that long ago.....)) and assumed after reset all outputs where low when in reality output 0 is high after reset resulting in the machine just being stuck on. No bid deal, the outputs just needed to be moved up one and this issue was resolved.
IMG_4336.jpg

(A pull down resistor was also added to reset)
This got the sudo soft power working but it was incredibly sensitive, just brushing your finger on the back of the power button was enough to trigger it. As soon as I looked at the schematic again the issue was obvious, a pulldown resistor was needed on the clock. As soon as this was added the sudo soft power worked as expected :)

Last to test was serial. I don't really have anything to say abou this - it just worked fine :)
(Ok, one note - you might notice in some pictures of the board I have jsut built there is a bodge wire on one of the serial transceivers this is not a issue with the board, I ended up using a 75175 here instead of the 26LS32 that should be there and the 75175 has a slightly different enable setup, if you use the correct part this is not needed!)

The finished product:
IMG_4333.jpg


And the upper port PCB:
IMG_4337.jpg


I'm very happy with the way these boards came out :) they need a little tweaking but nothing major
 

max1zzz

Moderator
Staff member
Sep 23, 2021
259
644
93
28
So what's next? The boards need a little tweaking to resolve the issues noted above, once this is done I'll get another run of test PCB's made and tested and then post the designs up on github

I also intend to make a Port Riser board with connections for a original keyboard and mouse should people wish to use these rather then a PS/2 ones. I'm also considering a port riser that also plugs into the internal SCSI port and and has a built in BlueSCSI with the SD card sticking out the rear I/O area

And maybe a version of Bolle's Micromac Performa clone for it too :)

As for the rest of the PCB's in this batch I will probably assemble all of them, one I will keep as a test board and the other 3 will probably be offered as assembled and tested boards. Once I have the final revision in hand I might also do some unassembled kits too. And if you don't want to purchase one the PCB designs will be on GitHub for you to download and have produced at any manufacturer of your choosing :)

And finally a picture of my work in progress build :)
IMG_4340.jpg
 
  • Like
Reactions: Nycturne and pff000

MeTheMac

New Tinkerer
Feb 20, 2025
54
10
8
Mars
RetroPods.io
Awesome work, @max1zzz!
How many of these will you offer for purchase once they are ready, out of curiosity? If they are within a reasonable price I will definitely be picking one up!
 

max1zzz

Moderator
Staff member
Sep 23, 2021
259
644
93
28
Awesome work, @max1zzz!
How many of these will you offer for purchase once they are ready, out of curiosity? If they are within a reasonable price I will definitely be picking one up!
The answer is I don't really know!
There will be at least the three from the remainder of the prototype run then at least another 4 from the test run of the final design but after that I don't really know. If there is enough interest I might order a larger lot of boards after that but if there isn't then I won't
 

Nycturne

Tinkerer
Dec 18, 2024
87
50
18
Originally I was just going to use a real Macintosh Plus Keyboard and mouse for the initial prototypes but that doesn't really fit with the "Build a new board from scratch" idea so I went hunting for adapters and found @Tashtari had made PS/2 adapters for both the keyboard and mouse using PIC12F1501's that where ideal

Kinda surprised there wasn't something for ADB lying around. But I like putting this I/O on the daughter board, as it means someone can come in and produce an ADB version if they really want one. The irony is that my current setup can convert USB inputs to the original Mac Plus connections, but not PS/2.