J'ai quelques téléphones portables qui traînent, l'un d'eux étant celui-ci:
http://www.gsmarena.com/sony_ericsson_elm-3057.php Il
est possible d'effacer la mémoire flash et de la remplacer par un chargeur de démarrage, puis de télécharger des croquis arduino ou croquis pic32 (C # / C ++).
J'ai eu cette idée car c'est une plateforme très bon marché pour développer des projets matériels. (Vous obtenez un écran, des boutons, des E / S audio, Internet, etc., vous obtenez tout pour un prix très bon marché par rapport à ce que vous obtenez en achetant chaque pièce séparément.)
Est-il possible d'effacer la mémoire flash et d'installer un chargeur de démarrage dans un téléphone pour l'utiliser comme ordinateur embarqué?
microcontroller
telephone
bootloader
cellphone
Harry Svensson
la source
la source
Réponses:
Le coût n'est jamais un problème. De nombreux amateurs seront prêts à payer un prix modéré pour des appareils haut de gamme facilement piratables. Le problème est que ARM est une plate-forme fermée. Il y a généralement une partie nommée ROM privée sur le silicium même du SoC (système sur puce). Il bloque la réutilisation.
Cette partie de la ROM est chargée de choisir un chargeur de démarrage dans un certain ordre: Z-Modem sur série, Nand externe, ROM série, SDCard, USB externe. Pour chaque appareil, la commande est individuelle et mal documentée, vous devez généralement tenir quelques boutons lors de la mise sous tension pour vous connecter à un chargeur alternatif. L'image du chargeur de démarrage si la plupart du temps vérifie la signature numérique du propriétaire de la plate-forme. Donc pas de chance.
Pour un projet unique, il est possible de choisir un périphérique aléatoire. Mais vous serez probablement plus intéressé par un appareil bien connu, avec des schémas publiés et du code source disponible pour Linux, Android, etc.
Donc, ma suggestion est de regarder les appareils entourés de communautés d'utilisateurs actifs : Raspberry Pi, BeagleBone, BeagleBoard, une plate-forme d'évaluation Samsung (PandaBoard?)
Mon expérience personnelle avec TI AM35XX s'est terminée par une déception face à la complexité de tout. Le plus petit Linux au monde nommé Angstrom a une image de distribution de 3 Go. Les documents pour les puces sont de 4000 à 5000 pages. Cela ne ressemblait pas beaucoup à un passe-temps et n'était pas agréable.
La situation pourrait changer une fois que le processeur Intel Atom SoC sera devenu populaire. Je m'attends à un intérêt massif des utilisateurs et suivrai la foule en direction du plus petit Atom possible avec écran. J'espère que quelqu'un terminera une pièce montable sur panneau avec la taille de la carte de crédit et du GPIO. Ça va être amusant.
la source
Il y a des âges, il y avait un projet pour faire quelque chose de similaire (l'ingénierie inverse d'une famille de téléphones bon marché et très populaire).
http://nokix.pasjagsm.pl/help/blacksphere/sub_050main.htm
Et oui, l'option Android est probablement la plus simple .. ou Windows Mobile, elle est également raisonnablement ouverte.
la source
Je n'ai aucune expérience à ce sujet, mais je ne pense pas que ce serait facile (si possible). Je pense que vous pouvez oublier de le programmer en C ++ ou C #, et plutôt en ASM + C. Il ne serait pas compatible avec les croquis Arduino ou le code PIC32 ou quoi que ce soit, qui n'est pas fait pour le CPU spécifique. De nombreux nouveaux téléphones ont quelque chose comme un noyau ARM.
Je ne sais pas vraiment comment vous programmeriez l'appareil, mais je suppose que c'est possible, car ils peuvent généralement mettre à jour le micrologiciel si vous le leur envoyez pour réparation.
Vous devrez également coder vos propres pilotes pour tout le matériel (écran, WLAN, capteurs, etc ...), ce qui serait vraiment difficile sans plus d'informations sur le matériel, que le fabricant du téléphone ne va probablement pas vous fournir. .
Je pense que le moyen le plus simple serait quelque chose comme un ancien téléphone Android, car vous pouvez obtenir gratuitement le code source avec les pilotes et tous les trucs de bas niveau. Vous pouvez déchirer ou utiliser l'interface utilisateur et d'autres composants visibles par l'utilisateur. Mais ce n'est pas ce que vous voulez, sauf si vous avez de vieux téléphones Android qui traînent.
De plus, si le téléphone a été "piraté" pour exécuter n'importe quel autre système d'exploitation, en particulier ceux à source ouverte comme Android, vous pourrez peut-être obtenir les sources avec lesquelles le port pourra jouer.
la source
Tout faire vous-même sera au mieux difficile. Vous auriez beaucoup plus de facilité avec l'un des appareils pris en charge par le projet Rockbox , qui est un firmware open source pour les lecteurs mp3. Certains de ces appareils sont peu coûteux et offrent bon nombre des avantages que vous mentionnez, et ils sont conçus pour que leur micrologiciel soit mis à niveau via USB. Vous auriez l'aide d'une communauté active qui a déjà compris les problèmes de base concernant les compilateurs, les chargeurs de démarrage, etc. ainsi que du code source pour commencer.
Une fonctionnalité intéressante de Rockbox est qu'il configure les appareils pour un double démarrage, de sorte qu'ils peuvent toujours être utilisés pour leur objectif d'origine lorsque vous n'utilisez pas le nouveau firmware.
la source
Non.
La documentation publique pour ce téléphone (comme sur la page à laquelle vous avez lié) ne répertorie même pas le type de processeur. Même si c'était le cas, vous auriez besoin du schéma (y compris les numéros de pièce de tous les circuits intégrés) pour pouvoir écrire du code pour cela. Ce serait la propriété de Sony / Ericsson, donc vous n'allez pas l'obtenir). Même chose pour tout autre téléphone portable.
Dans le cas peu probable où vous avez obtenu toute la documentation du processeur, de la mémoire flash, etc., il pourrait être possible d'écrire un chargeur de démarrage compatible Arduino après avoir passé plusieurs semaines de votre temps. Bien sûr, cela nécessiterait que vous obteniez l'environnement de développement pour le téléphone, ce qui coûterait probablement des centaines, voire des milliers de dollars.
Même si vous pouviez écrire un chargeur de démarrage compatible Arduino, il serait impossible de répéter impossible de télécharger et d'exécuter des croquis Arduino car 1) le compilateur pour l'Arduino va émettre du code pour un microcontrôleur compatible Arduino (Atmega, PIC32 etc.) , et le téléphone n'utilisera certainement pas ceux-ci - ce sera probablement une variante d'ARM); et 2) les ports d'E / S ne seront pas situés aux mêmes emplacements (ports) sur le téléphone portable que sur l'Arduino.
Notez qu'il existe des téléphones cellulaires open source , mais vous ne pourrez pas exécuter le logiciel Arduino sur ceux-là pour les mêmes que ceux que j'ai cités ci-dessus (incompatibilité processeur et matériel). Certaines des autres réponses ont suggéré Android, mais notez qu'il ne figure pas sur la liste des téléphones open source en raison de pilotes propriétaires. Et encore une fois, la question était de savoir si vous pouvez exécuter du code Arduino sur ceux-ci, et la réponse est certainement non.
Il est donc beaucoup moins cher de simplement mordre la balle et d'obtenir une carte Arduino et des périphériques.
la source
Que faut-il pour transformer divers matériels "quotidiens" en plates-formes de microcontrôleurs? Les mods de Sprite sont une excellente source d'inspiration. Il donne une bonne explication du processus nécessaire pour "ouvrir" les appareils et en prendre le contrôle. TL; DR: Vous pouvez exécuter Linux sur une carte SD et sur un disque dur. Non, je n'utilise pas de disque dur. Sur un disque dur - sur le processeur assez puissant qui est le contrôleur du lecteur.
la source