130 views
owned this note
RIOT Hackathon 2024
===================
## Agenda
TBD, times might still be subject to change
| Time | Event
| ----- | --------
| 08:30 | Room opens & Setup
| 09:00 | Kickoff & Form Teams
| 12:00 | Lunch
| 15:30 | Hackathon stops, start preparing short slide deck
| 16:00 | Presentation of results
| 17:00 | Hackathon ends & Teardown
## Hackathon Material
Before final presentation, please upload your slides to TBD.
## Projects
### Template, DO NOT OVERRIDE
- **Champion:** Your Name
- **Project description:**
- Quick summary on your project
- Is there anything you want to reference?
- **Interested:**
- Who wants to join the champion in their endevour?
<!-- ### BTHome Implementation
- **Champion:** maribu
- **Project description:**
- BTHome is a BLE beacon format that allows to quickly integrate sensors in the Home Assistant
- This should match perfectly with SAUL and should allow integrating sensors attached to, say an nRF52 board, into Home Assistant
- https://lwn.net/Articles/925125/
- https://www.home-assistant.io/integrations/bthome
- **Interested:**
- chrysn
- ... -->
### Lingua-Franca on Riot
- **Champion:** tassilo
- **Project description:**
- Lingua-Franca is an execution scheme that allows determinisitic execution on multicores and distributed environments.
- The goal of this projects is to use functionality out of the lf-runtime and instead use features of the riot-kernel.
- **Interested:**
- Lasse Rosenow
### Extending & Improving CoAP
- **Champions:** Carl, Martine, chrysn
- **Project description:**
- Testing/integrating/extending `unicoap`
- https://github.com/RIOT-OS/RIOT/issues/20792
- libOSCORE integration
- CoAP-over-TCP
- Sketching EDHOC roadmap, eg. using `coapcore` from RIOT-rs
- **Interested:**
- Mikolai
### A CoAP based RIOT shell
- **Champion:** Teufelchen
- **Project description:**
- The current shell is simple but limited, especially the user experience could be better
- My idea is to build a new shell which operates on top of CoAP
- CoAP adds benefitial properties to a shell:
- Request & Response matching: No more guessing which output relates to your command
- Asynchrous execution: One can set timers in the shell or wait for events
- Status codes: Did your command succeed?
- Machine Readable interactions: Want autocomplete via tab? Just query /.well-known/core in the background and get a list of all commands
- Great binary transportation, no more base64 workarounds
- ...
- Using SLIPMUX to transport CoAP via UART/serial, even somewhat backwards compatible to the classic shell
- **Demo**
- I bring a working prototype with a shiny TUI for you to explore, test and evaluate!
- Maybe of interest: https://files.teufelchen.eu/CoAP-Shell.pdf
- **Interested:**
- Oleg
- chrysn
- Mikolai
### RIOT on my watch
- **Champion:** Mikolai
- **Project description:**
- RIOT currently [boots on the PineTime](https://doc.riot-os.org/group__boards__pinetime.html) with a [demo app by Koen](https://github.com/bosmoment/PineTime-apps) and some work on [supporting Bangle.js2 has been done by nica](https://github.com/nica-f/RIOT-Digitaluhr/tree/b2), including [demo app](https://github.com/nica-f/RIOT-Digitaluhr-App)
- We could try to bring both up-to-date and consolidate app code to work on either hardware
- I will bring a PineTime DevKit and a Bangle.js2, more hardware is welcome
- **Interested:**
### RIOT networking papercuts
- **Champion:** benpicco
- **Project description:**
- ~~fix parsing DNS response from DNS64 server ([#20355](https://github.com/RIOT-OS/RIOT/issues/20355))~~
- ~~problem might be related to the AAAA record's hostname being larger than the device name that was requested (CNAME redirect)~~
- [#20857](https://github.com/RIOT-OS/RIOT/pull/20857) provides a fix
- ~~cache out oldest neighbor information base (nib) entry if nib is full so multicast address resolution does not fail if nib is full ([#18164](https://github.com/RIOT-OS/RIOT/issues/18164), [#18189](https://github.com/RIOT-OS/RIOT/pull/18189))~~ fixed in `master`
- ~~`coap_block2_finish()` leaves CoAP header in corrupted state if block2 option size ended up smaller than dummy value set by `coap_opt_add_block2()` ([#20686](https://github.com/RIOT-OS/RIOT/issues/20686), [#20688](https://github.com/RIOT-OS/RIOT/pull/20688))~~ fix provied in [#20855](https://github.com/RIOT-OS/RIOT/pull/20855)
- `gnrc_sixlowpan_frag` always assumes worst case layer 2 PDU ([#19132](https://github.com/RIOT-OS/RIOT/issues/19132), [#19150](https://github.com/RIOT-OS/RIOT/pull/19150), [#19189](https://github.com/RIOT-OS/RIOT/pull/19189))
- **Interested:**
- ...
### Multi-hop bulk data (firmware) multicast via CoAP
- **Champion:** benpicco
- **Project description:**
- goal is to distribute a large data object (e.g. firmware update) to many nodes in a wireless multi-hop network
- proposal to introduce a page option to CoAP
- multiple blocks form a page
- some blocks can be error correction blocks
- nodes send bitmap of missed blocks (with nanorq could just be number of missed blocks)
- sender keeps re-transmitting lost blocks
- when a forwareder has a complete page, it starts to send it out
- clean up [current implementation](https://github.com/benpicco/RIOT/tree/nanocoap_non_block)
- try to switch from Reed-Solomon codes to Fountain Codes ([nanorq](https://github.com/sleepybishop/nanorq/tree/dev) - try to get [decode support](https://github.com/sleepybishop/nanorq/issues/11) working)
- **Interested:**
- ...
### Rust hacking
- **Champion:** Kaspar
- **Project description:**
- We'll do some RIOT-rs hacking
- Ideas:
- port RIOT-rs to Koen's keyboard
- integrate some http client
- hack together an sntp client
- build a multicast blinky demo
- **Interested:*
- ...
### Improving the Docs
- **Champion:** AnnsAnn
- **Project description:**
- Try to find ways to improve the docs
- Improve Searchbar
- Improve Theme