RIOT-OS / RIOT

RIOT - The friendly OS for IoT
https://riot-os.org
GNU Lesser General Public License v2.1
4.89k stars 1.98k forks source link

[Tracking] Possible (Research) Projects in RIOT #17869

Open benpicco opened 2 years ago

benpicco commented 2 years ago

The recent forum thread about what we would do if we had significantly more engineering resources sparked many good ideas, with many sensible suggestions to improve the existing code base.

There are always some people who are doing a research project / thesis related to RIOT, there cleanups and refactoring are not very exciting proposals. So here are some juicy topics that I could think of, which, while ambitious, could also be good way to get into RIOT development.

Feel free to edit this post if you can come up with more ideas / details.

'Fuzzy' Timers

Add an API to schedule a wake up with a min / max deadline. RIOT should try to coalesce timeouts that fall into the same interval to reduce overall wake-up events.

Linux has usleep_range() for this.

Multiprocessor Support

No SMP as MCUs with multiple cores are not always symmetric (e.g. only the network core can access the radio registers). Add a mechanism to assign threads to a CPU core and bring up the additional cores.

Secure wireless networks

IEEE 802.15.4 MAC layer security exists, but is only the first building block for a secure network. It relies on a shared key that needs to be exchanged on network join and that should be exchanged periodically.

A certificate mechanism for nodes to authenticate themselves to the coordinator could be imagined.

6LoCAN

Just like 6LoWPAN, but with CAN bus instead of IEEE 802.15.4. Thesis, RFC draft

Porting RIOT to a new MCU family / architecture

This is always an option as there is still plenty of hardware not supported by RIOT. There is a forum thread with some suggestions, but there are always new MCUs being released and many vendors not supported by RIOT at all.

Integrate LPWAN optimizations in gnrc_tcp

GNRC has a very basic TCP implementation. We had a talk (video) about optimising TCP for low power wireless networks, but that was based on BSD's TCP implementation. Having this properly integrated into RIOT would be a huge benefit for many applications.

wosym commented 2 years ago

FYI: first link is not publicly accessible. (Not even with an account)