Nuestras tarjetas viejas de formato Feather con chips M0 no vienen con UF2, sino con un gestor de arranque más sencillo llamado bossa. Esto es lo que está instalado en los Arduino Zero y otras tarjetas para CircuitPython que usan chips como ATSAMDx1 o nRF52840. Es el único método de instalación que puedes utilizar si el archivo de instalación de CircuitPython es de tipo .bin en lugar de un .uf2 .
¡Vamos a la línea de comando!
Para subir firmware con bossac requiere utilizar la línea de comando de tu computadora. En Windows, se llama cmd o herramienta powershell. ¡En mac o Linux, usar Terminal!
Descarga el último firmware CircuitPython
Lo primero que vas a querer hacer es descargar la última versión de CircuitPython.
Desde Abril del 2019, existen dos páginas web para descargar el archivo .bin apropiado. Adafruit está migrando sus archivos hacia CircuitPython.org. Se sugiere que busques el archivo .bin compatible para tu tarjeta primero ahí, buscando la tarjeta. Solo tarjetas compatibles que han recibido modificaciones específicas para definir sus pines apropiados van a ser listados en el sitio, por lo cual los desarrolladores deberían enviar sus material (por medio de un pull request) si tienen una tarjeta con CircuitPython la cual desean que salga listada.
Da click al botón verde abajo para buscar tu tarjeta y encontrar el archivo apropiado.
De forma alternativa, use GitHub
Por ahora, los archivos de tarjetas para CircuitPython también están disponibles en el repositorio de CircuitPython de Adafruit, aunque a futuro se desea mover a un repositorio separado. Si tienes problemas con CircuitPython.org, trata de descargarlo de GitHub utilizando este segundo botón verde.
Una vez descargado, salvar el archivo .bin en tu equipo de escritorio, ¡ya casi lo vas a ocupar!
Si estás usando Windows 7, debes instalar el controlador (hablamos de ello, en esta página) para tener acceso al puerto COM.
Descargando BOSSA
Una vez que tienes el archivo con el firmware, vas a necesitar descargar la herramienta BOSSA, la cual puede cargarle firmware a tarjetas con chips SAMD21/51. Esta herramienta es usada internamente por el IDE de Arduino cuando programa estas tarjetas, sin embargo lo puedes usar para subir tu firmware a la medida.
¡Ten cuidado que necesitas una versión 1.7.0 o superior de bossac para programar tarjetas con chips SAMD21 y SAMD51! Versionas de BOSSA anteriores a 1.7.0 no van a funcionar porque no saben hablar con chips SAMD21/51. También tener cuidado que versiones 1.9.0 o más nuevas pueden tener un problema de incompatibilidad al cambiar sus parámetros de línea de comando y puede eliminar tu gestor de arranque si no está protegido (Las tarjetas de Adafruit se envían con gestores de arranque protegidos). Sigue las instrucciones a continuación con mucho cuidado, dependiendo de que versión tengas.
Para subir firmware con bossac
(la herramienta de línea de comando de BOSSA) primero descarga la última versión de aquí. La versión ming32
es para Windows, la versión apple-darwin
para Mac OSX y varios opciones de linux
para Linux.
bossac
solo trabaja con archivos .bin
, ¡no funciona con archivos .uf2
!
Abra una terminal y navegue por la carpeta con la herramienta bossac
. Ahora revise que la aplicación funciona, probando con la opción --help con bossac --help
Si estás utilizando Linux o Mac OSX, vas a necesitar agregar un ./ para decirle que ejecute bossac desde el directorio actual, así ./bossac --help
¡Asegúrate de que observes BOSSA versión 1.7.0 o superior! Y nota la observación abajo sobre la versión 1.9.0 o superior. Si ves una versión anterior es porque descargaste por error una versión anterior y no va a funcionar para subirle a chips SAMD21. Regresa y descarga la última versión del repositorio de GitHub de BOSSA como se mencionó arriba.
Selección de puerto para Mac OS
Vas a necesitar saber que puerto usar si estás en Mac.
En la misma terminal, ejecuta el comando ls /dev/cu.*
. Nota los puertos listados, ahora conecta tu tarjeta y ejecuta el comando de nuevo. El dispositivo listado puede llamarse algo similar a /dev/cu.usbmodem14301. Toma nota del nombre del puerto para usarlo en la sección que sigue sobre bossac
.
Entra en el gestor de arranque
Vas a tener que darle un empujón a la tarjeta para que entre en modo de gestor de arranque. Lo haces dándole doble-click al botón de reset en la tarjeta. El LED rojo “#13” va a parpadear. Si estás usando un Arduino Zero, asegúrate de que estás conectado al puerto USB nativo y no al puerto de depuración/programación.
Una nota importante, si estás utilizando un Arduino M0 de Arduino.org, vas a necesitar reemplazar su gestor de arranque con el gestor de arranque de Arduino Zero para que pueda trabajar con BOSSA. Para esto, instala las tarjetas Arduino/Genuino Zero en el IDE de Arduino y luego sigue estos pasos para subir el gestor de arranque (usando el puerto de programación en la tarjeta). Una vez que has agregado el gestor de arranque de las Arduino Zero, vas a poder utilizar la M0 con bossac como se describe abajo.
Ejecutando el comando bossac
Con tu tarjeta conectada y corriendo el gestor de arranque, estás listo para subirle el firmware de CircuitPython a la tarjeta. Copia el archivo .bin con el firmware al mismo directorio donde reside la herramienta bossac
, y luego en una terminal entre en la misma carpeta y ejecute los siguiente comandos, dependiendo de la versión de bossac
que tengas.
Con bossac versiones 1.9 o superior, le debes indicar en el pámetro --offset
donde debe comenzar a escribir el firmware en la memoria flash. Este parámetro se agregó desde bossac 1.8.0 por omisión en 0x2000
, pero en 1.9 por omisión se definió a 0x0000
, lo cual no es deseable en la mayoría de casos. Si omites el argumento a bossac 1.9 o superior, probablemente vas a recibir un error de “Verify Failed” o verificación fallida. Recuerda cambiar la opción -p
o --port
para usar el mismo puerto que en tu Mac.
Reemplaza el nombre abajo por el archivo que has descargado de tipo .bin
, teniendo en cuenta que ¡varía dependiendo de tu tarjeta!
Utilizando bossac versiones 1.7.0, 1.8
No existe el parámetro --offset
. Utiliza el comando de la siguiente forma:
bossac -p /dev/cu.usbmodem14301 -e -w -v -R adafruit-circuitpython-
nombretarjeta-version.bin
Por ejemplo,
bossac -p /dev/cu.usbmodem14301 -e -w -v -R adafruit-circuitpython-feather_m0_express-3.0.0.bin
Usando bossac para versiones 1.9 y superiores
Para tarjetas M0, las cuales tienen 8kB para el gestor de arranque, debes especificar --offset=0x2000
, por ejemplo:
bossac -p /dev/cu.usbmodem14301 -e -w -v -R --offset=0x2000 adafruit-circuitpython-feather_m0_express-3.0.0.bin
Para tarjetas M4, las cuales tienen 16kB para el gestor de arranque, debes especificar --offset=0x4000
, por ejemplo:
bossac -p /dev/cu.usbmodem14301 -e -w -v -R --offset=0x4000 adafruit-circuitpython-feather_m4_express-3.0.0.bin
Esto va a (e
) borrar la memoria en el chip, (w
) escribir el archivo indicado, (v
) verificar la escritura y (R
) reinicia la tarjeta. En Linux o MacOS vas a querer ejecutar el comando con sudo ./bossac ...
, o agregarte primero al grupo de dialout.
Luego de que BOSSA carga el firmware vas a ver una salida similar a la siguiente:
Luego de reiniciar, CircuitPython debería quedar corriendo y la unidad de disco CIRCUITPY debería aparecer. Puedes reiniciar manualmente la tarjeta dando click al botón de reset, que algunas veces es necesario para despertar la tarjeta. Las tarjetas Express es posible que muestre una advertencia de haber expulsado incorrectamente una unidad de disco USB, la cual se puede ignorar sin problemas. ¡Nada importante se estaba escribiendo a la unidad de disco!
Text editor powered by tinymce.