Other Boards Technology
Snickerdoodle Dev Board Boasts ARM Processor with Onboard FPGA

snickerdoodle

The team at krtkl (pronounced “critical”) is crowdfunding Snickerdoodle, a $55 hybrid development board that has an ARM application processor with an onboard FPGA. It is programmable from a cellphone, has 230 general purpose input/output pins (GPIO) including ground pins, and might just be the next big thing for Makers in the embedded computing community.

Here’s how the board stacks up:

Specs

  • Zynq 7010 processor: a dual-core ARM Cortex-A9 at 667Mhz and 430K gates (upgradable to a dual-core A9 at 866MHz and 1.3M gates)
  • 512MB of LPDDR2 RAM (upgradeable to 1GB)
  • 2.4GHz 802.11b/g/n Wi-Fi (upgradable to include 5Ghz)
  • Bluetooth classic and Bluetooth low energy
  • 154 “actual” GPIO, 230 including ground pins (179 “actual” with the 7020 processor upgrade)
  • 3.7–17V input
  • Board dimensions 2″×3.5″ (50.8mm×88.9mm)
  • iOS & Android apps
High-level block diagram of snickerdoodle
High-level block diagram of Snickerdoodle

Differentiating the board even more than the number of GPIO is the design choice that allows users to pair Snickerdoodle’s Wi-Fi chip with a cellphone app called Connect. Once paired, Connect facilitates uploading custom field-programmable gate array (FPGA) configuration files to the board, controlling such operations as GPIO assignments, pin multiplexing, and overall system performance.

Use a cell phone app to load custom configurations to the snickerdoodle's FPGA
Use a cell phone app to load custom configurations to the Snickerdoodle’s FPGA.

Not everyone will love this method of programming, and Snickerdoodle’s team gets this. They stress in their preliminary documentation that you will absolutely be able to program the board with a microSD card, serial console/terminal via or microUSB and avoid the phone app, if that is what you want to do. This openness and awareness of user choice is a great sign of a good user experience.

Wall-E inspired robot using the snickerdoodle as its brain
Wall-E inspired robot using the Snickerdoodle as its brain

While the specifications are quite impressive, unless you are familiar with the architecture of the Zynq 7000 series of processor and aware of the integrated FPGA, you are missing the really interesting aspect of this board. The Zynq 7000 series System-on-Chip (SoC) is a combination of a traditional ARM application processor — like you find in a Raspberry Pi or BeagleBone Black — with the on-the-fly reconfiguration of logic gates of an FPGA. This dual threat enables the ease of working with an ARM SoC combined with the power of software-configurable hardware of an FPGA.

The snickerdoodle is not only powerful, it is tiny
The Snickerdoodle is not only powerful, it is tiny.

Typically, FPGAs have been prohibitively expensive, with prices only industrial customers could even consider paying. Their appeal is due to the ability of a designer to change the purpose and interaction of logic gates in the hardware simply by altering lines of software code. This programmability, plus the focus on parallel distribution of compute tasks, make FPGAs ideal for applications such as video and audio processing.

Snickerdoodle compatible accessory boards
Snickerdoodle-compatible accessory boards

In addition to the base Snickerdoodle board, krtkl is offering several adapter boards that target two problems: wiring all of the GPIO on Snickerdoodle and demonstrating the power of the board’s configurability. Of the first variety is the breakyBreaky breakout board and shieldBuddy for Arduino. The former exposes every one of the 154 GPIO pins to male 0.1″ pitch headers and the latter mimics the footprint of a Rev. 3 Arduino UNO board, and also handles level shifting to Arduino’s traditional 5V on the GPIO to 5V.

The second variety — designed to show off the flexibility of the main board — includes the piSmasher, gryphon autopilot, and the massive whiteRhino industrial SBC. Of these boards, it is likely only the piSmasher will be of mass appeal, as it mimics the footprint of the Raspberry Pi, but provides gigabit Ethernet, USB 2.0 high-speed, HDMI in and out, and 68 reconfigurable I/O via 0.1″ headers. But in many ways, these boards are not about moving product, rather they exemplify what can be done with a configurable Zynq-based system. When all the pins are customizable, then nearly anything is possible.

12 thoughts on “Snickerdoodle Dev Board Boasts ARM Processor with Onboard FPGA

    1. Krakow,
      I don’t see why you wouldn’t be able to do, though I’ve not actually run the hardware or used the software. Frankly, this would be a good question to ask the krtkl team.

    2. Hi Krakow – one of the snickerdoodle creators here… Are these digital buttons you’re wiring up? If so, no reason you couldn’t tie them to the programmable logic pins (note that “only” 100 of the 154 I/O are PL I/O…but that there are 230 *total* pins – including grounds – so there are legitimately 100/154 I/O to work with). Hope that helps!

      1. Id have to check, but Im sure they are analogue Switches ( Arcade machine Buttons) Id plan to build a Midi controller with the Board.. Could I do so?

        1. Hmm. Are these on/off switches? If so you’re good to go. I’d expect a typical arcade machine button to be digital… If they are indeed analog though, you’ll probably need to do some signal conditioning/use an analog multiplexer.

          1. Hi Ryan… you could be right….;-) Ill be using the buttons off this project ….will SD & the Breaky support being used in such a manner?… If so…a possible 150 would be IO be a gamechanger!

          2. Just sent you a response to your question you submitted via Crowd Supply, but in case others were wondering the same thing:

            Yes! You can either wire them up to breakyBreaky or plug some housings & jumper packs right into snickerdoodle and connect 100-125 (depending on the snickerdoodle configuration).

  1. That’s cool but how do you program it? I tried to use Xilinx’ SDK and Verilog but it’s far too complex compared to coding in C or Java with Eclipse or Visual. Does it work with Synflow? or MyHDL?

    1. Kevin, I hear you!

      The option that excites me about Snickerdoodle is the ability to upload ready-made configurations to the FPGA. The team at krtkl seems rather keen on creating a large repository of configs and hopes that users who are comfortable in the Xilix SDK will give back to the community by posting their IP. Time will tell if people will contribute to the library, but conceptually it’s a solid idea with the goal of unlocking the previously closed FPGA world.

      For more on their take check out the FPGA IP section of their crowd funding site. Sorry, I can’t link directly to the section. Here’s the link to the overall site https://www.crowdsupply.com/krtkl/snickerdoodle and scroll way down.

    2. Hi Kevin, out of curiosity: when did you last use Xilinx SDK? I’d be interested to hear about your experiences (good/bad). It’s Eclipse-based and natively supports C/C++. We’ve also made it possible to develop in Python/Wiring. We’re throwing together some video tutorials right now actually that will step through the whole process & will post links in the campaign soon.

      In terms of support for Synflow/MyHDL, right now we’re working with Vivado but have a number of Alpha users that will integrating with various tools and open source OSs/libraries later this year. As David mentioned, we’ll also have a number of pre-built I/O configurations (and other IP) to choose from that can get you started with an application away without having to fuss with any Verilog/VHDL. In fact, you could almost go the entire time working with snickerdoodle and not know there is even an FPGA there…aside from the benefits of reconfigurable I/O. That’s actually one of the huge advantages to using a single-chip ARM+FPGA solution – you’re effectively dealing with an ARM processor with a whole bunch of (high-speed) I/O of your choosing.

  2. One of the things that turn arduino in what is today is a simple compiler (avr-gcc) used in the command line. And that’s my frustration when I tried to learn VHDL. Anything changed from that time? I wish I can use MAKE to build and upload my designs (from the ARM chip) :) in a command line enviroment..

Comments are closed.

Tagged

I love to tinker and write about electronics. My days are spent building projects and working as a Technical Editor for MAKE.

View more articles by David Scheltema