Hello, Fediverse. I'm looking for embedded experts to help save #LEGO MINDSTORMS!

Background: https://pybricks.com/project/saving-lego-mindstorms/

Help: https://github.com/pybricks/support/issues?q=label%3A%22help%20wanted%22%20label%3A%22platform%3A%20EV3%22

I've made major progress, but I'd love to get some help! If writing an SPI flash driver or USB device implementation is your thing, I would love to hear from you 😀

I'll gladly donate an EV3 set for this. We can do this as a paid project too if that's a better fit. Let's discuss!

#foss #retrocomputing #ewaste #getfedihired #FediHire #fedijobs

Saving LEGO® MINDSTORMS® …

Pybricks reboots LEGO® MINDSTORMS® for use in the modern classroom. Help us save hundreds of thousands of robots from the e-waste pile!

Pybricks
@laurensvalk what’s the underlying platform that the code needs to target? Some of the terms and hardware descriptions sound a bit like a RasPi?

@jpm It's the TI AM1808. Others from that family have been used in Beaglebone. So out of the box, the EV3 firmware comes with an ancient Linux version. This has problems for many reasons, but it is mainly very slow and not very useful since the SPI flash is so small for this approach.

This project replaces Linux with bare metal solutions to make it more like Micro:Bit and other recent LEGO hubs. This makes it work with modern web browsers.

Much is already done, but some drivers are remaining.

@laurensvalk oh neat. What’s the underlying code written in (ie what language(s) do you need)? And are you using a RTOS or event loop to do stuff?

@jpm Drivers are written in C. The end user codes with MicroPython. We use protothreads, but adapt things when dependencies need it. For the USB issue, the existing CDC driver can likely be adapted a starting point. It is already implemented on another LEGO hub. Now it needs to act the same on EV3 so host apps can talk to both in the same way. I would be quite happy to set up boilerplate and the necessary hooks to get contributors started, or guide them through the code.

https://github.com/pybricks/pybricks-micropython

@laurensvalk ok thanks for the info, if I get some spare cycles and my embedded development tools are compatible with that MCU I’ll check in to see where you’re at!
@jpm awesome! Happy to show you around the code some time if you really want to dig into it. Everything builds with gcc-arm-none-eabi, so should be reasonably easy to do on any system. Details are in the contributing.md file.