0 Items

No cabe duda que Raspberry Pi ha marcado tendencias en los últimos años. Por su accesibilidad en cuanto a precio, su facilidad de uso, el desempeño que ofrecen y el ecosistema tanto de software como hardware que ha ido cultivando con el tiempo, la línea de productos de Raspberry Pi han estado en el centro de cientos de proyectos sumamente interesantes. Al tratarse de una tarjeta realmente excepcional podemos recomendarla lo suficiente; como muchas otras cosas en la vida el usar un producto nuevo puede resultar complicado. Aún un producto destinado a aprendizaje desde su salida a la venta hemos notado que hay elementos de esta tarjeta que pueden causar confusión y dolores de cabeza para quienes la usan por primera vez. Si ya tienes una o estas informándote antes de adquirirla, aquí te contamos los problemas comunes de Raspberry Pi Pico (Y cómo solucionarlos).

Con su salida a la venta la Raspberry Pi Pico, es la primer tarjeta con microcontrolador de la familia Raspberry Pi, demostró no quedarse atrás de sus hermanas mayores. No es de sorprenderse que se le haya dado una enorme variedad de usos ya que cuenta con prestaciones superiores a muchas otras tarjetas de desarrollo competidoras, esto sumado a el poder correr micro Python (y otros lenguajes) la convierten en una opción muy sólida para desarrollos, prototipos, inventos, aprendizaje o cualquier aplicación que requiera un micro controlador accesible en costo y poderoso.

Desde que inició su venta han surgido una multitud de proyectos interesantes que van desde Pi Wings (Ravi Butani), una placa que ofrece convertir la Raspberry Pi Pico en un controlador de dron que incluye software para manejar el dron vía Android. Una recreación de Pong (Nick Bild) con controles sin contacto o de Snake (Hari Wiguna). Hasta proyectos más avanzados como una grabadora de madera CNC(Nikodem Bartnik). O si tienes hambre el control PID de horno (VEEB Projects) para (según el autor) lograr siempre cocinar hamburguesas perfectas. Estos proyectos solo son una pequeña selección entre miles que seguro van a llamar mucho tu atención.

Como puedes ver la variedad de aplicaciones de esta placa la va a convertir en una favorita de usuarios principiantes y avanzados. Sobretodo si consideramos las nuevas revisiones de la misma.

Problemas comunes Raspberry Pi Pico (y cómo solucionarlos)

Conectividad – La PC no detecta la tarjeta

Uno de los problemas comunes al usar Raspberry Pi Pico que detectamos es que aparentemente la computadora no detecta la placa. En la mayoría de los casos la tarjeta si es reconocida, pero el funcionamiento de la misma puede ser confuso dependiendo de las circunstancias, si revisaste los pasos de esta sección y tu PC aún no reconoce la tarjeta pasa a la sección de funcionamiento normal. En este caso el error normalmente se reduce a dos posibilidades.

Cable y puertos USB

El primer problema que debemos descartar es la línea de comunicación física entre la tarjeta y la PC. Siendo mas precisos hay que revisar 3 puntos:

  1. El cable es solo de alimentación: La mayoría de los cables USB que se incluyen con productos como audífonos true wireless, cámaras para automóvil, bocinas bluetooth y muchos otros dispositivos solo pueden proporcionar alimentación pero no transferir datos. La Raspberry Pi Pico requiere un cable que tenga todos los hilos necesarios para permitirle comunicarse con la PC. En este caso la única forma de distinguirlos de forma certera es usando un multímetro con puntas delgadas o cortar el cable y contar el número de hilos que lleva dentro, sin embargo, el diámetro exterior del cable y su flexibilidad te pueden dar una buena idea de qué cable es de datos y cuál de alimentación. Si solo tienes cables de alimentación o no tienes la seguridad de que tipo de cable tienes siempre puedes adquirir uno.
  2. El cable esta dañado: Nuevamente un problema de comunicación física. Los hilos internos de los cables USB pueden ser delicados, incluso manejándolos con cuidado no es raro que uno o mas hilos se trocen internamente dejándote con el mismo problema que el punto anterior, los cables trozados se pueden reparar al identificar el punto de quiebre y re-conectar el hilo; sin embargo, este proceso puede requerir un cautín, cinta de aislar/thermofit y posiblemente más equipo. Si quieres la mayor confiabilidad recomendamos cambiar cualquier cable dañado por uno nuevo.
  3. Los puertos están dañados: Aún con un cable de datos en perfectas condiciones, si el puerto de la PC al que estás conectando la tarjeta o el propio puerto de la tarjeta están sucios o dañados podrías tener problemas de comunicación. En este caso se podría probar con otro puerto en la PC, realiza una limpieza rápida con aire comprimido, inspecciona visualmente si el puerto en la tarjeta se ve roto, levantado o desoldado, revisa que no haya obstrucciones dentro de alguna de las ranuras de los puertos, finalmente si cuentas con un multímetro puedes revisar la continuidad entre el conector y la placa. Si el problema de el puerto es sencillo se consulta una guía de reparación correspondiente a tu hardware o contacta con el fabricante. En este caso nuestra recomendación es preventiva: al desconectar o conectar cualquier cable hazlo ejerciendo la menor cantidad de presión horizontal o vertical relativa a el puerto, no dejes que el cable/puerto carguen los dispositivos o le des tirones de ningún tipo. También es importante no introducir nada en las ranuras de los puertos para evitar cortos u obstrucciones, evitar consumir comida y líquidos cerca de equipo electrónico.

Cabe aclarar que hay mas problemas de conexión física, con el tiempo intentaremos expandir esta sección.

Drivers/Software/Controladores

Después de descartar la conexión física como problema podemos continuar con los problemas de software, en este caso debido a la variedad de sistemas operativos y configuraciones que podemos encontrar nos vamos a concentrar en proporcionarte las ideas generales de que puede estar mal. Generalmente el primer problema que nos encontraríamos seria causado por un driver.

El controlador (driver en inglés) es según la definición de Microsoft: “…un componente de software que le permite a el sistema operativo y a un dispositivo comunicarse mutuamente…”. Debido a su importancia si el driver no se encuentra instalado correctamente o se daña por cualquier motivo la comunicación entre la tarjeta y tu PC va a ser imposible. Por suerte para los usuarios de la mayoría de los sistemas operativos el driver se instala de forma automática cuando se conecta la tarjeta por primer vez.

En windows 10 generalmente el driver se instala solo, Si tu Raspberry pi Pico ya tiene instalado un interprete puedes revisar el estado de la tarjeta en el administrador de dispositivos bajo la categoría “Puertos (COM y LPT)”, si el dispositivo aparece listado y sin errores el controlador esta instalado de forma correcta.

admin-dispositivos-fs

Si aún no instalas el interprete, puedes revisar si el dispositivo es detectado al desconectarla y conectarla nuevamente mientras mantienes presionado el botón marcado como “BOOTSEL” en la placa. En el administrador de dispositivos encontrarás la tarjeta listada dos veces, la primera en la categoría de “Otros dispositivos” se mostrará con un signo de exclamación y al revisar las propiedades del dispositivo (Doble clic) dará un código de error (Código 28), este error es completamente normal cuando la placa se encuentra en modo BOOTSEL. La segunda vez que aparece en la lista será en Unidades de disco con la etiqueta “RPI RP2 USB Device”

admin-dispositivos-bootsel

Si la tarjeta aparece listada en el administrador de dispositivos y en el explorador de archivos de tu PC aparece como una unidad de almacenamiento masivo la tarjeta esta siendo reconocida de forma correcta por windows. Pasa a la sección de Funcionamiento Normal de este artículo.

En caso de que el dispositivo este marcado como desconocido o Windows te arroje otro código de error el primer paso para solucionar el problema es hacer clic derecho sobre el dispositivo y seleccionar “actualizar controlador”, después en “Buscar controladores automáticamente”. Si continúas con problemas intenta hacer clic en desinstalar “Dispositivo” y después en “Desinstalar”, Windows deberá instalar automáticamente los drivers de forma correcta. Si el problema con los drivers persiste, el error puede estar en tu sistema operativo, un primer paso para solucionarlo puede ser ejecutar alguna herramienta para verificar la integridad de tu sistema (como chkdisk en Windows o fdisk en Linux) y/o analizarlo contra Malware con alguna herramienta como MalwareBytes.

En Mac y Linux la forma de verificar si tu PC detecta la tarjeta correctamente es más rápida, simplemente abre una terminal e introduce el siguiente comando:

Si obtienes una de las dos siguientes líneas (dependiendo de el modo en el que se encuentre la Pico) entonces tu Sistema operativo detecta de forma correcta la tarjeta:

terminal-bootsel-fs

Comportamiento normal

Aún funcionando de forma correcta la tarjeta puede presentar un par de comportamientos que podrían despistar a alguien que no tenga familiaridad con la misma. En la siguiente sección vamos a tratar de explicarte el comportamiento de la Pico.

La placa siempre es detectada como dispositivo de almacenamiento

Si cuando conectas tu tarjeta a la PC el resultado que obtienes es que tu sistema operativo la detecta como un dispositivo de almacenamiento masivo aunque no estés conectando la placa mientras presionas el botón BOOTSEL:

mass-storage-win10
Al ser detectada de esta forma el Thonny (El IDE que es el mas usado para desarrollar en la Pico) no va a poder interactuar con la tarjeta para listar/subir/bajar archivos y presentará el siguiente error:

Couldn’t find the device automatically.
Check the connection (making sure the device is not in bootloader mode) or choose
“Configure interpreter” in the interpreter menu (bottom-right corner of the window)
to select specific port or another interpreter.

Este problema generalmente se presenta debido a que la tarjeta no tiene instalado un intérprete, el intérprete recomendado por la documentación oficial de Raspberry Pi es MicroPython, según parte de la descripción encontrada en su pagina oficial MicroPython es:

MicroPython es una implementación ligera y eficiente de el lenguaje de programación Python 3 que incluye un subconjunto de la librería estándar de Python y está optimizado para correr en micro controladores y otros ambientes con recursos limitados… MicroPython cuenta con características avanzadas como una terminal interactiva, números enteros de precisión arbitraria, compresiones de listas, manejo de excepciones, y mas. Aún así es lo suficientemente compacto ocupando solo 256k y corriendo en menos de 16k de RAM… MicroPython intenta ser tan compatible con Python como sea posible, lo que permite que se pueda transferir el código de escritorio con facilidad a un micro controlador o sistema embebido.

Cabe aclarar que se pueden usar otros intérpretes de Python como CircuitPython e incluso intérpretes de otro lenguaje como PicoMite(Basic); sin embargo, en este artículo solo cubriremos la instalación de MicroPython usando dos métodos.

Método 1: Thonny

Thonny es un IDE para Python ligero y amigable con los principiantes que lleva años disponible para ser utilizado principalmente como herramienta de enseñanza. Desde el año 2017 la herramienta fue incluida en el software de Raspberry Pi OS (Raspbian antes del año 2020) para las tarjetas como Raspberry Pi 3 o Raspberry Pi 4. Durante el desarrollo de la versión 3.0 la Fundación Raspberry Pi propuso a el equipo de desarrollo de Thonny una serie de herramientas que permitirían a el IDE integrarse de forma fácil con la nueva tarjeta de desarrollo las cuales fueron completadas en su totalidad para el release de la versión 3.3 de Thonny con la ayuda de la comunidad Open Source.

Debido a las herramientas implementadas la instalación de el interprete de MicroPython con Thonny es un proceso de 4 pasos:

  1. Buscar y hacer clic el botón de intérprete en la parte inferior derecha de la ventana principal de Thonny.
  2. En el menú que aparece seleccionar “Install MicroPython…”.
  3. En la ventana emergente:
    1. En “Target volume” el puerto en el que se encuentra conectada la Raspberry Pi Pico (en caso de Windows probablemente un puerto COM, en Mac |sustituir| o en linux /media/user/RPI-RPB2 o alguna variación).
    2. En “MicroPython variant” selecciona “Raspberry Pi Pico /Pico H” o “Raspberry Pi Pico W /Pico WH” dependiendo de la tarjeta que estés usando.
    3. En “Version” selecciona la versión que deseas instalar. Recomendamos no usar versiones marcadas como inestables si hay alternativas estables para evitar comportamiento inesperado en la tarjeta o usar la versión que Thonny sugiere por defecto.
  4. Has clic en “Install”.
Método 2: archivo UF2

UF2 o USB Flashing Format es una especificación de archivo creada por Microsoft que es especialmente bueno para flashear micro controladores usando la tecnología MSC o Mass Storage Class.

Los pasos para instalar el interprete de MicroPython usando el explorador de archivos del sistema operativo y el modo BootSel de la Raspberry Pi son bastante sencillos:

  1. Descarga el interprete de MicroPython desde la ubicación proporcionada por la Fundación Raspberry Pi, en este caso mientras escribimos este articulo el nombre de archivo es “rp2-pico-20220618-v1.19.1.uf2”; sin embargo, en el futuro esto cambiará, el patrón que sigue es el siguiente: rp2-pico-ffffffffvx.x.x.uf2 donde f representa un dígito de la fecha y x representa uno o mas dígitos de la versión.
  2. Conecta la Raspberry Pi usando un cable USB mientras presionas el botón de Bootsel.
  3. Ubica la tarjeta en el explorador de archivos de tu sistema operativo, la tarjeta normalmente se identifica con el nombre “RPI-RP2”.
  4. Arrastra y suelta el archivo “rp2-pico-ffffffffvx.x.x.uf2” en la carpeta raíz de la Raspberry Pi Pico.
  5. La tarjeta se va a reiniciar y el sistema operativo no va a reconocerla por unos segundos. NO desconectes la tarjeta mientras la instalación esta en proceso. Después de unos segundos podrás detectar la tarjeta dentro de Thonny para ver y ejecutar los archivos.
Conecto la tarjeta pero parece no encender

Uno de los primeros comportamientos que causan confusión es el hecho de que a la hora de conectar la tarjeta no enciende ningún LED y no hace ninguna función por defecto. Esto es totalmente normal debido a que por defecto la Raspberry Pi Pico no incluye ni el interprete de MicroPython ni ninguna instrucción para por ejemplo hacer parpadear su LED. En este caso sigue las instrucciones de el paso “La placa siempre es detectada como dispositivo de almacenamiento” y después desde Thonny intenta cargar el software que requieras a tu tarjeta.

Si después de seguir los pasos del punto anterior aún tienes duda acerca de si la tarjeta está lista para usarse uno de los programas mas sencillos que puedes usar para probarla es blink:

Si quieres aprender a usar mas a fondo tu tarjeta Raspberry Pi Pico puedes adquirir el libro Get Started with MicroPython on Raspberry Pi Pico (disponible en Inglés).

Al copiar archivos a la Raspberry Pi Pico no se ejecutan y/o desaparecen

Otros interpretes de Python (como Circuit Python) ofrecen la capacidad de copiar directamente tus programas (por ejemplo code.py) hechos en Python a la tarjeta que se muestra como dispositivo de almacenamiento masivo en tu sistema operativo. MicroPython es diferente.

Cuando la tarjeta se conecta en modo BOOTSEL el dispositivo de almacenamiento esta diseñado para cumplir con funciones a bajo nivel como borrar la flash del dispositivo, instalar el intérprete de algún lenguaje, actualizar el firmware, etc.

Al copiar un archivo de Python en este modo (main.py por ejemplo) este no se va a ejecutar y todos los archivos que sean copiados van a desaparecer cuando la alimentación se corte. Si requieres que el software se puede cargar a la tarjeta usando el explorador de archivos puedes instalar CircuitPython en lugar de MicroPython.

Mi software no se ejecuta automáticamente o desaparece

Como mencionamos en el punto anterior si se copia un archivo a la Raspberry Pi Pico este solo existe mientras la energía no se interrumpe. De igual manera al ejecutar software mediante Thonny este solo se copia a memoria volátil por lo que cuando se reinicie la tarjeta se perderá.

Esta forma de funcionar es perfectamente normal y para efectos de usar la tarjeta en ambientes de aprendizaje puede incluso ser considerada mejor que algo mas permanente; sin embargo, muchas veces requerimos que el software se mantenga en la tarjeta y/o que se ejecute de forma automática.

Por suerte lograr esto es bastante sencillo. Lo primero que tenemos que entender es que cuando recibe alimentación MicroPhython busca en la memoria flash dos archivos para ejecutar de forma automática: “boot.py” y “main.py” en ese orden. El archivo “boot.py” es el primero en ejecutarse y tiene mayor prioridad que REPL (Read-Eval-Print-Loop) que es el entorno que permite interacción con el usuario o con dispositivos externos, como por ejemplo una PC corriendo Thonny.

ejemplo-repl-thonny
Terminal interactiva de Python REPL en Thonny

REPL al ser la forma en que interactuamos usando Thonny (e incluso muchas otras herramientas como rshell) es una parte importante de la interacción con la tarjeta. Por lo que si tu software inicia su ejecución en “boot.py” debes tener cuidado de no bloquear la ejecución de REPL.

Si el archivo “boot.py” no es encontrado el archivo “main.py” es el siguiente en ser ejecutado. Basados en esto podemos usar Thonny para guardar en la tarjeta nuestros proyectos e iniciarlos de forma sencilla.

Primero debemos seleccionar en la parte inferior derecha de la ventana el puerto y el intérprete de la tarjeta en la que deseamos trabajar:

thonny-seleccionar-interprete

Cuando hayas escrito el software que quieras que se ejecute ve a el menu “Fichero/Guardar Como” seleccionando “Raspberry Pi Pico” en la ventana emergente:

dialogo-guardar-seleccion-thonny

En nombre de archivo escribe “main.py” para el punto de inicio de tu software o cualquier otro nombre acabando con “.py” para otros archivos:

dialogo-guardar-thonny

Para visualizar de forma mas clara el estado de los archivos en la memoria Flash vamos a mostrar el panel de archivos:

menu-mostrar-archivos-thonny

Esto va a desplegar un panel en el que aparecerán listados los archivos de la tarjeta seleccionada:

panel-archivos-thonny
Tarjeta no responde/está trabada

Finalmente llegamos a un comportamiento que aunque puede inutilizar una tarjeta sigue siendo comportamiento normal ya que el hardware no está presentando ninguna falla; sin embargo, el usuario cometió un error a la hora de programarla, por suerte la solución es bastante sencilla y rápida en la mayoría de los casos.

Si alguna vez has programando, aún por unos minutos, es muy probable que te hayas encontrado con que algunas instrucciones pueden causar inestabilidad, ocupar todos los recursos o incluso hacer que el hardware en el que estás trabajando no responda a los comandos del usuario. En caso de la Raspberry Pi Pico cuando un programa hace lo mismo podríamos encontrarnos con un problema si éste está ejecutándose de forma automática (véase punto anterior).

Recuperar la información de tu tarjeta va mas allá de el alcance de este artículo, te recomendamos siempre guardar una copia de tu software en tu estación de trabajo antes de subirla a la Rasperry Pi Pico, si deseas recuperar la información te recomendamos iniciar con rshell, con ésta (u otra) herramienta y dependiendo de que problema de software exista es posible que no sea necesaria la opción nuclear.

Para eliminar el software problemático la solución mas sencilla es eliminar todo el contenido de la memoria flash, para hacer esto sigue los siguientes pasos:

  1. Descarga un archivo flash_nuke.uf2* para borrar la memoria flash o algún otro archivo uf2 que realice la misma función.
    • *El archivo enlazado en el momento en el que escribimos este articulo fue probado por nuestro equipo y comprobamos que no es malicioso y que cumple con su función, pero no podemos garantizarlo en el futuro. Como siempre debes revisar todo el software que descargas y ejecutas antes de hacerlo y no nos hacemos responsables por cualquier daño causado por software escrito por un tercero o por las acciones de el usuario final.
  2. Conecta la Raspberry Pi usando un cable USB mientras presionas el botón de Bootsel.
  3. Ubica la tarjeta en el explorador de archivos de tu sistema operativo, la tarjeta normalmente se identifica con el nombre “RPI-RP2”.
  4. Arrastra y suelta el archivo “flash_nuke.uf2” en la carpeta raíz de la Raspberry Pi Pico.
  5. La tarjeta se va a reiniciar y el sistema operativo no va a reconocerla por unos segundos. NO desconectes la tarjeta mientras la instalación esta en proceso.
  6. Al finalizar este proceso deberás volver a instalar el intérprete de tu preferencia.

Conclusión

Estos fueron los problemas más comunes que pudimos observar en los usuarios de Raspberry Pi Pico. Como puedes ver al empezar a trabajar con la Raspberry Pi Pico, al igual que en el mundo en general de los micro controladores y el aprendizaje, te puedes encontrar con conceptos, procedimientos y paradigmas distintos a los que encontramos en productos diseñados para el público en general.

Esperamos que este artículo haya cubierto una buena parte de los problemas que puedas encontrar en tu camino, si tienes cualquier sugerencia, corrección o te has encontrado con un problema nuevo no dudes en hacernos llegar un mensaje desde el formulario de contacto de nuestra página o en la sección de comentarios de esta entrada.

El equipo de Geek Factory te agradece haber consultado este articulo.

Abrir chat
1
Contacta a nuestro equipo de ventas
¡Hola!, estamos listos para ayudarte. Comentanos tu duda y con gusto la resolveremos.