Member Since: October 23, 2011

Country: United States



FPGA Designer in the Aerospace Industry with a Masters Degree in Electrical Engineering and a Bachelors in Engineering Physics from Colorado School of Mines.

Programming Languages

Verilog, VHDL, Arduino, C/Embedded C, Bash, Processing, Assembly, Matlab, Mathematica


Colorado School of Mines


Arduino, FPGAs, AVR, Autonomous Vehicles, Image Processing/Control, Tesla Coils

  • Be sure to use the correct CS pin. The Arduino library should support selecting the custom pin when you initialize the SD card.


  • Update:

    Just saw on Aurduino’s site that the library supports a custom CS pin as an argument to SD.begin.


    Haven’t tested it yet, but looks like all you need is:

  • Have to say, while this board looks great, not impressed. I have had 2, the first showed up dead, and the second died after minimal use in a Wild Thumper (well below the rated limits).

    So far Sparkfun has been great about returns, but I am moving on to something else (http://www.pololu.com/product/1112/).

  • Just got a Mojo V3, and took a while to browse their site. My recommendation is if you want to start teaching about FPGAs, work with them, they have done an incredible job with the Mojo. I think they covered almost every hurdle I could think of, and a couple I had overlooked.

  • I noticed that the new T-Rex controller has inputs for rotary encoders. Is there any good way to work an encoder into this chassis?

  • Two thoughts. First, it would be really nice if you had the appropriate length M2 screws available, it took me 3 hardware stores to find them, and the only ones I found are ½ inch long. Second, it would be even nicer if the holes in the bracket were large enough to pass an M2 screw through…..

  • Hate to knock your board, but for a bit more, this one has some nice features.


  • A couple tips to save you some headache:

    1) For the latest Arduino (1.0.5) update the example sketch to include SD.h rather than SdFat.h and SFatUtil.h.

    2) The SS pin for an Uno is defined on line 278 of Sd2PinMap.h in $(ARDUINO)/libraries/SD/utility/ where $(ARDUINO) is your Arduino installation directory. Be sure to set it to 8.

    With those updates the example sketch works great.

  • I’m a bit biased being an FPGA designer myself, but I think getting FPGAs out there would be awesome. They are incredibly powerful pieces of hardware. Think of them as having the potential to be 100,000+ core processors which happen to run Finite State Machines rather than Machine Code.

    From my experience I think there are 4 major barriers to FPGAs:

    1) State Machines. I know a lot of us know what they are, but for someone coming into digital through Arduinos they are a key piece that gets missed. I think a basic course in digital focusing on discrete logic would help. Ultimately that is all an FPGA is really. I would suggest a class/tutorial that goes through State Machines and how to build logic with discrete chips would help. That is how I learned, and I constantly find myself doing mental comparisons of what is happening in code to what we did with discrete logic. Maybe Pete could give us a video on FSMs…

    2) Parallelized Hardware Coding. FPGAs are a totally different beast when it comes to programming. I learned the basics in my Digital Logic class using the Altera schematic editor. This lets you drag and drop in basic logic blocks and wire them together. Once you understand how to build a circuit with FSMs like in number 1, then FPGA design with a schematic editor tool fairly easy to grasp. Then once you get the hang of wiring together blocks, you can start converting some or all of it to code, and see exactly how the circuit becomes code (at least I seem to remember being able to do that…). I think something that may help break the programming barrier would be something like an open source library of little code blocks (like the massive amount of example code that is available for Arduino). This would let people grab say a UART or a SPI interface, and drop it into their design saving them the expertise needed to do more complex tasks. Learning to wire together code blocks, and begin to modify them to do what you want is a great way to ease into the FPGA world. That is basically how I went from absolute noob to an FPGA designer, was working with predeveloped code and breaking it down and piecing it together.

    3) SMD only. I know a lot of people are getting into SMD soldering, but FPGAs tend to be relatively fine pitch, and have a ton of pins. This is kind of a turn off, especially if you want to try prototyping. I think one solution is something similar to your old Spartan 3E dev board. A basic FPGA that can easily be integrated with a breadboard design. Be sure to have a good interface to the PC though. FPGAs don’t tend to come with USB drivers, so maybe an open source JTAG adapter or something would really help.

    4) Tools. I agree tools aren’t readily available, but I really don’t think anything can be done to fix that. To build an FPGA image you are going to need the proprietary software from the manufacturer to map your logic into their device. Perhaps the best thing here is to pick an FPGA which has freely available tools (I use Xilinx ISE for example) and work up a tutorial video that shows people how to do the basics, without worrying about details they don’t need to know. For the more computer savy out there, don’t forget that most all of the tools can also be run at the command line with scripts. That can make things a lot less painful. Maybe provide a simple Makefile that will make compiling an FPGA as easy as typing ‘make’. Finally, for beginners maybe a simple development GUI to work with the code blocks I mentioned above could be written. Something basic that would let you drag and drop circuit blocks and then export the code, or simply call the real tools from the command line in the background would make things a lot easier.

    Just my 2 cents, not sure if they are worth that much or not.

  • I am sorry to say that I don’t think the FPGA industry will be ending any time soon. Being an FPGA designer for a living, I have seen how vitally integrated they are into industries that will continue to use them for years to come.

    I hope you get a chance to work with FPGAs in a better setting some time, they truly are amazingly powerful pieces of hardware. Think of them as 100,000+ core CPUs running Finite State Machines rather than Machine Code.