
Bagaimana kontrak pembuatan elektronik di Amerika Serikat diatur?
Apakah mungkin untuk memanfaatkan crowdfunding?
Perangkat lunak yang membunuh perangkat keras. Mitos atau kenyataan?
Apakah proyek open-source memiliki kehidupan?
Semua ini di bagian akhir cerita detektif tentang pengembangan Pastilda, manajer perangkat keras kata sandi open-source.
Apa lagi Pastilda?Pastilda adalah pengelola kata sandi perangkat keras sumber terbuka. Perangkat ini memungkinkan Anda untuk menyimpan dan memasukkan kata sandi tanpa menggunakan perangkat lunak (termasuk pada baris perintah dan BIOS'e). Basis data dibuat menggunakan
KeePass dan diunduh ke perangkat dalam format .kbdx. Perangkat terhubung ke keyboard komputer dan menyala ketika Anda memasukkan kombinasi "Ctrl + Shift + ~". Itulah sebabnya proyek ini disebut "Pastilda" (dari kata sandi + tilda "~").
Untuk informasi lebih lanjut tentang ide dan implementasi teknis, lihat
Pastilda, manajer kata sandi perangkat keras terbuka .
Setelah pengembangan dan produksi batch eksperimental, kami mencoba mencari pelanggan dan pembeli di Rusia, tetapi tidak mendapatkan diskusi lebih lanjut. Kemudian kami memutuskan untuk mengumpulkan dana melalui crowdfunding dan menetap di platform
Crowd Supply , yang berspesialisasi dalam proyek perangkat keras sumber terbuka. Kami menetapkan tujuan dan, sebagai hasilnya, melampaui hampir tiga kali lipat. Bagaimana itu terjadi? Baca
Pastilda: Niche CrowdfundingTetap memproduksi dan mengirimkan perangkat ke investor.
Mulai produksi
Pada saat peluncuran batch pertama, kami memiliki aplikasi untuk 182 Pastild dari 149 investor. Pesanan berasal dari seluruh dunia:

Statistik negara saat ini:- AS: 143 pcs.
- Jerman: 64 pcs.
- Australia: 14 pcs.
- Prancis: 14 buah.
- Rusia: 14 pcs.
- Kanada: 13 pcs.
- Swiss: 13 buah.
- Inggris Raya: 13 buah.
- Belanda: 9 pcs.
- Spanyol: 8 pcs.
- Austria: 5 pcs.
- Denmark: 5 pcs.
- Singapura: 4 pcs.
- Cina: 3 pcs.
- Israel: 3 pcs.
- Belgia: 2 pcs.
- Finlandia: 2 pcs.
- Irlandia: 2 pcs.
- Italia: 2 pcs.
- Jepang: 2 pcs.
- Kolombia: 1 pc.
- Republik Ceko: 1 pc.
- Korea: 1 pc
- Makedonia: 1 pc.
- Malaysia: 1 pc.
- Selandia Baru: 1 pc.
- Norwegia: 1 pc.
- Romania: 1 pc.
- Slovenia: 1 pc.
- Afrika Selatan: 1 pc.
- Vietnam: 1 pc.
Menariknya, meskipun artikel kami dalam bahasa Rusia, hanya ada 14 pesanan dari Rusia. Kami memesan 324 Pastild untuk produksi, untuk jumlah seperti itu ada cukup dana yang terkumpul.
Karena spesifikasi perangkat ini, kami mengambil keuntungan dari saran Crowd Supply dan menempatkan produksi di AS di pabrik
Macrofab . Sedikit tentang bagaimana semuanya diatur di sana. Kami pergi ke situs dan membuat pesanan. Kami memuat
ODB ++ , di dalamnya ada segala sesuatu tentang perangkat kami: lapisan papan, daftar komponen (Bill of material atau BOM), pengaturannya, dll. Selanjutnya, Anda perlu membandingkan BOM Anda dengan komponen yang tersedia di gudang, dan juga mengkonfirmasi lokasi komponen yang benar di bagian atas dan bawah papan.

Setelah itu, kami mendapatkan biaya dan waktu produksi untuk semua pihak. Harga biaya dijelaskan secara rinci: berapa banyak biaya tenaga kerja, berapa banyak komponen, berapa banyak papan sirkuit cetak, dll.:

Grafik juga sedang dibuat yang menjelaskan penurunan biaya ketika bets tumbuh:

Pabrik ini diambil tidak hanya untuk perakitan, tetapi juga untuk perangkat pengujian. Untuk melakukan ini, Anda perlu mengecat metodologi pengujian dan firmware di bagian khusus. Biaya firmware adalah sekitar $ 1 per menit.
Produksi batch 324 buah membutuhkan waktu sekitar 8 minggu. 10% dari board tidak lulus pengujian dengan diagnosis yang tidak jelas dari "bootloader yang tidak berfungsi dengan baik". Komunikasi sangat lambat, kerugiannya dapat diabaikan, jadi kami mengabaikan masalah ini dan menghapus 10% ini untuk memo. Ingat momen ini. Biaya kerja dikirim ke investor, tidak ada keluhan yang diterima.
Penjualan terus berlanjut, Pastilda kami bahkan muncul di
Mouser dengan margin sengit $ 125. Ketika papan dijual, kami memutuskan untuk meluncurkan batch kecil lain dari 55 perangkat. Kali ini, produksinya memakan waktu sekitar 7 minggu, dan pengujian dilakukan oleh staf Crowd Supply.
Berikut adalah bagan yang menjelaskan kronologi pesanan, pengiriman, dan produksi Pastild:

Produksi ditunjukkan oleh tanda hubung bersyarat.
Ada yang salah
Setelah beberapa waktu, kami mengetahui bahwa beberapa partai baru memiliki masalah. 10 Pastild lulus ujian, dan 45 sisanya tidak. Perangkat berkedip sesuai kebutuhan, LED berkedip, tetapi keyboard yang terhubung tidak berfungsi. Masalah di pabrik? Tangan seorang penguji yang bengkok? Selama beberapa bulan kami mencoba menyelesaikan masalah dari jarak jauh. Setelah tidak mencapai kesuksesan, kami meminta kami mengirimkan beberapa karya untuk penelitian. Kami mendapat sampel dan menemukan: kesalahan merayap ke sirkuit. Di sini:

Pada output dari konverter linier D4: 5
TPS76333 , tegangannya sekitar 4V dan bukannya 3.3V. Kapasitas output C13 terlalu kecil. Pabrikan meminta setidaknya 4,7 mikrofarad, dan bagi kami - 1 mikrofarad. Secara teori, ini dapat menyebabkan eksitasi sumber dan peningkatan tegangan output. Setelah mengganti kapasitor dengan 10 mikrofarad, daya sepertinya kembali normal, tetapi papan tidak berfungsi dengan baik.
Saatnya untuk "membuang persen"
Ini berarti untuk menghapus mikrokontroler dari papan dan menempatkan yang baru atau diambil dari donor. Dalam hal ini, kami melempar MK dari papan dari batch pertama. Berpenghasilan.
Kesimpulan: karena kapasitas yang salah, kekuatan MK meningkat, yang membuatnya rusak. Haruskah STM32 menahan tegangan seperti itu? Dokumentasi mengatakan bahwa tegangan maksimum tanpa merusak chip adalah 4V, yaitu, kami berjalan di sekitar tepi. Tetapi mengapa masalah ini tidak muncul sebelumnya? Kami memberi tahu kolega kami di AS tentang temuan ini dan meminta untuk membandingkan tanda pengontrol dari lot yang berbeda. Tanda berbeda:

Apa yang bisa dipelajari dari penandaan? Menurut
artikel dan informasi dari deskripsi pada mikrokontroler, kita dapat mengatakan hal berikut:
Batch pertama adalah Cina, diproduksi pada minggu ke-19 tahun 2007 atau 2017. Daripada 2017, mereka hanya mulai memproduksi seri F4 pada tahun 2011. Revisi pengontrol - 2.
Batch kedua adalah Filipina, dibuat pada minggu ke 25 tahun 2017. Revisi pengontrol - Y.
Mikrokontroler revisi-Y dari Filipina tampaknya kurang tahan terhadap peningkatan gizi daripada pengontrol revisi 2 dari Cina. Kami memutuskan untuk mengirim semua perangkat kembali ke Macrofab, meminta mereka untuk melakukan penelitian dan mengubah mikrokontroler dan kapasitor di semua papan.
Macrofab memimpin penyelidikan
Di sana, seorang insinyur mengambil masalah, yang menggunakan osiloskop dan voltmeter, dan menemukan masalah kami. Inilah yang dia katakan kepada kami:
- 75% dari papan berfungsi, ini menghilangkan masalah dengan papan atau kesalahan dalam file Gerber
- Penempatan (rotasi) komponen dilakukan secara berurutan.
- Tidak ada keluhan tentang kualitas penyolderan.
- Kami mengukur tegangan suplai 3,3V dan 5V dengan multimeter, tegangannya normal.
- Kami memeriksa frekuensi clock 25 MHz.
- Sebagian besar papan membeku selama operasi. Penyebab yang mungkin adalah mikrokontroler yang rusak atau fluktuasi daya.
- Pengukuran daya 3.3V oleh osiloskop menunjukkan tegangan 4.1V saat boot di semua papan. Tampaknya regulator tidak mampu mempertahankan tegangan suplai.
- Mungkin beberapa pengontrol tahan terhadap peningkatan nutrisi, dan beberapa tidak.
- Pada output regulator, menurut Lembar Data, harus ada minimum 4,7 ฮผF. Dilihat oleh skema, kapasitansi pada output D4 TPS76333 tidak cukup, C13 ditetapkan sebagai 1 ฮผF. Kami mengganti kapasitor dengan 10 ฮผF dan melihat bagaimana ini mempengaruhi stabilitas
- Mengganti kapasitor membuat papan non-operasional beroperasi untuk sementara waktu, lalu jatuh lagi.
- Tegangan suplai terlihat lebih ribut dari yang diperkirakan. Kami merekomendasikan pemecahan masalah ini sebelum produksi berikutnya.
Masalahnya sudah dikonfirmasi, kemungkinan besar kita berurusan dengan kesalahan desain. Tidak ada pertanyaan tentang produksi, mereka tidak dapat membantu. Biaya dikembalikan ke persediaan Crowd, dan dari sana mereka dikirim ke kami.
Investigasi dilakukan oleh pin ketiga
Akhirnya, kami memiliki 41 papan di tangan kami. Baiklah, kita akan memperbaikinya sekarang! Hal pertama pada semua papan adalah menyolder kapasitansi C13 menjadi 10 uF. Kami mulai menguji semua papan secara bergantian. Kami mendapat berbagai perilaku papan:
- itu dimulai, tetapi hang setelah beberapa saat, keyboard tidak mendeteksi
- tidak memulai sama sekali, tidak ada tanda-tanda kehidupan
- ketika dihidupkan, itu mulai berkedip cepat
- Menyala, berkedip, hang, mikrokontroler memanas
Tidak ada papan kerja. Kami mengukur catu daya 3.3V dari MK, dan di sana - 4 volt! Kami tiba-tiba menyadari bahwa mengganti kapasitor pada sumbernya tidak menyelesaikan masalah peningkatan tegangan. Kami melihat osiloskop, mempelajari konsumsi saat ini, mengubah sumber ke LM1117-3.3,

lepaskan filter untuk daya dan arde, tetapi tidak ada yang berubah - daya masih melompat ke 4V.

Setelah dinyalakan selama beberapa waktu, tegangannya normal, tidak ada gangguan, tidak ada penumpukan tegangan, dan kemudian tiba-tiba berubah menjadi 4V dan bertahan begitu lama.
Perilaku daya abnormal terdeteksi pada power-up: daya dimodulasi oleh pulsa ~ 100 ms. Ada hipotesis: sumber listrik tidak ada hubungannya dengan itu, mikrokontroler itu sendiri entah bagaimana merusak bus listrik. Mungkin 5V dari port USB โmengalirโ ke mikrokontroler melalui kaki VBUS. Dalam firmware Pastilda, bagian ini tidak diinisialisasi dengan cara apa pun. Kami mencoba memaksakan inisialisasi kaki di pintu masuk:

Kami berada di jalur yang benar! Daya normal, meskipun tidak segera - setelah itu, bootloader pertama kali bekerja untuk kita. Kami pergi ke sana.
Pemuat
OpenBLT yang digunakan secara default menginisialisasi USART1, yang melintasi kaki VBUS. Dan ini Tx, yaitu, kaki adalah jalan keluar. Keluaran dari mana daya eksternal secara langsung berasal dari port USB. Kami melihat ke dalam bootloader, menghapus inisialisasi USART1 - daya menjadi normal. Ini kemenangan!
Untuk mikrokontroler STM32 dengan catu daya 3.3V, beberapa kaki tahan terhadap sinyal TTL 5V, dalam uraian mereka disebut FT (Toleran Lima volt). Mari menyegarkan memori kaki FT ini:
- Properti ini hanya berlaku untuk kaki jika dikonfigurasi sebagai input.
- Tegangan maksimum pada kaki adalah 5.5V.
- Tegangan pada kaki tidak dapat melebihi catu daya terendah dari MK lebih dari 3.6V.
Berikut adalah diagram struktural "kaki":

Mengapa kaki tidak bisa disetel ke output menjadi FT?Dapat dilihat bahwa buffer Output berisi dua
transistor efek medan , lengan atas adalah saluran-P dan yang lebih rendah adalah saluran-N. Meskipun transistor dalam diagram blok di atas ditampilkan tanpa counter diode, Anda dapat yakin bahwa mereka ada di sana. Faktanya, transistor terlihat seperti ini:

Jika tegangan pada transistor saluran-D melebihi tegangan pada Sumber (Sumber), arus akan mengalir melalui dioda ini sampai tegangannya menyamakan.
Kasus kami
menyalakan MK melalui LDO dari USB dianggap secara terpisah di
AN4899 . Daya 5V harus sampai pada kaki VBus hanya ketika mikrokontroler telah diaktifkan. Kami melakukannya seperti ini:

Apa yang akhirnya menyebabkan masalah produksi?- Program mikrokontroler menyetel kaki terhadap dirinya sendiri.
- Karena itu, daya bertambah dan pengontrol rusak.
- Kesalahan perangkat keras tidak muncul dengan sendirinya.
Sekarang kita tahu berapa banyak kesalahan yang bisa dibuat di papan dengan tiga konektor dan mikrokontroler (sebanyak yang Anda suka).
Kami memiliki tiga di antaranya: dua perangkat keras dan satu perangkat lunak. Kami membutuhkan waktu satu tahun untuk mencari tahu penyebab sebenarnya dari masalah "produksi".
Ekonomi
Mari kita lihat berapa banyak yang kita dapatkan dari proyek ini.
Pendapatan melalui Pasokan Massal - $ 14.610. Begini cara pengeluaran dibagikan:

Sebagian besar produksi papan sirkuit cetak yang diharapkan. Segala sesuatu yang lain: komisi situs, biaya transfer uang, pengiriman dan perakitan barang dalam jumlah 24%. Platform mengambil 10% dari komisi untuk semua pembayaran. Kami membebankan semua biaya kepada orang-orang dari situs ini, sehingga uang itu tidak pernah masuk ke akun kami.
Dalam artikel terakhir, kami mengungkapkan kompleksitas pembangunan - sekitar 1.840 jam. Bayangkan proyek ini dilakukan dengan harga komersial. Maka biaya pengembangan dapat diperkirakan sekitar $ 100.000.
Untuk menutup kembali pengembangan, kita perlu menjual sekitar 3.000 Pastild.
Kesimpulan
Proyek-proyek seperti Pastilda lahir di hati pengembang dan dilaksanakan bertentangan dengan akal sehat.
Pendekatan ini bekerja dengan proyek hobi, di mana tujuan utamanya adalah untuk mencoba hal-hal baru. Tetapi ketika kita didekati dengan proyek komersial, hal pertama yang kita lakukan adalah melakukan analisis efisiensi ekonomi. Jika ekonomi tidak bertemu, kami mencegah peluncuran proyek, mulai dari tahap pengembangan ToR. Kami bahkan punya ide artikel baru. Sesuatu seperti "10 alasan mengapa Anda TIDAK perlu mengembangkan perangkat Anda." Topik hangat?
Apa selanjutnya
Kesimpulan utama yang kami buat selama mengerjakan proyek ini: dalam versi saat ini, Pastilda hanya cocok untuk penggunaan pribadi. Jika kita ingin perangkat menyelesaikan masalah di tingkat bisnis - satu perangkat saja tidak cukup, kita perlu membangun sebuah sistem.
Ada beberapa ide berikut:
- Gabungkan penyimpanan kata sandi fisik dan server (atau cloud). Secara kondisional, pisahkan kata sandi menjadi dua bagian. Bagian pertama akan disimpan pada kunci fisik (seperti yang sekarang diterapkan), yang kedua pada saat memasukkan kata sandi diminta dari server dan dikirimkan ke kunci, misalnya melalui Wi-Fi.
- Mirip dengan opsi pertama, tetapi bukan kata sandi yang disimpan pada kunci, tetapi kunci enkripsi pribadi yang akan mendekripsi kata sandi yang berasal dari server melalui Wi-Fi (kata sandi dienkripsi terlebih dahulu dengan kunci yang berbeda).
Kami menerima umpan balik dari kolega dari industri keamanan informasi.
Iklan untuk pengguna
Penting untuk memperbarui bootloader Pastilda untuk menghindari kerusakan pada MK. Bootloader yang diperbarui ada di dalam
repositori . Ada juga instruksi tentang cara mem-flash-nya di Pastilda. Menyolder kapasitor untuk operasi yang stabil dimungkinkan, tetapi tidak perlu.
Sekali lagi, kami mohon maaf atas keterlambatan pembeli yang masih menunggu Pastild mereka. Semua 40 Pastild yang tersisa akan terbang kepada Anda dalam beberapa minggu mendatang.
Inisialisasi pin dengan bijak, rawat output dari usia muda. Dan tentu saja, gunakan kata sandi yang kompleks.