In order for myStorm to have practical use as a rapid FPGA development system we need to support many peripherals commonly used in modern digital electronics, inputs, outputs and patches. Our early design constraint around size, complexity and cost restricted the number of peripherals available on myStorm to a very minimum, namely a few LEDs and buttons. The thinking here is that we would provide the maximum connectivity in a format that is simple and accessible, this would in turn enable a peripheral strategy that could be community based. It is simply impossible to build all of the peripheral support directly ourselves, the task is just to enormous to cover everything everybody would want.
Expansion of myStorm
The myStorm design encompasses several discrete peripheral features to maximise connectivity. The first is a dual row 40 pin 0.1″ header to primarily communicate with a Linux embedded device like a Raspberry Pi, this also has a secondary GPIO function with shared pins of the Arm Cortex microcontroller. The Arm Cortex micro controller also has it’s own private GPIO expansion in the popular Arduino Shield configuration, this allows Arduino shields to be used with myStorm via the Arm Cortex controller, there are an enormous number of shields available in the market place to chose from and myStorm can take advantage of that diverse peripheral library. The third tier in or expansion strategy for myStorm is the direct FPGA GPIO connectivity which consists of a dedicated LED array/user interface dual row 16 pin 0.1″ header and a dual row 34 pin 0.1″ Olimex like header. Concurrent with these connectors is myStorm’s “Piece de resistance” 13 Pmod channels formed around 3 x 6 pin 0.1″ and 5 x 12 pin right angled female sockets, providing a total of 52 GPIOs. The key reason for choosing Pmods are as follows:
- Pmods are already available and commonly used in FPGA development boards
- Pmods have a really handy number of GPIOs 4 for single and 8 for double formats, kinda of a goldilocks number not to big or small!
- Pmods are simple to implement, they use standard 0.1″ right angled headers either single or double rows, single versions can be prototyped on strip or patch boards
- Pmods can be made economically on low cost 2 layer PCBs services in Europe, USA or Asia
Pmods have 6 pins; +3v3, ground and 4 GPIOs, the double Pmod is just a pin repetition on another row above. I am designing a couple of eagle templates so you can design your own, they will be optimised for myStorm.
It was therefore an obvious choice for myStorm and it is what we decided to go with as a standard. The rest of this post will focus in on the pmods that I am currently working on.
Pmods for myStorm
Although we are not expected to create every kind of pmod required, I figured we should at least get the ball rolling and start putting together some useful low cost pmod hardware plugins for myStorm single and double pmod port factors. The first thing I did then was knock up some simple pmod designs and selected Oshpark to do manufacture of the prototype PCBs. Oshpark are an excellent choice for prototyping pmods, their low cost pricing for small one off boards is very competitive and you get 3 of each design you submit (Great for Mr Yellow, Black and White!). I was also lucky enough to get a free super swift upgrade from them meaning my boards arrived in double quick fashion over the weekend.
The plan is to describe all of the pmods I design and provide an overview post and documentation in supporting repositories format alongside the myStorm repository. In order to do this properly however I need the myStorm toolchain fully operational which is still a little way off right now. However, I can introduce some of the the more basic and generic myStorm Pmods in order to kick things off.
I will be sharing these Pmods fully in their own repository very soon, in the meantime the PCBs have been shared on Oshpark so you can order them, directly yourselves if you wish to start building your myStorm deveopment chest. Please be aware that most of these have not been fully tested yet and maybe subject to changes and modifications.
The purpose of the breadboard pmod is quite simple to allow myStorm to connect to one or more breadboards for hacking, making and general prototyping purposes. It is really useful to have a breadboard kicking around, despite the SMD nature of modern electronics I still use breadboards on a regular basis they still come in really handy sometimes.
What the Pmod breadboard adaptor does is simply connect the 4 GPIO lines of a single Pmod to 4 columns on the breadboard, It also provides a decoupled +3v3 supply and Ground onto the breadboard bus rails. It is actually really simple and does not try to do anything else. here it is in action:
The myStorm Pmod Breadboard Adaptor adaptor can be obtained directly from Oshpark for makers who want to get building straight away.
The Pmod Proto
The Pmod Proto is similar to a regular patch/proto board with 0.1″ hole spacing in a double Pmod form factor. The Pmods Proto’s raison d’etre is simply to act as a substrate for making pmod prototypes, great for just knocking up a soldered/patched peripheral of some sort.
It has a double Pmod header space on the left, a 0.1″ 2 x 4 headers space and and 0.1″ spaced pads/holes in between to place wires and parts for your prototypes. Both headers have their pads replicated to adjacent pads to make wiring more convenient. This Pmod also features a set of PCB mounting holes with a 2.5mm diameter which can be used for standoffs or similar as it is a little longer and may need support. Below you can see it in plugged into one of Mr White’s double Pmod sockets.
You can find Pmod Proto on Oshpark if you want to start build some of your own prototype board or peripherals for myStorm ready for yourself or others.
So That is the first part about myStorm expansion, I will follow up with more Pmods and expansion peripherals over the next few weeks along with supporting Verilog (and sketches if needed) where relevant.