Tech stack perusahaan hardware perempuan satu orang
(blog.thea.codes)-
Penjelasan tentang teknologi dan alat yang digunakan oleh seorang engineer yang menjalankan perusahaan synthesizer open source Winterbloom
-
Tidak mengejar hal paling mutakhir, melainkan mencapai tujuan dengan alat dan teknologi yang benar-benar dipahami dengan baik
"Lateral thinking with withered technology"
→ Pemikiran lateral bahwa dengan memanfaatkan teknologi yang sudah layu, bukan teknologi baru, dan berfokus pada kesenangan, kita bisa menciptakan sesuatu yang benar-benar baru
→ Ucapan dari "Yokoi Gunpei", sosok yang membentuk filosofi pengembangan teknologi Nintendo modern: orang yang menciptakan konsol game portabel Nintendo (Game Boy) dan game VR
- Mikrokontroler: memilih 2-3 produk untuk dijadikan fokus
→ Microchip SAM D21, D51, D11
→ Ketiganya mendukung USB, SERCOM yang fleksibel, ADC 12-bit multi-channel, timer tingkat lanjut, dan lain-lain
→ Selain itu juga mempertimbangkan RP2040 (saat analog I/O tidak dibutuhkan) dan STM32H7 (saat perlu menghasilkan suara di dalam firmware)
- Desain hardware: menggunakan KiCAD, alat open source untuk otomasi desain elektronik
→ Library KiCad berisi simbol umum, footprint, dan model 3D untuk komponen yang digunakan dibagikan lewat GitHub
→ Daftar komponen utama yang disukai juga dipublikasikan di halaman Notion (deskripsi, nomor komponen, datasheet, produsen, link pembelian, kegunaan)
-
Firmware: bahasa, library, build system, testing framework, dan lain-lain (masing-masing dijelaskan di bawah)
-
Bahasa C, GCC, CMSIS
→ Menggunakan bahasa C yang lama tetapi sudah akrab
→ Ada juga compiler berbayar seperti Keil/IAR, tetapi menggunakan GCC ARM Embedded Toolchain yang open source
→ HAL yang disediakan Microchip terlalu sulit ditangani, jadi langsung memakai library CMSIS dan menulis abstraksi kecil di atasnya
CMSIS adalah hardware abstraction layer independen vendor yang disediakan oleh ARM
- Library firmware
→ TinyUSB: library USB yang kecil dan sangat baik
→ Marco Paland's Printf: implementasi printf yang dioptimalkan untuk mikrokontroler
→ libfixmath: library kecil untuk operasi fixed-point (berguna untuk mikrokontroler yang tidak punya unit fixed-point)
→ µnit: testing framework yang sangat kecil dan berguna
- Build system
→ Build menggunakan Python dan Ninja
→ Awalnya dimulai dengan Makefile, tetapi makin lama makin sulit digunakan sehingga diganti
- Tooling berbasis Python
→ Dikelola secara terintegrasi di repo bernama wintertools
→ Kumpulan skrip yang membantu build/test terkait firmware/hardware
- CircuitPython
→ Beberapa produk tidak memakai firmware kustom, melainkan menggunakan CircuitPython yang dipakai untuk edukasi mikrokontroler
→ Memudahkan pelanggan untuk melakukan kustomisasi
→ Membuat pengembangan firmware/software menjadi lebih mudah
→ Ada komunitas hebat yang dikelola oleh Adafruit
- Dokumentasi & panduan pengguna
→ Ditulis dalam Markdown. Dibangun menjadi halaman web statis dengan MkDocs lalu di-host di GitHub Pages
→ Menggunakan framework CSS Bulma
→ Demi kesederhanaan, tidak memakai Sass/LESS dan sejenisnya
- JavaScript
→ Sengaja menghindari ekosistem Node.js yang terlalu rumit
→ Menggunakan JavaScript biasa beserta module, class, arrow function, Canvas, WebMIDI, TypedArray, dan lain-lain
→ Menaruh harapan pada Deno di masa depan
2 komentar
Keren.. bisa melakukan semua itu sendirian..
Tulisan dan judulnya mirip dengan artikel di atas, tetapi karena ini startup hardware, ceritanya jadi sama sekali berbeda dan menarik untuk dibaca.