Contributing to the project

Hi all, I’m new here and to embedded in general but would really like to contribute to project like this and learn more about embedded and OS development. I’m not new to programming as I’ve been working in industrial controls and remote telemetry for 15 years plus my background is an electrical engineering degree but I don’t have experience in this realm. Are there any kind of simple newbie things I could work on in order to contribute?



Hi, great that you want to contribute! The easiest and probably most rewarding way to get started is by porting a new board to RIOT. That way you get to try out most low-level features when you verify that it’s actually working and may see areas where more work is needed :wink:

See this post for a list of suggestions, but mind you that the posts are not kept up do date. Some boards there are now supported, althought not all drivers might be there yet.

In case the microcontroller / family is already supported, porting a board should be pretty straightforward based on existing boards.

If you add a new microcontroller family from a vendor that already has support, peripheral drivers need to be adopted and clock setup is usually family specific. So it’s more work but also a more interesting task.

When adding a whole new vendor, you will also have to provide peripheral driver implementations. We recently added support for RP2040 and GD32VF103, but they still lack most drivers - this would also be a good task to start.

If you want to start with something simple, you can also do a sensor driver for some I2C or SPI based sensor.

Very cool, thank you for that info. Ya I need something really basic to start with :slight_smile:

I’ll look at some sensors first.

Since you said you are new to embedded and come to the conclusion that porting boards or drivers is scary, there is also a list of issues that community members deem suitable for newcomers. Granted, some of these are also just cleanup tasks, but this kind of tasks also help you to get to know the code :wink:.

I saw there was a tag on some of the github issues “good first issue”, I’m assuming those are the ones?

Exactly. That’s the tag I provided the link for.

Welcome to the community. Keep in mind that you can always ask for help both here and via Matrix :wink:

Interesting, never seem matrix :slight_smile:

Do you guys have any preference on a hardware device to use to get started with? I’d prefer to run it on something rather than native just cause. I guess something with a built in debugger would be super useful?

I always recommend to pick one of ST’s Nucleo evaluation boards. They have an integrated programmer/debugger/UART<–>USB adapter, so only a PC to develop on and a USB cable is needed to get you developing. All other vendors also provide excellent evaluation boards - but if you compare the prices you’ll directly see why I end up recommending the Nucleos.

Speaking of electrical engineering. Maybe that is something you can contribute to. Great to have you here. :slight_smile: Looking forward to your contributions.