snickerdoodle is a tool for dreamers and creators to build, make, invent, and do things they’ve always been told weren’t possible. It’s for people willing to explore new horizons and challenge themselves to learn, grow, and handcraft great, new things - not because it’s easy, but because it’s worth doing.
If you are satisfied with what existing low-cost platforms have to offer because they’re “good enough,” or you see no reason to dare to branch out and try something new, or you have never been left thinking “I love [fill in the blank maker / development board], but I really wish it could do [this],” then read no further. snickerdoodle isn’t for you.
We love what Raspberry Pi and Arduino have done for education and the impact they’ve had on the growth of the maker community. We also realize that what fundamentally makes these platforms powerful is what limits them: they are intended to help you take the first step, to get you thinking, to get you writing those first lines of code, to foster confidence and hope and curiosity.
The question is: now what? What if I want to do more? To grow? To create something different? Why is there nothing out there that I can afford and use that lets me make what I want to make?
That is why you need snickerdoodle. To create something different. To make what you want to make. To take back control of your projects. To invent something you will be proud to show your friends, your family, your colleagues. Put another way: snickerdoodle takes all the things that Raspberry Pi, Arduino, and BeagleBone prevent you from doing and allows you to do them.
snickerdoodle includes support for Ubuntu Linux, ROS, and FreeRTOS so you can take advantage of powerful communities and code bases and quickly port over your own existing projects.
snickerdoodle uses an Eclipse-based development environment for programming in Python, Java, and C/C++. With loads of reference designs and pre-built applications, building and learning are actually fun again.
With Wi-Fi, a dual-core ARM processor, and 155 user-customizable I/O (yes, 155 I/O…across 230 pins…including 76 grounds), snickerdoodle is more than “just another cheap Linux computer.” snickerdoodle gives you the freedom to…
You get the idea…
snickerdoodle has built-in Wi-Fi uses a special ARM processor with software-reconfigurable peripherals and I/O. Think of it as a 3D printer for digital hardware. So whether it’s PWMs, or SPIs, or regular old GPIO, you’ll no longer be held back by the chip or board maker telling you what pins you get, how many, and where - you will always have the pins you need, when and where you need them.
With a commercially supported, Eclipse-based development environment, you’ll be able to get from opening the box to running an application in under 15 minutes.
snickerdoodle is programmed using a freely downloadable, Eclipse-based Integrated Development Environment – available for Windows and Linux.
So whether you’re working in Python, Java, or C/C++, you’ll be right at home.
You’ll also be able to download all the board support packages (BSPs) and reference designs you need for your application straight from the krtkl and snickerdoodle websites. With everything from pre-built hardware configurations to open source projects, operating systems, and libraries, snickerdoodle starts your project off on the right foot.
*Note: interested in learning more about the IDE? Check out our YouTube channel for tutorials and demos as well as the links provided in the FAQs below.
Why clutter your desk with more wires when you don’t need to? snickerdoodle can be configured wirelessly so once you’re connected to your snickerdoodle, you’ll be able to quickly and seamlessly load projects, hardware configurations, and reference designs.
Of course, wireless isn’t for everybody. Maybe you don’t want your data leaving your bedside. Maybe you’re worried the government is watching your every move. Or maybe you’re stuck inside a Faraday cage in Bermuda. Whatever the reason, fear not…because you can still program your snickerdoodle the “old-school way” - with no wireless connection OR mobile device.
You can:
And for more advanced embedded development, there are dedicated pins (on J2) for debugging via JTAG.
snickerdoodle has seven physical connectors (eight if you opt for the upgraded processor).
Connector | Manufacturer Part Number | Description |
---|---|---|
J1 | FCI 10103594-0001LF | USB and Power Input |
J2 | Samtec TFM/SFM-115-01-F-D-A | Power, JTAG, I2C, Analog |
J3 | Samtec TFM/SFM-120-01-F-D-A | Microprocessor Subsystem |
JA1, JA2, JB1, JB2 | Samtec TFM/SFM-120-01-F-D-A | Reconfigurable I/O |
JC1 | Samtec TFM/SFM-120-01-F-D-A | (Zynq-7020 only) |
In order to keep snickerdoodle small enough to use in mobile robots, drones, and other size- and weight-sensitive applications - but not so small that you:
a. can’t practically hook anything up out of the box or
b. are forced to buy an expensive baseboard just to get to pins you can actually use
The 0.05” pitch, upright headers can be plugged into directly using a housing+jumper pack, providing 0.1” “maker-friendly” female jumpers for quick prototyping right out of the box.
This is the perfect solution if you neither need nor want any bulky USB, Ethernet, or HDMI jacks in your system, or you’re just looking to hook something up on the workbench and start creating your own gloriously ‘frankensteined’ contraption…
But don’t worry - if it’s more single-board-computer-style connectors or 0.1” headers you’re looking for, we have a solution for that too! Just head on down to our “baseboards” section below…
Below are the high-level technical specifications for snickerdoodle (items in bold are configuration specific):
A microprocessor you can customize!
The workhorse behind snickerdoodle is an ARM-based System on Chip (SoC) from AMD called Zynq.
These powerful little chips - which have roots in industrial, aerospace, and defense applications - allow hardware to be reconfigured with software, freeing you to accomplish things that simply aren’t possible with regular microprocessors (like those in the Raspberry Pi and Beaglebone - which have roots in DVRs and cell phones).
Unlike a lot of more complicated reconfigurable hardware, the Zynq SoC inside snickerdoodle has a full-blown ARM microprocessor inside meaning you are able to treat it (and program it) as if it were “just another microprocessor”…with a ton of really fast, reconfigurable I/O.
In other words, the development process and tools are very similar to what you’re used to using with other systems like Raspberry Pi.
If you’re interested in learning more about Zynq, check out the free e-book at ZynqBook.com.
With snickerdoodle, you have three flavors to choose from:
snickerdoodle one comes with a 667 MHz Dual-Core ARM Cortex-A9 processor and 430K reconfigurable gates (Zynq-7010) to give you 155 I/O (100 reconfigurable) and everything you need to get started.
If you need more I/O and 3x the configurability, snickerdoodle prime bumps up to 1.3M reconfigurable gates (Zynq-7020) and 180 I/O (125 reconfigurable).
And finally, if you’re looking for even more horsepower, snickerdoodle black packs a punch with an 866 MHz Dual-Core ARM Cortex-A9 and reconfigurable gates that are 30% faster than snickerdoodle prime (Zynq-7020).
See our FAQs at the bottom of the page for additional hardcore technical details on the exact part numbers, I/O performance, documentation, and more.
Sick of putting up with poorly performing dongles or endlessly wrestling with dysfunctional drivers just to get your projects connected to the Internet or your mobile device? snickerdoodle has the cure.
Wireless connectivity is provided via a Texas Instruments WiLink 8 pre-certified module.
snickerdoodle one uses the WL1801 radio to provide single-band 2.4 GHz 802.11n SISO Wi-Fi.
snickerdoodle black comes equipped with the WL1837 and bumps you up to dual-band 2.4 GHz & 5 GHz 802.11n 2x2 MIMO Wi-Fi.
See our FAQs at the bottom of the page for additional hardcore technical details on the exact part numbers, wireless performance, documentation, and more.
Have a specific application in mind and want a little help getting started? snickerdoodle can be paired with several pre-configured baseboards with no need to hassle with configuration or setup.
Each baseboard has its own on-board memory/identification chip that tells your snickerdoodle what’s plugged in and automatically loads the right package to get all your peripherals working without you lifting a finger.
Did someone say something about 0.1” pins? Well here’s 270 of them! Think that’ll cover it?
breakyBreaky provides the full snickerdoodle pinout on 0.1” headers and comes loaded with:
Note: requires snickerdoodle with connectors “down” configuration; not included.
Or maybe what you’re looking for is gigabit Ethernet, high-speed USB, a bunch of reconfigurable I/O, and…simultaneous HDMI output AND input? Enter: piSmasher… Named “piSmasher” for a reason, you’ll get everything Raspberry Pi provides and more - you can kind of think of it as a Raspberry Pi on steroids.
piSmasher gives you:
Note: requires snickerdoodle with connectors “down” configuration; not included.
One of the beauties of snickerdoodle is that it’s architected, built, and priced in a way that makes it incredibly easy and practical to go from proof-of-concept to production. The minute you’re done prototyping, simply take the snickerdoodle you spent all those hours in the lab with and plug it right into your production system.
Have a killer idea for a baseboard or shield you don’t see? Just follow our baseboard design guide and you can build your own micro shields, breakout boards, interfaces, or whatever you can dream up. And with reconfigurable I/O, the possibilities are practically endless.
Note: for more information on connectors, footprints, and pin-outs, be sure to check out our User Manual linked in the FAQs.
Finally, snickerdoodle has a bunch of optional accessories to make your development experience even more awesome…
Don’t let your cookies get stale… keeps your snickerdoodle safe, clean, cool, and securely mounted in your autonomous cat-herding robot. cookieJar’s are machined out of 6061 aluminum, bead blasted, anodized, and laser engraved. They’ve got an internal boss + thermal pad so the enclosure will act as the heat sink! There are four countersunk mounting holes in the base if you want to strap this thing to whatever you’re driving/flying around… We’ll provide the screws.
Note: the above image is a rendering, final design subject to change. snickerdoodle not included. Production enclosure to be functionally equivalent.
Note: included with snickerdoodle prime and snickerdoodle black
Note: microSD card manufacturer subject to change. Potential substitute shall be at least functionally equivalent.
Note: All seven mating snickerdoodle connectors and a 50-pack of (loose) jumpers - see below for jumper description
Note: jumpers only. Wires are approximately 7.5” long (19cm), and come with 0.1” female pins & housings installed on one end and crimped pins for installation into mating Samtec housings on the other.
For both plug-in and cable-ready baseboards and microShields, check out our User Manual for info on connectors, footprints, pinouts, and more.
Nope. Again, there are two “hard” ARM Cortex-A9 processor cores so you can run a wide range of real-time and general-purpose operating systems. Or if you don’t want the overhead of an OS, you can even run “bare metal!”
The STM32 functions as a USB-to-serial bridge, power-supply manager, boot-source controller, USB boot flash mass-storage-device bridge, LED and button controller, and I2C auto-configuration manager. We provide pre-integrated, functioning firmware for this device, which allows us to implement many of the platform and usability features intrinsic to snickerdoodle.
However, if you wish to build your own custom firmware for the STM32 device, both ST and ARM provide complete free toolchains and SDKs for the STM32F078, and the STM32 debug pins are fully exposed as well (on J2).
Taking advantage of the STM32-controlled load switches, snickerdoodle’s standby power can get down to 5 milliwatts! (this is with the Zynq off and STM32 in “stop” mode).
Well, a couple places actually… For starters, all the JTAG pins are available on J2. Secondarily, you can actually debug over Wi-Fi via the debug agent in Linux. You can also get JTAG over the microUSB port (facilitated by the STM32 companion controller); note that due to the limitations of "full-speed" USB and SPI, this will be limited to approx. 4.8 MHz (as opposed to an external high-speed, pro-style JTAG box that’ll run about $60-250) - a pretty reasonable compromise considering there’s no added hardware cost. :) And, of course, breakyBreaky has "standard" JTAG headers built in.
The voltage levels for the FPGA I/O pins are settable to between 1.2 V and 3.3 V (JA1, JA2, JB1, JB2, JC1).
snickerdoodle has two independent “banks" of 50 FPGA I/O pins and each can be set to any I/O voltage in the aforementioned range. snickerdoodle black adds a third (independent) FPGA I/O bank of 25 I/O pins.
A 3.3 V power supply output is supplied on each FPGA I/O connector, which can be used with a single jumper to set the I/O voltage to 3.3 V for that bank without any additional external components. However, to use an I/O voltage other than 3.3 V (1.2 V to < 3.3 V), that voltage must be supplied to the I/O bank.
The microprocessor I/O (J3) have a fixed voltage of 1.8 V (this is required to support Ethernet on the baseboards as RGMII does not support I/O voltages above 2.5V).
The analog, audio, JTAG etc. I/O on J2 have a fixed I/O voltage of 3.3 V.
Below is a list of snickerdoodle component temperature ranges:
There is an industrial version of the Zynq, however it carries a significant price premium and the processor is (usually) limited to the 667 MHz speed grade. If you do have a volume application requiring an industrial temperature grade snickerdoodle, please let us know by submitting a “question” below.
All baseboard/microShield schematics, Gerbers, and BOMs are/will be published and publicly available.
The complete snickerdoodle schematics and BOM will be published and made publicly available before the end of the campaign.
We do not currently offer a version of snickerdoodle without wireless connectivity. If you have an application that does not permit or does not require wireless, please submit a “question” below and we will be happy to discuss.
Due to lack of demand - and in an effort to simplify the various campaign offerings - we decided to stop taking orders for shieldBuddy (Arduino shield adaptor), gryphon (autopilot), and whiteRhino (industrial SBC). If you are interested in learning more about these boards, please send us a “question” below. Also, please check out our GitHub profile for schematics of these boards for use as reference designs. Note: if you have already ordered one or more of these boards, we will be contacting you directly for the next steps.
Absolutely! Using AMD’s free Vivado WebPACK, you can develop your very own snickerdoodle IP and take advantage of a thriving community of developers. For more info on FPGA IP development using Vivado, head over to AMD’s site: Vivado Design Suite Video Tutorials
Yes! LPDDR2 memory controller is accessible by both the "hard" ARM cores * and * the FPGA. There are a 9 uncommitted AXI buses linking the FPGA to the ARM processor.
For very high performance applications, the FPGA can directly stream data to and from the DDR Controller via four 64-bit wide AXI slave interfaces. For medium performance applications, the FPGA can connect to the central interconnect through two 32-bit wide AXI slave interfaces that also provide a path to direct control over hard IP peripherals. The hard DMA controller can also drive transactions to the FPGA via two 32-bit wide AXI master interfaces. See sections 22.3 and 22.4 of the Zynq Technical Reference Manual for very detailed info on the FPGA internal connectivity to the hard ARM processor. For a higher level explanation, please see section 2.3 of the Zynq book which can be freely downloaded at ZynqBook.com.
Here’s pretty much everything you need to know…
features | snickerdoodle one | snickerdoodle black |
chipset | AMD Zynq-7010 | AMD Zynq-7020 |
CPU | 32-bit dual-core ARM Cortex-A9 w/640kB cache and 2x 128-bit NEON coprocessors | 32-bit dual-core ARM Cortex-A9 w/640kB cache and 2x 128-bit NEON coprocessors |
performance | 3,335 DMIPS/2.6 GFLOPS@667 MHz | 4,330 DMIPS/3.4 GFLOPS@866 MHz |
flash | 16MB XIP NOR + up to 200GB SDIO NAND via captive microSD card cage | 16MB XIP NOR + up to 200GB SDIO NAND via captive microSD card cage |
DRAM/bandwidth | 512MB/25.6Gbps | 1GB/25.6Gbps |
SRAM/bandwidth | 256kB/28.4 Gbps | 256kB/36.9 Gbps |
reconfigurable hardware | 430K gates/17,600 LUT-6 | 1.3M gates/53,200 LUT-6 |
32-bit performance | 143,150 MIPS@350 MHz | 587,575 MIPS@475 MHz |
distributed RAM | 270kB/3,354Gbps | 630kB/10,275Gbps |
DSP performance | 74 GMACs/31.8 GFLOPS@461 MHz | 276 GMACs/121.5 GFLOPS@599 MHz |
total user GPIO | 155 | 179 |
reconfigurable I/O performance | 16x ADC/100x GPIO/46.2Gbps | 16x ADC/125x GPIO/75.7Gbps |
fixed GPIO | 33x GPIO, 4x I2S audio, 14x I2C, 1x ADC, 2x DAC | 33x GPIO, 4x I2S audio, 14x I2C, 1x ADC, 2x DAC |
Wi-Fi | 150 Mbps SISO 2.4 GHz 802.11n | 150 Mbps 2x2 MIMO 2.4 GHz / 5 GHz 802.11n |
antenna | dual-band antenna, switched U.FL ports | dual-band antenna, switched U.FL ports |
serial interfaces | 2x gigabit ethernet, 2x CAN, 2x I2C, SPI, UART, USB 2.0 high-speed, microUSB console/JTAG | 2x gigabit ethernet, 2x CAN, 2x I2C, SPI, UART, USB 2.0 high-speed, microUSB console/JTAG |
analog interfaces | 2x 1MSPS 12-bit ADCs w/16 channel multiplexer, 2x 1MSPS 12-bit DACs | 2x 1MSPS 12-bit ADCs w/16 channel multiplexer, 2x 1MSPS 12-bit DACs |
other peripherals | 5x LEDs, 2x pushbuttons, secure cryptographic key/certificate storage | 5x LEDs, 2x pushbuttons, secure cryptographic key/certificate storage |
software support | Snappy Ubuntu Core Linux, Python, Java, C/C++, ROS, FreeRTOS | Snappy Ubuntu Core Linux, Python, Java, C/C++, ROS, FreeRTOS |
power | 5V via microUSB or 3.7V-17V via power pins | 5V via microUSB or 3.7V-17V via power pins |
dimensions | 3.5" x 2.0" (88.9mm x 50.8mm) | 3.5" x 2.0" (88.9mm x 50.8mm) |
Of course! Here’s a link to the snickerdoodle User Manual. This is a “living” document and will continue to be updated going forward, but this should help answer a lot of the questions you still have.
If you’re looking for more information on Zynq and everything it’s capable of, our good friends at the University of Strathclyde literally wrote the book on Zynq. It’s an excellent resource packed full of useful information and best of all? It’s 100% free! Check it out at ZynqBook.com, (or pick up a hard copy off Amazon).
You can also check out our GitHub profile for a comprehensive list of schematics, manuals, drawings, tables, and other goodies.
For more on the AMD SDK, head on over to their website where you can find all kinds of great documentation and other resources: AMD SDK Documentation
It’s pronounced “critical” (krĭt′ĭ-kəl)…we just removed the vowels and changed the “c’s” to “k’s!” Written in lowercase, the inspiration comes from us spending our entire professional careers developing “safety-critical” systems.
Produced by krtkl in San Francisco, CA.
Sold and shipped by Crowd Supply.
Dual-Core 866 MHz ARM Cortex-A9 w/1.3M ASIC gates, 180 reconfigurable I/O, 1 GB LPDDR2 RAM, 2.4 GHz + 5 GHz 802.11n 2x2 MIMO Wi-Fi, copperHead heat sink, free SDSoC license.
Dual-Core 866 MHz ARM Cortex-A9 w/1.3M ASIC gates, 180 reconfigurable I/O, 1 GB LPDDR2 RAM, 2.4 GHz + 5 GHz 802.11n 2x2 MIMO Wi-Fi, copperHead heat sink, free SDSoC license.
Dual-Core 667 MHz ARM Cortex-A9 w/430K ASIC gates, 155 reconfigurable I/O, 512 MB LPDDR2 RAM, 2.4 GHz 802.11n Wi-Fi. Only available with connectors up (benchtop).
HDMI in AND out, 2x Gigabit Ethernet, 4x USB 2.0 high-speed, audio line in/out, headset, 25 reconfigurable I/O, DC power jack. Note: order your snickerdoodle connectors "down".
Full snickerdoodle pinout (270 pins) on 0.1” headers, JTAG connector, DC power jack. Note: order your snickerdoodle connectors "down".
A beautiful enclosure machined out of 6061 aluminum, bead blasted, anodized, and laser engraved. Also serves as heat sink. Note: this enclosure is only compatible with connectors “up” snickerdoodle.
32GB U3 Speed Class microSD card pre-loaded with snickerdoodle Ubuntu Linux.
7.5" (19cm) long with Samtec pins on one end (for installing into pin housings, above) and 0.1" female “maker” pins/housings on the other. Note: includes jumpers (50 pack) only.
All seven mating snickerdoodle connectors and a 50-pack of (loose) jumpers - see below for jumper description for benchtop-prototyping; no baseboard needed.
We’re a collection of electrical, mechanical, and software engineers based out of San Francisco. With decades of experience in embedded systems, real-time controls, and robotics, we’ve worked on everything from medical devices to consumer electronics. With the mindset that no detail is too fine and “good enough” never is, we live for building products people love and that will make a difference in the world.
A low-cost dev kit for Microchip's PolarFire SoC, a low-power FPGA integrated with a hardened quad core 64-bit RISC-V microprocessor subsystem
An open video development board in a PCI express form factor that supports overlaying content on encrypted video signals. Let's bring open video to the digital age!
Open Source All-in-One Instrumentation