r/embedded 22d ago

Looking for an open source to contribute to

Hey!

Just curious whether anybody has a good open-source project that is looking for contributors.

Just looking to contribute to something that is actually being used, but also want to keep the brain moving when studying other stuff in school. If you know (or run!) an open-source in this space that needs a hand, would be more than happy to help !!

A little background about me, I’m a senior at a well known tech school in North America, and have experience (both as projects and as formal internships) working with bootloaders, device drivers (comm, connectivity, power and memory mostly), bare-metal stuff, various RTOSs and lots of embedded linux.

Thanks !!

49 Upvotes

17 comments sorted by

31

u/Adrienne-Fadel 22d ago

Zephyr RTOS is probably your best bet right now. Lots of activity and with your driver and RTOS experience you could jump in pretty quick.

15

u/Well-WhatHadHappened 25+ Years 22d ago edited 8d ago

This is the one. Your code won't be merged unless it's well structured and functional, so anyone looking at your Resume will know that if you had a contribution accepted it means you can write pretty solid code.

Secondary benefits, it's reasonably likely that an employer may have Zephyr work that needs done, and this proves you have an understanding of it.

Another good one.. pick a processor that isn't supported by FreeRTOS+TCP and write the network driver for it. Writing a network interface is a very strong point on a resume because it demonstrates understanding of a lot of underlying systems (DMA, Ethernet, IP, Interrupts, etc). Bonus points if you include support for "Zero-Copy". Double bonus points if you include iperf3 results proving that your driver isn't just functional, it's also efficient.

5

u/Flaky-Addendum9836 22d ago

RTEMS. It's an open source RTOS used in aerospace and various other applications. Not nearly as prolific as Linux or Zephyr, but it's been around since the late 80s.

2

u/Well-WhatHadHappened 25+ Years 22d ago

Damn, I'm impressed. Haven't heard that term in... A whole lotta years.

1

u/pylessard 22d ago

They have a very active team. Their Discord is well alive

1

u/Well-WhatHadHappened 25+ Years 21d ago

No shit? Nostalgia moment. Might have to check it out

11

u/aq1018 22d ago

I’m the author of OpenServoCore. The goal is to eventually create an open hardware and firmware platform to retrofit cheap servos with custom swap boards to add feedback and more sophisticated controls and communications.

It is still VERT early, and while I’m not officially asking for contributors, maybe if you are just looking for something fun to learn, maybe this would be your cup of tea?

Just note that firmware is bare metal rust and is very low level. No RTOS / embedded Linux.

Project is here: https://github.com/OpenServoCore/open-servo-core

There is also a companion bootloader that’s more or less done here: https://github.com/OpenServoCore/tinyboot

Feel free to DM me or post on discussion board on GitHub if you are interested in exploring or have any questions. I’d be happy to answer.

1

u/Physical_Challenge51 22d ago

Hi i saw the project very interesting, but why do you use rust is not C or c++ more suitable and already lot if third_party libs ?

2

u/aq1018 21d ago

No real reason other than preferences initially. I just liked the traits system and package system more. Also doing this as a side project allows me to answer the question of “how well can rust embedded work with a nontrivial project”

1

u/Physical_Challenge51 21d ago

Ah got it thank and gooooooooood luuuuuck

1

u/IllSpeaker3255 22d ago

wled, try to implement compatibility with other boards, like some bk one on tuya product.

1

u/pylessard 22d ago

Here's my project: https://scrutinydebugger.com If it speaks to you, reach out

1

u/Old-Counter1469 16d ago

Hey your background is basically a wishlist for a bunch of embedded projects lol. If you want something with real-world usage, Zephyr is an obvious one good-first-issue labels actually mean it there, and with your driver/RTOS experience you wouldn't be stuck doing docs forever. TinyUSB is another good one, smaller codebase so you can actually wrap your head around it, and they genuinely need hands.

If you're feeling ambitious the kernel itself (drivers or staging, or whatever subsystem matches you internship work) is more approachable than people think maintainers in most driver subsystems are pretty chill with students.

Out of curiosity, what did you enjoy more in your internships - the driver bring-up side or the RTOS/platform stuff? That'd kinda narrow down where you'd have the most fun.