Bagaimana Kami Mengembangkan Librem 5 DevKit Sepenuhnya dalam Perangkat Lunak Bebas

Dari penerjemah: Librem 5 (on render) - smartphone yang aman untuk Linux dari Purism, yang dibuat pada perangkat keras dan perangkat lunak paling terbuka karena crowdfunding .

Hari ini kita akan berbicara tentang pengembangan Kit Pengembang Librem 5 dan bagaimana kita menggunakan hanya 100% perangkat lunak gratis dalam pengembangannya.

Desain devkit diterbitkan dengan ketentuan lisensi GNU GPLv3 +, repositori perangkat keras Git ada di sini .

KiCad - pilihan yang jelas untuk EDA

Sebelum memulai pengembangan, tidak jelas ke arah mana untuk mengembangkan proyek. Secara khusus, alat mana yang dipilih untuk otomatisasi desain elektronik (EDA) . Awalnya, idenya adalah mengubah papan OpenRex i.MX 6QP dari FEDEVEL untuk memenuhi semua persyaratan untuk devkit, tetapi kami segera menghadapi dua masalah utama: prosesor i.MX 6QP digunakan di sana, dan lebih buruk lagi, papan tersebut dikembangkan dalam sistem kepemilikan Altium. . Untungnya, saya sudah memiliki pengalaman mendesain elektronik menggunakan EDA KiCad, jadi kami berhasil membuat desain devkit menggunakan perangkat lunak 100% gratis.

KiCad adalah pilihan yang jelas, tidak hanya karena lisensi gratis (GNU GPLv3 +), tetapi juga karena itu adalah kit desain elektronik yang sangat fungsional yang bahkan melampaui beberapa alat eksklusif yang mahal.

Pemilihan komponen yang memenuhi persyaratan


Langkah pertama dalam pengembangan devkit adalah menemukan komponen yang memenuhi persyaratan yang diidentifikasi selama kampanye. Selain mengamati spesifikasi yang dinyatakan, saat mencari komponen, kami memutuskan untuk menambahkan beberapa lonceng dan peluit tambahan; termasuk:

  • pengendali muatan (BQ25896)
  • Dudukan baterai 18650 untuk baterai lithium-ion opsional
  • USB-C
  • mini HDMI
  • Pengontrol kartu SD dan slot micro-SD (karena i.MX 8M hanya memiliki dua pengontrol uSDHC)
  • Ethernet / RJ45
  • codec audio
  • speaker lubang suara
  • mikrofon
  • CTIA / AHJ 4-tiang jack headphone 3,5 mm (dengan pilihan antara mikrofon internal dan eksternal)
  • Pembaca kartu pintar GPG
  • motor getaran
  • LED yang dapat diprogram
  • tombol volume dan daya
  • sakelar perangkat keras dan sakelar mode boot
  • memori flash 16Mb SPI NOR
  • jam waktu nyata (RTC)

Seperti yang direncanakan, kami menambahkan melalui lubang untuk kontak debugging UART yang tidak sibuk secara default (serial over USB berjalan pada gambar default yang datang dengan devkit). Petunjuk: jika Anda tidak suka menyolder, maka tajuk mendukung fit pers, cari nomor komponen Autosplice 23-1063. Di papan ada permukaan pendukung SMD 2 Γ— 5 JTAG, dan fungsinya telah diuji pada prototipe; Jika Anda tertarik bermain-main, maka cari nomor bagian GRPB052VWQS-RC.

Untuk modem WWAN / baseband dan WiFi + BT, jelas bahwa Anda perlu menemukan beberapa modul yang sudah jadi, misalnya, dengan pemasangan di permukaan. Pada tahap awal, Nicole memiliki ide cemerlang untuk menggunakan modul mPCIe dan M.2 sehingga para devkits menjadi modular, dengan kemungkinan peningkatan di masa depan. Pada akhirnya, kami memilih modul modem mPCIe SIMCom SIM7100A / E dan modul M.2 RedPine RS9116 Wi-Fi + BT.

Mulai menggambar


Pada akhir fase penelitian, kita harus mulai mengimplementasikan ide-ide kita. Prosesor i.MX 8M Quad baru saja muncul di pasaran. Untuk mendapatkan terobosan dari awal pengembangan, serta menambah modularitas dan kemungkinan pembaruan di masa mendatang, kami memilih opsi sistem-modul (SOM) , termasuk SoC, SDRAM, eMMC dan PMIC. Tetapi bahkan pada tahap awal pengembangan, ketika kami baru mulai menggambar diagram, produksi serial beberapa SOM yang menarik bagi kami belum dimulai. Sekitar pertengahan April, kami menjalin hubungan baik dengan EmCraft, yang baru saja memulai siklus produksi SOM besar pertama dan hampir merilis spesifikasi arsitektur perangkat keras. Kami memutuskan bahwa SOM EmCraft dan sumber dayanya tepat seperti yang kami butuhkan. Segera setelah SOM tertentu dipilih, kami segera mulai menggambar diagram.

Proses pemilihan komponen spesifik untuk devkit dilakukan bersamaan dengan persiapan skema. Semua pekerjaan dilakukan dalam sistem kontrol versi Git.


Fig. 1. Revisi awal skema 2 Mei (hash dari git commit 023915d5)

Setelah menyelesaikan skema, kami mengekspor file netlist , yang secara signifikan membawa kami lebih dekat ke implementasi devkit dalam kehidupan.

Memodelkan HP_DET


Selain KiCad, dari perangkat lunak bebas kami juga menggunakan alat yang disebut Qucs-S dan alat emulasi Xyce yang kompatibel dengan SPICE untuk meniru chip sensor headphone, yang mencakup dioda zener untuk melindungi GPIO yang sesuai dari tegangan input yang terlalu tinggi atau terlalu rendah dari mengeluarkan DAC HP dari codec audio. Kombinasi Qucs-S dan Xyce memungkinkan untuk menggunakan model MMS-SP4 dari dioda MMSZ4688T1G dalam chip , yang paling mewakili kondisi fisik konektor kosong 3,5 mm dengan HP DAC yang aktif secara bersamaan.


Fig. 2. Memodelkan skema HP_DET menggunakan Qucs-S dan Xyce

Tiruan ini, serta casing DC sederhana, di mana sakelar internal konektor 3,5 mm terbuka dan 1MΞ© hanya mencapai tegangan standar 3V3_P, ini memastikan bahwa metode perlindungan spesifik benar-benar berfungsi.

Buat situs


Sekitar pertengahan Juni, kami menyelesaikan kompilasi Daftar Bahan (BOM) , mulai memesan komponen dan mulai membuat garis besar semua situs di perangkat (chip, konektor, modul, dll.). Kami mengambil karakteristik yang direkomendasikan dari dokumentasi dan empat kali memeriksa bahwa semuanya benar.


Fig. 3. Platform pengontrol muatan BQ25896 (U301 pada dev-board, yang terletak di bawah SOM)

Dalam mode tampilan 3D KiCad yang memukau, kami membuat garis besar tiga dimensi dari hampir semua komponen.


Fig. 4. Model 3D dari pengontrol muatan BQ25896

Perencanaan, perkabelan, dan pembaruan level demi level KiCad


Pada tahap awal, sebuah rencana tingkat kasar disusun untuk dengan cepat mengetahui area sirkuit terintegrasi yang akan digunakan (90 Γ— 180 mm) dan di mana menempatkan komponen yang lebih besar (konektor, soket, slot kartu, soket mPCIe dan soket M.2, modul, dll. d.). Setelah penempatan di papan tempat memotong roti, beberapa detail masih bergerak, tetapi dengan cepat memperbaiki diri di tempat-tempat tertentu.

Pada akhir Juni, kami mulai memasang kabel, dimulai dengan USB-C (commit a1bfc689). Ini menandai awal dari pembuatan prototipe.


Fig. 5. Pertama-tama komit dengan kabel


Fig. 6. Bagaimana tata letak USB-C pada akhirnya?


Fig. 7. Versi awal dari rangkaian sebelum menempatkan komponen dan kabel

Proses pengkabelan membutuhkan keseimbangan yang rumit antara kecepatan kerja dan memverifikasi bahwa semuanya dilakukan dengan benar tanpa kesalahan, termasuk pengkabelan yang hati-hati dari trek kontrol tahanan dan saluran analog yang sensitif.

Awalnya, tidak ada kepastian berapa banyak lapisan yang dibutuhkan dan apakah komponen harus ditempatkan di kedua sisi papan. Kami tahu bahwa papan i.MX 8M memiliki delapan lapisan dan komponen di kedua sisi, tetapi kami yakin bahwa kami dapat mengurangi jumlah lapisan. Kami dengan cepat menyadari bahwa di sisi belakang papan Anda pasti harus menempatkan komponen, karena pada telepon beberapa modul terletak di sisi "belakang" papan (sisi tampilan), termasuk konektor display, sensor proximity / cahaya, LED yang dapat diprogram, speaker dan mikrofon. Kehadiran komponen di kedua sisi membuat proses tata letak sedikit lebih mudah, karena membebaskan sedikit ruang di mana Anda dapat menempatkan memori flash SPI NOR, pembaca kartu, RTC, 2.8V LDO, berbagai IC dan komponen lainnya. Adapun jumlah lapisan, kami memutuskan untuk menguranginya menjadi enam. Kami memutuskan untuk menambahkan dua lapisan tambahan hanya jika kami buntu dan tidak dapat memasang rantai apa pun. Untungnya, ini tidak terjadi dan ada desain enam lapis.

Kami memutuskan untuk menggunakan tata letak umum yang memberikan keseimbangan optimal antara kemudahan pemasangan kabel dan mengurangi emisi yang tidak disengaja. Sebagai substrat dielektrik, kami menggunakan laminasi foil tembaga NP-180TL dari NAN YA, yang memiliki permitivitas relatif sekitar 4,11 pada frekuensi operasi rata-rata sekitar 1,7 GHz. Perhitungan kami dari jalur umpan RF untuk jalur feed papan gelombang mikro (CPW) microstrip dan coplanar menggunakan pengaturan ini dapat ditemukan di repositori Git.


Fig. 8: Layout dari layer devkit

Sebelum menerapkan devkit di KiCad, kami tidak tahu apakah akan merilis versi alpha atau tetap menggunakan rilis klasik yang lebih stabil seperti 4.0.7. Meskipun "nightly builds" memiliki beberapa fitur yang bermanfaat, kami masih memutuskan untuk tetap merilis rilis stabil sehingga kami tidak perlu memperbarui KiCad sesering mungkin dan berisiko munculnya beberapa versi simultan.

Ketika kami mulai bekerja, KiCad versi 5.0.0 dirilis! Pada 16 Juli, kami meningkatkan proyek ke KiCad 5.0.0 (khususnya, 4f70b865 dan a4e3de8a berkomitmen) tanpa masalah. Untungnya, pembaruan ini bertepatan dengan transisi sebagian besar komponen pasif kami dari 0603 ke 0402, karena bantalan baru di KiCad sedikit berbeda dari nilai default lama, dan bantalan memiliki sudut bulat yang lebih efektif untuk solder bebas timbal.

Setelah memperbarui ke 5.0.0, kami fokus pada pembuatan prototipe - dan dalam waktu satu bulan (yaitu, 14 Agustus dengan komit 9b4dd2e0) membuat jumlah sirkuit yang tidak diencerkan menjadi nol.


Fig. 9: 14 Agustus kandidat pelepasan dengan 9b4dd2e0 komit mencatat jumlah nol sirkuit murni

Setelah menyelesaikan tata letak dan memeriksa Pemeriksaan Aturan Desain (DRC), kami membersihkan tata letak selama seminggu.

Saat membuat prototipe papan, sumber daya yang paling berguna adalah panduan referensi untuk membuat prototipe sirkuit terpadu dari dokumentasi resmi dan panduan prototipe Toradex .


Fig. 10. Tata letak akhir (area berlapis tembaga tersembunyi)

Ekspor file dan kirim ke produksi


Setelah tata letak selesai, perlu untuk mengekspor semua file yang diperlukan untuk produksi dan perakitan papan. Mengekspor file Gerber ke KiCad cukup sederhana. Namun, kontraktor meminta skema dan tata letak lain untuk perakitan, yang membutuhkan upaya.

Untuk mengekspor file pratinjau, kami biasanya menggunakan Gerbv dari gEDA. Beginilah bentuk devkit kami di Gerblook - alat ini menggunakan Gerbv dan ImageMagick untuk rendering web.


Fig. 11. File devkit Gerber bila dilihat di Gerbv

Untuk membuat gambar dari tipe yang diinginkan, kami menggunakan layer F.Fab / B.Fab. Mereka menampilkan lokasi, kontur, polaritas, dan simbol referensi dari semua komponen di papan tulis. Menggunakan lapisan F / B.Fab untuk setiap situs, kami dapat membuat gambar terakhir dengan mencetak F.Fab dan B.Fab ke dalam file PDF yang terpisah, dan kemudian menggabungkannya ke dalam satu dokumen.


Fig. 12. Skema dari SOM

Lebih banyak lagi yang harus mengerjakan skema untuk produksi. Untuk melakukan ini, Anda harus mengekspor catatan dari lapisan Cmts.User bersama dengan papan sirkuit sebagai satu arsip DXF, dan kemudian mengekspor semua tanda untuk lubang pengeboran sebagai arsip DXF lainnya. Setelah membuat dua file ini, mereka digabungkan dalam gambar seluruh situs (tapak). Setelah menerima "jejak" khusus ini, yang menggabungkan dua file DXF, kami menyembunyikan hampir semua hal dalam tata letak - dan mengimpor jejak khusus ini "untuk pabrik" (tanpa menyimpan tata letak sementara). Saat ini, semua yang Anda butuhkan ada di layer Dwgs.User; oleh karena itu, Anda dapat mencetaknya bersama dengan bingkai di PDF akhir untuk produksi.


Fig. 13. Tag untuk lubang pengeboran

Bersama dengan semua file dan dokumen ini, daftar koneksi IPC-D-356 digunakan, dimana pabrik dapat melakukan pengujian menggunakan metode "probe terbang" dan memverifikasi bahwa tidak ada hubungan pendek atau hubungan terbuka. Kami juga menyiapkan file CSV (sehingga pabrik tahu di mana harus menempatkan dan bagaimana mengarahkan semua komponen), dan, akhirnya, file GenCAD yang diedit secara manual (untuk pemrograman robot penyolderan pabrik).

Pengujian prototipe


Kami mengirim file akhir untuk produksi, menjawab semua pertanyaan kontraktor dan mengubah semua yang mereka tanyakan. File-file itu dikirim sekitar akhir Agustus - dan kami menantikan ketika desain kami mencapai jalur perakitan di Shenzhen. Sayangnya, seperti yang kami katakan di blog , keterlambatan yang signifikan dalam produksi prototipe terjadi karena keadaan yang tidak terduga, seperti cuaca buruk dan Golden Week [hari libur nasional di Cina - sekitar. trans.]. Karena keterlambatan ini, kami memutuskan untuk memesan produksi prototipe di pabrik domestik, yang memberi kami papan dua minggu lebih cepat daripada Cina.


Fig. 14. Panel prototipe devkita v0.1.2 (sebelum perakitan)

Setelah merakit sejumlah kecil prototipe, mereka dengan cepat dikirim ke teknisi kami untuk debugging dan pengembangan perangkat lunak. Untungnya, berkat diskusi publik dan analisis desain yang komprehensif, ada sangat sedikit kesalahan pada perangkat keras (tiga penyesuaian yang relatif kecil pada tata letak / daftar sirkuit dan satu perbaikan mekanis). Selama dua bulan berikutnya, prototipe digunakan untuk memoles perangkat lunak.

Produksi dan pengiriman akhir


Sekitar awal dan pertengahan November, setelah melakukan sedikit penyesuaian pada desain dan memeriksa hampir semua subsistem perangkat keras, kami mengekspor kembali dan merilis kembali file untuk produksi dan perakitan akhir. Beberapa karyawan kami menghabiskan 10-22 Desember, membantu perakitan, pengujian, pengemasan, dan pengiriman devkits ke tukang roti kami (banyak dikirim sebelum Natal!)


Fig. 15. Tampilan akhir panel devkit v1.0.0 (sebelum perakitan)



Fig. 16. Devkit yang telah dirakit sepenuhnya dibandingkan dengan model 3D (sisi tampilan)




Fig. 17. Devkit yang telah dirakit sepenuhnya dibandingkan dengan model 3D (sisi SOM)

Seluruh proses membutuhkan banyak usaha, tetapi tidak sia-sia. Terutama ketika kami melihat betapa berbuahnya masyarakat dapat menggunakan hasil pekerjaan kami. Beberapa sudah mulai mengembangkan kasus cetak 3D untuk devkita. Saya ingin sekali melihat perangkat lunak apa dan kasus penggunaan apa yang akan Anda buat untuk papan yang luar biasa ini! Jangan ragu untuk melaporkan semua hal keren melalui email di feedback@puri.sm . Jika benar-benar super, kami akan membicarakan perkembangan Anda di posting blog mendatang.

Sekarang kami selalu mengeluarkan biaya untuk mengirimkan ponsel Librem 5. Jadi sampai lain kali, jangan kehilangan daya cipta Anda!

Source: https://habr.com/ru/post/id436022/


All Articles