La Thing Plus SAMD51 de SparkFun es una placa (microcontrolador) que se sacó al mercado en torno a 2019 y que está construida sobre la SAMD51 (32-bit ARM Cortex-M4F MCU).
Es un avance muy interesante sobre la SAMD21 a un precio muy razonable (en torno a 20€, transporte incluido).
Sin entrar a detalles técnicos, esta placa tiene dos características diferenciales, porque posee:
- 1. Un conector Qwiic.
- 2. Un conector para batería de Litio LiPo 1S, tanto para entrega como para carga (vía electricidad desde el puerto micro-USB).
[Más detalles en https://learn.sparkfun.com/tutorials/samd51-thing-plus-hookup-guide/all#setting-up-the-arduino-ide]
El protocolo de comunicación I2C a través del conector Qwiic, simplifica enormemente el montaje del prototipo, ya que evita la necesidad de headers en la placa, así como la conexión vía breadboard, por lo que es relativamente fácil crear un prototipo simple y compacto sin necesidad de soldar. Además permite conectar varios sensores en serie a la misma placa (conectado unos con otros).
Respecto al conector para la batería LiPo 1S, simplifica enormemente tanto su conexión como su recarga, ya que la batería se puede recargar directamente desde el prototipo cuando conectamos el puerto micro-USB (al USB del computer por ejemplo). Así podemos disponer de un prototipo autónomo que se puede recargar fácilmente y sin desmontarlo.
Para conectar la Thing Plus a nuestro Arduino IDE, necesitamos hacer los siguientes 2 pasos:
- 1. Instalar la URL de la tarjeta.
- 2. Instalar las librerías necesarias de la tarjeta.
1. Instalar la URL de la tarjeta.
Para que el Arduino IDE sepa cómo gestionar la placa (core/board definitions), necesitamos introducir la URL donde el programa puede encontrar directamente esa información (librerías).
Para eso iremos a Arduino > Preferences y en la nueva ventana buscaremos por abajo: “Gestor de URLs Adicionales de Tarjetas:”.

Sobre esa ventana incluiremos (o añadiremos si ya tenemos una línea previa), una línea con la nueva dirección: https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json.
En mi caso tenía previamente el URL de la ESP32 de espressif, que me valía para conectar la ESP de “A-Z Delivery” (el modelo que hemos descrito en otros posts).

2. Instalar las librerías necesarias de la tarjeta.
Eso incluye el Arduino SAMD Core y sus definiciones.
Para ello haremos click en Herramientas > “Placa: …”.

En la nueva ventana podemos escribir AMD para que nos salga las librerías a instalar. Debemos instalar las siguientes dos librerías:
- “Arduino SAMD Boards (32-bits ARM Cortex-M0+)”
- “SparkFun SAMD Boards (dependency: Arduino SAMD Boards 1.8.1)”
Una vez hecho esto, ya nos aparecerá el modelo de nuestra tarjeta para que lo seleccionemos en: Herramientas > Placa: > Sparkfun SAMD (32-bits ARM Cortex-M0+) Boards > SparkFun SAMD51 Thing Plus

Para probar que funciona correctamente, ejecutaremos un programita de prueba (Blink) que ya está incluido tras la instalación de la placa.
Lo primero que tenemos que hacer es asegurarnos que el modelo de nuestra placa está seleccionado: SparkFun SAMD51 Thing Plus (descrito arriba).
Lo segundo es seleccionar el puerto de conexión. En nuestro caso será el puerto usb (no olvidarse que yo utilizo Mac; en PC saldrá COM…).

Ahora abrimos el programa Demo en: Archivo > Ejemplos > 01.Basics > Blink
Esta demo funciona en prácticamente cualquier placa que tenga luz LED incorporada. No servirá para saber si la placa funciona y si la conexión está bien.

Lo compilamos y subimos a la placa…

Y… veremos que no funciona.

¿La razón? Nuestra placa SAMD51 Thing Plus no está preparada para recibir el programa.
¿Qué hacer? Apretar dos veces en el botón de Reset de la placa, para que entre en estado “recepción”, antes de compilar y subir el programa desde Arduino IDE a través del cable USB.

Veréis que antes de presionar el botón dos veces, la luz azul de nuestra placa Thing Plus parpadea lentamente. Tras presionar dos veces el botón, la luz LED azul pasa a subir y bajar de intensidad secuencialmente, señal de que está en modo recepción.
Volveremos a compilar ahora… Y esta vez si, debería funcionar.
Podemos jugar a modificar los tiempos de retraso de encendido y de apagado de la luz LED, compilando de nuevo, y comprobando el efecto sobre la luz intermitente.
