1 poin oleh GN⁺ 2023-09-04 | 1 komentar | Bagikan ke WhatsApp
  • Timex m851 terlihat seperti jam digital untuk pelari, tetapi sebenarnya merupakan platform berdaya sangat rendah yang menjalankan aplikasi pengguna hanya dengan CPU Seiko S1C88 8-bit dan RAM 2KB
  • Pin di sisi perangkat adalah USB, sehingga data seperti jadwal dapat disinkronkan, dan dengan SDK Timex kita bisa membangun cc helloworld.c lalu mengunggahnya langsung ke jam
  • WatchApp memiliki struktur di mana kode diganti per state karena keterbatasan RAM, dan juga menggunakan API untuk kode bersama, variabel, serta data persisten
  • Kernel menangani pekerjaan tingkat rendah seperti pengiriman event, timer, bunyi bip, scroll layar, akses basis data, serta kontrol crown dan lampu latar
  • Karena perangkat ini sudah dihentikan, mendapatkannya tidak mudah, tetapi berkat simulator Virtual Datalink serta dokumentasi dan contoh kode yang dipublikasikan, pengembangan bisa dilakukan tanpa harus terus-menerus mereset jam fisik

Platform pengembangan di dalam jam kecil

  • Timex m851 adalah jam digital dengan CPU Seiko S1C88 8-bit, ROM 48KB, RAM 2KB, dan layar utama dot-matrix 42x11
  • CPU ini dirancang untuk operasi berdaya sangat rendah, sehingga dapat berjalan selama 3 tahun dengan satu baterai
  • Pin di sisi perangkat adalah USB dan digunakan untuk menyinkronkan data seperti jadwal dengan jam
  • Dengan SDK yang disediakan Timex, aplikasi dapat dibangun dengan cc helloworld.c lalu diunggah ke jam
  • Alat bawaannya berbentuk wizard era Windows XP, tetapi di dalamnya sebenarnya berjalan toolchain keluarga UNIX

Contoh WatchApp dan ekosistem yang sudah ada

  • Contoh hello world dan Makefile dapat dilihat di repositori taviso/timex
  • Berbagai WatchApp seperti game, utilitas, dan alat pernah dibuat untuk platform ini

Struktur WatchApp: state dan mode

  • Aplikasi dibagi menjadi state, dan saat state berubah, kode aktif saat ini dibuang lalu kode baru dimuat
  • Aplikasi dapat memakai hingga sekitar 30KB kode atau data, tetapi RAM hanya sekitar 2KB
    • Karena tidak ada paging dan seluruh kode tidak bisa dimuat ke RAM, struktur state diperlukan
  • Ada ruang kode bersama yang dipakai semua state, serta ruang variabel dan API basis data untuk data persisten
  • Beberapa state di bagian depan dicadangkan untuk penanganan event umum, dan sisanya bisa dipakai aplikasi sesuai kebutuhan
  • mode setara dengan aplikasi yang sedang tampil di depan
    • Aplikasi biasanya menyediakan mode, tetapi juga bisa menambahkan tugas latar belakang atau tugas periodik
    • Jika meminta perpindahan mode dengan coreRequestModeChangeNext();, aplikasi berikutnya akan mendapatkan kendali

Penanganan event dan layanan kernel

  • Setiap state memerlukan event handler
  • Event mencakup masuk ke state, menarik atau memasukkan kembali crown, memutar crown, menekan tombol, dan input tombol mode
    • Event yang tidak diperlukan bisa diabaikan
  • Kernel menangani pemrosesan perangkat keras dan dispatch event, serta menyediakan berbagai layanan
    • timer
    • pembuatan nada dan bunyi bip
    • scroll layar
    • akses record basis data
    • pengaturan crown
    • kontrol lampu latar
  • Kode contoh memakai layanan kernel seperti lcdClearDisplay() dan lcdDispBannerMsg() untuk menampilkan pesan banner "hello!"

Lingkungan debugging yang mengurangi reset

  • Karena tidak ada proteksi memori, aplikasi bisa menimpa memori kernel
  • Kernel harus memberi tahu watchdog setiap 2 detik bahwa sistem masih hidup; jika tidak ada notifikasi, watchdog akan mereset jam
    • Saat melakukan komputasi berat, watchdog harus diperbarui dengan hwResetWatchdog();
  • Virtual Datalink adalah simulator pihak ketiga open source
    • source
    • Khusus Windows dan ditulis dengan Delphi
    • Menyediakan conditional breakpoint, disassembler, save state, analisis resource, dan analisis daya

Mendapatkan perangkat yang sudah dihentikan dan dokumen referensi

  • Timex m851 sudah lama dihentikan dan semakin sulit ditemukan
  • Di eBay, perangkat yang hanya perlu ganti baterai agar bisa dipakai seperti baru masih bisa ditemukan
  • Jika tidak punya kabel, kita bisa memanfaatkan penggunaan pinout USB Type-A standar dan konektor yang tidak biasa dengan kabel USB lama serta penjepit buaya
  • Timex T5G751 juga menggunakan konektor yang sama dan relatif lebih mudah ditemukan, sehingga bisa dimanfaatkan untuk mendapatkan kabel
  • Varian m851 bernama “dress edition” memiliki spesifikasi yang sama dengan bodi berbeda, dan kadang terdaftar dengan nomor model lain
  • Dokumen referensi

1 komentar

 
GN⁺ 2023-09-04
Pendapat di Hacker News
  • Salah satu bagian yang terasa seperti sihir adalah Epson SoC(PN S1C88349) ini luar biasa hemat daya: saat berjalan dalam mode daya rendah 32kHz, konsumsi arusnya hanya 9 mikroampere
    Membuat kita berpikir seberapa banyak pekerjaan yang bisa dilakukan dengan anggaran 32.000 siklus per detik
    Selain itu, di dalamnya ada 48K ROM, 2K RAM, 3 timer, UART, sampai konverter A/D
    [1] https://global.epson.com/products_and_drivers/semicon/pdf/id...

    • Mungkin mengejutkan mengetahui bahwa komponen 8-bit berdaya ultra-rendah seperti ini sudah ada sejak sekitar 30 tahun lalu
      Chip Seiko-Epson, bersama chip EM-Swatch dan OKI-Casio, dipakai di jam tangan, kalkulator, termometer, dan perangkat LCD segmen murah berdaya rendah, yang harus berjalan bertahun-tahun dengan satu baterai kancing
      Kalkulator dan termometer digital yang berusia lebih dari 15 tahun pun memakai chip Seiko-Epson seperti ini, dan masih berjalan dengan baterai kancing 1,5V bawaan pertamanya. Mengingat self-discharge alami baterai litium seiring waktu, itu cukup mengejutkan
    • Sistem modern, entah SoC, sistem operasi, maupun aplikasi, sudah mencapai tingkat bloat dan kompleksitas yang luar biasa
      Ukuran biner banyak aplikasi mobile sekarang lebih besar daripada keseluruhan sistem operasi dan aplikasi masa lalu yang mengerjakan hal-hal yang sangat berguna
      Menakutkan membayangkan arah tren ini, dan kecil kemungkinan ada seseorang atau sesuatu yang akan mengeremnya
    • TMS430 terbaru punya mode daya ultra-rendah, dan RTC eksternal berdaya ultra-rendah juga bisa dipakai
      Seingat saya, termasuk hal-hal seperti kebocoran sakelar daya, secara nominal di bawah 100nA, dan itu benar-benar luar biasa
    • E0C6S46 masih menggerakkan Tamagotchi generasi pertama dan kedua
      Mikrokontroler 4-bit(!) 32KHz ini berisi ROM 12-bit(‼) sebanyak 6.144 word, RAM internal 4-bit sebanyak 640 word, dan frame buffer 4-bit 160 word untuk driver LCD terintegrasi. Bahkan bisa double buffering
      Chip yang benar-benar indah. Sekitar setahun lalu saya membuat emulator TypeScript, tapi belum mengunggahnya ke GitHub. Kalau ada yang tertarik, saya bisa mengunggahnya, dan ia juga bisa menjalankan firmware Tamagotchi yang belum dimodifikasi
    • Istilah ROM sempat membingungkan. Saya pikir awalnya berarti sesuatu yang tidak bisa diubah, tetapi dokumentasinya mengatakan data yang bisa dimodifikasi dimasukkan dan dikeluarkan dari sana
      Sebenarnya itu EEPROM, dan tampaknya agak mirip dengan memori Flash
  • Kalau ingin sesuatu dengan fitur sedikit lebih banyak, Bangle.js juga layak dilihat
    Kelebihannya ada Bluetooth, GPS, akselerometer, motor getar, dan layar berwarna. Kekurangannya, baterainya bertahan jauh lebih singkat daripada 3 tahun
    [0] https://banglejs.com/

    • Untuk yang penasaran, daya tahan baterai Bangle disebut 4 minggu
      Mereka mempromosikan Bangle.js 2 sebagai alternatif yang lepas dari smartwatch mahal, dengan “layar always-on yang tetap terbaca di bawah sinar matahari, daya tahan baterai 4 minggu, fleksibilitas penuh, dan kontrol penuh atas data”
  • Sekitar 15 tahun lalu saya punya jam tangan ini, dan bisa mencatat berbagai hal
    Saya memasukkan hal-hal seperti lokasi kelas berikutnya, jadwal bus untuk halte yang sering dipakai, dan fase bulan
    Sebelum era smartphone, mengecek jadwal bus dari jam tangan membuat saya terlihat seperti James Bond :)
    Andai jam seperti ini masih dibuat. Dengan konsumsi daya seperti ini, sepertinya secara praktis bisa terus diisi ulang dengan tenaga surya

    • Agar adil, iPhone pertama keluar 16 tahun lalu, dan smartphone yang bisa menyimpan jadwal bus sudah ada sebelum itu
      Lebih dari 20 tahun lalu saya biasa menyimpan jadwal bus sebagai draf SMS di ponsel Siemens
  • Untuk pendekatan yang lebih modern terhadap jam tangan yang bisa di-hack, mungkin ada ini
    https://github.com/sharandac/My-TTGO-Watch
    Saya menemukannya saat meneliti untuk membuat DIY iPod Nano 7G dengan board pengembangan LILYGO T5 E-Paper
    Produk: https://www.aliexpress.com/item/1005002474854718.html
    Repositori kode: https://github.com/Xinyuan-LilyGO/LilyGo-T5-Epaper-Series
    Kalau saya punya lebih banyak waktu dan kemampuan di sisi Arduino, ini rasanya bisa menjadi pengganti iPod Nano 7G yang hebat ;)

    • Saya punya beberapa benda ini, dan daya tahan baterainya cukup buruk
      Kode bawaannya hampir tidak berjalan dengan benar, dan baterainya hanya bertahan sekitar 12 jam meski tidak melakukan apa-apa. Namun memang benar, untuk orang yang menikmati debugging kode orang lain, barang ini luar biasa untuk harganya
      Saya mengisi sedikit bagian yang hilang dan menemukan pengaturan untuk mengurangi konsumsi daya, sehingga pada penggunaan “normal” bisa bertahan sekitar 6 jam
      Kodenya sekarang mungkin jauh lebih baik, tetapi anggaran dayanya akan jauh lebih dekat ke smartwatch Apple atau Samsung daripada m851 berdaya ultra-rendah ala tahun 80-an
      Kalau suka bereksperimen, ini proyek kecil yang menyenangkan dan sepadan dengan harganya. Kalau berharap sesuatu yang bersaing dengan iWatch, kemungkinan besar akan kecewa
  • Kalau “bertahan 3 tahun dengan satu baterai” adalah keunggulan besar, Casio jelas masih membuat yang seperti itu
    Coba cari “Casio MIP display”

  • Informasi tambahan tentang seri Timex Datalink ada di sini
    https://en.m.wikipedia.org/wiki/Timex_Datalink

    • Ironisnya, model lama dengan penerima optik terasa jauh lebih berteknologi canggih daripada model USB yang lebih baru
    • Saya penasaran kenapa sinkronisasi hanya bisa dilakukan dari CRT dan tidak bisa dari LCD
      Apakah bisa direproduksi dengan LCD IPS modern?
  • Semoga makin banyak jam tangan dan wearable dibuat dengan chip 8-bit berdaya rendah seperti ini, dan pin datanya terekspos sehingga bisa diretas
    Kalau bicara jam tangan, daya tahan baterai 3 tahun itu kuncinya. Kalau saya harus memikirkan untuk mengisi daya jam tangan, bagi saya itu sudah gugur

    • Saya terus membeli jam tangan mekanis berpegas murah dan Swatch di eBay
      Swatch yang saya pakai sekarang sudah sekitar 1 tahun tetap menunjukkan waktu dengan akurat memakai baterai yang sama. Masalah jam mekanis murah adalah, kalau tidak hati-hati, pegasnya bisa diputar terlalu kencang. Jadi setiap beberapa tahun saya merusak satu, tapi toh harganya murah
      Hal keren dari kedua jam itu adalah tidak perlu diisi daya setiap hari. Tentu saja, jam berpegas tetap harus diputar pegasnya
  • Ini mengingatkan lagi bahwa kita sebenarnya bisa punya barang yang bagus. Asalkan ada pasar untuk barang seperti itu
    Saya ingin ada jam tangan yang terintegrasi dengan baik: konsumsi baterainya rendah, beban untuk dipakai atau diganti juga kecil, dan secara desain bisa diterima
    Sayang sekali yang terbaik yang bisa kita lakukan sekarang adalah Sensorwatch [1]
    [1] https://www.sensorwatch.net
    Edit: Sensorwatch memang hebat, tetapi belum menjadi ekosistem

    • Kelihatannya cukup menjanjikan; hal-hal apa saja yang bisa dilakukan dengan board itu?
      Saya penasaran apa yang bisa membuat orang ingin melakukan sesuatu dengan board tersebut
  • Kelihatannya lebih sederhana daripada Ez430-chronos dari TI, dan tampak bagus
    Namun 3 tahun dengan satu baterai tidak terlihat terlalu luar biasa. Tentu tergantung aplikasi apa yang dipakai dan diunggah, dan fakta bahwa ini bisa diprogram memang keren
    [0] https://www.sparkfun.com/products/retired/10019

    • Sepertinya daya tahan baterai itu relatif
      Pada 2018 saya kehilangan satu Casio F91, lalu menemukannya minggu lalu saat berkemas untuk perjalanan kano. Waktu dan tanggalnya hanya terpaut beberapa detik dari Casio F91 yang saya pakai di pergelangan
    • Apakah chronos masih bisa dibeli?
      Dulu saya pernah membeli satu, tapi hilang saat pindahan. Saya ingin mengutak-atiknya lagi
      Edit: Ah, ternyata tautan yang kamu masukkan mencantumkan “RETIRED” di daftar produknya. Kalau produk TI, justru aneh kalau TI tidak menghentikannya saat respons pasar mulai muncul