• Hello MLAers! We've re-enabled auto-approval for accounts. If you are still waiting on account approval, please check this thread for more information.

Another IIci ROM hack

Samtec was kind enough to OVERNIGHT me some samples of connectors I'm interested in, for FREE! To some random HOBBYIST! How about that? Thanks Samtec! :-)

I got both the header and the socket for some 0.05" pitch connectors:

Headers.JPG

I have a couple of ideas now.

I could move the vias for each SIMM contact up slightly so some solder mask is in between the via and the contact (and so they're out of the way of the socket). Then I could make the vias a little bit bigger so the header fits into them, and solder the header there. Then, my programmer board could have the socket. The disadvantages are: 1) the header is sticking out in plain sight when in the Mac, must be careful that it doesn't touch anything. 2) it's probably pretty easy to bend the header pins when removing it from the socket.

I could also put the socket onto the SIMM and put the header on the programmer board. The socket takes up a bit more space (thickness-wise) though.

But my other idea is...put the HEADER onto the programmer board, FORGET the socket, and figure out some way to seat the SIMM over the programmer board with pressure so the header pins make good contact with all the SIMM contacts. Would this work? I'm thinking something like pogo pins, but maybe using that header instead. Thoughts?

 
1) A DIMM EdgeCard/ISA or PCI type edgecard connector across the top of the card, there are cables available to match.

2) .05 pitch straight or RA headers soldered to those contacts if it's easier to use a pair of 2.5" IDE Cables to hook up to your programmer.

I like #2 because you' d have enough contacts for alternate ground lines between all important signals to your in-box programmer AND multipurpose I/O Device. If you go with your samples mounted to elongated SIMM Pads, you've got no way of taking your SIMM offline from the Mobo, while doing it from the top lets you OR gate the "ROMS" so they're not on the CPU 's I/O bus . . .

. . . when you're playing switcheroo at the expense of the poor lil' unsuspecting CPU. }:)

 
Ya, i am running firefox 3, so HTML5 isnt supported. i tried 4, and I immediately puked, went back to 3 and not budging until i HAVE to. the UI in 4 is gross. i thought the UI from 2 to 3 was bad, 4 is just awful.

 
I got both the header and the socket for some 0.05" pitch connectors:
I was thinking about headers, but didn't know they had .05" pitch. How about sandwiching the SIMM between two rows of headers that give a slight clearance-fit over the contacts?

 
I don't plan on doing any connectors on the top -- attaching near the bottom of the board where everything is already routed is simpler.

To disable the ROM chips we could always put a jumper similar to the ROM select jumper on the motherboards. One end of the jumper could be connected to the chip select of the chips, with a weak pullup resistor keeping it deasserted. The other end of the jumper could be connected to the chip select SIMM contact. So if you wanted to lobotomize the SIMM, just remove the jumper and then the chips no longer do anything, but any signals you put through the connector would be passed through to the motherboard.

That would be a good argument for soldering the header directly on to the board.

I also like your idea, tt! WIth sufficient force I'd imagine we could make good contact. We'd probably want some way to release one row of the headers to make it easy to get the SIMM in, and then tighten the two headers' "grip" on the contacts.

Either way I pick, I think I have enough info to finish making the SIMMs now. I'll move the vias up and make them bigger in case we do decide to solder the header or socket on (won't hurt to have them there even if we do the sandwiching idea), I'll add a jumper that can disable the chips, allowing it to become a "brain-less" I/O adapter card for applications like jt is describing, and separate the write-enable line from VCC so I can access it separately through the SIMM connector. And of course the jolly roger with the LED eyes. None of that should be too complicated, and then I can order some more boards!

 
We'd probably want some way to release one row of the headers to make it easy to get the SIMM in, and then tighten the two headers' "grip" on the contacts.
You might be able to get away with having a static setup without moving parts. Can the two rows of pins contact the sides of the SIMM without the black plastic supports getting in the way?

One thing that would also be useful is to have something like soldered header sockets a couple pins wide acting as lateral locators on both sides. That way you wouldn't accidentally connect the wrong pins by the SIMM sliding over. The design should probably be compatible with using a SIMM socket in case a supply was discovered in the future.

 
You might be able to get away with having a static setup without moving parts. Can the two rows of pins contact the sides of the SIMM without the black plastic supports getting in the way?
If two of those headers are stacked on top of each other by their black plastic, the pins are too far apart for the SIMM, sadly :( They would have to be angled inward to make good contact.

One thing that would also be useful is to have something like soldered header sockets a couple pins wide acting as lateral locators on both sides. That way you wouldn't accidentally connect the wrong pins by the SIMM sliding over. The design should probably be compatible with using a SIMM socket in case a supply was discovered in the future.
I agree -- something to make sure the pins are totally aligned. Yeah, and olePigeon did find 64-pin SIMM sockets at his local parts place, so it's possible with the low quantity of people interested in this project that his supply will be enough and I'm making a bunch of fuss about nothing :) I'll definitely make it compatible with SIMM sockets. (I also have another reason to do that, because I have a mystery Quadra 840av ROM SIMM I want to read the contents off of)

 
Apologies for the lack of updates! Today I was finally able to sit down and (I think) finish up the version 2 SIMM.

TopLayout.png

BottomLayout.png

TopGerber.png

BottomGerber.png

Changes since the last revision:

  • Pin 46 of the SIMM is now unconnected (it's labeled as +5V in Guide to the Macintosh Family Hardware, but A23 in the IIsi developer note). This change should ensure compatibility with the IIsi while maintaining compatibility with all other machines.
  • Pin 13 of the SIMM is repurposed as the write enable pin, which should allow external programming now that I have broken it apart from VCC. Both GTTMFH2E and the IIsi developer note label it as a +5V pin, and I can verify that it is connected to +5V on my IIci. When in the machine, it will be pulled high, disabling write access to the SIMM. When out of the machine, it's separated from the +5V pins, so I can control it for programming. This is preparation for compatibility with my next project, the SIMM programmer board.
  • Pin 63 of the SIMM is now connected to +5V (it used to be left unconnected). It's labeled as +5V (chip select 1) in GTTMFH2E and the IIsi developer note. Because it had a special name, I wasn't using it, but since I've had to abandon two other +5V pins, I decided to use it now so I still have two +5V pins in use.
  • olePigeon's awesome logo is in there, along with two red LEDs for the eyes and a resistor for current limiting! Since I didn't want to upset the jolly roger logo, I didn't leave any polarization markings or labels for the LEDs-- but it's easy enough to figure out which direction the LEDs are supposed to go with a continuity tester.
  • I moved all the SIMM contact vias up and made them bigger, so if necessary we can use them as a programming header. This should also let us use the SIMM board as a "dumb" board for ribbon cable connections to a bigger board (if no chips are soldered on).
  • I cleaned up the copper fills on the top and bottom of the board.


Assuming nobody catches any showstopper problems or extra suggestions (maybe some text on the silkscreen somewhere?), I'll be placing another order in the next day or two!

Edit: Hmmm, I just noticed the middle ground fill is not connected to the rest of the ground fill anywhere -- I should probably figure out a way to connect them all. That write enable pin is the culprit responsible for the detachment.

Edit 2: I did some tweaks on the traces on the leftmost chip and now the ground fills are happily connected together. Only had to add one more via. Not gonna bother posting more pictures of the changes. But I will post the FreePCB project file for others to mess with (later)!

 
I was just looking at tt's IIsi ROM SIMM X-ray and I'm really confused now.

GTTMFH2E says pin 46 is a +5V pin. I've confirmed this in my IIci.

The IIsi devnote says pin 46 is an address pin. But tt's X-ray shows that pin is connected to one of the inner copper planes of the board (presumably +5V)! Is the IIsi devnote wrong? Can anyone with a IIsi ROM SIMM and a continuity tester confirm my suspicion? Is pin 46 connected to all the other +5V pins (maybe 1, 13, and maybe 63)? (Actually, looks like pin 1 and 63 won't be connected on the SIMM - so are pins 13 and 46 connected together?)

Also, the IIsi ROM SIMM's pin 1 (another +5V pin) is connected to a bus with a very slender trace width, and it appears to be separate from +5V, connecting to pin 1 of the chips onboard. Is THIS the pin Apple intended for use as write enable? On the IIfx ROM SIMM, it's a nice thick trace though.

I may not be done with my layout yet...this stuff is starting to make me wonder. I'm thinking I may want to bring pin 46 back into the equation as an additional +5V pin, and remove pin 63 so it's back how I had it before -- since pin 63 is supposedly a chip select pin, it might not be designed to carry +5V power. And I'm not sure *what* to do as far as pin 1 and 13 go...leave it as pin 1 being +5V and pin 13 being write enable, or swap them?

 
Sounds like it's time to add some jumper selects/wire wrap headers between the SIMM contacts in question and the alternate Chip pins/select lines. It can be as simple and tiny as more plated thru-hole vias and a piece of wire as a permanent solution after we do a round of testing with the new layout.

Have you got an unpopulated board left for testing? Plug it into your IIci (assuming it has MoBo ROMs) to see if the ROM SIMM might be addressable as memory expansion when booting from MoBo ROMs? Having some of those signals tied together, to VCC or GND, even on an empty card, might cause some problems/open up some options . . .

. . . dunno . . . just spit-ballin' agin'! :?:

 
Sounds like it's time to add some jumper selects/wire wrap headers between the SIMM contacts in question and the alternate Chip pins/select lines. It can be as simple and tiny as more plated thru-hole vias and a piece of wire as a permanent solution after we do a round of testing with the new layout.
I may have to do something like that to figure out all the permutations...I hope I can come up with a solution that works on all the II variants. What I'm discovering right now *might* be the reason my SIMM isn't working in your IIsi. Crazily enough, it's very possible that if I *hadn't* modified the SIMM, it would have worked fine for you...

It's looking to me like it's safe to use pins 1, 13, and 46 for +5V (and probably pin 63, too, since chip select 1 was never used), so I'll probably just stick with pins 1, 46, and 63 being the +5V supply lines, and pin 13 being the write enable line. If that ends up still not working, then I can do some trace cutting and wires between vias to figure it out.

Do you have a continuity tester? It would be very interesting to see if pins 1, 13, 46, and 63 are connected together on the ROM SIMM socket on the IIsi motherboard. That would help confirm or deny my suspicions...

Have you got an unpopulated board left for testing? Plug it into your IIci (assuming it has MoBo ROMs) to see if the ROM SIMM might be addressable as memory expansion when booting from MoBo ROMs? Having some of those signals tied together, to VCC or GND, even on an empty card, might cause some problems/open up some options . . .. . . dunno . . . just spit-ballin' agin'! :?:
If I put an unpopulated board into the IIci and turn the ROM SELECT jumper ON (to boot from onboard ROMs), it still boots fine, because the SIMM won't have any chips to mess up the data bus--I just tried it. As soon as I add a chip, though, it will try to talk over the onboard ROMs and nothing will boot. So if we do any kind of expansion, the expansion will *have* to contain the ROM as well.

 
Do you have a continuity tester? It would be very interesting to see if pins 1, 13, 46, and 63 are connected together on the ROM SIMM socket on the IIsi motherboard. That would help confirm or deny my suspicions...
Certainly, I'll try it in the morning . . . zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

 
No joy in mudville. :disapprove:

Almost all the pins are tied together by the logic on the IIsi MoBo, so far as I can tell on cursory inspection.

I'll try a different setting on the multimeter later, would a Logic Analyzer help? :?:

 
Thanks for checking! I don't think a logic analyzer would work, but do you have a multimeter that can display the resistance in ohms? I've noticed on the IIci motherboard my continuity tester beeps when I check between +5V and ground, but that's just because the resistance between them is less than 100 ohms (it's about 12 or 13 ohms). Can you look at the displayed resistance value to make sure it creeps all the way down to 0.000?

 
I mistyped, I've got a Logic Probe that I haven't bothered to learn how to use in the 10 years that I've owned it.

I'll try to tweak the setting on my analog multimeter to see if connections are solid or ghostly.

 
Excellent, thanks!

Now I'm thinking about the programmer board. I like the AVR idea. I'm looking at the ATMEGA3250PV-10AU. It has enough I/O pins for the entire SIMM plus enough to add some status lights and a UART connection to an FTDI USB chip, which is how the computer would communicate with it. Maybe there's a chip with USB built-in that would remove the price of the FTDI chip, but I'm guessing it would cost more than the AVR+FTDI combination too. Looks like Digi-Key is turning it into a non-stock item, but there are other (albeit more expensive) places to buy the chip, too, if it becomes a hassle to buy it from them.

I thought about a smaller processor and shift registers, but I need input as well as output capability so I can read existing SIMMs and verify programming. I think that rules out shift registers. There are also I/O expander chips, but the cost of them would make it hard to beat this AVR.

So the AVR costs $4.38, the FT232RL costs $4.50, and I'm not sure what the 64-pin SIMM sockets would cost (do you know the cost of the ones you found, olePigeon?). If we can't use SIMM sockets, the socket for the Samtec header costs $3.27 and I need two per board, so that's another $6.54. Brings the total to around $15. Plus there will be miscellaneous capacitors, resistors, crystals, USB port, etc. that will add to the cost. So we're probably looking in the range of $30-35 or so for the assembled SIMM programmer board...hopefully that's not too astronomical of a price!

 
Price sounds great as is, or even a bit more if necessary. :b&w:

It would be worth significantly more if it's configured for other hackers to wedge into its I/O for reading from/writing to the Expansion ROM Memory Address Space of the upsized capacity SIMM . . .

. . . on the fly. :approve:

You don't need to do the development work, just make sure that whatever the programmer board does in fulfilling its primary purpose, it also has an I/O expansion header or maybe even a prototyping area for further development!

}:)

p.s. I found my tiny yellow digital multimeter and took the mobo out of the IIsi to play with the pair of thru hole cone rows, muuuuuch easier! I should be able to give you good readings if you tell me what you want.

p.p.s. you might want to add 1,2,4,8,16,32 etc. or 1,5,10,15 etc. to the silk screen layer, numbering the contacts . . .

. . . a printout of that at actual size would make my job a LOT easier . . .

. . . among other things! ;)

 
I'll add numbers to the silkscreen on the SIMM, great idea!

That's great you found your DMM. What I'm looking for is which of pins 1, 13, 46, and 63 are connected together...I'm guessing they all are.

I can add holes for another header that would then allow direct hookup via ribbon cable through a lobotomized SIMM, although it would require some major RAM to do any on-the-fly stuff. Not sure what all to do as far as that goes...

 
Back
Top