28 puan yazan GN⁺ 2025-09-16 | 6 yorum | WhatsApp'ta paylaş
  • Tek kullanımlık elektronik sigara içine gömülü düşük performanslı ARM Cortex-M0+ mikrodenetleyici kullanılarak bir web sunucusu çalıştırılan deneysel bir proje
  • 24KiB flash ve 3KiB RAM'e sahip PUYA'nın PY32F002B çipi analiz edilerek SLIP yöntemiyle ağ bağlantısı kuruldu
  • Semihosting, SLIP protokolü ve uIP TCP/IP yığını kullanılarak sanal tty üzerinden TCP/IP iletişimi ve HTTP sunucusu işlevi port edildi
  • Başta çok yavaştı, ancak buffer optimizasyonu ve veri işleme iyileştirmeleriyle tepki süresi ve sayfa yükleme hızı büyük ölçüde artırıldı
  • Düşük kapasiteli bellek ortamında bile dinamik sunucu kodu çalıştırma ve API endpoint'leri sağlama başarıldı
  • Kod yayımlanmış durumda; pratikte barındırma mümkün olsa da bellek gibi kaynak kısıtları büyük

Giriş

  • Bu yazının, doğrudan tek kullanımlık elektronik sigara üzerinde çalışan web sunucusundan servis edilmediğini; aynı içeriğin ayrı bir sunucuda sunulduğunu en başta belirtelim
  • Gerçek çalışma örneği http://ewaste.fka.wtf/ adresinde görülebilir

Arka plan

  • Son birkaç yıldır bataryaları yeniden kullanmak amacıyla tanıdıklardan tek kullanımlık elektronik sigara toplandı
  • Son dönemde tek kullanımlık elektronik sigara cihazlarının giderek gelişip USB-C ve yeniden şarj edilebilir batarya ile gelmeye başlaması dikkat çekti
  • Söküm sırasında PUYA adlı, flash çip entegreli ARM Cortex-M0+ mikrodenetleyici bulundu; bu çip düşük maliyetli mikrodenetleyici olarak iyi biliniyor
  • Bu mikrodenetleyiciler farklı modellerden toplandı ve üzerlerinde debug pin etiketleri bulunduğu için analiz kolaylaştı

Kullanılan donanım

  • Çip üzerindeki işaretleme PUYA C642F15 idi, ancak gerçekte PY32F002B ailesinden olduğu tahmin ediliyor
  • Başlıca özellikler:
    • 24MHz Cortex-M0+ çekirdek
    • 24KiB flash
    • 3KiB RAM
    • Çeşitli çevre birimleri mevcut, ancak bu projede kullanılmadı
  • Genel bir akıllı telefona kıyasla zayıf olsa da gömülü ortamda basit bir web sunucusu kurmak fazlasıyla mümkün

Ağ bağlantısı

  • Fikir tamamen yeni değildi, ancak semihosting kavramı denenirken web sunucusu çalıştırma fikri ortaya çıktı
  • Semihosting, gömülü ARM üzerinde syscall benzetimi yapmanın bir yolu
    • Register'lara değer/işaretçi konup breakpoint çağrıldığında debugger bunu yorumlayıp işlemi gerçekleştiriyor
    • Genelde log aktarmak için kullanılsa da çift yönlü veri iletişimi de mümkün
  • USB seri aygıtları SLIP (Serial Line Internet Protocol) protokolünü destekliyor; bu da ağ arayüzü olarak kullanıldı
  • Linux'ta (ve bazı macOS sürümlerinde) slattach ve socat ile sanal tty üzerinden SLIP ağı kuruldu
    pyocd gdb -S -O semihost_console_type=telnet -T $(PORT) $(PYOCDFLAGS) &  
    socat PTY,link=$(TTY),raw,echo=0 TCP:localhost:$(PORT),nodelay &  
    sudo slattach -L -p slip -s 115200 $(TTY) &  
    sudo ip addr add 192.168.190.1 peer 192.168.190.2/24 dev sl0  
    sudo ip link set mtu 1500 up dev sl0  
    
  • TCP/IP yığını olarak uIP seçildi; çok küçük, RTOS gerektirmiyor ve port etmesi kolay
  • uIP örneklerindeki HTTP sunucusu kullanıldı, SLIP kodu semihosting yaklaşımına uyarlanarak web sunucusunun başarıyla ayağa kalkması sağlandı
  • ARM mimarisinde 16 bit hizalama sorunu olduğundan filesystem oluşturma betiği değiştirildi ve Perl ile dönüştürme işlemi yapıldı

Hız optimizasyonu

  • İlk durumda ping 1,5 saniye, %50 paket kaybı, sayfa yükleme süresi ise 20 saniyenin üzerindeydi; yani yanıt hızı son derece düşüktü
  • Bunun nedeni bayt düzeyinde giriş/çıkış işlemlerinin yüksek ek yük oluşturmasıydı
  • 3KiB RAM aktif biçimde kullanılarak ring buffer eklendi ve SLIP işlevlerine veriyi toplu verme yapısına geçildi
  • Yazma işlemleri de paketler hâlinde bölünerek aktarıldı ve hızlı temizleme sağlandı
  • Optimizasyon sonucunda 20ms ping, kayıpsız iletişim ve 160ms sayfa yükleme elde edildi
  • Toplam RAM ve flash kullanımı:
    • Flash: 24KB'nin 5,116B'si (%20,82)
    • RAM: 3KB'nin 1,380B'si (%44,92)
  • Tüm blog içeriğini de rahatça servis edebilecek kapasite mevcut ve sunucu tarafında C kodu çalıştırmak da mümkün

Diğer işlevler ve kapanış

  • API endpoint'leri doğrudan uygulandı; ana sayfa istek sayısı ve mikrodenetleyicinin benzersiz ID'si döndürülebiliyor
  • Son derece düşük özellikli donanım ve asgari bellekle dinamik web sunucusu ve API bile gerçekleştirilebildiğini gösteren deneysel bir çalışma

Referans

6 yorum

 
thinkpad 2025-09-16

Projeyi ve yazıyı büyük bir keyifle takip ettim. Ancak tek kullanımlık elektronik sigara diye bir şey olduğunu öğrenince çok şaşırdım ve bunun doğru olmadığını düşündüm.

 
slowmo 2025-09-22

Ben de sigara içmeyen biri olduğum için bilmiyordum ama kısa süre önce mahallede açılan insansız bir kafede tek kullanımlık elektronik sigara otomatı olduğunu görünce öğrendim. Aşağıdaki Hacker News yorumlarının yarısı da böylesine saçma bir kaynak israfıyla ilgili zaten. haha

 
slowmo 2025-09-22

Yorum yazınca düşününce, insansız bir kafede otomat şeklindeyse yetişkin doğrulamasını nasıl yaptıklarını merak ediyorum. Otomatta kimlik kartı tanıma özelliği de mi var acaba..

 
preserde 2025-09-22

Sigara içmediğim için ne denmek istendiğini önce anlamamıştım ama tek kullanımlık olmasına rağmen fazlasıyla çok kaynak kullanıldığını söylüyormuşsunuz.

 
unknowncyder 2025-09-16

Elektronik sigara içerken bir yerde unutmuş ya da seyahatteyseniz...
Bir tane daha cihaz almak ya da normal sigara içmek pek içe sinmiyor ama nikotin ihtiyacını da gidermek istiyorsanız, insanın yolu markete düşüyor.

 
GN⁺ 2025-09-16
Hacker News görüşleri
  • Ucuz ama güçlü donanım arıyorsanız, Çin yapımı UZ801 4G LTE (Qualcomm MSM8916) dongle’a da bakmaya değer. Bu cihaz sadece yaklaşık $4~5 ama 4GB eMMC, 512MB RAM, gerçek bir 4G modem (bazen çift SIM geçiş desteğiyle) gibi etkileyici donanımlar sunuyor. Esasen eski bir Android SOC olduğu için GPU ve GPS de içeriyor. Zaten dongle desteği için epey çalışma yapılmış durumda
    Zhihe serisi LTE dongle bilgileri
    OpenStick projesi
    Bunun gibi tuhaf homelab projelerinde kullanacak bir donanım platformu arıyorsanız uygun olur

    • Yeni başlayanlar için bu rehber en iyisi gibi görünüyor. Linux kurmak için firmware bölümünü yedekleyip yeniden flash’lamak gerekiyor ki 4G modem çalışsın. Sadece 5 dolara bu kadar çok donanım alabiliyor olmak gerçekten akıl almaz. Buna bir powerbank ekleyince (veya atılmış bir elektronik sigara bataryasından kendiniz yapınca) her yerde kullanılabilecek WiFi ve 4G destekli bir Linux makinesi elde ediyorsunuz

    • Bu tür SOC’ler veya benzer ürünlerle ilgili bağlantılar lazımsa, Hackaday’de buna adanmış bir yazı ve çeşitli linkler var
      Hackaday yazısı
      AliExpress MSM8916 örneği
      Hatta üzerinde dahili ekran bulunan bir MSM8916 dongle da buldum (ama RAM bilgisi yok)

    • Qualcomm MSM8916’den söz edilmesi hoşuma gitti. Bu, eskiden tanıdığım Snapdragon 410. 2015 model Moto G3’te de bu işlemci vardı (hala ara sıra whatsapp için kullanıyorum). Android tabanında (sürüm 7), ağır işler dışında (beklenmedik şekilde) oldukça verimli çalışıyor. Böyle eski mobil yongasetlerinin hala canlı biçimde desteklenmesi etkileyici.
      Ayrıca ilginç bir not olarak, bu çip Android’de ilk 64 bit destekleyen işlemcilerden biriydi ama Motorola piyasaya sürmeden önce portlamayı yetiştiremediği için sadece 32 bit Android destekledi

    • Freedom Pop’ın dağıttığı, Linux çalıştıran LTE dongle’ı hatırlattı. Açınca UART erişimi de mümkündü

    • Benim en büyük sorunum şu
      a.) elektronik dünyası fazla hızlı evriliyor
      b.) beceri ve zaman eksikliğim yüzünden bununla havalı şeyler yapacak kapasitem yok
      Bir ara licheerv nano alıp (ör. luckfox pico, Milk-v duo’ya benzer) usb-c ses jakı olan açık kaynak bir iPod nano yapmayı düşünmüştüm.
      licheerv nano’nun MPI portuyla uyumlu 2.4 inç ya da 3 inçten küçük bir dokunmatik ekran bulamadım.
      Belki LVGL ile küçük ve taşınabilir bir ses çalar yapılabilirdi ama bana zor geldi

  • Bu tür cihazların yeniden kullanılması gerçekten harika. Bir gün bütün bir şehir bu tür cihazların birleşimiyle çalışsa, post-apokaliptik filmlerden çıkma bir sahne gibi olur diye hayal ediyorum.
    Öte yandan, bugünlerde tek kullanımlık elektronik sigaraların içinde mikrodenetleyiciyle birlikte oyunlar ve ekranlar bile bulunduğuna dair haberler var; bu da onları muazzam bir elektronik atık haline getiriyor. Katman katman saçmalık söz konusu

    • Bir başka örnek de tek kullanımlık corona test kitleri. İçlerinde mikrodenetleyici ve optik sensör var, sonucu Bluetooth ile telefonda gösteriyorlar. Önceki tartışma burada da geçmişti

    • Tek kullanımlık elektronik sigaraların içindeki tamamen yeniden kullanılabilir lityum bataryaların zaten farkındaydım. Bu bile başlı başına ciddi bir israf.
      Ama şimdi bir de mikrodenetleyici ve USB-C konnektörü içeriyorlar! O konnektör dışarıdan erişilebilir mi, yoksa paketi sökmek mi gerekiyor merak ediyorum.
      Gerçekten katman katman saçmalık. İçindeki donanımın maliyeti muhtemelen ürünün gerçek fiyatının yarısından fazladır

    • Tek kullanımlık elektronik sigaraların gerçekten bu kadar ciddi bir elektronik atık olup olmadığını merak ediyorum. Telefonlar, arabalar, dizüstüler ve attığımız daha pek çok şey de yeniden kullanılabilir donanım içeriyor ama bunlar da çoğunlukla düzgün yönetilmiyor. Hatta elektronik sigara donanımı belli bir ölçüde standartlaşırsa, Arduino gibi okul projelerinde bile kullanılabilir diye düşünüyorum

    • Böyle şeyler duyunca aklıma duskOS ve collapseOS geliyor

    • Sırf böyle ürünlerin satılabiliyor olması bile düzenlemelerin yetersiz olduğunun kanıtı

  • Eski bilgisayarlarla olan teknik özellik uyumsuzluğu ilginç. Örneğin Commodore 64, 64KB RAM’i 8 bit, 1MHz bir CPU ile kullanıyordu. Ama şimdi o RAM’in yarısından daha azına sahip tek kullanımlık bir cihaz bile 32 bit 24MHz bir CPU’ya bağlı geliyor. 1980’lerde hayal bile edilemeyecek şeyler, 2025’te bu şekilde tek kullanımlık olarak karşımıza çıkıyor. Tuhaf biçimde etkileyici

    • Aslında RAM 3KB, flash ise 24KB. Tabii flash hızı bazen eski belleklerle benzer olabilir ama gecikme kıyas kabul etmez

    • Sadece 3KB RAM var, yani eski VIC-20’den bile az

    • CPU, 1980’ler ölçütlerine göre o kadar da olağanüstü değil. 87’de Acorn Archimedes, 8MHz ARM işlemciyle gelmişti; pahalıydı ama en az 512KB RAM ile kullanılıyordu
      (Bu arada 1987’nin 38 yıl önce olduğunu fark edip afallıyorum)

  • Bu cihazların ne kadar kullanışlı olabildiğini göstermesine sevindim. Bunlara "tek kullanımlık" demek bir tür delilik. Yolda bulduğum atılmış elektronik sigaralardan LiPo batarya söküp kullandım; bunlar şarj devresi de içeren yeniden şarj edilebilir bataryalar (öyle basit bir şey değil). Bunu sadece bir kez kullanılıp atılacak şekilde tasarlamak gerçekten yanlış bir eğilim.
    Bu, aslında "tamir edilemezliğin" zirvesi. Yeniden kullanım ve yeniden şarjı engelleyecek şekilde tasarlanması, hem çevre dostuluğa hem de maker ruhuna aykırı

    • Yeniden kullanılabilir elektronik sigaralar da var ve güvenilir mağazalar yalnızca bunları satıyor. Ama bunlar tek kullanımlık elektronik sigaralara göre çok daha pahalı. Bu yüzden tek kullanımlık olanlar kaçakçılar ve reşit olmayanlar arasında popüler; çünkü ucuzlar ve el konulma riski var.
      Sonuçta gençleri suç örgütleriyle temas kurmaya itiyor ve paraları olmasa bile onlara borçlandırıyor. Bu da uyuşturucu borcuyla aynı türden sonuçlar doğuruyor. Açığı kapatmak için başka suçlarda kullanılma riski de var

    • Birinin müzik festivalinde topladığı tek kullanımlık elektronik sigaralardan elektrikli bisiklet bataryası yaptığı harika bir video görmüştüm
      İlgili video
      Tek kullanımlık elektronik sigaraların neden yasal olduğunu anlayamıyorum. 386 kuşağından sonraki nesillerin kaynak israfını gerçekten dert edeceğini sanmıştım, hayal kırıklığına uğradım

  • İçinde USB C ve şarj edilebilir pil varken bunun nasıl "tek kullanımlık" sayıldığını açıklamak zorunda kalacak bir avukatın bir gün ortaya çıkacağı kesin
    Aslında bu formda yapılmasının nedeni, teknik olarak yeniden kullanılabilir olduğu için tek kullanımlık elektronik sigaranın yasak olduğu yerlerde bile satılabilmesi.
    Bazı kullanıcıların bilerek sürekli yeniden satın alıp atma alışkanlığına oynayan bir satış biçimi

    • Tamamen yeniden kullanılabilir elektronik sigaralar varken neden özellikle tek kullanımlık alındığını anlayamıyorum. Dürüst olmak gerekirse, bunu sadece sigara alışkanlığını bırakma amacı açısından anlamlı buluyorum

    • Plastik poşet düzenlemeleri yüzünden daha kalın poşetin 10 sente satılmasıyla aynı şey. Sonuçta sözde "yeniden kullanılabilir"

    • Bazı ürünlerde değiştirilebilir pod/tank var ama çoğunda kullanıcının kurcalayabileceği hiçbir parça yok. Sıvı belli bir seviyenin altına inince coil yanmaya başlıyor ve tüm cihaz çöpe gidiyor. Bir mağaza kullanılmış ürünleri geri alıp uygun şekilde söktüğünü söylüyordu ama kullanıcıların çoğu muhtemelen bunları normal çöpe atıyor

    • USB C’nin konmasının nedeni, bataryanın ürün içindeki likit miktarına kıyasla yeterli kapasite sunmaması. Sonuçta 2-3 tam şarj yapılabiliyor ve sonra likit bitiyor

  • Tek kullanımlık elektronik sigaralar, toplumun bunu nasıl normalleştirdiğini anlamakta zorlandığım bir olgu

    • Toplum, reklam bütçesi olan şeyleri sık sık normal kabul etme eğiliminde

    • İnsan akciğerlerine çok kısa sürede çok ciddi zarar verebilmesini de unutmamak gerek

  • Kıyamet hazırlığı seti: mermi, konserve, içme suyu mu? Hayır.
    Faraday kafesinin içine konmuş 1.200 adet geek bar

  • Yaşasın hack’lemek! Bence Hacker News tam da böyle şeyler için var. Harika bir yazı ve eğlenceli bir projeydi

  • Günümüz teknolojisinin geldiği nokta gerçekten tuhaf. Yapay zeka işlerimizi elimizden almak yerine bize resim çiziyor, şimdi de e-sigaradan web sitesi barındırıyoruz. Bu durumu anlatmak için aklıma gelen tek kelime "tuhaf"

  • Yazarın, kelimenin gerçek anlamıyla "vaporware" çalıştırmak için nihai bilişim platformunu bulduğunu söyleyebilirsiniz