Krtkl’s Snickerdoodle Black is a compact system-on-module (SoM) development board that contains a Xilinx Zynq-7020 32-bit 866MHz dual-core ARM Cortex processor and an Artix-7 field-programmable gate array (FPGA). The Snickerdoodle Black also includes 1GB RAM, 16MB flash memory, 180 I/O pins (125 FPGA + 55 CPU), dual-band Wi-Fi, BLE, two 12-bit DACs, and two ADCs with a 16 channel multiplexer. If you’re looking for a single-board computer (SBC) with reprogrammable hardware built-in, the Snickerdoodle Black is a perfect candidate.

To the uninitiated, FPGAs have several considerable differences over your standard microcontroller (MCU) or single-board computer (SBC). An FPGA is an integrated circuit with re-programmable logic gates, making them incredibly flexible compared to an MCU/SBC. While an MCU/SBC’s reprogramming is limited to its processor, you can reprogram an FPGA’s firmware and hardware. For computationally intensive applications, like image processing and AI, an FPGA outperforms an MCU/SBC due to its parallel processing abilities. 

However, with added customizability, there’s also added complexity. FPGAs have a steep learning curve compared to the familiar MCU/SBC programming pipeline. Instead of using high-level programming languages, such as C or Python, programming FPGAs requires knowledge of a hardware description language like VHDL or Verilog. For most use cases, you’re probably not going to need something as complicated as an FPGA, but it’s pretty sweet that the Snickerdoodle Black gives you the option if you so desire. I think this is where the Snickerdoodle Black shines the most over other SBCs; you can take advantage of a Linux OS and programming in high-level languages while also yielding the benefits of an FPGA, making it the ultimate prototyping tool.

Backside of the Snickerdoodle Black

To fully take advantage of the Snickerdoodle Black’s capabilities, I would recommend having some intermediate experience with embedded programming and a willingness to dive deep into documentation. In terms of support and installation, Krtkl has a resource page that links to the community forum, tutorials, and Linux images. I notably found the Snickerdoodle Book an indispensable resource as it covers a lot of the nitty-gritty details of the board and set up. The Snickerdoodle Black uses the Xilinx SDK and Vivado for application and hardware development. For users who have mainly noodled on Arduino or CircuitPython, becoming acclimated may be challenging. If you find yourself completely out of your element and slamming your head against a wall, Snickerdoodle Black does support PYNQ, which allows you to program the board in Python.

In addition to the baseboard, Krtkl has released a couple of accessories to expand its capabilities. The BreakyBreaky breakout board ($45) allows better access to the Snickerdoodle’s I/O pins. You can also add Ethernet, HDMI, audio, and USB 2.0 ports to the Snickerdoodle Black by purchasing the piSmasher baseboard ($245) if you can shell out the extra cash.

BreakyBreaky provides easier access to the Snickerdoodle Black’s pins
The PiSmasher expansion board gives various input options
Snickerdoodle Black on a PiSmasher expansion board