status: reverse iteraton: 1
snail is a relayed protocol for portable unsupervised sneakernet devices.
This repository contains an implemenation that uses hacked Wifi NAN for peer discovery and communication
in order to iterate and simplify.
For now, an ESP32 + battery and an MicroSD for storage.
Optionally supported addons:
- in: Button
- out: RGB-Led(SK6812)
out: OLED Display (SH1107)
Pick a firmware:
- Generic ESP32
- Generic ESP32 S2
Generic ESP32 C3- Generic ESP32 S3
M5 Atom S3 0.85'' IPS-display
pip install esptool
esptool.py -b 300000 write_flash -z 0x0 DOWNLOADED_FILENAME_BIN
git clone --recurse-submodules https://git.sr.ht/~telamohn/snail
Get PlatformIO
Open project and find the upload button.
or via commandline:
pio run -t upload
Setup esp-idf then:
idf.py build && idf.py flash
See snail section in:
LC_ALL=en_US.UTF8 idf.py menuconfig
Sneakernet is the art of transferring data using physical transportation and without the use of internet. We'll rely on eventual message delivery within geographical bounds. - unless you travel further
The snail protocol itself is simple:
Search for beacons, Notify presence, Attach to peer, Inform news, Leave and repeat.
TDB
TDB
Longpress on button interrupts the SNAIL cycle and puts the device into private mode.
Interaction with a smartphone.
- Android 8+ has builtin NAN support, Apple requires SoftAP?
- BLE
- USB-C
Wifi Direct
Iteration 2
- Websockets and NAND Flash
Iteration 1
- Bye NAN hello SWAP
Nan is truly glitchy. It's cool to sync clocks over a wide area but it does not relay data or service info. We're not building a mesh, we're bulding a Swarm.
- OUI & VSIE allows snail beacons to be distinguished between nodes.
- The dual v-netif APSTA mode allows efficient discovery and exchange.
- Always on AP solves mobile connectivity (for now).
Iteration 0
- Exploring the boundaries of Wifi NAN
- NAN Potential, paper section 5. Fig. 3. NAN performance in Osaka downtown
- Sneakernet
- opennan
- Issue: ESP32(c3+,s3+) NAN support
- RBSR using negentropy
- Wifi Aware 3.2 Specs
- libpostbag Previous Attempt (2018)
Appreciated
# BTC
bc1qqjgz9fqqxj7kndqelecxmdtqgvtzqrukma5599
Apache-2.0 © Decent Labs 2024 | AGPL