Meng-host situs web dengan rokok elektrik sekali pakai
(bogdanthegeek.github.io)- Proyek eksperimental yang menjalankan web server dengan memanfaatkan mikrokontroler ARM Cortex-M0+ berdaya rendah yang tertanam di rokok elektrik sekali pakai
- Menganalisis chip PY32F002B dari PUYA yang memiliki 24KiB flash dan 3KiB RAM, lalu mengimplementasikan koneksi jaringan dengan metode SLIP
- Dengan memanfaatkan Semihosting, protokol SLIP, dan stack TCP/IP uIP, proyek ini mem-porting komunikasi TCP/IP serta fungsi server HTTP melalui tty virtual
- Awalnya sangat lambat, tetapi melalui optimasi buffer dan perbaikan pemrosesan data, kecepatan respons dan pemuatan halaman meningkat drastis
- Bahkan dalam lingkungan dengan memori kecil, berhasil menjalankan kode server dinamis dan menyediakan endpoint API
- Kode sudah dirilis, dan hosting sungguhan memang dimungkinkan, tetapi sangat dibatasi oleh sumber daya seperti memori
Pendahuluan
- Penulis terlebih dahulu menjelaskan bahwa tulisan ini tidak disajikan langsung dari web server yang berjalan di rokok elektrik sekali pakai tersebut, melainkan dari server terpisah yang menyajikan konten yang sama
- Contoh cara kerjanya yang sebenarnya dapat dilihat di http://ewaste.fka.wtf/
Latar belakang
- Selama beberapa tahun, penulis mengumpulkan rokok elektrik sekali pakai dari kenalan dengan tujuan mendaur ulang baterainya
- Belakangan ini, penulis tertarik pada perangkat rokok elektrik sekali pakai yang makin canggih dan mulai dilengkapi USB-C serta baterai isi ulang
- Saat membongkar perangkat, penulis menemukan mikrokontroler ARM Cortex-M0+ dengan flash internal bernama PUYA, chip yang dikenal luas sebagai mikrokontroler murah
- Penulis mengumpulkan mikrokontroler tersebut dari beberapa model, dan karena pin debug-nya diberi label, analisis menjadi lebih mudah
Perangkat keras yang digunakan
- Penandaan chip adalah
PUYA C642F15, tetapi diduga sebenarnya termasuk keluarga PY32F002B - Spesifikasi utama:
- Core Cortex-M0+ 24MHz
- 24KiB flash
- 3KiB RAM
- Ada berbagai periferal, tetapi tidak digunakan dalam proyek ini
- Dibandingkan smartphone biasa, performanya memang rendah, tetapi di lingkungan embedded, membangun web server sederhana tetap sangat mungkin dilakukan
Koneksi jaringan
- Ini bukan ide yang sepenuhnya baru, tetapi saat bereksperimen dengan konsep semihosting, penulis mendapat gagasan untuk menjalankan web server
- Semihosting adalah cara meniru syscall pada ARM embedded
- Ketika nilai/pointer dimasukkan ke register lalu breakpoint dipanggil, debugger menafsirkannya dan memproses tindakan yang diminta
- Biasanya digunakan untuk mengirim log, tetapi komunikasi data dua arah juga dimungkinkan
- Perangkat USB serial mendukung protokol SLIP (Serial Line Internet Protocol), dan ini dimanfaatkan sebagai antarmuka jaringan
- Di Linux (dan sebagian macOS), lingkungan jaringan SLIP melalui tty virtual dibangun dengan
slattach,socat, dan sebagainyapyocd 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 - Sebagai stack TCP/IP, penulis memilih uIP karena sangat kecil, tidak memerlukan RTOS, dan mudah di-porting
- Dengan memanfaatkan contoh server HTTP dari uIP, lalu mem-porting kode SLIP agar sesuai dengan metode semihosting, penulis berhasil menjalankan web server
- Karena ada masalah alignment 16-bit pada arsitektur ARM, penulis memodifikasi skrip pembuatan filesystem dan melakukan proses konversi dengan Perl
Optimasi kecepatan
- Pada kondisi awal, respons sangat lambat: ping 1,5 detik, packet loss 50%, dan pemuatan halaman lebih dari 20 detik
- Penyebabnya adalah overhead besar dari I/O per byte
- Dengan memanfaatkan RAM 3KiB secara agresif, penulis menambahkan ring buffer dan memperbaiki fungsi SLIP agar dapat memasok data secara batch
- Penulisan data juga dibagi dalam batch untuk proses pengiriman, sehingga pembersihan dapat dilakukan lebih cepat
- Hasil optimasi mencapai ping 20ms, tanpa packet loss, pemuatan halaman 160ms
- Total penggunaan RAM dan flash:
- Flash: 5.116B dari 24KB (20,82%)
- RAM: 1.380B dari 3KB (44,92%)
- Kapasitas ini juga cukup untuk menyajikan seluruh konten blog tanpa kendala, dan bahkan memungkinkan menjalankan kode C sisi server
Fitur lain dan penutup
- Penulis mengimplementasikan langsung endpoint API yang mengembalikan jumlah permintaan ke halaman utama dan unique ID mikrokontroler
- Ini adalah eksperimen yang berhasil mewujudkan web server dinamis dan API hanya dengan perangkat keras berkemampuan sangat rendah dan memori minimum
6 komentar
Saya sangat menikmati proyek dan tulisannya. Namun, saya sangat terkejut mengetahui bahwa ada yang namanya rokok elektronik sekali pakai, dan rasanya ini benar-benar tidak tepat..
Saya juga bukan perokok jadi tidak tahu, tetapi belum lama ini saya jadi tahu setelah melihat ada mesin penjual rokok elektrik sekali pakai di kafe tanpa penjaga yang baru buka di lingkungan saya. Sepertinya setengah dari komentar Hacker News di bawah juga membahas pemborosan sumber daya yang konyol. Haha
Setelah menulis komentar, jadi terpikir dan penasaran bagaimana verifikasi usia dilakukan kalau bentuknya seperti mesin penjual otomatis di kafe tanpa staf. Apakah mesin penjual otomatisnya juga punya fitur pemindaian kartu identitas..
Saya tidak merokok jadi sempat bingung ini membahas apa, tapi maksudnya ternyata meski sekali pakai, sumber daya yang digunakan terlalu banyak.
Kalau lagi pakai vape terus ternyata ketinggalan di suatu tempat atau sedang bepergian...
rasanya agak gimana kalau harus beli satu perangkat lagi atau malah merokok rokok biasa, sementara nikotin tetap perlu diisi, jadi akhirnya mencarinya di minimarket.
Komentar Hacker News
Jika mencari perangkat keras yang murah tetapi bertenaga, dongle UZ801 4G LTE (Qualcomm MSM8916) dari Tiongkok juga layak dilirik. Perangkat ini harganya hanya sekitar $4~5, tetapi menawarkan perangkat keras yang mengesankan seperti eMMC 4GB, RAM 512MB, modem 4G sungguhan (kadang mendukung switching dual-SIM), dan lain-lain. Pada dasarnya ini adalah SoC Android lawas, jadi juga mencakup GPU dan GPS. Pekerjaan untuk mendukung dongle ini pun sudah cukup banyak dilakukan
Info dongle LTE seri Zhihe
Proyek OpenStick
Cocok jika Anda mencari platform perangkat keras untuk proyek homelab yang nyeleneh seperti ini
Untuk pemula, panduan ini tampaknya yang terbaik. Untuk memasang Linux, partisi firmware harus dibackup lalu di-flash ulang agar modem 4G tetap berfungsi. Sulit dipercaya bahwa dengan hanya 5 dolar bisa mendapatkan perangkat keras sebanyak ini. Jika ditambah power bank (atau rakitan sendiri dari baterai vape bekas), jadilah mesin Linux dengan WiFi dan 4G yang bisa dipakai di mana saja
Jika butuh tautan ke SoC seperti ini atau produk serupa, Hackaday punya artikel khusus beserta berbagai tautannya
Artikel Hackaday
Contoh AliExpress MSM8916
Saya bahkan menemukan dongle MSM8916 yang konon punya layar bawaan (meski tidak ada info RAM)
Senang mendengar Qualcomm MSM8916 disebut. Ini dulu teman lama saya, Snapdragon 410. Prosesor ini juga dipakai di Moto G3 keluaran 2015 (kadang masih saya pakai untuk WhatsApp). Dengan basis Android (versi 7), ia bekerja cukup efisien selama bukan untuk tugas berat, lebih baik dari dugaan saya. Menarik melihat chipset mobile lama seperti ini masih didukung dan tetap punya umur panjang.
Sebagai catatan, chip ini termasuk salah satu prosesor awal Android yang mendukung 64-bit, tetapi lucunya Motorola tidak sempat menyelesaikan porting sebelum rilis sehingga hanya mendukung Android 32-bit
Ini mengingatkan saya pada dongle LTE berbasis Linux yang dulu dibagikan Freedom Pop. Kalau dibongkar, kita bahkan bisa mengakses UART
Masalah terbesar saya adalah
a.) dunia elektronik berkembang terlalu cepat
b.) saya kurang punya kemampuan dan waktu untuk membuat sesuatu yang keren dari benda seperti ini
Dulu saya membeli licheerv nano (misalnya mirip luckfox pico atau Milk-v duo) dengan niat membuat iPod nano open-source dengan jack audio usb-c.
Saya tidak pernah menemukan touchscreen 2,4 inci, atau kurang dari 3 inci, yang kompatibel dengan port MPI licheerv nano.
Mungkin saya bisa membuat pemutar audio kecil portabel dengan LVGL, tetapi itu terlalu sulit bagi saya
Menggunakan ulang perangkat semacam ini benar-benar keren. Jika suatu hari sebuah kota utuh dijalankan dengan menggabungkan perangkat seperti ini, rasanya seperti latar film pasca-apokaliptik.
Di sisi lain, vape sekali pakai sekarang bukan hanya berisi mikrokontroler, tetapi menurut laporan terbaru juga memuat game dan layar, jadi ini benar-benar limbah elektronik dalam skala besar. Kebodohan berlapis-lapis terlihat jelas di sini
Contoh lainnya adalah alat tes COVID sekali pakai. Perangkat itu punya mikrokontroler dan sensor optik, lalu menampilkan hasil ke ponsel lewat Bluetooth. Ini juga pernah dibahas dalam diskusi sebelumnya di sini
Saya sudah tahu soal baterai lithium yang sepenuhnya masih bisa dipakai ulang di dalam vape sekali pakai. Itu saja sudah pemborosan besar.
Tapi sekarang ternyata ada mikrokontroler dan konektor USB-C juga! Saya penasaran apakah konektornya bisa diakses dari luar, atau harus membongkar kemasannya dulu.
Benar-benar kebodohan berlapis-lapis. Nilai perangkat keras di dalamnya mungkin lebih dari setengah harga produk aslinya
Saya penasaran apakah vape sekali pakai memang limbah elektronik yang sangat parah. Ponsel, mobil, laptop, dan banyak barang lain yang kita buang juga punya banyak perangkat keras yang masih bisa dipakai ulang, tetapi umumnya sama-sama tidak dikelola dengan baik. Bahkan saya sempat membayangkan kalau perangkat keras vape ini cukup terstandarisasi, mungkin bisa dipakai untuk proyek sekolah seperti Arduino
Cerita seperti ini mengingatkan saya pada duskOS dan collapseOS
Fakta bahwa produk seperti ini bisa dijual saja sudah menjadi bukti bahwa regulasinya kurang
Kesenjangan spesifikasi dengan komputer lama itu menarik. Misalnya Commodore 64 memakai RAM 64KB yang terhubung ke CPU 8-bit 1MHz. Tapi sekarang, bahkan perangkat sekali pakai yang RAM-nya hanya setengah dari itu pun terhubung ke CPU 32-bit 24MHz. Hal seperti ini tidak akan terpikirkan pada 1980-an, tetapi pada 2025 justru muncul sebagai barang sekali pakai. Aneh tapi mengesankan
Sebenarnya RAM-nya cuma 3KB, dan flash-nya 24KB. Tentu kecepatan flash kadang sebanding dengan memori lama, tetapi latensinya benar-benar tidak bisa dibandingkan
Karena cuma punya RAM 3KB, ini bahkan lebih sedikit daripada VIC-20 lama
CPU-nya juga tidak terlalu luar biasa jika dinilai menurut standar 1980-an. Pada 1987, Acorn Archimedes sudah memakai prosesor ARM 8MHz yang memang mahal, tetapi dipasangkan dengan setidaknya 512KB RAM
(ngomong-ngomong, saya terkejut menyadari bahwa 1987 itu ternyata sudah 38 tahun yang lalu)
Senang melihat betapa bergunanya perangkat seperti ini. Menyebut produk seperti ini sebagai "sekali pakai" adalah semacam kegilaan. Saya pernah memanen baterai LiPo dari vape yang dibuang di pinggir jalan, dan baterai itu adalah baterai isi ulang yang bahkan sudah punya rangkaian pengisian bawaan, bukan sekadar baterai sederhana. Keputusan untuk membuat benda seperti ini dipakai sekali lalu dibuang benar-benar merupakan gejala yang buruk.
Ini pada dasarnya adalah bentuk ekstrem dari 'tidak bisa diperbaiki'. Dirancang untuk mencegah penggunaan ulang dan pengisian ulang, sehingga bertentangan dengan semangat ramah lingkungan maupun budaya maker
Ada vape yang bisa dipakai ulang sepenuhnya, dan toko yang tepercaya biasanya hanya menjual jenis itu. Namun produk tersebut jauh lebih mahal dibanding vape sekali pakai. Karena itu, produk sekali pakai populer di kalangan penyelundup dan anak di bawah umur, karena harganya murah dan risiko disita lebih besar.
Akibatnya, anak muda jadi bersentuhan dengan organisasi kriminal dan bisa berutang pada mereka meski tidak punya uang. Dampaknya sama seperti utang narkoba. Kekurangan itu lalu bisa dieksploitasi lagi untuk tindak kriminal lain
Saya pernah melihat video luar biasa tentang seseorang yang membuat baterai sepeda listrik dari vape sekali pakai yang dikumpulkan di festival musik
Video terkait
Saya tidak bisa memahami mengapa vape sekali pakai legal. Saya kecewa karena mengira generasi setelah era 386 benar-benar akan lebih peduli pada pemborosan sumber daya
Pasti suatu hari akan ada pengacara yang harus menjelaskan bagaimana benda dengan USB C dan baterai isi ulang bisa dikategorikan sebagai "sekali pakai"
Sebenarnya alasan bentuk ini dibuat adalah karena secara teknis bisa dipakai ulang, sehingga tetap dapat dijual di wilayah yang melarang vape sekali pakai.
Ini adalah model penjualan yang sengaja memanfaatkan sebagian pengguna yang akan terus membeli lagi dan membuangnya
Saya benar-benar tidak paham kenapa orang membeli vape sekali pakai jika sudah ada vape yang sepenuhnya dapat dipakai ulang. Jujur saja, menurut saya satu-satunya alasan yang masuk akal adalah untuk membantu menghentikan kebiasaan merokok
Ini sama persis seperti aturan kantong plastik yang membuat orang menjual plastik lebih tebal seharga 10 sen. Toh alasannya tetap "bisa dipakai ulang"
Beberapa produk memang menawarkan pod/tank yang bisa diganti, tetapi kebanyakan sama sekali tidak punya bagian yang bisa diservis pengguna. Saat cairannya mulai berkurang, koilnya mulai gosong dan seluruh unit dibuang. Ada satu toko yang katanya mengambil kembali unit bekas dan membongkarnya dengan benar, tetapi sebagian besar pengguna tampaknya tetap membuangnya ke sampah biasa
Alasan adanya USB C adalah karena baterainya tidak punya kapasitas cukup untuk cairan yang ada di dalam produk. Jadi pada akhirnya perangkat ini bisa diisi penuh 2–3 kali sebelum cairannya habis
Vape sekali pakai adalah salah satu fenomena yang membuat saya tidak mengerti bagaimana masyarakat bisa menormalkan ini
Masyarakat sering kali cenderung menganggap normal apa pun yang punya anggaran iklan
Belum lagi fakta bahwa benda ini bisa menyebabkan kerusakan parah pada paru-paru manusia dalam waktu yang sangat singkat
Perlengkapan untuk kiamat: peluru, makanan kaleng, air minum? Bukan.
Yang benar adalah 1.200 geek bar yang disimpan di dalam sangkar Faraday
Hidup hacking! Menurut saya, inilah tepatnya alasan Hacker News ada. Artikel yang luar biasa dan proyek yang sangat menyenangkan
Perkembangan teknologi sekarang benar-benar aneh. AI tidak menggantikan pekerjaan kita, melainkan menggambar untuk kita, dan sekarang situs web di-host dari eCigarette. Kata yang paling pas untuk menggambarkan situasi ini cuma satu: "aneh"
Bisa dibilang penulis akhirnya menemukan platform komputasi terbaik untuk menjalankan "vaporware" dalam arti yang sesungguhnya