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 I just shared your message with a short announcement at the MicroPython Meetup (that was in progress when you posted!).
@matt_trentini Right on time. Thank you so much!
@matt_trentini The post ran out of characters to mention #micropython, but it's certainly included! (In fact, that part is already done. There is a USB REPL, just no storage 😀)
@matt_trentini @laurensvalk good timing! I can maybe help out, I'll see if anyone around here already has a dusty ev3 in the back of a cupboard.
@laurensvalk Hi Laurens. Thanks for tagging me. As you added a quite generic link: do you especially refer to issues https://github.com/pybricks/support/issues/2247 and https://github.com/pybricks/support/issues/2153 ?
[EV3 - help wanted]: Implement SPI flash block device driver · Issue #2247 · pybricks/support

We'll need to implement an SPI flash driver for EV3 so we can load programs on boot and save them during shutdown. This is very similar to the existing implementation for SPIKE Prime., just with a ...

GitHub

@maehw Hey Mäh! The link filters for specific EV3 issues that could use some help, so we can add more over time. Indeed #2247 and #2153 are important. They are both necessary and very to-the-point with a clear end goal and approach, with no need to debate user APIs first, etc. 😅

I would gladly set up all the boiler plate and API hooks (these are generally the hardest for outsiders) so that the actual driver code can then be "filled in".

@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.

@laurensvalk "Sure, AI is amazing"

-- end of read. goodbye.

@f4grx Actually, that paragraph points out the *problem* with the AI hype, but you may need to read more than one sentence to see this.

Ideally, teachers wouldn't chase the latest shiny AI gadgets. Like it or not, it takes some convincing to help users and educators understand that existing tools are still great for teaching fundamentals.

@laurensvalk why did you write the sentence then

and then you continue "and yes, you could combine this with Pybricks"

seriously.

the whole paragraph promotes how to use AI with your systems.

@f4grx This is something that teachers in the real world ask about, so it is worth addressing.

This paragraph explains that even if teaching AI is your goal, you still don't need all the latest gadgets to do it.

Our goal is to build a sustainable and stable robotics learning platform, no matter what you want to teach with it.

I would rather teach fundamentals too, but not everybody needs to become an engineer. Basic understanding and exposure is a great first step in using tech responsibly.

@laurensvalk this is a very short sentence that can be easily understood as "we give you the fish you need to do you ai stuff and we're compatible with ai stuff so you dont need to understand it"

In fact I just dont understand the urge to mention AI in this page at all, except for SEO and hype giggles, so I will just ignore it and accept that I dont share your ideology.

@laurensvalk you can just reply to teachers that "Yes, AI is known to destroy the brain of students and make them confused and lazy, so we're offering an AI free robotics systemb based on well known and high quality open source projects that will encourage your students to learn by themselves"

but thats a very different position that might not please the sponsors you're probably trying to get.

@f4grx If your goal is to discourage teachers and students from using any independently developed technology, maybe that will work.

I prefer to keep things constructive and help them learn in ways that work for them. Gate keeping doesn't really help anyone, and just pushes people back to fast/big tech.

@laurensvalk I collect links
https://mastodon.social/@glyph/114734920442720045

https://troet.cafe/@b_rain/114733669406282309
This last one is particulary *sad*

This is what "ai" does to people, this is absolutely not a neutral topic.

Yes, teachers should be reassured that they can go against "ai" and that this position is GOOD for students and education in general.

This is not gatekeeping. This is sanitykeeping.

b-rain (@b_rain@troet.cafe)

Angehängt: 3 Bilder "each individual kid is now hooked into a Nonsense Machine" #school #AI #KI #meme #misinformation #desinformation

troet.cafe - Mastodon

@f4grx I agree with your concerns about AI. It can be helpful for some things and harmful for other things. It is certainly something I am mindful of. For now my kids (oldest is 5) don't get any smartphones or even play on tablets.

In teaching engineering and technology, my hope is that children will get a better grasp of how the world works. And get a better understanding of cause end effect. I know it is not universally true, but some positive stories have certainly come from previous work.

@laurensvalk kids have no points of reference and need guidance from adults, if we dont guide them through what is best, they will take advice from anyone and that is unpredictable. We cant stay balanced and neutral on these topics.

I wont tell you how to parent because it's hard, but at least I shared my opinion. I feel it's our responsibility to guide our kids the way we will be proud of them and what we made of them. We cant just rely on "natural selection" and expect anything predictable.

@laurensvalk once more, let's enjoy your amazing ai that can surely be useful at something:

https://arstechnica.com/ai/2025/06/anthropic-destroyed-millions-of-print-books-to-build-its-ai-models/

This is A MILLION TIMES INFURTIATING.

How do you get the "basic fundamentals right" if everything has been destroyed?

Anthropic destroyed millions of print books to build its AI models

Company hired Google’s book-scanning chief to cut up and digitize “all the books in the world.”…

Ars Technica
@f4grx right, my own books have been ripped off too. You can find them in the training sets. I'm not too happy about that. That also doesn't mean it can't be a useful technology for some purposes. These things aren't mutually exclusive.

@laurensvalk Also I'm still searching instructions on how to self host pybricks or use it without your exclusive cloud IDE. code is available yes but there are no setup instructions.

if you really believe in open source farther than the good image it gives you, then we should be able to use pybricks in a way that is completely independent from you.

@f4grx I'm sorry to hear that you could not find it. It is the top result if you search for something like "use pybricks with other code editors".

There's a command line utility that you can combine with your favorite editor if you like. And even the web-based editor can be run on your local host or elsewhere, but we have been over this. 😀

@laurensvalk would love to throw in some support where possible. I remember messing with these heavily in my early years of high school so keeping them alive would be amazing.
@lilstevie A great way to help is to tell your high school about it when the project is ready, or volunteer with robotics lessons 😀
@laurensvalk when I have some time if there’s still some need on the SPI flash driver I’ll definitely also look at helping out on that.
@laurensvalk also I think the actual version I used hands on predates the ev3 by about a decade, but still 🤣

@lilstevie Cool! Feel free to comment or upvote the issue and I'll tag you for updates. https://github.com/pybricks/support/issues/2247

Which color was the you used? Was it a yellow brick (RCX) or more like an iPod (NXT)?

[EV3 - help wanted]: Implement SPI flash block device driver · Issue #2247 · pybricks/support

We'll need to implement an SPI flash driver for EV3 so we can load programs on boot and save them during shutdown. This is very similar to the existing implementation for SPIKE Prime., just with a ...

GitHub
@laurensvalk it was 2001-2002 so I don’t think the nxt existed
@laurensvalk
Hello there. I'm the maintainer for the BrickPi3. I'm also interested in keeping the EV3 around. Maybe I can help?
Nice to meet you @CleoQc . Good to know the BrickPi is still maintained! You are welcome to join our community. Lots of people would still like to use their EV3s!
@laurensvalk I've got quite a bit of work to do to properly maintain it, truth be told. I'm waiting for a break in my day job, aren't we all?

@laurensvalk I got an EV3 at home and have ported MicroPython to embedded ARM platforms before.

I'm at a festival until Sunday. Can get back to you then, if you're also interested.

@marble Enjoy the festival! Feel free to reach out or chime in on the GitHub issues any time. Would be happy to get you up to speed with the code base if you like.

Indeed, you can think of this project as porting MicroPython to run directly on the EV3. The porting part is complete, but going bare metal means we also have to write the USB connectivity and flash storage drivers since we can't use the existing Linux drivers.

@laurensvalk id love to learn to code just to help
Out with this!

@twoowls73 You can! If we're doing it right you can learn to code when this is ready. Or sooner, if you don't mind rough edges :)

You could already try it with one of the newer LEGO hubs (Spike Prime, or Technic) that we already support.

@laurensvalk What the F*** is Lego thinking?

@laurensvalk This is awesome. Grew up using Mind storm kits & created some amazing things. Loved the pneumatic systems too.

I can't find any interest in the many current kits tied to movie franchises. It's just 3D jigsaw. Zero creativity required.

@laurensvalk wait, it's discontinued?? why???
@whitequark @laurensvalk yeah, it got replaced by the programmable Technic hub, and in the educational context by the SPIKE Prime line. I'm still kinda sad about it though, tbh.

@laurensvalk
There was an interesting lightning talk at GPN about it by @ngl0lgy

https://media.ccc.de/v/gpn23-51-lightning-talks-iii#t=2016

Lightning Talks III

media.ccc.de
@laurensvalk I may be interrested, just not sure yet I have the time for it. Do you have debugger access?

@schodet Hi Nicholas! There is a config option to disable the sensor protocol on port S1 and use it as a non-blocking UART output for debugging, which is pretty useful. There isn't a true debugger unfortunately, but I've lived without one so far. Maybe if you solder one onto it?

The process of building and deploying can be done in just a few seconds (down from many minutes for the Linux version), so iterating is pretty quick.

@laurensvalk OK, I have built a firmware, now I need an EV3 to load it.

The display API looks like a fun one to implement. What is your time frame, I do not want you to hold your breath!

@schodet that's awesome! Feel free to share your interest in the github issue so you'll be notified of updates. I don't think anyone is working on the display right now.

I would love to grow the community to be able to get this all done, so I'm not pushing for any kind of deadline at the moment.

If we can pull this off, I think the NXT will be next (code is shared between them)!

I've recently done the EV3 sensor interface on a way that should easily port to the NXT too.

Thanks!

@schodet in spirit of the project - if you can find a local second hand EV3 I will refund it for you. Otherwise I can send you one of mine!
@laurensvalk I looked at 2nd hand here in France. The EV3 is still expansive, but I think I will buy just the brick and some sensors/motors. I really like the medium motor, so it’s an excuse to get one :)
We talked about the NXT three years ago, it would be great to make it work with pybrick too.

@schodet On that note, the EV3 medium motor will also work great with NXT. That part mostly already works 😀. Almost everything has been designed to carry over quite nicely, particularly for motors and sensors.

My offer to send you the electronics of an EV3 set still stands, so just let me know if you're interested. No worries if you decide in the end you don't have time, you can always donate it to the next person.

@laurensvalk Yes, I would like to use the medium motor with its nice face attachment on my NXT creations.

I will try to find an EV3 locally, I will let you know if I do not find one. Bedankt!

@laurensvalk any idea of the status of the Linux kernel port? I assumed it was still working fine in mainline Linux-6.16. We just removed support for am17x/da830 SoCs, as there are no users, but there are still four am18x/da850 based machines we support including the ev3.

I guess the 64MB RAM is the biggest limiting factor by now.

@arnd the ev3dev version is indeed still around. It's versatile and great at what it does, but we ran into various limitations in making this classroom ready.

The biggest issues are perhaps the boot time and older SD card requirement. We also had some issues getting the motor controllers to work close enough to real time.

David Lechner who maintains ev3dev is also a co-creator of Pybricks. We see the two versions continue to work well and co exist along side one another.

@laurensvalk Unfortunately I'm not in that low level stuff.
My favorite language is Go, and that's the ecosystem in which I'm looking for a job.
A few months ago I was looking at #gokrazy and periph.io with the long term aim to boot a gokrazy image on an EV3 using the aging ev3dev kernel. But I didn't went far: just booting a standard gokrazy on a Pi Zero (32 bits) was a challenge, and then I had to pause that project.
@laurensvalk Also, to do advanced robotics like a balancing robot on wheels it seems that low latency and near realtime is needed. Does your architecture enables this?
At least that's a reason why, from my very distant view (I never built a robot beyond the EV3 models from LEGO, not even those from your EV3 book), I see more potential for compiled languages than interpreted languages like MicroPython to get the performance required. I would be glad to know your experience.

@dolmen

This fast enough ? 😀
https://fosstodon.org/@laurensvalk/112525725794519476

Contrary to popular belief, mechanical systems operate on pretty slow time scales (10s of ms). If you can run sensors under the hood as fast as data comes in (in C), you can run user algorithms in interpreted languages just fine.

Laurens Valk (@laurensvalk@fosstodon.org)

Attached: 1 video Time for more balancing fun with #Pybricks #MicroPython ! This time with #LEGO Education SPIKE Prime.

Fosstodon