TrailMesh adalah sistem koordinasi kelompok offline first untuk perangkat Android. Anggota kelompok dapat berbagi lokasi, mengetahui kondisi konektivitas satu sama lain, dan menerima sinyal SOS melalui BLE, tanpa bergantung pada internet atau jaringan seluler.
Kelompok yang beraktivitas bersama di area outdoor, terutama saat pendakian, sering berada di luar jangkauan sinyal seluler. Pada kondisi ini beberapa hal menjadi sulit dipastikan.
Area pendakian umumnya memiliki jangkauan seluler yang terbatas atau tidak tersedia sama sekali, sehingga aplikasi berbasis internet tidak dapat diandalkan.
Kecepatan berjalan yang berbeda membuat anggota kelompok dapat terpisah jarak, tanpa cara langsung untuk mengetahui posisi anggota lain.
Ketika kontak dengan anggota lain hilang, tidak ada catatan pasti mengenai lokasi terakhir mereka sebelum terputus.
Jika terjadi kondisi darurat seperti jatuh atau benturan, anggota lain mungkin tidak mengetahuinya dan tidak ada cara cepat untuk meminta bantuan.
TrailMesh memindahkan komunikasi kelompok dari jalur internet menuju komunikasi langsung antar perangkat melalui BLE. Data grup dan lokasi disimpan secara lokal di setiap perangkat.
Setiap perangkat Android menjalankan peran ganda. Perangkat dapat berfungsi sebagai BLE Central maupun Peripheral, serta sebagai GATT Client maupun Server secara bersamaan.
Identitas grup dibuat tanpa server. Group ID berfungsi sekaligus sebagai kode untuk bergabung.
8 karakter Base32, menghindari karakter yang mudah tertukar seperti 0 dengan O, atau 1 dengan I dan L.
Ilustrasi QR join. Prototype ini tidak melakukan proses join sesungguhnya.
Pilih salah satu perangkat untuk melihat perannya saat proses discovery dan pertukaran lokasi berlangsung.
Urutan proses ketika perangkat ini menemukan dan terhubung dengan anggota grup lain.
Lokasi diperoleh melalui GPS atau GNSS perangkat lalu dikirim melalui GATT. Sistem membedakan lokasi terkini dengan lokasi terakhir diketahui.
Menampilkan lokasi terkini. Lokasi diperbarui selama koneksi BLE tersedia.
TrailMesh tidak hanya mengirim lokasi. Connection Monitor mengamati kekuatan sinyal BLE melalui RSSI dan memberi tahu pengguna sebelum koneksi benar benar terputus.
RSSI digunakan untuk mengklasifikasikan kondisi koneksi menjadi connected, weak, dan disconnected.
Deteksi otomatis tidak langsung dianggap sebagai kondisi darurat. Pengguna selalu diberi kesempatan untuk membatalkan sebelum SOS aktif.
Ini adalah simulasi interaktif untuk memperlihatkan cancellation window pada automatic SOS. Tidak ada sensor sungguhan yang digunakan.
Pada kondisi normal, lokasi hanya dibagikan kepada anggota grup yang sama. Ketika status SOS ACTIVE, perangkat TrailMesh lain di sekitar juga dapat mendeteksi sinyal darurat tersebut, meskipun bukan anggota grup yang sama. Ini bukan jaringan mesh, karena penerusan sinyal melalui perangkat lain belum diterapkan pada MVP.
Lokasi dan status hanya dapat dibaca oleh perangkat dengan Group ID yang sama, setelah melewati proses Group Verification.
Perangkat TrailMesh mana pun di sekitar dapat membaca sinyal SOS melalui advertisement, tanpa perlu kecocokan Group ID. Sinyal diterima hanya melalui koneksi langsung.
Pada grup berisi 4 perangkat, terdapat maksimal 6 koneksi pasangan secara ideal. Setiap perangkat berupaya menjaga koneksi dengan seluruh anggota grup yang berada dalam jangkauan BLE.
Batas antara apa yang sudah menjadi bagian MVP dan apa yang menjadi arah pengembangan lanjutan perlu dijaga secara eksplisit.
Setiap modul memiliki tanggung jawab terpisah agar dapat dikembangkan tanpa mengganti arsitektur dasar. Klik salah satu modul untuk melihat komponennya.
Pilih salah satu alur untuk melihat tahapannya secara berurutan.
Ringkasan keputusan engineering yang tercantum dalam PRD sebagai baseline implementasi.
| Platform | Android |
| Communication | BLE |
| Transport | GATT |
| Location | GPS / GNSS |
| Storage | Room and DataStore |
| Group ID | 8 Character Base32 |
| Advertisement Identity | Truncated SHA 256 Group Token |
| Location Packet | 15 Bytes |
| Group Size | 3 to 4 Devices |
Klik salah satu tahap untuk melihat target dari tahap tersebut.
Metrik berikut menjadi acuan pengujian pada tahap evaluasi. Belum ada angka hasil pengujian karena pengujian belum dilakukan.
Proyek ini disusun dengan pemahaman terhadap keterbatasannya. Setiap risiko yang teridentifikasi memiliki arah mitigasi.
Tahapan berikut merupakan arah pengembangan jangka panjang, bukan bagian dari kemampuan MVP saat ini.