¿Meadow es el sucesor de Netduino?


La compañia Wildernesss Labs tras comprar  en 2016   Netduino y trabajar en secreto dos años  en  2018,  sacaron vía crowfounding  (en Kickstarter)  su proyecto estrella: Meadow , una  plataforma IoT estándar de .NET de pila completa   que  intenta combinar lo mejor de todos los mundos,  pues tiene el poder de RaspberryPi,  el factor de computación de un Arduino y la capacidad de administración de una aplicación móvil. ¿Y la mejor parte? funciona con .NET Standard completo en hardware de IoT real

Existe una brecha cada vez mayor entre los desarrolladores y las empresas que desean construir hardware conectado y la capacidad de hacerlo. Meadow intenta  cerrar esa brecha y permite a los diez millones de desarrolladores de .NET crear experiencias de hardware realmente interesantes con la misma facilidad con la que crean aplicaciones web o móviles en la actualidad.

Meadow  permite a los desarrolladores ejecutar aplicaciones completas de .NET Standard 2.x en un microcontrolador e incluye un conjunto de controladores de hardware y API en la parte superior que hace que el desarrollo de hardware sea plug and play.   Sin embargo, Meadow no se limita a los desarrolladores .Net, intentando  abrir el desarrollo de hardware a desarrolladores de todo tipo, poniendo especialmente foco en el ambiente empresarial .

Meadow IoT Kickstarter

 

Microordenador vs Microcontrolador: las Raspberry Pis son ordenadores completos  y los Ardunios son pequeños dispositivos (en su mayoría) de una sola tarea.  Es quizás  una exageración tener Ubuntu en un ordenador solo para encender un dispositivo así que por lo general, es deseable  que los dispositivos de IoT ocupen desde el punto de vista del  hardware como del sw  lo menos posible a si que  puede ser una buena  idea que  nuestro core de IoT corra  un sistema  operativo mas estable en cuanto a cortes o interrupciones  ( como lo haría en un microcontrolador pero con muchísima mas potencia del calculo).

Meadow  en principio  ha sido diseñado para ejecutarse en una variedad de microcontroladores, y la primera placa se basa en la MCU STM32F7 (insignia de STMicroelectronics) con coprocesador ESP-32 e   implementando. WiFi, BLE, 32 MB de RAM, 32 MB de Flash. 25 puertos GPIO, PWM, I2C, SPI, CAN, UART y cargador de batería LiPo integrado, todo ello en el factor de forma Adafruit Feather.

Lo interesante pues es que el factor de forma Feather sirva  como placa de desarrollo o incrustarlo. Es realmente un gran diseño   basada en  MCU STM32F7 en un bajísimo factor de forma  y con  casi tantos puertos GPIO (25) tanto  analógicos como digitales como estamos acostumbrados en Arduino o Netduino.

En el sitio de  Meadow Kickstarter dicen que se está ejecutando en Mono Runtime y admite la API .NET Standard 2.0 lo  cual  significa que probablemente ya sepa cómo programarlo  pues  la mayoría de las bibliotecas de NuGet son compatibles con .NET Standard, por lo que una gran cantidad de software de código abierto debería “simplemente funcionar” en cualquier solución que admita .NET Standard.

En términos de NanoFramework y TinyCLR; si bien esos son grandes esfuerzos, son significativamente diferentes a Meadow. Ambos esfuerzos se basan en .NET MicroFramework. Como tal, no son compatibles con .NET completo. No hay genéricos en ninguno de ellos, por ejemplo, ni hay soporte para las bibliotecas estándar .NET. 

 

Funciones empresariales

Meadow  incluye soporte para actualizaciones seguras por aire (OTA), lo que permite que las instalaciones de campo de IoT se gestionen de forma remota; una característica clave para las implementaciones empresariales de IoT.

Meadow abrirá todo un nuevo conjunto de posibilidades para el desarrollo de cosas conectadas. Y como funciona con un dispositivo de  ultrabaja energía, podrá colocarlo en todas partes. Las instalaciones de baterías, energía solar e incluso energía a través de Ethernet (POE) se convertirán en algo común, lo que significa que para muchos de estos dispositivos, el acceso físico será limitado, por lo que la administración centralizada es un requisito absoluto.

Además de las actualizaciones de OTA, Wilderness Labs tiene planes para el monitoreo de campo básico, informes de fallas y análisis para asegurarse de que los dispositivos Meadow funcionen in situ.

Y debido a que Meadow usa .NET, las empresas pueden usar equipos existentes e inversiones de código para construir IoT, en lugar de tener que contratar nuevos desarrolladores que se especialicen en hardware. Es una propuesta de valor similar a la que sus creadores hicieron en Xamarin; había desarrolladores existentes que querían hacer dispositivos móviles, así como muchas inversiones existentes en código empresarial los cuales fueron habilitados en una plataforma completamente nueva ( Microsoft adquirió Xamarin por más de 400 millones de dólares, en gran parte por su valor en el mercado empresarial).

Seguridad 

Otro aspecto importante del aspecto Meadow se intenta centrar en la seguridad. Meadow presenta consideraciones de seguridad básicas, desde la seguridad a nivel de hardware y las actualizaciones seguras, pero Wilderness Labs también se compromete a enviar componentes de software destinados a facilitar la seguridad desde una perspectiva de UX. No es suficiente tener actualizaciones seguras por aire (OTA ) , firmware firmado, revocación de certificados terciarios, etc., pueso la seguridad debe llegar hasta el final.

El pirateo del bot Mirai funcionó porque muchas de estas cámaras de seguridad conectadas tenían nombres de usuario y contraseñas predeterminados, asi  que no es una cuestión   banal.

En este nuevo enfoque enviaran componentes que puede ingresar y brindar una experiencia de usuario fantástica y fácil para cambiar esas cosas, así como orientación y educación para el desarrollador para ayudar a la gente a comprender cómo aprovechar las funciones de seguridad en la pila Meadow.

Inteligencia artificial en IoT

Recientemente, Pete Warden, director de TensorFlow en Google, escribió que la mayor parte de la inteligencia artificial se realizará en microcontroladores , y Meadow es la primera plataforma de desarrollo de microcontroladores que cumple con esa promesa, permitiendo ejecutar visión artificial a través de TensorFlow y otros paquetes de inteligencia artificial de alto nivel localmente en chip.

Se espera que la IA desempeñe un papel clave en IoT con la visión artificial y otros algoritmos de aprendizaje profundo que se ejecutan en imágenes y otros datos de sensores en la fuente para agilizar la recopilación de datos y permitir que los dispositivos tomen decisiones en el campo. Sin embargo, Meadow es la primera plataforma de microcontroladores de IoT que se enfoca específicamente en casos de uso de IA.

Mercado emergente

Se espera que el mercado global de IoT supere los USD $ 1 billón / año para 2025 , y se prevé que gran parte de ese dinero se gaste en herramientas, plataformas y servicios para desarrolladores. Y ese mercado está listo para la disrupción, mientras que los microcontroladores están preparados para convertirse en la forma dominante de computación , con un estimado de 75B de ellos in situ y conectados para 2025, casi todo el desarrollo de microcontroladores hoy en día se realiza en lenguajes de bajo nivel como C / C ++ , y las herramientas no han cambiado mucho desde la década de 1980.

Una de las cosas que ha frenado a IoT hasta ahora es la barrera de entrada; existe una variedad fantástica de nuevos dispositivos informáticos que pueden hacer todo lo que puede hacer una computadora en miniatura y más; sólo cuestan unos pocos dólares, pueden funcionar con una batería de tipo botón durante años y, sin embargo, programarlos es un trabajo duro durante los años 80 ”, comentó Bryan.

Diferencias con Neduino

Hardware

Si bien Meadow está diseñado para ejecutarse en una variedad de microcontroladores de 32 bits, su primera placa se basa en el chip STM32F7 de STMicroelectronic con 32 MB de almacenamiento flash y 16 MB de RAM , el sucesor del chip STM32F4 muy popular que se encuentra en varias placas de desarrollo de microcontroladores, incluido Netduino. La serie F7 es dos veces más poderosa pero usa la mitad de la energía de los chips F4 e incluye una serie de características interesantes, como un códec JPEG integrado para manejar transmisiones de video y cámara, así como un acelerador de gráficos 2D para proporcionar UX en un variedad de pantallas.

También están trabajando en una placa basada en ESP32 que traerá características y conectividad de alta gama a un mercado de bajo precio. Esperaremos con ansias el día en que pueda incorporar una placa Meadow basada en ESP32 en productos por menos de $ 10.

Una gran diferencia con Netduino es  que la placa Meadow F7 está diseñada para ser compatible con el factor de forma Adafruit Feather  ( claramente diferente  a Natduino que se diseño para tener el mismo factor de forma que Arduino ). Además incluye un conector de batería y un cargador integrado, por lo que puede funcionar fácilmente con una batería o conectarse a un panel solar para uso indefinido mediante recarga solar. Aisimismo por diseño, el F7 también está destinado a ser integrable por defecto.

Lo interesante pues es que el factor de forma Feather sirva  como placa de desarrollo o incrustarlo. Es realmente un gran diseño   basada en  MCU STM32F7 con coprocesador ESP-32 e   implementando. WiFi, BLE, 32 MB de RAM, 32 MB de Flash. 25 puertos GPIO, PWM, I2C, SPI, CAN, UART y cargador de batería LiPo integrado  en un bajísimo factor de forma  y con  casi tantos puertos GPIO (25) tanto  analógicos como digitales como estamos acostumbrados en Arduino o Netduino.

Software

Meadow ejecuta un puerto personalizado de Mono sobre un NuttX muy modificado (un µRTOS). De ahí proviene el  soporte estándar .NET. No se basa en Netduino de ninguna manera. Es una pieza de tecnología completamente nueva que han desarrollando desde cero durante los últimos dos años. Existe alguna relación con el  proyecto Netduino.Foundation  pues  han portado Netduino.Foundationa Meadow, y obteniendo todo el atractivo de la última versión de C # y .NET completo para crear una API aún mejor para todos esos controladores.

El proyecto se inició porque .NETMF había desaparecido y no había ningún progreso real allí ni la comunidad pudo participar realmente en él. Es cierto que se inició como un spin-off de .NETMF pero, aparte del motor de ejecución y una buena parte de mscorlib, todo el  código se escribió desde cero.

Han mejorado muchas cosas,  actualizándolo en lo que respecta al sistema de compilación, Wilderness Labs lo ha hecho verdaderamente portátil para los RTOS de CMSIS,  han reelaborado el motor de depuración y han agregado varios objetivos de referencia para MCU con diferentes conjuntos de funciones.

TODO el código es completamente de código abierto ( como el de Netduino ) . Desde el código nativo, a las bibliotecas de clases hasta la extensión de Visual Studio. Dos años de trabajo pueden parecer que el proyecto todavía está en él ‘Es una infancia, pero están orgullosos de que esto se ejecute en SoC SMT32 (de la serie L0 a H7) y, sí, también en ESP32. Hay NuGets funcionales y totalmente utilizables para GPIO, I2C, SPI, Serial, ADC, PWM, Wi-Fi, Networking (con soporte SSL / TLS) y otros.

Es cierto que no admiten bibliotecas .NET completas. En su lugar, han seguido prácticamente la API de .NET UWP para que se pueda reutilizar una gran cantidad de código sin demasiado trabajo pues en el   mundo del IOT cada línea de código importa, se debe considerar cada ciclo de CPU, cada mA que el sistema drena de la batería y así sucesivamente: es decir todo lo que podamos hacer más eficiente es importante.

Conclusión

Tras dos años en el mercado Meadow  es una plataforma  con mucho futuro  pero con mucho  recorrido  para crecer

Es como vemos bastante interesante, pero hay algunas cosas nos  impiden retroceder:

PROS

 

  • La  placa Meadow F7 está diseñada para ser compatible con el factor de forma Adafruit Feather e incluye un conector de batería y un cargador integrado, por lo que puede funcionar fácilmente con una batería o conectarse a un panel solar para uso indefinido mediante recarga solar .Ademas por diseño, el F7 también está destinado a ser integrable por defecto. Lo interesantes pues es que el factor de forma Feather sirva  como placa de desarrollo o incrustarlo.  .
  • Hay muchas variables en este sistema. Si podemos elegir entre tener genéricos o código en C # usando una herramienta increíble como Visual Studio, no lo deberíamos pensar dos veces y lo  ideal  seria optar por lo último. En general, es genial que haya más opciones disponibles que permitan a los desarrolladores de .NET codificar para IoT y sistemas integrados utilizando su lenguaje favorito;NET para codificar para IoT y sistemas integrados utilizando su lenguaje favorito;NET para codificar para IoT y sistemas integrados utilizando su lenguaje favorito
  • También hay cierta fragmentación en el espacio de .NET IoT, lo que significa que tenemos varias soluciones pequeñas, pero ninguna que sea utilizada por muchos desarrolladores. Un esfuerzo común, dirigido por .NET Foundation, habría sido un mejor enfoque.  Nano Framework está en el camino correcto, pero  todavía está en su infancia. Al final, el no compromiso de Microsoft con IoT / .NET Micro Framework es ahora un gran problema, ya que habría sido la plataforma perfecta y natural para el desarrollo de IoT basado en Azure ;

CONTRAS

  • Con 50$  al cambio , es extremadamente cara en comparación con Arduino, Raspberry Pi y otras ofertas similares.
  • Hay un esfuerzo para portar .NET a varios chips SDT y ESP32: https://nanoframework.net/ .  pues  no olvidemos  que se puede obtener una placa de desarrollo ESP32 por menos de 10 $ ( y menos) 
  • Es bueno recordar el fracaso del AGent smartwatch  también en quickstarter  patrocinada por Secret Labs ( los fundadores de Netduino). La idea era muy buena pues ya en 2013  este reloj  pretendía ser un reloj  inteligente con tinta electronica  y con el soporte .Net. Este  proyecto  desgraciadamente  precipito la caída de Secrets LAbs y con ello la de Netduino que fue comprado por Wilderness Labs. 

 

 

 

 

 

 

Fundada en 2016, Wilderness Labs es el fabricante de placas Netduino y el creador de Meadow. Para obtener más información, puede encontrar su blog en blog.wildernesslabs.co .

RetroPie


 RetroPie es una combinación de múltiples proyectos, incluidos RetroArch , EmulationStation y muchos otros,  cuya finalidad es hacernos accesibles todos los juegos de nuestra infancia  en una Raspberry Pi.

La forma más fácil de instalar RetroPie es generar  una  imagen SD  para arrancar una Raspberry Pi,pero  también se puede instalar manualmente o incluso instalar en otros dispositivos como ordenadores o clones de Raspberry Pi

Instalar Retropie con una imagen  oficiall  nos permite  ahorrar  mucho tiempo pues  es un sistema listo para usar   construido sobre la parte superior del sistema operativo Raspbian . Alternativamente, los usuarios avanzados pueden instalar RetroPie manualmente  como hemos visto en este blog partiendo de una instalación de Raspbian.

Vamos a ver los conceptos básicos para que pueda comenzar a utilizar una tarjeta SD vacía para iniciar por primera vez en EmulationStation.

Empecemos por los requerimientos de hardware:

      • Raspberry Pi (A, A +, B, B +, 2, Zero o 3): para obtener el mejor rendimiento, use un Raspberry Pi 3 Modelo B +
      • Carcasa  para Raspberry Pi  (opcional pero recomendado)
      • Tarjeta MicroSD
      • Lector de tarjetas MicroSD (para instalar retropie desde su computadora)
      • Cable HDMI o cable RCA de 4 polos a 3,5 mm (HDMI funciona mejor)
      • Televisión o monitor de computadora: realmente cualquier pantalla con puertos HDMI o RCA
      • Wifi Dongle o Cable Ethernet (Wifi está integrado en el Pi 3- )
      • Fuente de alimentación micro USB de 5V 2A (2.5A para pi 3)
      • Teclado y mouse USB (para configurar las cosas puede usar SSH )
      • Controlador de juegos USB de su elección

La forma más sencilla de obtener la mayoría de estos componentes es a través de un kit como el Canakit .

Instalación

1-Descargar

Actualmente hay tres  versiones de RetroPie. Hay una versión para Raspberry Pi 0/1 (Modelo A, A +, B, B +) , hay una versión para Raspberry Pi 2/3 y finalmente otra para la Raspberry 4.

Descargue la imagen SD para su versión de Raspberry Pi desde la siguiente página:https://retropie.org.uk/download/

 

Si no está seguro de qué versión de Raspberry Pi tiene, puede contar las frambuesas en el arranque:

Raspberry Pi 0/1 Raspberry Pi 2/3
rpi1 rpi2

Si recibe el error Illegal Instructioncuando se inicia o si solo se inicia en el terminal, eligió la imagen SD incorrecta o la imagen se corrompió en la descarga o extracción.

2-Extraer

Una vez que haya descargado la imagen de su tarjeta SD, debe extraerla utilizando un programa como 7-Zip . Extraerá el archivo .gz descargado y el archivo extraído será un archivo .img .

Para extraer de la línea de comando, puede escribir lo siguiente en una ventana de Terminal, colocando X con la versión que descargó:

gunzip retropie-4.X.X-rpi2_rpi3.img.gz

3- Crear la imagen

Para instalar la imagen RetroPie SD en su tarjeta MicroSD. (Es posible que necesite un lector de tarjetas MicroSD para conectarlo a su ordenador)

    1. Para Windows puede utilizar un Etcher o Win32DiskImager
    2. Para macOS puedes usar Etcher o Apple Pi Baker
    3. Para Linux puede usar el ddcomando o Etcher

 

Nota: RetroPie está construido sobre Raspbian Stretch (un sistema operativo basado en Linux para Raspberry Pi) y, como tal, la partición en la tarjeta SD es EXT4 (un sistema de archivos de Linux) que no es visible en los sistemas Windows, por lo que la tarjeta se mostrará como un tamaño más pequeño de lo habitual y no podrá ver todo en la tarjeta, pero está todo ahí. Podrá acceder al sistema de archivos a través de la red como se describe en la sección de transferencia de roms a continuación.

4-Insertar la tarjeta SD en la Raspberry  y  Configurar controladores

Uan vez creada la imagen ,  insertaremos la microsd   en la Raspberry  , conectaremos los perifericos  y alimentaremos esta 

En el primer arranque, su sistema de archivos se expandirá automáticamente, luego se le dará la bienvenida con la siguiente pantalla: este menú configurará sus controles para Emuladores de Emulationstation y RetroArch:

pantalla de bienvenida

Mantenga presionado cualquier botón en su teclado o gamepad y el nombre aparecerá en la parte inferior y luego se abrirá en un menú de configuración:

bienvenidospantallajuegopadname

Siga las instrucciones en pantalla para configurar tu gamepad. Si se queda sin botones, mantenga presionado un botón para omitir cada botón no utilizado. Cuando llegue a OK presione el botón que ha configurado como “A” .

bienvenidopantallajuegoconfigura

Si desea configurar más de un controlador, puede hacerlo desde el menú de inicio de emulationstation.

Consulte los siguientes diagramas para referencia:

Controlador SNES
snes_controller
Controlador XBox 360
xbox360_controller
Controlador PS3
ps3_controller

Tecla de acceso directo

El botón Hotkey le permite presionarlo en combinación con otro botón para acceder a funciones como guardar, cargar y salir de emuladores. Se sugiere utilizar el botón Seleccionar como tecla de acceso rápido. El siguiente cuadro muestra las combinaciones de teclas de acceso rápido predeterminadas. Por ejemplo, si elige Seleccionar como su tecla de acceso rápido, eso significa que mantiene presionada la tecla Seleccionar mientras presiona el otro botón para ejecutar el comando.

Nota Las combinaciones de teclas rápidas son específicas de los emuladores basados ​​en retroarch / libretro.

Combinación de teclas de acceso rápido Acción
Tecla de acceso directo + Inicio Salida
Tecla de acceso directo + hombro derecho Salvar
Tecla de acceso directo + hombro izquierdo Carga
Tecla de acceso directo + derecha Aumento de la ranura del estado de entrada
Tecla de acceso directo + izquierda Disminución de la ranura del estado de entrada
Tecla de acceso directo + X Menú RGUI
Tecla de acceso directo + B Reiniciar

EmulationStation

¿Dónde están los sistemas?
Cuando vea EmulationStation por primera vez, es posible que se pregunte por qué no ve sistemas como SNES o Game Boy (no se preocupe), están instalados en el sistema, las roms solo deben agregarse a sus respectivas carpetas de rom antes de que sean visibles. La transferencia de roms se describe en los siguientes pasos.
primer arranque

Wifi

Si desea utilizar wifi para transferir roms a través de la red en lugar de una memoria USB o un cable Ethernet, deberá configurar su wifi- que también se puede hacer desde el menú Retropie en la estación de emulación:

Conéctese a la red Wifi:
wifi1
Elija su SSID de una lista:
wifi2
Escriba su contraseña de Wifi (puede tomar un momento conectarse)
wifi3
Una vez configurado, verá su dirección IP
wifi4

Para más opciones de configuración de WiFi, vea esta página AQUÍ

Instalar emuladores adicionales

En RetroPie 4.0+, no todo está instalado por defecto. Las imágenes prefabricadas contienen los mejores emuladores de trabajo para cada sistema compatible con el hardware. Esto debería cubrir todo lo que la mayoría de los usuarios estarían haciendo. Puertos como terremoto y fatalidad y algunos otros emuladores como ScummVM se pueden instalar más tarde.

El software se puede instalar desde el script RetroPie-Setup, al que se puede acceder desde el menú RetroPie en EmulationStation. Una vez allí, puede navegar hasta “Administrar paquetes”, donde verá varias secciones. En cada sección hay listas de paquetes que se pueden instalar (y mostrará lo que está instalado actualmente). Los paquetes adicionales estables se encuentran en la sección “Opcional”, con más paquetes inestables listados en experimental. Los paquetes se ordenan primero por tipo (emuladores / núcleos de libretro / puertos), luego alfabéticamente. Al seleccionar un paquete, puede elegir instalarlo o eliminarlo. Algunos paquetes también tienen configuraciones adicionales.

Transfiriendo Roms

Debido a la naturaleza / complejidad de la Ley de Derechos de Autor / Propiedad Intelectual, que difiere significativamente de un país a otro, los ROM no se pueden proporcionar con RetroPie y deben ser proporcionados por el usuario. Solo debes tener ROM de juegos que poseas.

Hay tres métodos principales para transferir roms:

USB

  • (asegúrese de que su USB esté formateado en FAT32 o NTFS)
  • primero crea una carpeta llamada retropieen tu memoria USB
  • conéctelo al pi y espere a que termine de parpadear
  • desconecte el USB y conéctelo a una computadora
  • agregar las roms a sus respectivas carpetas (en la retropie/romscarpeta)
  • conéctelo nuevamente a la Raspberry Pi
  • espera a que termine de parpadear
  • actualizar emulationstation seleccionando reiniciar emulationstation en el menú de inicio

Vea este video como referencia:

Transferencia de ROM usando una unidad USB

SFTP

NOTA : debe habilitar SSH para que SFTP funcione.

  • Con cable (necesita cable de ethernet)
  • Inalámbrico (necesita dongle wifi) Hay muchos programas SFTP, para Windows, muchas personas usan WinSCP para Mac, puede usar algo como Cyberduck
winscp

Nombre de usuario predeterminado: pi

Contraseña predeterminada: raspberry

También puede iniciar sesión como root si desea cambiar más archivos que solo las roms, pero primero debe habilitar la contraseña de root 

Acciones de samba

  • si en Windows escriba \\retropieen la carpeta de la computadora. También puede reemplazar retropiecon la dirección IP de su Raspberry Pi
samba
  • si en MAC OS X abre Finder, selecciona el menú “Ir” y “Conectar al servidor …”. Escriba smb://retropiesmb://retropie.localy presione “Conectar”. Luego elija Invitado y presione “Conectar” nuevamente.

AUDIO

En general, el audio RetroPie funcionará de inmediato sin ningún ajuste, pero si tiene problemas de audio.  Lo más probable es que necesite visitar la página de Problemas de sonido si está utilizando un dispositivo de audio USB o si está utilizando un dispositivo de audio complementario RPi HAT del mercado de accesorios (como una tarjeta de sonido Justboom).

¡A JUGAR!

Después de agregar sus roms, debe reiniciar la estación de emulación para que se muestren. Puede reiniciar emulationstation desde el menú de inicio, o reiniciando su pi con sudo reboot.

Consulte el resto de los documentos para obtener información más detallada sobre emuladores individuales, configuraciones avanzadas, etc. Si aún no puede resolverlo, la comunidad de RetroPie es muy útil en el foro .

El Proyecto RetroPie es mantenido principalmente por unos pocos desarrolladores que desarrollan el proyecto en su tiempo libre.  A medida que se familiarice con RetroPie, pague y ayude a otros en el foro. El Proyecto RetroPie existe  debido a las numerosas contribuciones de la comunidad.

¿Se puede arreglar una Raspberry pi?


Si no consigue arrancar  su Raspberry Pi, hay varias posible causas   que podrían originar su mal funcionamiento.  Afortunadamente, la mayoría de las veces no es un problema tan serio como podría haber pensado, y en algunas ocasiones podemos revertir el problema

En esta guía repasamos  posibles causas y cómo solucionarlas.

 

Energía o SD dañada

Vamos  a empezar   con los mas sencillo : es decir problemas con la alimentación de 5v DC  o  que este mal la imagen del sistema operativo  en la   tarjeta SD, ambas orígenes  muy probables de ser el origen de que nuestra Raspberry Pi no arranque  no generando vídeo alguno .

Para detectar qué puede estar pasando, analizaremos el comportamiento de los diodos de nuestra Raspberry:

    •  PWR (rojo): led  testigo de alimentación  que por lo tanto debería estar fijo
    • ACT (amarillo  o verde según la version): led de actividad  y que por tanto con una imagen correcta del SO debería parpadear ( es decir  no estar fijo).

 

El led de energía

Comenzaremos con el diodo PWR (power )  , es decir de energía. Como consideración inicial, comentar que una buena fuente de alimentación de 5V  y al  menos 700mA o mayor según la version de Raspberry  , es fundamental para el correcto funcionamiento de esta placa .

Tenemos dos casuísticas asociadas a este led:

        •  El LED rojo no se enciende : es decir no hay suficiente energia para alimentar  a la placa porque la fuente de alimentación no está correctamente dimensionada porque debe  tener en cuenta  que necesita una fuente de 5 voltios y como mínimo  700 mA ( lo ideal es qeu al menos sea de 1000mA).
        •  El LED rojo parpadea:  Este LED no debería parpadear jamás de modo que si lo hace, la fuente de alimentación que esta usando es de mala calidad o no está trabajando como debiera.  Lo recomendable seria probar  con otra  fuente de alimentación de mejor calidad.

Hasta aquí los posibles casos en los que descartemos cualquier problema con la alimentación de la Raspberry;

Pasemos ahorar a  tratar el comportamiento del LED de actividad (ACT).

El led  de actividad

Suponiendo el LED rojo de pwr   esté encendido y fijo ( es decie como debería estar  en caso de funcionamiento ) , ahora  analizemos  el estado del LED  verde o amarillo  que no se enciende, o hace con una cadencia mínima o simplemente se queda encendido fijo (recordemos que su estado “correcto” es parpadeando) 

Algunas de  las posibles causas  de que luzca el led de forma anómala  podrian  serán:

LED DE ACTIVIDAD  APAGADO

        • No hay tarjeta microSd insertada en la ranura
        • La tarjeta microSD no tiene bien cargada la imagen del sistema operativo.  La solución a aplicar será formatearla  y volver a cargar el S.O.
        •  El voltaje es demasiado bajo (por debajo de 5 V)  asi que debería probar con otra fuente diferente ( recuerde que se necesita un suministro nominal de 700 mA o más , según los periféricos que tenga conectados)
        •  Hay un error en el archivo del sistema bootcode.bin que puede causar problemas con algunas tarjetas SD/microSD.  Puede probar con esta versión:  https://github.com/raspberrypi/firmware/blob/234c19de7cbaaf4997671d61df20a05759066295/boot/bootcode.bin

LED DE ACTIVIDAD SOLO SE ENCIENDE UNOS SEGUNDOS

Pruebe a arrancar  la Raspberry sin ningún cable conectado( es decir sólo el de alimentación)  sin ningún periférico conectado por USB: si ve que el LED de actividad parpadea al menos durante 20 segundos, querrá decir que hay algo que le estamos enchufando que interfiere con nuestro arranque.

Para  solucionar el problema ,iremos conectando dispositivos a los USB  de unos en uno para saber cual de esos dispositivos esta interfiriendo  en el  arranque de la placa.

 

LED DE ACTIVIDAD PARPADEA CON UN PATRÓN

¿Que ocurre si el LED amarillo parpadea con un patrón predeterminado?  Pues es un síntoma de  que hay algo mal en la imagen del sistema operativo.  Gracias a los últimos firmwares, el LED de actividad puede parpadear con un patrón predeterminado para indicar una serie de errores:

      • 1 parpadeoposiblemente tienes una Raspberry de MicronEchaele un vistazo al procesador y si pone una M con una órbita alrededor en ella, debería utilizar el software más reciente (después de septiembre 2013para resolver el problema. También asegúrese de que tiene una tarjeta SD/microSD de 4 Gb pues una de 2Gb no funciona en este caso particular.
      • 3 parpadeos: archivo start.elf no se encuentra.
      • 4 parpadeos: archivo start.elf no se puede lanzar (está corrupto).
      • 7 parpadeos: archivo kernel.img no se encuentra.
      • 8 parpadeos: la SDRAM no se reconoce. Necesita un nuevo firmware de bootcode.bin/start.elf o la SDRAM está dañada.

En las Raspberrys  con un firmware anterior al 20 de octubre de 2012, se requiere el archivo loader.bin para el arranque y el significado de los parpadeos del LED de actividad varían ligeramente:

      • 3 parpadeos: archivo loader.bin no se encuentra.
      • 4 parpadeos: archivo loader.bin no se puede lanzar (está corrupto).
      • 5 parpadeos: archivo start.elf no se encuentra.
      • 6 parpadeos: archivo start.elf no se puede arrancar.
      • 7 parpadeos: archivo kernel.img no se encuentra.

LED  DE ACTIVIDAD FIJO

Llegamos al  problema central, donde el led de actividad queda  fijo , señal inequívoca de que algo no  va  bien.

Por supuesto , suponemos  que hemos descartado    los siguientes cuestiones:

      • Fuente de alimentación que estamos usando es de mas de 700mA (mejor al menos de 1000mA)   y hemos probado con varias de potencia mayor o similar
      • Hemos probado con diferentes tarjetas micro-sd  y con diferentes sistemas operativos
      • Por supuesto hemos desconectado todos los periféricos conectados por USB que podrian interferir en el arranque
      • Hemos desmontado  la placa de su carcasa  y comprobado que no había nada metálico tocando con algún componente de la placa ( por ejemplo un radiador  pasivo o incluso activo que se  ha soltado  pudiendo la parte interna metílica  hacer contacto eléctrico con algún  componente de la placa )
      • No hemos observado algún calentamiento anormal de  alguno  de los componentes internos de la placa Raspberry pi ( asi como  olor a quemado, apagones  intermitentes, etc ) , todo ellos síntomas claros de que  el hardware de nuestra placa esta claramente dañado.

Bien, el led verde o amarillo  esta encendido fijo  y por supuesto no hay video , lo cual es por desgracia un síntoma de hardware dañado .

Veamos  ahora algunos de los  posibles formas de intentar corregir el problema:

PROBLEMAS  CON  LOS PUERTOS USB

Andrea  nos muestra en su vídeo como consiguió arreglar una Raspberry Pi   donde los puertos USB dejaron de funcionar   . !Tal   fue su alegría que de hecho en el video se  puede ver en una pantalla como  dice 1 gamepad detectado ya que   la Raspberry Pi tiene  un gamepad conectado y todo funcionaba correctamente!

Y  ahora veamos  lo que hizo  Andrea  con la Raspberry Pi que en efecto  había estado en uso en un sistema  funcionando bien , hasta que de repente los puertos USB  fallaron totalmente

Obviamente sin puertos no podemos comunicarnos con las Raspberry , así que es una avería muy invalidante sobre  todo cuando sin causa aparente deja de funcionar ,pues según Andrea en su caso  nada había cambiado, aunque afortunadamente con un puente soluciono el problema

En las raspberry  hay  un punto de prueba llamado PP 27   , de modo que podemos conectar un multímetro en PP 27 y medir   entre la carcasa del USB mientras está enchufado  . Si no vemos los  5 voltios eso significa  que no hay 5 voltios en el puerto  USB y por tanto nada que enchufemos a estos puertos responderá.

Andrea  llego a esta conclusión  mirando  en el esquemático fácilmente donde el puerto USB 3 obtiene su poder de PP 1  que también es un punto de prueba de 5 voltios y que por tanto debería medir  5 voltios directamente desde la entrada.

 

La solución pues es seguir a PP 1  en el tablero para tener exactamente el mismo punto de prueba desde todo el camino hasta PP 27 que es justo  donde esta   el  poder en el puerto USB, así que pensó hacer un puente entre ambos puntos  y asi arrancamos el USB con alimentación  de modo  que cuando los probo   conectando un dispositivo  se sorpendio que  en realidad estaba funcionado

Empíricamente pues viendo que este puente es funcional   nada  podemos   alegar  así  que si le ocurre algo similar no perdemos nada por intentarlo.

En el siguiente vídeo podemos ver el vídeo ingles con estas explicaciones

 

PROBLEMAS CON EL LECTOR  MICRO SD

Es  relativamente frecuente  , especialmente en las versiones antiguas  ( sobre todo la primera) , que el lector  de SD (version 1)   o micro-sd (en las siguientes versiones )    presente avería  por mal contacto.

Obviamente si no hace alguno de los contactos ( aqunue solo sea uno de ellos )    no podrá leer la tarjeta micro-sd   y la placa no arrancará, por lo que ,como vemos, es un problema muy serio

Una cuestión relevante  para decidir su reemplazo  son marcas en el propio  lector, que la tarjeta no entre bien en el lector  o simplemente que no quede bien sujeta a esta.

En estas situaciones quizás habría  que  plantearse  reemplazar el lector por uno similar  por ejemplo reciclado de algún otro dispositivo electrónico.

En el siguiente vídeo podemos ver el modo de actuar.

 

PROBLEMA CON EL CHIP  LAN514

Un anomalía  frecuente es el chipset de lan y hub USB  ( esta cerca de lso puerto USB)  cuyo primer síntoma  se manifiesta porque no arranca con una SD que era funcional  ( o que hemos probado que funciona en otra placa) y normalmente ha habido un sobrecalentamiento previo del chip  controlador de USB  y ethernet LAN9514

Ademas el led de power  esta activo  ( verde ) pero no el led de actividad ( no parpadea)

Sin cortocircuitos aparentes o componentes con fallo , lo cual apunta a este chip como responsable ai que  toca reemplazarlo o intentar solo usar una de las salidas de la CPU

Los pasos para repararlo se resumen solo a  dos pasos , pero  requieren cierto dominio de las herramientas :

Paso 1: remover el chip de lan

Es  aconsejable usar pietola de  aire caliente asi como  estación de soldadura  ajutadas a medio o bajo o  un desoldador a temperatura : 220 a 25 C

Respecto al tiempo, intentar que sea  tan corto como sea posible pues puede averiar a otros componentes cercanos. El chip debería liberarse en menos de 10 segundos

 

Paso 2 : puentes

El chip Broadcom BCM2836 ( el chip principal) envía señales USB  al HUB usb , así que al menos un puerto debería estar operativo

Des afortunadamente  no tendríamos puerto ethernet nunca mas

De acuerdo con la hoja de características del LAN9514, las señales USB son recibidas desde la CPU a través de los puertos 58 y  59 enviando los puertos  en los pines 1-4  y 6-9.

Por ejemplo se puede elegir  los pines 1-2  como vemos en el diagrama USBDP/USBDM   que son los pines USB D+ y D-

 

Para  hacer prácticos estos puentes  , lo aconsejable es usar un microscopio para electronica  usando hilos muy finos.  El  liquido flux  también puede  ayudar

En la imagen vemos como como con dos simples hilos con barniz en la qeu hemos raspado los bordes podemos hacer el trabajo.

Obviamente al quedar solo un puerto disponible   un hub de puertos USb es altamente recomendable   siendo ademas interesante que sea con alimentación externa.

Esta  idea tiene ademas un pequeño defecto: tenemos que usar el primer puerto  o no sera reconocida en la Raspberry Pi

 

 

Si después de leer estas casuisticas  consigue revivir su Raspberry, es fundamental que recuerde que cuando vayas a apagar la placa  lo haga bien desde el menú de apagado  o por consola  con la siguiente instrucción sudo shutdown -h now    y NUNCA desenchufándola directamente de la alimentación

Si a pesar  de todo  no ha conseguido hacerla funcionar de nuevo ¡¡¡no la destruya!!! Por muy raro que parezca, se han dado casos que dejando la Raspberry sin actividad y desenchufada durante unos cuantos  días, al volverla a enchufar ha funcionado a la perfección, así que ánimo.