Skip to the content
PCBKitNew board
4 layers100 × 43.5 mmPistorm ste, the printed circuit board in 3D

PISTORM for the ATARI ST

Size
100 × 43.5 mm
Copper layers
4
Thickness
1.6 mm
Parts
31
Nets
162
Pads
493
Tracks, vias
2,157, 288
Pours
1
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
2 Feb 2023
Updated
28 Jun 2025

Overview

Pistorm ste is an open-source printed circuit board by gotaproblem, from the gotaproblem/pistorm-atari repository on GitHub, published under the MIT licence. It is a 4-layer board of 100 × 43.5 mm with 31 parts on 162 nets, routed with 2,157 tracks and 288 vias.

It is built around the EPM240T100C3, SN74LVC16373DL and LM1117-3.3. Its parts include 14 capacitors, 8 ICs, 4 resistors and 3 connectors. It belongs with the FPGA and CPLD boards of this library.

Main components

3

README

README.md

PiStorm 4 Atari

Join us on Discord

  • There's a Discord server dedicated to PiStorm Atari discussion and development, which you can join through this handy invite link: https://discord.gg/XFEBA8QDzQ

  • IMPORTANT NOTE: Selling blank or complete PCBs or derivatives on eBay or elsewhere for excessive profit is frowned upon and may lead to forthcoming related projects being closed source.

  • Even with the current global chip shortage (October 2021), components are not so expensive that you should pay up to a hundred dollars or Euros for a board.

  • The PiStorm is not a project for making money, it is meant to be an affordable way to replace and extend the functionality of EOL Motorola 68000 processors and have fun in the process.

  • This is not meant to discourage you from making PiStorm boards for others to enjoy, but for instance selling the product as a commercial item and then pawning off support to the community if something doesn't work is absolutely not good™.

Project information

  • This fork is solely for the Atari platform. All Amiga code has been removed.
  • Development is ongoing on an Atari STe, utilising an exxos PLLC adapter board to allow the fitting of the PiStorm interface. The ongoing work is a "proof-of-concept". If proven to offer acceptable performance, then bespoke hardware will be needed to allow installation within the confines of the Atari ST platforms. If you are lucky enough to own a Phoenix H5 board (exxos shop), then the PiStorm with Pi4 fits nicely :)
  • The Atari platform differs greatly to the Amiga platform. The Atari ST uses the FC signals, interrups and bus arbitration.
  • Initial development was on a PI3B, but performance was poor. A PI3A+ was tried and again the performance was poor. Finally, a PI4B was tried. Although initial performance was still poor in comparison to the Amiga, there was headroom for improvemnt. Over many months, performance has slowly increased, and at time of writing, performance is finally acceptable.

NOTE

The current builds require a Pi4. This hopefully will change once a stable solution is found. The current firmware may not work with PiSTorm boards using 74LVC16374 latches. It's a case of trying and seeing. All efforts are being made to correct this.

PiStorm must have 374 latches. Any other are known not to be compatible for the moment. Sep 2023 - Firmware development has resolved the different latch/flip-flop type dependancy. Meaning, both 373 and 374 parts now work. Sep 2023 - Pi3A+ now offers acceptible performance Oct 2023 - Pi3B is working but needs to be overclocked Oct 2023 - Pi Zero 2W is working but needs to be overslocked

Jun 2025 - Only use the latest branch. Anything before the jan2025 branch is obsolete

Extended functionality

A virtual IDE interface is included which allows for two disk drive images to be attached, each up to 8GB in size. UPDATE Oct 2023 An additional three virtual IDE interfaces are now included, allowing for a total of eight disk drive images - a potential 64GB of disk space.

  • Atari ST ROM images can be loaded at initialisation. For example, the emulation can boot using TOS 1.04 (ST only), TOS 1.06, TOS 1.62, TOS 2.06 or even EMUTos
  • Alt-RAM/TT-RAM option can be added (68020, 68030, 68040 only), to increase performance
  • 68020 CPU can be used with an FPU
  • ET4000 SVGA graphics is now available with 1MB VRAM
  • Screen grabs can be taken when using ET4000
  • Additional interfaces will be added with time

Now to get up-and-running

The following steps require basic knowledge of the linux operating system. Take your time!

  • Download Raspberry Pi OS from https://www.raspberrypi.org/software/operating-systems/, you need the 32 bit Lite version. NOTE

  • Atari PiStorm installation has been tested with Bullseye and Bookworm

  • Write the Image to an SD card. For development, a 32 GB SD card is recommended.

  • Connect an HDMI Display and a USB keyboard to the Raspberry Pi.

  • Insert the SD card into the Raspberry Pi4, and connect it to power. You should see a Rainbow colored screen on the HDMI Monitor followed by the booting sequence.

  • When the boot process is finished (on the first run it reboots automatically after resizing the filesystems to your SD) you should be greeted with the login prompt.

  • Log in as the default user, typically user: pi and password: raspberry. (The keyboard is set to US Layout on first boot!)

  • Run sudo raspi-config

  • Set up your preferences like keyboard layout, language, etc. It is recommended to set the screen resolution to 1280x720.

  • Set up your Wi-Fi credentials

  • Enable SSH at boot time

  • Exit raspi-config

You can now reach the Pi over SSH, check your router web/settings page to find the IP of the PiStorm, or run ifconfig locally on the Pi from the console.

Now the final steps to get things up and running, all of this is done from a command prompt (terminal) either locally on the Pi or over ssh:

  • sudo apt-get update
  • sudo apt full-upgrade (If you get mysterious 'not found' messages from running the line in the next step.)
  • sudo apt-get install git libasound2-dev
  • sudo apt-get install git ffmpeg
  • git clone https://github.com/gotaproblem/pistorm-atari
  • cd pistorm-atari
  • make clean NOTE If using a Pi3, make must be given an option
  • make PIMODEL=PI3 If using a Pi4, no option is needed
  • make

STRAM CACHE The experimental full memory cache-enabled version may be built with * make CACHE=ON or * make POMODEL=PI3 CACHE=ON

This feature greatly improves STRAM read operations (and hence is mostly applicable to games), but is not yet compatible with operation of the Blitter, so please disable this at the Desktop.

Copy the linux boot configuration file:

  • sudo cp configs/config.txt /boot/

Append the following to your /boot/cmdline.txt file

  • quiet vt.global_cursor_default=0 fsck.mode=force fsck.repair=yes NOTE Do not add new-lines to this file. The entries must be one continuous line

Congratulate yourself - You've gotten this far! Shutdown the linux operating system

  • sudo halt

Install the hardware

Power Caution

How do you intend to power this thing? There are two possibilities

  • 1 - power via the Atari This is okay for the final-cut, but for development, option 2 is suggested
  • 2 - power via USB If you are developing, which requires numerous power cycles, then this is the option for you. You will need to make sure USB power (5v) does not reach the PiStorm. The Pi GPIO header supplies 5v power on pins 2 and 4. These two pins need to be cut. As the Pi physically can not connect directly to the PiStorm, a header extension is needed - this is where you cut the pins - do not cut the pins on the Raspberry Pi header. NOTE DO NOT APPLY POWER FROM MULTIPLE SOURCES

If using a Pi4, a Header extension is needed, such as

https://www.amazon.co.uk/gp/product/B08C581XHV/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&th=1

https://www.amazon.co.uk/gp/product/B07NQ5Z7Y9/ref=ppx_yo_dt_b_asin_title_o04_s00?ie=UTF8&psc=1

  • Attach the Pi to the PiStorm and install the PiStorm adapter in place of the orignal CPU in the Atari. Make sure the PiStorm sits flush and correct in the socket. Double check that all is properly in place and no pins are bent.

FPGA bitstream update :

Before we can use the PiStorm, it needs to have firmware installed.

Install OpenOCD: NOTE - v0.11 needed Check your openocd version * openocd -v If you have version 0.12 or later, follow these instructions: * sudo apt-get remove openocd * sudo apt-get install openocd=0.11.0~rc2-1

Run the FPGA update with ./flash.sh, this will automatically detect your CPLD variant and flash appropriately.

If successful "Flashing successful!" will appear, if not it will fail with "Flashing failed" and nprog_log.txt will be created with more details.

Dec 2023 - openocd is no longer used

  • Flash the PiStorm firmware using the included tool - replace xxx with your CPLD type eg. EPM240 or EPM570 rtl/pistormflash -s rtl/EPMxxx_bitstream.svf Expect a "Warning" to be shown. This can be ignored.

Running

Testing

As a confidence test, it is suggested you run ataritest to confirm basic functionality.

  • sudo ./ataritest --memory tests=rw If you see any errors, then discuss in the discord development channel.

ataritest can do a lot more, like reading and writing (peek and poke), to Atari memory space, filling Atari memory with patterns.

Setup file structure

From the pistorm-atari directory, perform the following commands

  • mkdir ../roms
  • mkdir ../dkimages
  • mkdir ../configs
  • mkdir ../screendumps
  • cp configs/atari.cfg ../configs
  • cp roms/roms.zip ../roms/
  • cd ../roms
  • unzip roms.zip
  • cd ../pistorm-atari

Starting the Emulator

Start the emulator with the default Atari configuration by typing sudo ./emulator --config ../configs/atari.cfg

A couple of disk images have been created to help you get started. These are optional. You could of course run programmes off your floppy disk drive and/or an attached ACSI bus device.

The disk images are too large for GitHub. Please find the disk images at https://bbansolutions.co.uk Download the disks.zip file, copy to ../dkimages/ directory. Uncompress the file to give two disk images.

  • cd ../dkimages
  • wget http://bbansolutions.co.uk/wp-content/uploads/2023/10/disks.zip
  • unzip disks.zip
  • cd ../pistorm-atari

Run the emulator using sudo ./emulator --config ../configs/atari.cfg.

To exit the emulator you can press Ctrl+C.

RTG Graphics - Raylib

Sep 2023 - no-longer using raylib

Enhanced video modes are available for GEM and Mint.

  • Changes to the emulator configuration file are needed
  • edit your .cfg file and uncomment (remove the preceding hash), the following line
  • #setvar rtg

A mint specific configuration file is now included in the repository

  • Make a copy of configs/mint.cfg
  • cp configs/mint.cfg ../configs/

Finally, perform a rebuild To build now, using RTG, you must alter the git branch before compiling * git checkout et4000-dev * make clean * make

Parts

31
QtyValueFootprintReferences
12100nCapacitor_SMD:C_0805_2012MetricC1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C13, C14
4SN74LVC16373Package_SO:TSSOP-48_6.1x12.5mm_P0.5mmU2, U3, U5, U6
20-100RResistor_SMD:R_0805_2012MetricR3, R4
222uCapacitor_SMD:C_0805_2012MetricC11, C12
24k7Resistor_SMD:R_0805_2012MetricR1, R2
2SN54CBTD3384Package_SO:TSSOP-24_4.4x7.8mm_P0.65mmU1, U7
1Conn_01x02_MaleConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_HorizontalJ3
1EPM240T100Package_QFP:LQFP-100_14x14mm_P0.5mmU4
1LM1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U8
1PLCC68_plugPLCC_plugs:PLCC68_male_pinsJ2
1Raspberry_Pi_2_3Connector_PinSocket_2.54mm:PinSocket_2x20_P2.54mm_VerticalJ1
1SolderJumper_2_BridgedJumper:SolderJumper-2_P1.3mm_Bridged_Pad1.0x1.5mmJP1

The 30 most common of 31 parts.

Questions

How big is the Pistorm ste PCB?

It measures 100 × 43.5 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Pistorm ste use?

31 parts, built around the EPM240T100C3, SN74LVC16373DL and LM1117-3.3. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Pistorm ste KiCad files?

From the gotaproblem/pistorm-atari repository on GitHub, at the commit this page was made from: the board is hardware/pistorm-ste/kicad/pistorm-ste.kicad_pcb and its schematic hardware/pistorm-ste/kicad/pistorm-ste.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Pistorm ste design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 6 layers160 × 100 mmModulator V1p2, the printed circuit board in 3D

    Modulator V1p2

    sOrzada/STASIS_Exposure_Hardware

    This is the repository for the exposition hardware of the STASIS project.

    114 partsCERN-OHL-W-2.0
  • 2 layers102 × 71 mmREF1329 Altera, the printed circuit board in 3D

    REF1329 Altera

    RWeick/REF1329-N64-Gameshark-Clone

    This implements the original LZ9FC17 GAL on an Altera EPM240. It fully supports all functionality to include: parallel port, 7 segment display, and the GS button

    41 parts48GPL-3.0
  • 4 layers49.3 × 72.3 mmG76-Mini, the printed circuit board in 3D

    G76-Mini

    mtabini/G76-Mini

    An inexpensive VGA circuit designed specifically for homebrew 8-bit computers

    28 parts9MIT
  • 2 layers76.6 × 57.4 mmDivtiesus acer, the printed circuit board in 3D

    Divtiesus acer

    arleybls/divtiesus-acer

    Custom 2-layer PCB re-layout of DivTIESUS — a DivMMC SD card interface for the ZX Spectrum, with the upstream CPLD firmware unchanged.

    42 parts3
  • 4 layers78.2 × 50 mmRAM2E, the printed circuit board in 3D

    RAM2E

    ozw1z5rd/RAM2E

    2MB Apple IIe extended 80-column card

    63 parts2
  • 2 layers78.7 × 85.7 mmMAXwel, the printed circuit board in 3D

    MAXwel

    MitchiLaser/MAXwel

    Cheap DIY FPGA development board

    156 parts1GPL-2.0
  • 2 layers75 × 55 mmCrsf2pwm board, the printed circuit board in 3D

    Crsf2pwm board

    alex-aparin/crsf2pwm

    FPGA based CRSF-to-PWM converter for an RC car

    20 parts