Attachment | Size |
---|---|
Saturn.jpg | 269.79 KB |
saturn3.jpg | 122.25 KB |
Saturn2.jpg | 172.16 KB |
I was reading a recent post about desirable cards and I noticed the Saturn 128k card was one that a number of people want.
Perfect timing because I have just completed the design for a reboot of the Saturn 128k memory card and they are much cheaper than current offerings I've seen.
I'm offering bare pcbs with gold plated edge connectors for US$10 plus $3.50 postage.
A download link for the GED files needed to program the GAL will be provided those that purchase a board.
PM me for my PayPal details if you want to order.
The cost of the parts I estimate to be less than $10.
3 x 74LS74
1 x KM681000BLP-5 or AS6C1008-55PCN Static RAM ( 128k x 8 ) (Any 32pin dip that is 5v tolerant should work)
1 x GAL22v10 or GAL20v8 or V750C
4 x 3mm LED
4 x 470R 1/6W resistor
1 x 47uF 16v electrolytic capacitor
5 x 0.1uF Monolithic ceramic capacitor
1 x 1n4148 signal diode
This is a prototype (no gold plating)
WOW! Congratulations. It looks nice!
Nice! I've got one of the old Tiawan/Hong Kong made knock-offs of the Saturn 128. I've been working on some cards for the Apple II as well. What software do you use for laying out your PCBs? Do you have a place that will fab boards like this at a reasonable price? I've got several designs that are at the prototype stage but I'm struggling with moving to the next level. I have someone who has been helping me with board layout in Eagle for one of my designs but I hate to ask her to do more than she's already volunteered for. Also Lattice GAL22V10 are starting to become an issue to get since they've been out of production for a while now. I have a few, but not a lot. Atmel is making 22V10... but theirs has a funky programming algorithm and none of the inexpensive programmers including the MiniPro TL866CS that I have will handle them. And I'm not sure if the expensive programmer they recommend has Linux support, which if it doesn't means I can't use it since I don't have Windows or a Mac for that matter. Well, unless the software works under Wine.
I have six of them, they keep dying and I got sick of repairing them.
I use KiCAD for schematic capture and pcb layout, Freerouter to autoroute the traces and then I manually tweak the traces back in KiCAD.
I use JLPCB they are cheap but great quality. Fast as well, I submitted the artwork for the production boards Friday night and had them arrive 10am today (4 and half days including the weekend).
GAL22V10 are common and cheap on ebay ($1.50 or less). GAL20V8 if you have some lying around can also be used but they are more expensive on ebay. If you prefer you can also use the ATF750C, they are still in production. I provide JED files for all three chips so I'm confident finding a suitable GAL to assemble the board wont be a problem.
I now have the production boards in hand.
I assembled and tested one and it works flawlessly.
I've tested it in a 2e, a 48k clone, a 64k clone, a z80+64k clone and a Vectorio 64k with no issues.
For those that have already paid I'll be posting your boards this afternoon.
For those that haven't... PM me for my paypal details.
Edit: Add a Rev D Apple2+ (820-0044-D) to the list of machines I have tested the card in. (I repaired a faulty mainboard so i could test the card in it)
A lesson learned.
Never assume your universal programmer will support a device.
I just spent $20 for a couple of ATF750C cpld's to test only to discover the TL866 programmer doesnt support them, in fact none of the cheaper programmers do.
So when buying parts for the Saturn card, I suggest using a GAL22V10-7
Yeah, and you need a Lattice GAL22V10 which are unfortunately starting to get scarce as they are out of production since 2011. As I mentioned before, the readily available Atmel ATF22V10 uses a proprietary programming protocol and is also not supported by the TL866 or any of the other inexpensive programmers. You can still find the Lattice fabbed parts but they are starting to get harder to find and the price is starting to go up. Also I've been warned that there may be some counterfeit parts out there from some of the more fly-by-night Chinese suppliers. Whether those work at all or not, I can't say.
What the chinese are selling are pulls from ewaste sent there for recycling.
If you are lucky half or more wont be DOA, so order extra's.
I just saw something promising.... the G540 universal programmer lists the Atmel ATF22V10C in its supported chip list.
I found the algorithm to program the chip and sent an email requesting support be included with a link to the algorithm to the people that make my TL866CS. Hopefully they add support but I might go order a G540 now.
Update: I heard back from an engineer, he says "It is being planned, but we do not have even an estimated release date for it."
Well i don't want to wait indefinitely so I decided on a VS4800, from the company that make the G540 but a more advanced model. Basically $150 damage with DHL shipping. But at least I will be able to use brand new GAL's when I sell fully assembled boards online.
There are tons of Lattice chips out there, not all bad. For $7 USD and some change, you can get 10 of them.
The chance of them all being bad is quite low. https://www.ebay.com/itm/182084310968
These can easily be programmed with the TL866II plus programmer. No hassles IMHO.
My VS4800 programmer finally arrived so I can program Atmel GAL's.
There appears to be some difference in their behaviour compared to the Lattice GAL's.
The Atmel GAL's are not happy without a pull up resistor on the DMA_IN signal (U2 pin 11), a 10k resistor seems to solve the issue running the card in my 2e.
Removing the DMA support in the GAL logic will also work, if you are able to program a GAL yourself it might be the simplest solution until i track down exactly what the issue is.
Here is a link to the GAL code with DMA support disabled.
https://drive.google.com/open?id=1FC5Y9nnEmpZLViGy1yAwlkhuy5mTkveO
I tested the Atmel GAL's in my 2e using 7ns 10ns and 20ns parts
edit: I managed to put together an clone of a design that always had timing issues with Z80 cards. Back in the 80's we have to swap the 74S86 and 74S175 with others many times to find a pair that would work with the Z80 card. Sometimes F series and sometimes LS or just a different S series would work. sometimes a different Z80 card would alter the timing just enough to make it work. So testing in one of those flakey machines.... using the DMA disabled code a 20ns GAL gets errors but 10ns works fine.
Further testing revealed some 10ns chips got errors. 7ns got no errors in the timing critical machine. So if you have one of the old timing critical designs, use 7ns chips.
Do you know if the VS4800 programmer is supported under Linux? I'd like to be able to program the Atmel GALs, but I don't have Windows or a modern Mac.
Sadly it doesn't even support Windows 10, The USB device driver wont install.
Fortunately I can run it under Windows 7 32 bit in a virtual machine using VirtualBox. No reason you couldn't do the same under Linux.
I have VirtualBox, but no Windows to run under it. If it won't work under Wine or run directly on Linux it won't work for me. Unlikely it will work on ReactOS under VirtualBox if it won't work under Wine. I'm just not in a position at the moment to spend the ~ $90 for the VS4800 not knowing if it will work, and I certainly am not going to send even a penny to Redmond.
You could always go the DIY path
http://www.bhabbott.net.nz/atfblast.html
That's interesting, but the problem is I'd have to figure out a PC that has a parallel port on it. Something with a modern interface like USB would be nice. I probably have some old clunker laptop in a box somewhere or something that has a parallel port on it. The bigger problem is again, the software they talk about on that page is for Windows. I don't have Windows. I'm sure not going to buy it, and I don't really want to pirate a copy of it. Apparently the software for this is for Win 3.1 to Win 98. So maybe more likely it would work under Wine or ReactOS. Still, either of those is far less useful than if there were native Linux support.
But perhaps it could reveal enough technical details to build something with a modern interface and proper OS support.
After looking at that in more detail I think the way to solve the problem is to take their C code and port most of it to Arduino and use something like a Pro Mini to drive the programmer circuit instead of a PC parallel port. Then the front end of the C code could be ported to Linux and it could just shovel the data over to the Arduino over USB and let the Arduino do most of the work. That's a whole project in and of itself, but it would probably be fun, and pretty useful given that going forward these Atmel ATF22V10 may be the only parts that are inexpensive and readily available.
He is apparently working on an arduino mini based version, I suggested designing a shield pcb. If I was motivated I'd design one myself with a programmamble boost regulator to derive the programming voltage from 5v.
However my motivation is not there since buying a programmer that supports them
Completely understandable, I'm thinking if I need it I will build it with an Arduino Nano, I've got a bunch of those in my parts box, and it provides more than enough digital pins and an integrated USB, so it would fit easily into that design. It would be more of a software project than hardware actually.
Looking at the C code supplied with aftblast, it is one file that is less than 2k lines. Unfortunately it is fully of Windowsisms and Borlandisms, but it shouldn't be too hard to build a new GUI in a modern toolkit that works on Linux and Mac like GTK+ or Qt and then port over just the code that actually does the burning to the Arduino and make the GUI move the data over USB to the Arduino.
I was able to bang most of a new GUI for the programmer software out in a few hours in C using GTK+ that will compile on a modern (gcc) compiler. I haven't started to port the programming algorithm code to the Arduino or the code to talk to the Arduino over USB yet, but that shouldn't take all that long either.
The main ugliness of rewriting this code is that the programming logic is intertwined with the GUI code. I'm going to try to separate those out as much as possible. Splitting the programming code off to the Arduino and leaving the GUI code on the PC side sort of forces that, but it should make it easier to understand, maintain or even port again in the future.
I hate porting code like that
Oh, yeah, porting code can be a chore to be sure. It is worse when it is sparsely documented and the UI and logic is interspersed like this code is. But I've spent a big portion of my career cleaning up messes like this. Hence my user name on here.
In case anyone is interested, the GUI code for the ATF Blaster for USB is here:
https://github.com/softwarejanitor/atfblastusb
Note that while most of the UI is there, none of the programming code is done yet. If you want to compare it to the original ATF Blaster software, it is available at the link that was posted earlier in the thread. Also note that I've pretty much copied the original UI as-is, except in code for a modern GUI toolkit and compiler that will run on current open source platforms. I'm not a UI/UX expert or anything.
I have a few boards left for US$10 plus $3.50 postage.
For those wanting a fully assembled board, I should be able to get them past the 5mm thickness postage limitation for the cheaper postage if i don't use ic sockets.
If that is the case then it will be US$30 for a fully assembled board including postage.
Hello David_M
I’d really like one of your Saturn 128K boards, or an assembled unit, if you have any left. I’m new on this forum, so please let me know how to proceed if possible!
Many thanks
Liam
The last of the bare boards sold a few days ago. All I have is a fully assembled board or some bare prototype boards that are not gold plated and slightly different to the production boards.
Thanks for getting back to me! I’d like a fully assembled board please!
[quote=lcww1]
Thanks for getting back to me! I’d like a fully assembled board please!
[/quote]
I'll go to the post office on Monday and check what the postage will be.I decided the blue/yellow combination of LED's I used on one of the three boards I assembled for my own use didn't look good. So rather than use the standard red/green LED's I had in the other two cards I thought I'd use the water clear red and green LED's I recently bought on ebay. It looks like the green LED's are super bright LED's and the red ones I bought aren't because there was a significant difference in the brightness. To solve that, I decided to increase the value of R4 to dim D4 to match the three red LED's. I initially tried replacing the 470R with 680R and that wasn't enough so I tried increasingly larger resistance values. What shocked me was I had to go all the way up to 10K to even get close. Green is still a little brighter than the red LED's but it is close enough.
Question: What colour and type of LED's did you guys use in your boards?
I have uploaded a new version of the GAL code to resolve and issue with the DMA daisy chaining. It is not something normally used by RAM cards but it will allow the RAM cards to be used with my new MultiROM cards. Here is the new code.
SATURN128K_REBOOT - GAL22V10 - DMA_Fixed.jed
Thanks for posting! +1
I found a fix for the one remaining issue that was irritating me.
One very early Apple 2 clone would not work reliably with the cards.... until today.
As part of the process of designing the quickloader replacement, I saw that they combined the Q3 signal with R/W. They did it in a roundabout way using a latch but a simple OR gate will get the same result. The effect of combining the two signals delays the write signal being asserted from the beginning of the CPU phase of the clock cycle to the middle of the CPU phase. This allows extra time for the data on the data bus to become stable before it is written to the RAM.
The fix has been incorporated into the rev 1.1 version of the Saturn card.
If you are having any stability issues with a Rev 1.0 card it isnt too difficult to retrofit the fix to your card.
Simply add a jumper from Q3 on the edge connector to pin 23 of the GAL and reprogram the GAL with the Rev 1.1 code. The Q3 signal (pad 37) is on the back of the card, counting from the left it is the 12th pad.
Oh and that brings me to the other news..... there is a new Rev 1.1 card in production.
It looks like it will sell out very quickly on Facebook, so if you missed out last time don't miss out again PM me ASAP.
The new version is being run in red and adds 2 new status LED's that the original Saturn card didn't have. One to indicate the Alt bank is in use and the other to indicate the card is write enabled. It also incorporates the timing fix and the pullup resistor required by Atmel GALS for the DMA daisy chaining.
Dave, for clarity, can you post a photo of the fix on the first release card? Thanks in advance.
Fixes.jpg
Will the Atmel fix work if you use a Lattice GAL? I mean will the board still work. I assume the fix isn't necessary if you use a Lattice GAL, just wondering if it will affect anything.
Lattice GALS work with or without the pullup resistor.
Excellent, that's what I figured, but it is nice to know for sure.
.
Software would probably need to be modified or new software written to take advantage of > 128K in this kind of design. There are (or have been) cards like some of the Slinky/RAMFactor clones which were made with larger high density chips going up to 8M. One issue lately is that the smaller 1-8M SRAM chips are actually getting hard to find as they've been phased out for even higher density. To the point where in some cases for Apple IIs, it might be necessary to design boards with larger chips even if part of the chip might be essentially wasted. I know for example A2Heaven's 8M RAMFactor card is currently out of production due to unavailability of the SRAM chip it used. They're supposedly going to redesign for a different chip, but that will take time and they are busy with work on other products like FastChip GS and FastChip //c.
RAMFACTOR as far as I remember has completely different organization and control and does not conform to SATURN standard at all. I was asking if the 16K bank control of saturn was for example extended from 3 to 4 bits.
You are correct, the RAMFactor works differently. The thing I was saying is that if you are producing cards you're going to have the same issues with selection of chips and availability. I believe that this particular card more or less replicates the original Saturn 128k design. I don't believe you could just swap in a different chip to extend it to 256k or 512k or 1M, etc., without some work. But David M. would have to say for sure on that, the Reboot is his work. I know that Ian Kim had a cart that was based on the Saturn design which was 512k. I think it is a completely different design using a CPLD or FPGA instead of a GAL + 74x74 chips.
All 16 softswitches available to a slot are used by the Saturn design, so it is not expandable using the original design.
There is no way to increase the size and still remain compatible. The 512k card I believe hijacks the softswitches from multiple slots so it looks to software to be 4 saturn cards each one in a different slot.If anyone needs more than 128k I'm happy to sell them more cards. I have the new rev 1.1 cards available as well as the rev 1.1 MultiROM cards.
So I finally gave up waiting for a couple of parts to arrive from China and instead bought the missing parts locally (thank you RS!). I finished soldering the board and went to program the Lattice GAL22V10 and assumed my cheap-as-chips TOP853 would do the job (as I had programmed Lattice GALs for my TranswarpGS successfully before). Unfortunately it appears the GAL22V10 isn't a supported device however... grrr.
So, I am now looking for a new device programmer. What do you guys recommend - a G540, a TL866CS, a TL866II+ (yes I know about the missing 21V), or another cheapish option appeared to be a V4000+?
As I only use a programmer for vintage computers, the lack of 21V is probably going to be a problem but then I do have my TOP853 which I am pretty sure handles 21V devices fine. I don't do a lot of device programming, so I can't justify spending big $$ on one of these.
Any advice/suggestions/experiences you guys could give would be most welcome. :-)
Thanks!
So far for me the Minipro TL866CS has worked fine, but I've only tried to program EPROMs. I need to program some GALs. I've got some Lattice 22V10 parts, but I haven't had time to to it lately. I've been busy with writing software for the Quickloader Reboot. And I've finally had some success I think. :-)
I use a TOP3100 Programmer, but I have to use it under 32-bit Windows 7.
Not a big problem, just an inconvenience because I run that using a Virtual Player.
The TOP3100 isn't my best programmer but it does GAL's and EPROM's that my TL66II+ doesn't.
I've had excellent results programming the 22V10's with the TOP3100. Older EPROMs as well.
[quote=macnoyd]
I use a TOP3100 Programmer, but I have to use it under 32-bit Windows 7.
Not a big problem, just an inconvenience because I run that using a Virtual Player.
The TOP3100 isn't my best programmer but it does GAL's and EPROM's that my TL66II+ doesn't.
I've had excellent results programming the 22V10's with the TOP3100. Older EPROMs as well.
[/quote]
I don't have Windows, so that wouldn't be an option for me. One of the reasons that I bought the Minipro TL866CS is that there is an open source programming software for it that will run under Linux (and MacOS, although I don't have a recent enough Mac to run it either).
I'm planning to build the DIY programmer for the Atmel ATF22V10C chips. I've written most of the GUI for the USB version of it in a modern GUI Toolkit (GTK+) and for a modern GCC compiler. The older version of that programmer used a parallel port which is hard to find on a modern computer these days and the software for it was written for Windows 95/98 era Borland compiler, which is a problem these days. I won't have time to work on that until after I finish up the code I've promised David M. for the Quickloader though.
Softwarejanitor, do you want me to burn the chips for you? I'm in USA (New England) if you want help with that.
Seems like a significant waste of your time to have to build something for burning EEPROMs, GALs and the like.
Let me know in a PM. Happy to do it for ya.
Thanks for the offer. I've got some Lattice 22V10 which should work in the Minipro TL866CS that I already have. The reason I'm interested in the Atmel ATF22V10C chips is that the Lattice parts have been out of production since 2011 and are starting to get hard to find and expensive. The Atmel parts I believe are still in production and they are definitely cheaper and more readily available. So it is a long term thing to get set up for that. Plus it was good experience and sort of fun writing the GUI code for the programmer, and I hope that other people will be able to benefit from it when it is done.
OK, so you know, there are literally thousands of the Lattice chips available on eBay for about $1 USD each, including shipping.
Several vendors are selling them, mostly out of China. I don't see the supply running out any time soon ...
https://www.ebay.com/itm/281757770102/
I have read reports in various places of people having trouble programming Lattice 22V10 GALs with the TL866CS so I was hoping someone here may have already tried this combination and could report their experience.
I've just had a quick look at the TOP3100 - way too much for my budget unfortunately - the cheapest I saw was AUD$216. I'm looking for something under AUD$100, preferably around the AUD$60-80 mark.
Pages