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.