16 puan yazan xguru 2021-05-31 | 2 yorum | WhatsApp'ta paylaş
  • 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

 
daumkakao 2023-04-12

Harika..bunu tek başına yapması gerçekten inanılmaz..

 
xguru 2021-05-31

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.