An open-source developer cartridge with 256KB flash FROM and a USB port for data transfers.
Note: To program the cartridge you must be able to run a burned CD on your Saturn or program the flash chips before mounting them on the PCB.
The project (hardware and software) is distributed under the Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license. Some parts of the software uses other licenses, see the individual files for details.
The cartridge uses an FTDI FT245R chip for USB connectivity. The project includes a very basic transfer tool for Unix-like systems that can be used to transfer data to and from the Saturn, and execute programs. The Saturn client is supplied as a ROM image that can be programmed onto the cartridge flash. The board includes an "unbricking" jumper that can be used to disconnect the flash during boot.
#define USB_FIFO (*(volatile uint8_t*)(0x22100001))
#define USB_FLAGS (*(volatile uint8_t*)(0x22200001))
uint8_t ReadByte(void)
{
while ((USB_FLAGS & 1) != 0) ;
return USB_FIFO;
}
void SendByte(uint8_t byte)
{
while ((USB_FLAGS & 2) != 0) ;
USB_FIFO = byte;
}
| 0x000000 - 0x0FFFFF | Flash ROM, repeated every 256K |
| 0x100000 - 0x17FFFF | USB FIFO register on every other odd byte(*) |
| 0x200000 - 0x27FFFF | USB FIFO flags on every odd byte |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PWREN# | 0 | 0 | 0 | 0 | 0 | TXE# | RXF# |
| Part | Value | Footprint |
|---|---|---|
| C1-C2, C4-C11 | 100 nF | 0603 |
| C3 | 4.7 µF | 0603 |
| R1, R3-R4 | 10K | 0603 |
| R2 | 4K7 | 0603 |
| U1, U7 | 74HCT245 | SOIC-20 |
| U2 | 74HCT138 | SOIC-16 |
| U3-U4 | SST39SF010A | PLCC32 |
| U5 | 74HCT32 | SO-14 |
| U6 | 74AHC1G04 | SOT23-5 |
| U8 | FT245RL | SSOP28 |
| X1 | SMT Mini USB B conn | |
| JP1 | 0.1" header | optional |

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.