Eu tenho alguns telefones celulares, um deles sendo este:
http://www.gsmarena.com/sony_ericsson_elm-3057.php
É possível limpar a memória flash e substituí-la por um gerenciador de inicialização e depois fazer o upload de esboços do arduino ou pic32 esboços (C # / C ++).
Eu tive essa ideia porque é uma plataforma muito barata para o desenvolvimento de projetos de hardware. (Você obtém uma tela, botões, E / S de áudio, internet, etc., obtém tudo por um preço muito baixo comparado ao que obtém comprando cada peça separadamente.)
É possível apagar a memória flash e instalar um carregador de inicialização em um telefone para usá-lo como um computador incorporado?
microcontroller
telephone
bootloader
cellphone
Harry Svensson
fonte
fonte
Respostas:
O custo nunca é um problema. Muitos entusiastas estarão dispostos a pagar um preço moderado por dispositivos de ponta facilmente hackáveis. O problema é que o ARM é uma plataforma fechada. Normalmente, há uma parte chamada ROM privada no próprio silício do SoC (sistema no chip). Bloqueia a reutilização.
Esta parte da ROM é responsável por escolher um gerenciador de inicialização em alguma ordem: Z-Modem em serial, Nand externo, ROM serial, SDCard, USB externo. Para todos os dispositivos em que o pedido é individual e mal documentado, você normalmente deve pressionar alguns botões ao ligar o carregador alternativo. A imagem do carregador de inicialização, se na maioria das vezes verificada quanto à assinatura digital do proprietário da plataforma. Então, sem sorte.
Para um projeto único, não há problema em escolher um dispositivo aleatório. Mas você possivelmente estará mais interessado em dispositivos conhecidos, com esquemas publicados e código fonte disponível para Linux, Android etc.
Então, minha sugestão é olhar para dispositivos cercados por comunidades de usuários ativos : Raspberry Pi, BeagleBone, BeagleBoard, alguma plataforma de avaliação da Samsung (PandaBoard?)
Minha experiência pessoal com a TI AM35XX terminou com decepção com a complexidade de tudo. O menor Linux do mundo chamado Angstrom tem uma imagem de distribuição de 3 GB. Os documentos para chips são 4000-5000 páginas. Não parecia muito um hobby e não era agradável.
A situação pode mudar depois que o Intel Atom SoC se tornar popular. Espero um grande interesse do usuário e seguirei a multidão na direção do menor Atom possível com a tela. Espero que alguém complete uma peça montável em painel com tamanho de cartão de crédito e GPIO. Será divertido.
fonte
Idade atrás, havia um projeto para fazer algo semelhante (engenharia reversa, uma família de telefones baratos e muito populares).
http://nokix.pasjagsm.pl/help/blacksphere/sub_050main.htm
E sim, a opção Android é provavelmente a mais fácil .. ou Windows Mobile, também é razoavelmente aberta.
fonte
Não tenho experiência nisso, mas não acho que seria fácil (se possível). Eu acho que você pode esquecer de programá-lo em C ++ ou C #, e sim em ASM + C. Não seria compatível com esboços do arduino ou código PIC32 ou qualquer coisa que não seja feita para a CPU específica. Muitos telefones novos têm algo como um núcleo ARM.
Realmente não sei como você programaria o dispositivo, mas presumo que seja possível, pois eles geralmente podem atualizar o firmware se você o enviar para manutenção.
Além disso, você teria que codificar seus próprios drivers para todo o hardware (tela, WLAN, sensores, etc ...), o que seria realmente difícil sem mais informações sobre o hardware, que o fabricante do telefone provavelmente não liberará para você .
Eu acho que a maneira mais fácil seria algo como um telefone Android antigo, pois você pode obter o código-fonte com drivers e todo o material de baixo nível gratuitamente. Você pode se livrar ou usar a interface do usuário e outros componentes visíveis para o usuário. Mas isso provavelmente não é o que você deseja, a menos que você tenha alguns telefones Android antigos por aí.
Além disso, se o telefone foi "hackeado" para executar qualquer outro sistema operacional, especialmente os de código aberto, como o Android, você poderá obter as fontes para a porta jogar.
fonte
Fazer tudo sozinho será difícil, na melhor das hipóteses. Você teria muito mais facilidade com um dos dispositivos suportados pelo projeto Rockbox , que é um firmware de código aberto para players de mp3. Alguns desses dispositivos são baratos e oferecem muitas das vantagens mencionadas e foram projetados para que o firmware seja atualizado via USB. Você teria a ajuda de uma comunidade ativa que já descobriu os problemas básicos de compiladores, gerenciadores de inicialização, etc., bem como algum código fonte para começar.
Um bom recurso do Rockbox é que ele configura os dispositivos para inicialização dupla, para que eles ainda possam ser usados para seu propósito original quando você não estiver usando o novo firmware.
fonte
Não.
A documentação pública deste telefone (como na página à qual você vinculou) nem lista o tipo de processador. Mesmo assim, você precisaria do esquema (incluindo números de peça de todos os CIs) para poder escrever código para ele. Isso seria propriedade da Sony / Ericsson, então você não vai conseguir). O mesmo para qualquer outro telefone celular.
No caso improvável de você ter toda a documentação do processador, memória flash etc., pode ser possível gravar um gerenciador de inicialização compatível com Arduino depois de passar várias semanas do seu tempo. É claro que isso exigiria que você obtivesse o ambiente de desenvolvimento para o telefone, o que provavelmente custaria centenas, senão milhares de dólares.
Mesmo se você fosse capaz de escrever um carregador de inicialização compatível com o Arduino, seria impossível repetir impossível fazer upload e executar esboços do Arduino porque 1) o compilador do Arduino emitirá código para um microcontrolador compatível com Arduino (Atmega, PIC32 etc.) , e o telefone definitivamente não vai usar esses itens - provavelmente é uma variante do ARM); e 2) as portas de E / S não estarão localizadas nos mesmos locais (portas) no telefone celular que no Arduino.
Observe que existem alguns telefones celulares de código aberto , mas você não poderá executar o software Arduino com os mesmos citados acima (incompatibilidade de processador e hardware). Algumas das outras respostas sugeriram o Android, mas observe que ele não está na lista de telefones de código aberto por causa de drivers proprietários. E, mais uma vez, a pergunta era: você pode executar o código do Arduino nesses e a resposta é definitivamente não?
Portanto, é muito mais barato morder a bala e obter uma placa e periféricos do Arduino.
fonte
O que é necessário para transformar vários hardwares "cotidianos" em plataformas de microcontroladores? Os mods do Sprite são uma excelente fonte de inspiração. Ele fornece uma boa explicação do processo necessário para "abrir" os dispositivos e obter controle sobre eles. TL; DR: você pode executar o Linux em um cartão SD e em um disco rígido. Não, não usando um disco rígido. Em um disco rígido - na CPU bastante poderosa que é o controlador da unidade.
fonte