21 votos

El móvil como microcontrolador

Tengo un par de móviles por ahí, uno de ellos es este: http://www.gsmarena.com/sony_ericsson_elm-3057.php

Es posible borrar la memoria flash y sustituirla por un bootloader y luego cargar sketches de arduino o pic32(C#/C++).

Se me ocurrió esta idea porque es una plataforma muy barata para desarrollar proyectos de hardware. (Tienes una pantalla, botones, E/S de audio, internet, etc, tienes todo para un muy precio barato comparado con lo que se obtiene comprando cada pieza por separado).

¿Es posible borrar la memoria flash e instalar un cargador de arranque en un teléfono para utilizarlo como ordenador integrado?

5voto

user2292 Puntos 101

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

http://nokix.pasjagsm.pl/help/blacksphere/sub_050main.htm

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

3voto

tmandry Puntos 111

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

La verdad es que no sé cómo programarías el aparato, pero supongo que es posible, ya que normalmente pueden actualizar el firmware si se lo envías al servicio técnico.

Además, tendrías que programar tus propios controladores para todo el hardware (pantalla, WLAN, sensores, etc.), lo que sería muy difícil sin más información sobre el hardware, que probablemente el fabricante del teléfono no te facilitará.

Creo que la forma más fácil sería algo como un viejo teléfono Android, ya que se puede obtener el código fuente con los controladores y todas las cosas de bajo nivel de forma gratuita. Podrías 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 viejos teléfonos Android por ahí.

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

3voto

El coste nunca es un problema. Muchos entusiastas estarán dispuestos a pagar un precio moderado por dispositivos de gama alta fácilmente pirateables. El problema es que ARM es una plataforma cerrada. Normalmente hay una parte llamada ROM privada en el propio silicio del SoC (system on chip). Esto bloquea la reutilización.

Esta parte de la ROM se encarga de elegir un gestor de arranque en cierto orden: Z-Modem en serie, Nand externo, ROM en serie, SDCard, USB externo. Para cada dispositivo el orden es individual y está pobremente documentado, normalmente debes mantener pulsados algunos botones al encender para pasar a un cargador alternativo. La imagen del cargador de arranque si la mayoría de las veces se comprueba la firma digital del propietario de la plataforma. Así que no hubo suerte.

Para un proyecto único, está bien elegir un dispositivo al azar. Pero posiblemente te interese más un dispositivo conocido, con esquemas publicados y código fuente disponible para Linux, Android, etc.

Así que mi sugerencia es buscar dispositivos rodeados de comunidades de usuarios activas : Raspberry Pi, BeagleBone, BeagleBoard, alguna plataforma de evaluación de Samsung (¿PandaBoard?)

Mi experiencia personal con TI AM35XX terminó con decepción por 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 hobby y no era agradable.

La situación puede cambiar cuando se popularice el SoC Intel Atom. Espero un interés masivo por parte de los usuarios y seguiré a la multitud en la dirección del Atom con pantalla más pequeño posible. Espero que alguien complete una pieza montable en panel con el tamaño de una tarjeta de crédito y GPIO. Será divertido.

3voto

Hacerlo todo uno mismo será difícil en el mejor de los casos. Le resultará mucho más fácil con uno de los dispositivos compatibles con la Rockbox que es un firmware de código abierto para reproductores mp3. Algunos de estos dispositivos son baratos y ofrecen muchas de las ventajas que mencionas, y están diseñados para que su firmware se actualice vía USB. Contarías con la ayuda de una comunidad activa que ya ha resuelto las cuestiones básicas relativas a compiladores, cargadores de arranque, etc., así como con algo de código fuente para empezar.

Una buena característica de Rockbox es que configura los dispositivos para arranque dual, por lo que todavía se pueden utilizar para su propósito original cuando no se está utilizando el nuevo firmware.

0voto

Matt McMinn Puntos 6067

No.

La documentación pública de este teléfono (como la de la página a la que has enlazado) ni siquiera indica el tipo de procesador. Incluso si lo hiciera, necesitarías el esquema (incluidos los números de pieza de todos los circuitos integrados) para poder escribir código para él. Eso sería propiedad de Sony/Ericsson, así que no lo vas a conseguir). Lo mismo para cualquier otro teléfono móvil.

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

Incluso si fueras capaz de escribir un gestor de arranque compatible con Arduino, sería imposible repita imposible para cargar y ejecutar bocetos de Arduino porque 1) el compilador para el Arduino va a emitir código para un microcontrolador compatible con Arduino (Atmega, PIC32, etc.), y el teléfono definitivamente no va a utilizar ninguno de esos - lo más probable es que sea alguna variante de ARM); y 2) los puertos de E / S no van a estar ubicados en los mismos lugares (puertos) en el teléfono celular como lo están en el Arduino.

Tenga en cuenta que hay algunos teléfonos móviles de código abierto pero no vas a poder ejecutar software Arduino en ellos por lo mismo que he citado antes (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 se puede ejecutar código Arduino en ellos, y la respuesta es definitivamente no.

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

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X