Teléfono celular como microcontrolador

20

Tengo un par de teléfonos celulares, uno de ellos es este: enlace


Es posible borrar la memoria flash y reemplazarla con un gestor de arranque y luego cargar bocetos de arduino o bocetos pic32 (C # / C ++).

Se me ocurrió esta idea porque es una plataforma muy barata para desarrollar proyectos de hardware. (Obtiene una pantalla, botones, E / S de audio, Internet, etc., obtiene todo a un precio muy muy barato en comparación con lo que obtiene al comprar cada parte por separado. )

¿Es posible borrar la memoria flash e instalar un cargador de arranque en un teléfono para usarlo como una computadora integrada?

    
pregunta Harry Svensson

6 respuestas

1

El costo nunca es un problema. Muchos entusiastas estarán dispuestos a pagar un precio moderado por dispositivos de alta gama fácilmente hackeables. El problema es que ARM es una plataforma cerrada. Normalmente hay una parte llamada ROM privada en el mismo silicio de SoC (sistema en chip). Bloquea la reutilización.

Esta parte de la ROM es responsable de elegir un gestor de arranque en algún orden: Z-Modem en serie, Nand externa, ROM en serie, tarjeta SD, USB externo. Para cada dispositivo, el orden es individual y está mal documentado, por lo general, debe mantener pocos botones cuando se enciende para derivar en un cargador alternativo. La imagen del gestor de arranque si la mayor parte del tiempo se comprueba la firma digital del propietario de la plataforma. Así que no hay suerte.

Para un proyecto único, está bien elegir un dispositivo aleatorio. Pero posiblemente esté más interesado en un dispositivo conocido, con esquemas publicados y código fuente disponible para Linux, Android, etc.

Entonces, mi sugerencia es mirar los dispositivos rodeados por comunidades de usuarios activos : Raspberry Pi, BeagleBone, BeagleBoard, alguna plataforma de evaluación de Samsung (PandaBoard?)

Mi experiencia personal con TI AM35XX terminó con una decepción con la complejidad de todo. El Linux más pequeño del mundo llamado Angstrom tiene una imagen de distribución de 3GB. Los documentos para los chips son 4000-5000 páginas. No se sentía como un pasatiempo y no era agradable.

La situación puede cambiar después de que Intel Atom SoC se haga popular. Espero un gran interés del usuario y seguiré a la multitud en dirección al Atom más pequeño posible con pantalla. Espero que alguien complete una pieza de montaje en panel con el tamaño de la tarjeta de crédito y GPIO. Será divertido.

    
respondido por el user924
5

Hace años, hubo un proyecto para hacer algo similar (ingeniería inversa, una familia de teléfonos barata y muy popular).

enlace

Y sí, la opción de Android es probablemente la más fácil ... o Windows Mobile, también es razonablemente abierta.

    
respondido por el qdot
3

No tengo experiencia en esto, pero no creo que sea fácil (si es posible). Creo que puede olvidarse de programarlo en C ++ o C #, y más bien en ASM + C. No sería compatible con los bocetos de arduino o el código PIC32 o algo así, que no está hecho para la CPU específica. Muchos teléfonos nuevos tienen algo así como un núcleo ARM.

Realmente no sé cómo programaría el dispositivo, pero supongo que es posible, ya que generalmente pueden actualizar el firmware si se lo envían para su reparación.

También tendría que codificar sus propios controladores para todo el hardware (pantalla, WLAN, sensores, etc.), lo que sería realmente difícil sin más información sobre el hardware, que es probable que el fabricante del teléfono no vaya a Libérate a ti.

Creo que la forma más fácil sería algo así como un viejo teléfono Android, ya que puedes obtener el código fuente con controladores y todo lo de bajo nivel de forma gratuita. Podría arrancar o utilizar la interfaz de usuario y otros componentes visibles para el usuario. Pero esto probablemente no es lo que quieres, a menos que tengas algunos teléfonos Android viejos por ahí.

Además, si el teléfono ha sido "pirateado" para ejecutar cualquier otro sistema operativo, especialmente los de código abierto como Android, es posible que pueda obtener las fuentes del puerto para jugar.

    
respondido por el varesa
2

Hacerlo todo usted mismo será difícil en el mejor de los casos. Le resultaría mucho más fácil con uno de los dispositivos compatibles con el proyecto Rockbox , que es un firmware de código abierto para reproductores de mp3. Algunos de estos dispositivos son baratos y ofrecen muchas de las ventajas que menciona, y están diseñados para actualizar su firmware a través de USB. Tendría la ayuda de una comunidad activa que ya ha descubierto los problemas básicos relacionados con los compiladores, los cargadores de arranque, etc., así como algunos códigos fuente para comenzar.

Una buena característica de Rockbox es que configura los dispositivos para un arranque dual, por lo que aún pueden usarse para su propósito original cuando no está usando el nuevo firmware.

    
respondido por el Jeanne Pindar
0

No.

La documentación pública de este teléfono (como en la página a la que está vinculado) ni siquiera indica el tipo de procesador. Incluso si lo hiciera, necesitaría el esquema (incluidos los números de pieza de todos los IC) para poder escribir el código para ello. Eso sería propiedad de Sony / Ericsson, por lo que no lo conseguirá). Lo mismo para cualquier otro teléfono celular.

En el improbable caso de que tengas toda la documentación del procesador, la memoria flash, etc., es posible que puedas escribir un cargador de arranque compatible con Arduino después de pasar varias semanas de tu tiempo. Por supuesto, esto requeriría que obtengas el entorno de desarrollo para el teléfono, que probablemente costaría cientos si no miles de dólares.

Incluso si pudieras escribir un cargador de arranque compatible con Arduino, sería imposible repetir imposible cargar y ejecutar bocetos de Arduino porque 1) el compilador para Arduino es va a emitir código para un microcontrolador compatible con Arduino (Atmega, PIC32, etc.), y el teléfono definitivamente no va a usar ninguno de ellos (en general, será una variante de ARM); y 2) los puertos de E / S no se ubicarán en las mismas ubicaciones (puertos) en el teléfono celular que en el Arduino.

Tenga en cuenta que hay algunos teléfonos celulares de código abierto , pero no podrá ejecutar el software Arduino en aquellos para el mismo que he citado anteriormente (incompatibilidad de procesador y hardware). Algunas de las otras respuestas han sugerido Android, pero tenga en cuenta que no está en la lista de teléfonos de código abierto debido a los controladores propietarios. Y una vez más, la pregunta era si puedes ejecutar el código Arduino en esos, y la respuesta es definitivamente no.

Así que es mucho más barato simplemente morder la bala y obtener una placa y periféricos Arduino.

    
respondido por el tcrosley
0

¿Qué se necesita para convertir varios hardware "cotidiano" en plataformas de microcontroladores? mods de Sprite es una excelente fuente de inspiración. Proporciona una buena explicación del proceso necesario para "abrir" los dispositivos y obtener control sobre ellos. TL; DR: puede ejecutar Linux en una tarjeta SD y en un disco duro. No, no utilizando un disco duro. En un disco duro: en la CPU bastante potente que es el controlador de la unidad.

    
respondido por el Kuba Ober

Lea otras preguntas en las etiquetas

Comentarios Recientes

(# 206) Las tarjetas de recuperación basadas en políticas PR50609 integradas brindan una ruta libre y limpia para aplicaciones ampliadas en uso de producción. Un puerto APIC de cuatro núcleos, intercambiable en caliente de Cisco dos con capacidad EPP de realizar multiplexación de flujo de datos redundante, verificaciones de integridad (CFB) y monitoreo de interfaces físicas invitadas. Soporte de escritorio de gráficos PowerAdvance (# 260) Plan operativo más grande de 2 nodos con una interfaz de bus dual GPU... Lees verder