{
  "guid": "0136d635-9cf1-4893-8728-98500559e54c",
  "id": 13663,
  "date": "2024-12-27T16:00:00+01:00",
  "start": "16:00",
  "duration": "02:00",
  "room": "CDC Pentagon",
  "slug": "38c3-hacking-hardware-interfaces-for-reticulum",
  "url": "https://events.ccc.de/congress/2024/hub/de/event/hacking-hardware-interfaces-for-reticulum/",
  "title": "Hacking Hardware Interfaces for Reticulum",
  "subtitle": null,
  "language": "en",
  "track": null,
  "type": "other",
  "abstract": "ESP-NOW? Python? MicroPython? Reticulum? What's the connection? The interfaces we build in this workshop \ud83d\udc0d\ud83c\udf44\ud83d\udce1\ud83e\udd1d\ud83c\udf10",
  "description": "# \ud83d\udee0\ufe0f Hacking Hardware Interfaces for Reticulum\r\n\r\n**Workshop** - jitter; chris (OGM Assembly)\r\n\r\n## Practical Interface Workshop for **Reticulum**\r\n\r\n\ud83d\udc0d (Python setup) \u2192 \ud83c\udf44 (MicroPython flash) \u2192 \ud83d\udce1 (ESP-NOW interface) \u2192 \ud83e\udd1d (peer networking) \u2192 \ud83c\udf10 (mesh)\r\n\r\n## \ud83c\udfaf Workshop Goals\r\n\r\n- Demonstrate **practical** deployment of Reticulum without relying on traditional Internet infrastructure\r\n- Hands-on experience with alternative transport interfaces\r\n- Understanding real-world applications and limitations\r\n- Not about [`Rnode`](https://unsigned.io/rnode/) - the Reticulum assembly offers a workshop\r\n   - Call this `Enode`? \ud83d\ude04\r\n\r\n## \u26a1 Requirements\\r\\n\\r\\n- At least one ESP32 device, two are preferable, but not required\r\n- Best is a device from [`m5stack`](https://shop.m5stack.com/products/atom-lite-esp32-development-kit) but we will try to make any ESP32 work\r\n- Alternatively, bring a `RPi Zero 2` so we can hack on `USB-CDC` post-workshop\r\n\r\n- A computer running Python 3 and an Editor\r\n\r\n- Age 12 or with parent \ud83d\udc76\r\n- Listeners are welcome, you do not have to particpate.\r\n\r\nThe workshop will use devices from Espressif - most **ESP32** devices will work.\r\n\r\n## \ud83d\udce1 ESP-NOW Overview\r\n\r\n```ESP-NOW is a wireless communication protocol defined by Espressif, which enables the direct, quick and low-power control of smart devices, without the need of a router. ESP-NOW can work with Wi-Fi and Bluetooth LE, and supports the ESP8266, ESP32, ESP32-S and ESP32-C series of SoCs. It's widely used in smart-home appliances, remote controlling, sensors, etc.\r\n```\r\n\r\n> Differently put, no centralized infrastructure is required, it's peer-to-peer and offers a way of \"multicasting\".\r\n\r\n## \ud83d\udcbb Implementation Details\r\n\r\n* [Flashing MicroPython](https://docs.micropython.org/en/latest/esp32/tutorial/intro.html) is probably the hardest part, so assembly staff will assist doing so.\r\n* Eventually, there will be some easy soldering required to add a secondary `UART`\r\n* The interface code is hosted in a [GitHub repository](https://github.com/gretel/rns-if-espnow).\r\n* [`mpbridge`](https://github.com/AmirHmZz/mpbridge) allows easy multiplatform upload and continous development.\r\n* Each participant tries to connect the interface built to the assemblies\\' Reticulum node.\r\n\r\n# \ud83d\udccb Workshop Preparation Checklist\r\nSpeaker: jitter\r\n\r\n## \ud83d\udcda Essential Reading\r\n\r\n* https://linuxinabit.codeberg.page/blog/reticulum/\r\n* https://github.com/micropython/micropython/wiki\r\n* https://github.com/espressif/esp-now/blob/master/User_Guide.md\r\n\r\n## \ud83d\udcbe Software Prerequisites\r\n\r\n* Python 3.x installed and working\r\n* Your preferred code editor\r\n* Git client\r\n* USB drivers for ESP32 (Windows users)\r\n* Terminal emulator (like PuTTY, screen, or minicom)\r\n\r\n## \ud83d\udd27 Hardware Preparation\r\n\r\n* ESP32 device charged/functional\r\n* USB data cable (not charge-only)\r\n* USB-UART adapter (beneficial)\r\n\r\n## \u26a1 Before You Arrive\r\n\r\n* [ ] Test your Python environment\r\n* [ ] Clone the interface repository\r\n* [ ] Test USB connection to your ESP32\r\n* [ ] Read through basic MicroPython concepts\r\n* [ ] Install required Python packages (`mpbridge`, `rns`)\r\n* [ ] Review ESP-NOW protocol basics",
  "logo": null,
  "persons": [
    {
      "guid": "4f83b9f4-a5b5-470e-96a8-2448016938cb",
      "name": "CDC",
      "public_name": "CDC",
      "avatar": null,
      "biography": null,
      "url": "https://events.ccc.de/congress/2024/hub/de/user/cdc/"
    }
  ],
  "links": []
}