Ponsel sebagai Mikrokontroler


19

Saya memiliki beberapa ponsel yang tergeletak, salah satunya adalah yang ini: http://www.gsmarena.com/sony_ericsson_elm-3057.php


Dimungkinkan untuk menghapus memori flash dan menggantinya dengan bootloader dan kemudian mengunggah sketsa arduino atau sketsa pic32 (C # / C ++).

Saya mendapat ide ini karena ini adalah platform yang sangat murah untuk mengembangkan proyek perangkat keras. (Anda mendapatkan layar, tombol, audio I / O, internet, dll, Anda mendapatkan segalanya dengan harga yang sangat murah dibandingkan dengan apa yang Anda dapatkan dengan membeli setiap bagian secara terpisah.)

Apakah mungkin untuk menghapus memori flash dan menginstal boot-loader ke telepon untuk menggunakannya sebagai komputer tertanam?


3
Mengapa memilih, ini adalah pertanyaan yang bagus.
Rocketmagnet

Itu benar-benar perlu dibersihkan. (Saya tidak memilih, tapi iIMade suntingan yang tertunda yang benar-benar menjelaskan pertanyaan yang diajukan)
CyberMen

Anda mungkin tertarik pada proyek Rockbox, yang telah melakukan sesuatu yang mirip dengan pemutar mp3. Orang-orang yang terlibat di dalamnya dapat memberi tahu Anda betapa sulitnya mendapatkan informasi tentang perangkat keras berpemilik.
Jeanne Pindar

@CyberMen Saya tidak yakin apa yang Anda maksud dengan "Apa yang memformat memori flash di telepon dan menginstal"
varesa

@varesa jangan tanya saya, tanya OP. Gunakan kemampuan bahasa Inggris deduktif Anda.
CyberMen

Jawaban:


1

Biaya tidak pernah menjadi masalah. Banyak penggemar akan bersedia membayar harga moderat untuk perangkat kelas atas yang mudah diretas. Masalahnya adalah bahwa ARM adalah platform tertutup. Biasanya ada bagian bernama ROM pribadi pada silikon SoC (system on chip). Itu memblokir penggunaan kembali.

Bagian ROM ini bertanggung jawab untuk memilih bootloader dalam beberapa urutan: Z-Modem pada serial, Nand eksternal, ROM serial, SDCard, USB eksternal. Untuk setiap perangkat, urutannya individual dan tidak terdokumentasi dengan baik, Anda biasanya harus menahan beberapa tombol saat menyalakan untuk bercabang ke loader alternatif. Gambar bootloader jika sebagian besar waktu memeriksa tanda tangan digital dari pemilik platform. Jadi tidak berhasil.

Untuk satu proyek, tidak apa-apa untuk memilih perangkat acak. Tetapi Anda mungkin akan lebih tertarik pada perangkat yang terkenal, dengan skema yang dipublikasikan dan kode sumber yang tersedia untuk Linux, Android dll.

Jadi saran saya adalah untuk melihat perangkat yang dikelilingi oleh komunitas pengguna aktif : Raspberry Pi, BeagleBone, BeagleBoard, beberapa platform evaluasi Samsung (PandaBoard?)

Pengalaman pribadi saya dengan TI AM35XX berakhir dengan kekecewaan dengan kompleksitas segalanya. Linux terkecil di dunia bernama Angstrom memiliki gambar distribusi 3GB. Dokumen untuk chip adalah 4000-5000 halaman. Itu tidak terasa seperti hobi dan tidak menyenangkan.

Situasi dapat berubah setelah Intel Atom SoC akan menjadi populer. Saya mengharapkan minat pengguna yang besar dan akan mengikuti kerumunan orang ke arah Atom sekecil mungkin. Semoga seseorang akan menyelesaikan bagian yang dapat dipasang di panel dengan ukuran kartu kredit dan GPIO. Akan menyenangkan.


2
Sebenarnya, TI AM35XX mengagumkan - Linux terkecil di platform ini cocok di bawah 3MB. Saya pribadi menggunakan ini (dan AM33XX) untuk banyak hal, setelah Anda melewati kerumitan kompilasi silang, Anda memiliki perangkat keras yang didukung dan terdokumentasi dengan baik. Ya, ini rumit, dan TRM (5000 halaman) adalah batu bata yang sangat besar, tetapi ini dimaksudkan sebagai dokumen referensi, bukan sebagai lagu pengantar tidur (kamu dapat berfungsi seperti itu juga)
qdot

+1. Ya saya setuju bahwa TI ARM adalah yang terbaik yang bisa ditemukan. Yang saya maksud hanyalah pengalaman pribadi saya sebagai penghobi. Jika itu adalah pekerjaan saya untuk bergulat dengan ARM dalam sebuah tim, itu akan jauh lebih menyenangkan.

Yah, saya akan bergulat dengan mesin yang terlalu kuat, daripada yang kurang kuat, secara umum. Ini jelas bukan Arduino, tetapi itu adalah linux, setelah Anda mem-boot kernel, itu tidak berbeda dengan platform crossdev lainnya di luar sana. Bangun beberapa userland (atau bangun init Anda sendiri dan jalankan dari sana), dan Anda sudah di rumah :)
qdot

5

Beberapa waktu yang lalu, ada proyek untuk melakukan sesuatu yang serupa (merekayasa balik keluarga telepon yang murah dan sangat populer).

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

Dan ya, opsi Android mungkin yang paling mudah .. atau Windows Mobile, cukup terbuka juga.


Tunggu, apakah barang level rendah untuk WP juga terbuka?
varesa

WP atau WM? Windows Phone, yaitu Versi 7 ke atas, adalah sesuatu yang saya miliki dengan pengalaman terbatas, tapi saya pikir masih bisa menjalankan biner C asli. Versi 6, yang merupakan sebagian besar ponsel-PDA yang lama tetapi sangat kuat, sangat terbuka - ini menjalankan kode C asli, dapat dikompilasi dengan MSVC dan GCC, hampir tidak memiliki keamanan .. Anda benar-benar dapat meluncurkan bootloader sebagai aplikasi biasa, dan itu melompat ke kernel linux :)
qdot

Setelah mencoba hal ini berabad-abad yang lalu dengan HTC Touch Pro saya, saya dapat menjamin bahwa ya, Anda dapat melompat ke kernel Linux (atau custom Android build). Itu bukan untuk mengatakan bahwa berbicara dengan semua perangkat keras sama mudah atau layak. (sayangnya, ketika saya membenci WM6 dengan penuh semangat, tetapi tidak mungkin saya bisa mempertahankan tingkat fungsionalitas yang sama dengan OS lainnya)
Alexios

qdot, mengapa Anda tidak memberi tahu kami lebih lanjut tentang pendekatan dari membeli ponsel windows 6/7 dari toko hingga menjalankan kode saya sendiri mengendalikan misalkan 5 servos melalui port serial.
Harry Svensson

1
@qdot dapatkah Anda membawa beberapa info ini sehingga tautannya hanya referensi, saat ini rentan terhadap tautan yang membusuk.
Kortuk

3

Saya tidak punya pengalaman dalam hal ini, tapi saya pikir itu tidak mudah (jika mungkin). Saya pikir Anda bisa melupakan pemrograman dalam C ++ atau C #, dan lebih tepatnya di ASM + C. Ini tidak akan kompatibel dengan sketsa arduino atau kode PIC32 atau apa pun, yang tidak dibuat untuk CPU tertentu. Banyak ponsel baru memiliki sesuatu seperti inti ARM.

Saya tidak benar-benar tahu bagaimana Anda akan memprogram perangkat, tetapi saya menganggap itu mungkin, karena mereka biasanya dapat memperbarui firmware jika Anda mengirimnya kepada mereka untuk diperbaiki.

Anda juga harus kode driver Anda sendiri untuk semua perangkat keras (layar, WLAN, sensor, dll ...), yang akan sangat sulit tanpa informasi lebih lanjut tentang perangkat keras, yang produsen telepon kemungkinan tidak akan merilis kepada Anda .

Saya pikir cara termudah akan menjadi sesuatu seperti ponsel Android lama, karena Anda bisa mendapatkan kode sumber dengan driver dan semua hal tingkat rendah secara gratis. Anda bisa merobek atau menggunakan UI dan komponen lain yang terlihat oleh pengguna. Tapi ini mungkin bukan yang Anda inginkan, kecuali jika Anda memiliki beberapa ponsel Android lama.

Juga, jika ponsel telah "diretas" untuk menjalankan OS lain, terutama yang open-source seperti android, Anda mungkin bisa mendapatkan sumber untuk port untuk bermain.


Apakah tidak mungkin untuk membaca semuanya dari memori flash dan membaca / memodifikasi memori flash dari sana?
Harry Svensson

@ HarrySvensson Yah Anda harus memodifikasi memori secara langsung, atau menggunakan beberapa jenis port pemrograman / header yang mungkin ada di sana untuk meningkatkan firmware. Mungkin, tetapi tidak mudah.
varesa

2
Mengapa memilih secara acak?
varesa

@ HarrySvensson, dengan asumsi Anda memiliki alat untuk membuang semua memori flash (mungkin ada beberapa chip flash dimaksudkan untuk mengandung hal-hal yang berbeda seperti boot-loader aman dan yang tidak, beberapa mungkin memerlukan alat berpemilik), apakah Anda akan merasa nyaman dalam mendekode semua dengan tangan? Jangan berharap semua itu dalam format sistem file yang bagus yang bisa Anda pasang di komputer Anda seperti thumb drive. Anda bisa melihat banyak hal yang eksklusif dan tidak dapat dikenali atau hanya kode perakitan mentah di mana mungkin ada beberapa kode program.
Jon L

2

Melakukan semuanya sendiri akan sulit di terbaik. Anda akan memiliki waktu yang jauh lebih mudah dengan salah satu perangkat yang didukung oleh proyek Rockbox , yang merupakan firmware open source untuk pemutar mp3. Beberapa perangkat ini tidak mahal dan menawarkan banyak keuntungan yang Anda sebutkan, dan mereka dirancang untuk meningkatkan firmware melalui USB. Anda akan mendapatkan bantuan dari komunitas aktif yang telah menemukan masalah dasar mengenai kompiler, bootloader, dll. Serta beberapa kode sumber untuk memulai.

Fitur bagus dari Rockbox adalah mengatur perangkat ke dual boot, sehingga mereka masih dapat digunakan untuk tujuan semula ketika Anda tidak menggunakan firmware baru.


0

Tidak.

Dokumentasi publik untuk ponsel ini (seperti pada halaman yang Anda tautkan) bahkan tidak mencantumkan jenis prosesor. Bahkan jika itu terjadi, Anda akan memerlukan skema (termasuk nomor bagian dari semua IC) untuk dapat menulis kode untuk itu. Itu akan menjadi milik Sony / Ericsson, jadi Anda tidak akan mendapatkannya). Sama untuk ponsel lainnya.

Jika Anda tidak memiliki semua dokumentasi untuk prosesor, memori flash, dll., Anda dapat menulis bootloader yang kompatibel dengan Arduino setelah menghabiskan beberapa minggu waktu Anda. Tentu saja ini akan mengharuskan Anda mendapatkan lingkungan pengembangan untuk telepon, yang kemungkinan akan menelan biaya ratusan jika tidak ribuan dolar.

Sekalipun Anda bisa menulis bootloader yang kompatibel dengan Arduino, mustahil untuk mengulang dan mengunggah sketsa Arduino karena mustahil 1) kompiler untuk Arduino akan memancarkan kode untuk mikrokontroler yang kompatibel dengan Arduino (Atmega, PIC32 dll.) , dan telepon pasti tidak akan menggunakan yang hilang - kemungkinan besar akan ada beberapa varian ARM); dan 2) port I / O tidak akan berlokasi di lokasi yang sama (port) pada ponsel seperti pada Arduino.

Catatan ada beberapa ponsel open-source , tetapi Anda tidak akan dapat menjalankan perangkat lunak Arduino untuk yang sama seperti yang saya sebutkan di atas (ketidakcocokan prosesor dan perangkat keras). Beberapa jawaban lain telah menyarankan Android, tetapi perhatikan bahwa itu tidak ada dalam daftar ponsel sumber terbuka karena driver berpemilik. Dan sekali lagi pertanyaannya adalah Anda dapat menjalankan kode Arduino pada mereka, dan jawabannya jelas tidak.

Jadi jauh lebih murah untuk hanya menggigit peluru dan mendapatkan papan dan perangkat Arduino.


0

Apa yang diperlukan untuk mengubah berbagai perangkat keras "sehari-hari" menjadi platform mikrokontroler? Mod Sprite adalah sumber inspirasi yang sangat baik. Ini memberikan penjelasan yang baik tentang proses yang diperlukan untuk "membuka" perangkat dan mendapatkan kontrol atas mereka. TL; DR: Anda dapat menjalankan Linux pada kartu SD, dan pada hard drive. Tidak, tidak menggunakan hard drive. Pada hard drive - pada CPU yang cukup kuat yang merupakan pengendali drive.


The Linksys WRT54G router adalah perangkat populer untuk hack, karena digunakan perangkat lunak open-source sehingga Linksys diwajibkan untuk melepaskan kode sumber. Anda berakhir dengan platform yang dapat disesuaikan yang menjalankan Linux, dengan port Ethernet dan Wi-Fi terintegrasi.
tcrosley
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.