Tek kişilik bir kadın donanım şirketinin teknoloji yığını
(blog.thea.codes)-
Açık kaynak synthesizer şirketi Winterbloom'u işleten bir mühendisin kullandığı teknoloji ve araçların açıklaması
-
En yeni olanın peşinden koşmak yerine, iyi anladığı araç ve teknolojilerle hedefine ulaşıyor
"Lateral thinking with withered technology"
→ (yeni teknoloji yerine) artık eskimiş teknolojiyi kullanıp eğlenceye odaklanarak bambaşka bir şey yaratabileceğini söyleyen yanal düşünce
→ Modern Nintendo'nun teknoloji geliştirme felsefesini şekillendiren "Yokoi Gunpei"nin sözü: Nintendo'nun taşınabilir oyun konsolu (Game Boy) ve VR oyunlarını yaratan kişi
- Mikrodenetleyiciler: Odaklanılacak 2-3 ürün seçiliyor
→ Microchip SAM D21, D51, D11
→ Üçü de USB, esnek SERCOM, çok kanallı 12-bit ADC, gelişmiş zamanlayıcılar vb. destekliyor
→ Ayrıca RP2040 (analog I/O gerekmediğinde) ve STM32H7 (firmware içinde ses üretilmesi gerektiğinde) değerlendiriliyor
- Donanım tasarımı: Açık kaynak elektronik tasarım otomasyon aracı KiCAD kullanılıyor
→ Kullanılan parçalara ait ortak sembol, footprint ve 3D model içeren KiCad kütüphaneleri GitHub'da paylaşılıyor
→ Tercih edilen ana parça listesi bir Notion sayfasında açık olarak yayınlanıyor (açıklama, parça numarası, datasheet, üretici, satın alma bağlantısı, kullanım amacı)
-
Firmware: dil, kütüphaneler, build sistemi, test framework'ü vb. (aşağıda tek tek)
-
C dili, GCC, CMSIS
→ Eski ama alışıldık olduğu için C dili kullanılıyor
→ Keil/IAR gibi ücretli derleyiciler de var ama açık kaynak GCC ARM Embedded Toolchain kullanılıyor
→ Microchip'in sunduğu HAL yönetmesi fazla zor olduğu için CMSIS kütüphanesi doğrudan kullanılıyor ve üzerine küçük bir soyutlama yazılıyor
CMSIS, ARM'ın sunduğu üreticiden bağımsız bir donanım soyutlama katmanı
- Firmware kütüphaneleri
→ TinyUSB: mükemmel ve küçük bir USB kütüphanesi
→ Marco Paland's Printf: mikrodenetleyiciler için optimize edilmiş bir printf implementasyonu
→ libfixmath: sabit noktalı işlem için küçük bir kütüphane (sabit nokta birimi olmayan mikrodenetleyicilerde faydalı)
→ µnit: çok küçük ve kullanışlı bir test framework'ü
- Build sistemi
→ Python ve Ninja ile build alınıyor
→ Makefile ile başlanmış ama zamanla kullanması zorlaştığı için değiştirilmiş
- Python tabanlı tooling
→ wintertools adlı repo içinde merkezi olarak yönetiliyor
→ Firmware/donanım ile ilgili build/test işlerini kolaylaştıran script koleksiyonu
- CircuitPython
→ Bazı ürünlerde özel firmware yerine mikrodenetleyici eğitimi için kullanılan CircuitPython tercih ediliyor
→ Müşterilerin özelleştirme yapmasını kolaylaştırıyor
→ Firmware/yazılım geliştirmeyi daha kolay hale getiriyor
→ Adafruit'in yönettiği harika bir topluluğu var
- Dokümantasyon & kullanıcı kılavuzları
→ Markdown ile yazılıyor. MkDocs ile statik web sayfasına dönüştürülüp GitHub Pages'te barındırılıyor
→ Bulma CSS framework'ü kullanılıyor
→ Basit tutmak için Sass/LESS vb. kullanılmıyor
- JavaScript
→ Fazla karmaşık olan Node.js ekosisteminden özellikle kaçınılmış
→ Düz JavaScript ile modüller, sınıflar, arrow function'lar, Canvas, WebMIDI, TypedArray vb. kullanılıyor
→ Gelecekte Deno'ya umut bağlanıyor
2 yorum
Harika..bunu tek başına yapması gerçekten inanılmaz..
Yukarıdaki yazı ve başlık benzer olsa da, bu bir donanım girişimi olduğu için konu tamamen farklı; bu yüzden ilgiyle okudum.