alchitry – As a chemical engineer I appreciate that Alchitry is a portmanteau of alchemy and circuitry. That is a cool why to think about the FPGA. It is clever how this extends to your logo. You also write that FPGAs are magical. This shows that FPGAs really captured your imagination. Can you give us more insight into your experiences that led to the Alchitry project?
Oh man. This is a bit of a long story but I’ll write the short version here.
My interest first got peaked back in high school when I first started messing with electronics. Back then I was mainly writing C for microcontrollers. I came across a blog post from SparkFun where they announced that they were selling the LCDs found in PSPs. In the post they mentioned that you’d “need something powerful like an FPGA” to drive the display. They didn’t explain what an FPGA was and my search on the internet didn’t reveal very much.
A few years later I got an internship at Northrop Grumman where I was tasked to write some PC side software to test one of the boards they were making. The board happened to have a bunch of FPGAs on it and I asked my boss if there was something I could do to learn about them. He was awesome enough to set me up with an engineer there who spend a few hours laying the foundation for what they were and what they could do.
I spend another week or so learning about them and then wrote some designs that I’m sure were terrible and never used. The following Summer I had taught myself enough to create some actually useful designs though.
Then I went to college for EE and after the end of my freshman year I started working on an FPGA board that I wanted largely for my own projects. At the time, basically all the FPGA boards were huge “development” boards with tons of crap you didn’t really want. My first board was like 14"x14". Hardly something you could cram into your own projects.
I then launched the first Kickstarter for the Mojo thinking I could maybe sell 100ish of them and solder them in my dorm room using a hacked toaster oven. Turned out more people cared about FPGAs than I thought and I quickly abandoned the idea of making them myself.
I had all the boards assembled by a CM nearby and packaged them all in my dorm. After shipping I started writing all the tutorials with the intention of filling the gap of free information on FPGAs that I really wanted years beforehand.
As I got more into writing the tutorials, I realized that Verilog and VHDL really aren’t all the friendly to use and with a few minor tweaks could be so much better for creating FPGA designs. That’s when I decided to create Lucid. Lucid is similar to Verilog in a lot of ways (and converts to it) but it fixes a few things that I see as key issues. I had a lot of people who would simulate Verilog code then contact me asking why it wouldn’t work on the FPGA. It was super common for this to be caused by issues with synchronous logic. Usually, they’d be instantiating latches in their design when really the wanted a wire or a flip-flop and just didn’t realize it. The tools will warn you this is a bad idea but those warnings would get buried in the 50000000 other warnings that were totally fine. (Vivado is now much better than ISE in this regard)
So the Mojo IDE and Lucid were created to ease this pain point.
Eventually I ran into other issues with the costs of the boards. I had tried off and on to make them myself with varying levels of success. The issue with the Mojo system was the headers. The 0.1" headers on the Mojo itself were super convenient as you could just plug whatever you wanted into it but they caused two major issues.
The first was that the shields needed headers that had extra long pins so they could act as both male and female ports to be stackable. These are a nightmare to assemble. I was told by my CM that they would need to buy “solder pre-forms”, or basically molded solder rings that could fit over the pins and then be reflowed to assemble them or solder them by hand. Both cases lead to about $10 per board in assembly costs. This really hit hard for creating simple shields and severely limited the variety I could create.
I dabbled with creating a machine that used a syringe and compressed air to deposit solder paste on each pin.
This kind of worked but wasn’t super reliable.
The other issue with the connectors was that they weren’t great for signal integrity. The pin spacing was simply too much and there weren’t enough ground/power pins to help with isolation. The SDRAM shield showed this. If you stack it anywhere but right next to the Mojo you run into issues. Not good.
Some other issues with the Mojo and Embedded Micro were that the Spartan 6 was an aging FPGA. Xilinx had all but abandoned support for ISE in favor of Vivado. I also couldn’t trademark “Embedded Micro” or “Mojo” as they were too generic/similarly used. This lead to the rebrand of Alchitry which I personally like a lot better as a name.
After redesigning the boards to use an updated FPGA with Vivado support and one supported by the open source tools, I launched another Kickstarter to help get it off the ground.
This time around, I was faced with a problem of manufacturing again. The costs to have a CM do it was pretty high again ($10-15 per board) which made things difficult. Luckily the Kickstarter was pretty close to enough boards to allow me to build out my own small scale manufacturing setup.
This went well for awhile, but I ended up spending more and more time making boards and less and less time doing the things that made them great, writing tutorials, improving the software, making demo projects, answering questions on the forum (I’m still pretty terrible at this, sorry everyone…)
I was also starting to get pretty burned out with it all. It was around then that SparkFun contacted me want to see if they could partner with me to make a “bigger” FPGA board. They wanted me to design it and them build it with co-branding. This discussion lead to them taking over building and selling the boards which now frees me to do all the good stuff. Also (spoiler alert), we’re working on an Au+ that’ll have an FPGA about 3x the capacity of the Au.
In the last couple years, the number of tutorials and support material I’ve produced has been really quite poor. I don’t generally publicize this, but Embedded Micro and Alchitry has always been a one-man-show (I’m guilty of writing “we” all the time instead of I). So now I’m freed up to start getting back to my roots of creating a kick-ass easy to use FPGA.
I’m currently working on a full overhaul of the website so all the tutorials will be more organized and easier to follow. I’ll also be writing quite a few more to flush out the Alchitry stuff that I know is a bit lacking. The “shopping cart” will also be gone as I no longer need to manage a store.
An “Ft” board is in the works and going through SparkFun’s production pipeline. This will be a board with an FT300 on it which will allow for 200 megabytes per second of data transfer over USB 3.0. The SparkFun partnership should hopefully help me explode the number and variety of elements offered.
I’m also now writing up a demo project for SparkFun’s blog. Hint, it uses all the Au’s IO pins.
Anyways, I hope this gave you some insight into how I got into this and where I’m hoping to take it. I really appreciate all the support from everyone who has made this all possible.
This gives me hope for the future of Alchitry!