• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Yet another SE/30 ROM SIMM and Programmer

pgreenland

Well-known member
Hi All,

Having used BMOW's Rominators in my first two SE/30 restorations, I found them out of stock while looking for a third.....so thought it was time to build my own custom SIMM and programmer.

I also wanted slightly more space than the 2MB available, so took some inspiration from other SIMM designs and made use of low voltage (3.3v) flash chips with buffers between them and the SE/30 (would like to give credit to the original inspiration here but can't find the original source, if you know let me know).

Providing 2 x 8MB switchable images via a local dip switch or remote header.

ROMoMatic_SIMM.png ROMoMatic_Prog.png
ROMoMatic.jpg

I've been using the stock SE/30 ROM in the first slot. Along with a ROM created using bbraun's disk driver and modified image: http://synack.net/~bbraun/macromboot.html in the second, stuffed full of all the diagnostics tools I wanted to fit into the BMOW ROM. Without any compression boot times from the ROM disk are possibly slightly faster than the BMOW with its compressed ROM disk image, although I haven't timed them....just a finger in the air sort of measurement.

The programmer itself is somewhat self-contained, it emulates a USB disk drive and makes use of the UF2 file format....developed by Microsoft to program Microcontrollers and used by controllers such as the Raspberry Pi Pico. It makes reading/writing the ROM is a drag and drop operation on any OS.
Connecting it to my Mac yields:

1695473541667.png
Files ROM0.UF2, ROM1.UF2 and CURRENT.UF2 allow reading the first, second or both ROM images from the connected SIMM respectively in the programmer file format.

BINTOUF2.PY is a python script which allows raw binary ROM images to be converted to the UF2 programming format. Once in this format programming one or both ROM slots is simple case of dragging and dropping into the disk. Or having the python script write directly to the disk.

It's not quite as fast as I was hoping....should have probably calculated the expected read/write times in advance. Reading or writing the complete 16MB programming image takes around 5mins 30s.

Posted to gauge potential interest in taking the project any further than the 4 SIMMS I've so far hand built for my machines.

Thoughts?

Thanks,

Phil
 

tt

Well-known member
I thought I responded to this post but it is gone. It seems like there are a few different sellers in the market, so interest is likely going to come down to price. Same with the programmer. I don't have a sense for how many people have one, but I am guessing more people should have one to encourage further developments on ROM hacking. I think it's interesting to have a switch to swap between two ROMs, but I am not sure how useful that is in practice, like when is it needed? After a hardware change? Simpler things like the thickness of the PCB to improve reliability in sockets may be more low hanging fruit.
 

ymk

Well-known member
Good work. There won't be a performance difference because the /DSACK signals aren't generated by the ROM.
 

pgreenland

Well-known member
I thought I responded to this post but it is gone. It seems like there are a few different sellers in the market, so interest is likely going to come down to price. Same with the programmer. I don't have a sense for how many people have one, but I am guessing more people should have one to encourage further developments on ROM hacking. I think it's interesting to have a switch to swap between two ROMs, but I am not sure how useful that is in practice, like when is it needed? After a hardware change? Simpler things like the thickness of the PCB to improve reliability in sockets may be more low hanging fruit.
I initially added the ROM switching to cover stock vs custom ROM. While debugging my rebuilt machines I found a few test tools that weren't happy with the modified ROM. Possibly a bit overkill when the alternative would be to just swap out the ROM. Being able to switch between two different ROM disk images may be more useful though.

The PCB thickness is still an issue. The original I believe was 1.27mm thick, the nearest you can get from most PCB manufacturers is 1.2mm. From the Chinese suppliers the prototype in 1.2mm above was $3 for 5. A suggestion elsewhere for increasing the thickness of the board would be to increase the outer copper weight from 1oz to 2oz. However this puts the price up to something astronomical (for small volumes) when I tried.

I've not had a huge number of problems with the 1.2mm vs 1.27mm in my sockets.....but have had had the occasional issue that I'd need to address.
 

pgreenland

Well-known member
Good work. There won't be a performance difference because the /DSACK signals aren't generated by the ROM.
The nor flash quite nicely drops in place of the original ROMs. I thought they were quite a bit faster than required. However on closer inspection the access time is 70ns, which would lead to a max read rate of ~14Mhz. I should probably double check that access time against the original ROM chips. 🙈
 

Phipli

Well-known member
However on closer inspection the access time is 70ns, which would lead to a max read rate of ~14Mhz. I should probably double check that access time against the original ROM chips.
On much newer macs it was still only 120ns. You're fine :)
 

Phipli

Well-known member
I've been using the stock SE/30 ROM in the first slot
I'd use the stock IIsi ROM, it will work just fine, but is 32bit clean. It is a "universal" ROM that works in a load of different machines. It's the basis of the ROMinator II, but an original copy would still have the RAM test, checksum and no ROM disk.
 

tt

Well-known member
The PCB thickness is still an issue. The original I believe was 1.27mm thick, the nearest you can get from most PCB manufacturers is 1.2mm. From the Chinese suppliers the prototype in 1.2mm above was $3 for 5. A suggestion elsewhere for increasing the thickness of the board would be to increase the outer copper weight from 1oz to 2oz. However this puts the price up to something astronomical (for small volumes) when I tried.

I've not had a huge number of problems with the 1.2mm vs 1.27mm in my sockets.....but have had had the occasional issue that I'd need to address.
I ended up replacing a ROM socket on a board with one with metal tabs since it was randomly freezing up. Most people are probably not going to want to do that. Given all the potential issues with old equipment, having one less potential issue is probably worth a premium. JDW talks about this topic in his recent ROM video.

I am wondering if the trend for future ROM SIMMs will be toward improved compatibility with Quadras and in system programmability.

Are you able to get these built at a factory or are you making them by hand?
 

ymk

Well-known member
The nor flash quite nicely drops in place of the original ROMs. I thought they were quite a bit faster than required. However on closer inspection the access time is 70ns, which would lead to a max read rate of ~14Mhz. I should probably double check that access time against the original ROM chips. 🙈

ROM data is latched in at 2 clock cycles (~127 ns) regardless of the access time of the ROM chips.

The entire read cycle takes four clocks, so the max read rate is around 3.9 MHz.
 

pgreenland

Well-known member
@ymk phew....nice bit of accidental headroom in that case :cool:

@tt The few I've made, aka the four I needed for my machines + the green one above were all hand assembled. If there was enough interest in them I was going to look at having the PCB manufacturer (JLCPCB) assemble them too. The board is single sided and aside from the DIP switch is all surface mount. Providing they have the parts available or similar drop in replacements.
 
Top