snickerdoodle, una placa con 154 pines de entrada/salida

snickerdoodle es una placa del estilo de Raspberry Pi que tiene una gran cantidad de posibilidades gracias a los módulos FPGA, WiFi y Bluetooth incluidos de serie.

Se trata de una placa del tamaño de la palma de la mano (88.9mm x 50.8mm) de $55 que, según lo desarrolladores, está enfocada a «conectarse con el mundo real» gracias a sus 154 pines de propósito general GPIO.

snickerdoodle
Placa snickerdoodle

snickerdoodle tiene soporte para los principales sistemas operativos y bibliotecas de código abierto como Linux, ROS, FreeRTOS, ArduPilot, OpenCV y otros tantos. Eso posibilita la reutilización de  una gran cantidad de código disponible de otros proyectos.

Debido a la ingente cantidad de pines GPIO, uno de los usos más inmediatos de la placa es como control de drones y robots. El hardware de serie incluido es el siguiente:
· SoC de dos núcleos ARM Cortex-A9 a 667MHz con módulo FPGA de 430000 puertas.
· 154 pines de entrada/salida de los cuales, 100 son reconfigurables.
· 512Mb de RAM LPDDR2.
· Módulo WiFi 802.11n
· Módulos Bluetooth Classic y Low Energy.
· Rango de tensiones de entrada entre 3.7 y 17V.
· Slot para tarjeta microSD.
· Bus microUSB 2.0 con acceso serie a la consola y dispositivos de almacenamiento masivo.

Además de la configuración base, es posible pedir ampliaciones de ciertos componentes como los que siguen:
· SoC a 866MHz con FPGA de 1.3 millones de puertas, 25 pines GPIO más y disipador de cobre incluido por $60.
· El doble de memoria RAM por $10.
· Módulo WiFi de banda dual (2.4 y 5GHz) por $10.

Por otra parte se ofrecen multitud de complementos como un shield para conectar la placa a Arduino, otro para conectarla a Raspberry Pi y muchos otros.

Puede que una de las características más interesantes sea el módulo FPGA. FPGA viene de «field-programmable gate array» y se trata de una forma de «crear» hardware a base de programación a través de la configuración de las puertas lógicas incluidas en el módulo.

En cuanto a las redes inalámbricas, se incluye soporte para Bluetooth 4.0 y la red WiFi la proporciona un integrado de Texas Instruments (WL1831 o WL1837 según la opción elegida).

La programación de snickerdoodle se hace a través de un kit de desarrollo llamado Xilinx que es un entorno de desarrollo integrado basado en Eclipse disponible tanto para Windows como para Linux. Desde Xilinx es posible trabajar en C/C++, Python y cableado de las puertas lógicas.

snickerdoodle vivado-screenshot-scaled-1
Programación del módulo FPGA de snickerdoodle en Xilinx

La programación del módulo FPGA ofrece algunas posibilidades realmente interesantes como las propuestas por el equipo de desarrollo:
· Es posible programar un clon de 32 bits de Arduino.
· Se pueden optimizar ciertas funciones que en principio se realizarían por software, por ejemplo en el control de robots.
· Se puede construir un microcontrolador completamente personalizado con una arquitectura y dispositivos propios.
· También se podría crear un emulador de NES con una alta eficiencia por ciclo de reloj.

En el siguiente video puedes ver una presentación de la placa:

Para conocer todos los detalles de snickerdoodle y todos sus complementos, puedes visitar la campaña de crowdfunding en Crowdsupply.