people caring about end quality and editing instead of just uploading. plus with all the tips/tricks on how to make a youtube channel good (the video is barely over the 10 minute mark).
You're commenting on the video's humorous portrayal of the IMU sensor as the "ears" of the operation -- which very accurately corresponds to vestibular system of our inner ear, and its ability to sense linear and rotational acceleration!
Loved the amount of technical puns made within the first minute! 😂 I'd be interested to broadly see some "familiar with C, new to Rust" content for sure, and would also enjoy a focus on Rust on the RP2040 :)
I’m a professional embedded software engineer working in aerospace. My biggest time investment when it comes to writing reliable code is testing. I’d love to see a video or two on the recommended unit testing/mocking frameworks available in rust and how the testing approach compares to C/C++.
I'm really looking forward to more content! I've been doing some embedded programming mainly on the esp32 with Rust. One of the harder things to learn is how all the crates relate and which one does which. This gets all the more complicated with having to choose between stdlib or nostd, embassy, esp-idf, etc. Then thrown in the plethora of microcontrollers to choose from and the whole thing becomes rather murky. A video about the eco system, options and choices would be very helpful.
@@BeefIngotI found AI tools really useful for helping understand the syntax and error messages. I'm using Codeium right now, it seems as good as copilot but free to use.
@@BeefIngotimo give the rust book a read instead of relying on ai, and sure it goes over the complete basics but that way everything just makes sense as you go deeper
I’m not even a professional programmer or a developer, in fact I’m a doctor but I had to learn c++ for arduino and esp8266 projects at home, and I have fallen in love with coding. Now TH-cam thinks I’m a programmer and is delivering me content about rust😂. Would be curious to see if rust is gonna be easier to understand than c/c++ , some of the software libraries out there for esp8266 are too complicated for me to understand. I truly enjoyed your production quality. Nice choice of music, do let us know where you find it!
Looking forward to hearing your experience with Embassy. I adopted Rust for a complex device specifically because of the option to do it with async, which i think has never before been feasible in embedded. I think it's a game changer, almost as much as Rust itself is. Almost two years in and no real regrets, though the learning curve was twice as big as I expected.
Great intro. Looking forward to your next steps with the channel. Am interested in utilizing Rust in my ESP32/LoRaWAN sensor projects. Liked and subscribed... can't wait until the next video!
This video feels like I'm watching premium content. I really like the puns and all the jokes, your energy is professional yet friendly at the same time. Subscribed!
Before embassy's 1.0, I toyed around with parsing NEMA for GPS and some LoRa. For a beginner in rust and programming in general I was surprised at how fast and how far I got. Can't wait for more videos!
On another note, as a beginner would you say doing something with medium complexity is easier or harder in C compared to rust? I could imagine learning pointers and memory management from scratch would be just as hard as learning how to overcome the borrow checker🤔
@@amos9274 For medium or high complexity work the borrow checker shouldn't get in the way as much as it benefits you by preventing broken architectures. I'd say if you care about it actually working reliably you're better off using Rust instead of C. (35 year C veteran, 2 year Rust intermediate here.)
@@amos9274Manual memory management, is not that hard. What makes working with C so much harder than it needs to be is that because of it's origin and history, most C compilers simply assume you are a god at programming and trust you 100%. In fact they trust you so much that they will optimize your code as is. Which is fine to do when you have as much Words of memory than my comments has, but this is excruciating to work with. C type system is inexistant, the compiler won't enforce anything without you adding 3 billions of weird platform specific, compiler specific, poorly documented, cryptic named flags, that still let you do stupid stuff. Really for any project go with Rust, I'm not big on it I prefer Zig but the point is anything at this point is better and more ergonomic than C.
Hi there, I work in critical safety industries and I am always open to learn new technologies that help us to be more efficients, fast and detect errors early. I would love to see in this channel topics like, RUSt support on RTOSs and SOCs vendors support, TDD, automatic documentation(llike doxygen) and CI for RUSt in a professional environment. Best of luck with the project!
Man, I watched this video like I was watching a Marvel movie... I grabbed a beer, a snack, and everything. High quality content my friend. Thank you very much for all the effort you put into this.
I'm fortunate enough to be using Rust for production embedded systems, and it's awesome! Time and again it just delivers on all the promises and just like you hinted to in the video, the compiler really has your back. You actually can undertake pretty massive refactorings without worrying that you're going to break something if it compiles, it usually works. Great video btw, subscribed!
Great video! As a hobbyist, I really hope that future content will include some simple examples on easy-to-use microcontrollers, and not go directly to RTOS on industrial-grade hardware that needs special tools and expensive software to program. Like, would it be possible to do a Blinky example on an Arduino? Another thing is that I believe coding towards hardware (such as an OLED display, or an I2C RTC, or toggling gpios) is very different from the coding you do on the desktop. And would expect Rust wouldn't be different. So what are the things to look out for in that type of programming? Really looking forward to what's to come!
I can't believe your earliest video is only 3 months old! The quality tells me you've been doing this for years, but I'm glad I caught this train just as it was leaving the station.
I just enjoy this language. You hit the nail on the head: Rust just removes the anxiety of attacking problems, because the language makes me confident that I won't create new problems in trying to fix old ones. Great video.
The production value on this was high. Please keep doing videos! Also quantity is so much more important than quality. Keep it up dude! Easy to understand rust explainers are rare.
I have never been in favor of "burning the ship" and in all the time I have been programming I have seen many languages that claim to be "the best option", I sincerely believe that it is worth simply trying to improve c++, no matter how complicated it is, it is better than basing your entire infrastructure on a tool that has yet to prove its worth. Because I can assure you that the problems will come to light sooner or later. The only programming language that no one complains about is the one that is not used.Awesome channel btw !!
“A bit of a learning curve”. I love Rust but this is a massive understatement. You are also massively overstating Linux kernel’s Rust adoption which will take at least a few more years before it shows any real world impact. That said I find the type system alone reason enough to switch as much as possible of my development to Rust. I’d love to see something with the maturity of FreeRTOS written in Rust. Then embedded Rust will go places. Cool channel, subscribed. Hoping my next embedded project will be in Rust. 😊
As a C++ programmer, I have to agree: memory issues and runtime errors are my nightmare. In modern C++ there are tools to simplify your work with memory and, what's the most important thing, modern C++ kinda forces you to use them. But all in all C++ feels a bit... Fractured? Standard library has a lot of things, but also doesn't have a lot of required stuff. The std itself is a little bit of low level and you have to write your own functions on top of it. And I don't even mention external dependencies. But in Rust you feel like home. Starting from memory management, type system, lifetime control, crates, testing tools, built-in build system (yeah, Cmake, I look at you) and many other thing I wish we had in C++ ecosystem (if I can name it like that).
Subbed and liked. This channel sounds like it's teaching exactly what I want to learn, right when I'm ready to learn it. Really excited to see what comes next!
I was introduced to rust over a year ago in a university course and although I found it interesting I was overwhelmed by sheer complexity of it as someone who had just gotten into embedded development. Maybe I'll revisit the topic again down the line, this video definitely encourage me to give it a shot. Consider myself subscribed!
Subscribed! I don't work in the embedded sphere but I've always been curious about it. I played around with Rust for a little bit, but it just doesn't solve problems that I face. I often times find myself doing deep dives on low-level topics but often find myself in over my head. I'm extremely excited to see what comes of this channel. Side note, between this channel and "Core Dumped" what is up with the small programming channels popping up out of nowhere with the high quality content!? It's awesome!
Well-made, engaging video. It didn't cross my mind that this was one of your first videos (let along _the_ first) until the end where you implied it. Keep it up!
I recently discovered Forth and after researching the ins and outs Ive found it surprisingly more promising than even Rust. Most of what we call memory errors are just C calling convention in one form or another and ironically that was one of it's big innovations. Rusts borrow checker helped me realize this and Forth showed me theres still fundamental programming language research to discover.
Fantastic video! Thank you. Looking forward to more content. I would love to see a project with practical use. Especially with sensors, user I/O and networking.
Looking forward to this series. I've been an embedded C developer for years. I started writing a GBA emulator in rust that I wanted to eventually run on an MCU but I haven't worked on the project in years due to frustrations with the borrow checker.
I really like the delivery - I laughed and I learned! Can't wait for more videos. 😍 For me any quality content is good (be it for beginners or a bit more advanced) as long as it's about Rust and embedded programming. I moved into the embedded role after years of programming with C#, and as much as I like C very much, there are so many dangers associated with it, and it makes me anxious too 😅 Looking forward to learn more and more of Rust! 🦀
I have just started some Embedded Rust development and I really looking forward to what this channel has to offer. I would see some videos on developing code as barebones as possible, without any Abstraction layers.
It was 2018, and I had been working for a series of early-stage hardware startups, and Rust was *getting* there, but wasn't *quite* there yet. If it had been, oh man. Well, I can tell by your eyes that you've been there too.
Loved the video! In case you are still reading through comments: Something that I would love to see (maybe in the future) would be something about the future of compiler certification to enable Rust as an option for SIL certified applications. I feel like that is one of the main things where it is still held back atm for me.
Thank you for this, I am currently in my third year of electronics engineering and planning to focus on controls. As a person that is going into the industry a few years from now, would it be worth it to start learning rust right now? I already know C and C++ at a beginner level and python at a novice level. I have not seen a video explaining the advantages of Rust this clearly. Usually they just say it has memory safety features and moves on to C, I don't have much knowledge on the software side so this has given me quite an insight.
Rust is at a bit of a strange point: it is mature enough for companies to start wanting to use it in their products, but there aren't many seasoned Rust developers on the market for them to hire. With increased scrutiny on memory safety issues from consumers and governments, demand for developers that know Rust is only going to increase: knowing Rust would make you stand out in the job market, no doubt. But yeah, start now, because it takes awhile to learn 😅
I agree that Rust is an aspirational language for developers (as mentioned in the developer survey) but the nature of embedded development is more often about finding proper coefficients to use in functions over writing elegant code (most of which is already written by the chip manufacturers).
Haven't really touched C for years now. So far, I got away with mostly using C# (dotnet on Debian). But I wanted to pickup embedded development again, when I found this channel. Hope my rusty C knowledge is enough to the transition into rust. Let's find out!
A project that's uses all the modules possibles BLE, WIFI, Normal serial communications Like UARTS, SPI, I2C with eeproms and other modules etc.... A project that's not particularly does something but use everything
I've not had a chance to get deep into Rust yet, but i'm really curious how it handles multithreading on embedded devices. Now days i tend to use FreeRTOS for almost all projects i work on. For embedded project i feel its really important to have a scheduler with priorities that is optimised for real time operation. So before i switch to Rust i need to have that functionality natively (along with all the other bells and whistles like mutexs, semaphores, queues, etc) or have an easy way to interface it with some RTOS library (preferably FreeRTOS) That would be a fairly advance topic that i find pretty interesting, but dont have the time to go in depth on.
Looking forward to what you do next, this video is great, exactly the kind of thing I’m looking at exploring myself. Possible future video topics could explore integrating the cpu with external systems like the gps or lte module, using rust
I do embedded work as a masters research assistant at my university, this is all to relatable. I been trying Rust on Pico Pi, not once did I experience any issues like I did, it just works! I have been wanting to introduce Rust into my work, since no one my campus is using it! I will gladly take a long compile time as opposed to a potentially unsafe C program.
Looking forward to more videos! I've been getting into robotics and learning C has been my least favourite part of it so far. Even though my use cases are very low risk, the anxiety that I'm unknowingly making a big mistake still hangs over me.
Rust does help with this. I’ve been programming for like 25 years and I honestly feel so much less anxiety that something is going to go very wrong with Rust. Don’t get me wrong, you can absolutely still make logic mistakes, but it’s usually much more straightforward to see what went wrong. What does get a bit frustrating is when you’re pretty sure you’ve got things right but the compiler’s telling you you’re screwing it up but you just can’t figure out what the right way to do things is. And here’s the thing: if you’re not in a hot loop: copying to fix an issue can usually get you out of a jam. YMMV as you get aim for lower and lower hardware specs.
As someone very versed in these devices and making them for bigger companies... I love your approach! Fun - this bleep is fun, all the problem statements no one likes to hear...thanks 🎉
I liked your thoughts, subbed. For future videos could you consider shorter or more integrated chapter markers? Waiting over 10 seconds for the next section (along with a sentence introducing it and sometimes one leading onto it) added a bit of friction for me.
Nice video. Looking forward to the next one. I'm coming from the perspective of someone who can program in Rust but don't really know embedded software development. Hopefully subsequent videos will be accessible to such a public as well. Keep up with the good work.
Oh man you would love Zig. Zig is halfway the high level powers of Rust, but with 10x more control and ease of use for low level system programming, It's the true embodiment of what C should have been. Strongly statically typed, awesome standard library, the most readable language that exist, really fine control over the assembly output, extremely explicit everything you see is everything you get, no hidden control flow, no hidden memory allocation, custom allocators are first class citizen (also in the std which makes it suitable for freestanding targets) portable, cross-platform, cross-compile, and seamless inter ops with C you can include and compile most of C header files, Comptime allows you to write your meta programming in Zig and not in another language that has different rules. Would love to see a video about Zig, in low level embedded. Oh and the Zig compiler can be bootstrapped with a C compiler on most targets.
I want to know some details: - Did you actually rewrite that project in Rust? (didn't really get it) - What was the firmware size before, after - What is the stack usage before, after - Lines of code before, after thanks :)
I'd like to see a guide for moving from C to Rust from an embedded perspective. I've seen many for backend, just none for people moving from low-level C. Things like: How is it possible to wrap MMIO registers in structs in rust? What are pitfalls that suddenly cause bad things to happen? After years in C we've built up a very deep knowledge about the languages behavior, we read a line and can say with relative confidence what the resulting cpu instructions will be, but can we reach that level in rust?
I'm a junior developer with a strong C/C++ background, but my main profession is building sensors and actuators as peripherals. I'm not familiar enough with Rust to make a final call, but I think it's a great language for devices with multiple connections, changing data formats, or updateable devices. For the simple open and closed loop controls, there are tested and certified C and C++ constructs we just feed with the right data to match the system. I don't see any change in those as barely any coding goes into those devices. The only reason I can see is to unify production for a wider range of devices. For devices that justify an RTOS, because they have multiple applications that share a common resource it's interesting because of how synchronization in Rust works. Also, devices that need to speak different protocols or need to adapt their behavior similarly, while using common data or resources are interesting because of memory usage. I'd like a series where you start with an open/closed loop device and build it up to an IoT device introducing or comparing a language feature each episode?
I'm looking forward to more content. I've started programming with Rust some time ago but for now I've only been creating programs for embedded Linux (with std). I've been planning to learn no_std for bare metal embedded programming.
Step 2 of any embedded C project is to be sure everyone knows that dynamic memory is absolutely forbidden under all circumstance. If you find the need to use malloc/calloc, then you need to re-visit the specifications for the hardware to find the correct size of the buffer/storage you are accessing. Of course, Step 1 is to be sure you have documentation and a support contract with the hardware manufacturer.
Me and a colleague once spent 4 months, yes, FOUR MONTHS solving one particular bug in C code -- which was noticed several months after the product was rolled out and the original developers had left. And noticed it was. It caused a light-rail vehicle to just stop. In the middle of the road. Until it was towed away. About once a week on average. I LOVE Rust, it is a godsend. At this point, C or C++ should not be used for new projects. Use Rust instead. It is so much better. (That particular bug turned out to be a resource leak. The home-brew RTOS has a limited supply of handles for error situations, and when it ran out, it froze. Someone had modified a bit of code so that these handles were leaked. Something the Rust borrow checker would have detected during compile time)
Pretty likeable presentation... sorry for simpler-than-newbie questions. I'm an old, old small systems designer, started out when MCU's had 256 bytes of RAM, 2k UV EPROM... So, what's the smallest kind of application that Rust makes sense for, and what processor families can it compile to?
The ecosystem focus is mostly on microcontrollers with Arm Cortex-M or RISC-V processors; order of magnitude for program memory is 10s or 100s of kilobytes. Rust is great for all applications 😄 but the payoff is highest for more complex ones.
I started my Rust journey with the ESP32 Rust Suite a few months ago. But the learning curve hit really hard, especially when trying to compile and flash on an ESP32 but have no idea how to debug on embedded hardware. So I would love to see some videos with ESP32, Rust and debugging on embedded systems =)
A fantastic video, simply fascinating 🎉 Never knew embedded development could be talked about in such a fun way!! I subscribed - can't wait to learn rust and cry!!
I’m not an embedded developer, so maybe this is way to easy, but two suggestions are: - GPIO / sensor data on esp32 (+ communication via gRPC/mqtt/http) - Interfacing with a basic or advanced display (maybe also on the esp32)
Excellent video! I love the simplistic yet momentarily energetic editing, it somehow screams engineering lol. Convinces me that I prob should learn rust now
whats with all these small channels popping up just making high quality videos like they've been doing it for years.
ive been thinking this for a while now too! honestly shocked to see this channel at less than 400 subs
I can't speak for The Rusty Bits, but I wonder how many of them are from talented developers being laid off.
Wow, no kidding…. subscribed, hoping for more!
people caring about end quality and editing instead of just uploading. plus with all the tips/tricks on how to make a youtube channel good (the video is barely over the 10 minute mark).
They have been! Some just got better at editing. Others got finally blessed by the algorithm. It's long overdue!
“It tells the microcontroller what’s up…literally”
Absolute god tier writing
You're commenting on the video's humorous portrayal of the IMU sensor as the "ears" of the operation -- which very accurately corresponds to vestibular system of our inner ear, and its ability to sense linear and rotational acceleration!
Word! (Came to the comments section just to say exactly the same)
Loved the amount of technical puns made within the first minute! 😂
I'd be interested to broadly see some "familiar with C, new to Rust" content for sure, and would also enjoy a focus on Rust on the RP2040 :)
RP2040 and ESP32 projects would be awesome! I want to see if I can move away from the arduino framework.
I was laughing hard! 😂😂😂 kept face palming internally knowing I found these funny it gave me insight into the realm of my actual sense of humor 👌🤣
A+ production quality. Well done ✅
dude, you had me subscribing 19sec into the vid!
In future videos, i would love to see you going through:
- toolchain
- debugging
- dev kit ...
I stuck around until the end puns, boy that was worth it. Excellent presentation, subbed! Interested to learn more about Rust.
I’m a professional embedded software engineer working in aerospace. My biggest time investment when it comes to writing reliable code is testing. I’d love to see a video or two on the recommended unit testing/mocking frameworks available in rust and how the testing approach compares to C/C++.
I once used a chip hugger that monitored the address lines on a CPU for memory coverage analysis.
This is a well-produced video for such a small number of subscribers!
Thanks! 😂 We've still got that 'new channel smell', so the algorithm is still figuring out what to make of us, but we've got high hopes!
I'm really looking forward to more content! I've been doing some embedded programming mainly on the esp32 with Rust. One of the harder things to learn is how all the crates relate and which one does which. This gets all the more complicated with having to choose between stdlib or nostd, embassy, esp-idf, etc. Then thrown in the plethora of microcontrollers to choose from and the whole thing becomes rather murky. A video about the eco system, options and choices would be very helpful.
This is actually the biggest thing thar puts me off apart from the syntax visually feeling worse than even c++.
@@BeefIngotI found AI tools really useful for helping understand the syntax and error messages. I'm using Codeium right now, it seems as good as copilot but free to use.
@@BeefIngotimo give the rust book a read instead of relying on ai, and sure it goes over the complete basics but that way everything just makes sense as you go deeper
I’m not even a professional programmer or a developer, in fact I’m a doctor but I had to learn c++ for arduino and esp8266 projects at home, and I have fallen in love with coding. Now TH-cam thinks I’m a programmer and is delivering me content about rust😂. Would be curious to see if rust is gonna be easier to understand than c/c++ , some of the software libraries out there for esp8266 are too complicated for me to understand.
I truly enjoyed your production quality. Nice choice of music, do let us know where you find it!
Thanks! Embedded systems can be a lot of fun, pointer issues notwithstanding 😅 The music is all from Epidemic Sound.
Fantastic video. I'm very excited for the future of this channel!
Looking forward to hearing your experience with Embassy. I adopted Rust for a complex device specifically because of the option to do it with async, which i think has never before been feasible in embedded. I think it's a game changer, almost as much as Rust itself is. Almost two years in and no real regrets, though the learning curve was twice as big as I expected.
Yes, some DIY with Embassy and like the S3 series microcontroller would be great!
Fantastic! Looking forward to your next video! I'm a embedded systems engineer and I love this types of videos
Great intro. Looking forward to your next steps with the channel. Am interested in utilizing Rust in my ESP32/LoRaWAN sensor projects. Liked and subscribed... can't wait until the next video!
This video feels like I'm watching premium content. I really like the puns and all the jokes, your energy is professional yet friendly at the same time. Subscribed!
Before embassy's 1.0, I toyed around with parsing NEMA for GPS and some LoRa. For a beginner in rust and programming in general I was surprised at how fast and how far I got.
Can't wait for more videos!
Just to clear things up in case it was not a typo, GPS messages are in NMEA format and NEMA is a standards organization like ISO or IEC :)
On another note, as a beginner would you say doing something with medium complexity is easier or harder in C compared to rust? I could imagine learning pointers and memory management from scratch would be just as hard as learning how to overcome the borrow checker🤔
@@amos9274 For medium or high complexity work the borrow checker shouldn't get in the way as much as it benefits you by preventing broken architectures. I'd say if you care about it actually working reliably you're better off using Rust instead of C. (35 year C veteran, 2 year Rust intermediate here.)
@@amos9274Manual memory management, is not that hard. What makes working with C so much harder than it needs to be is that because of it's origin and history, most C compilers simply assume you are a god at programming and trust you 100%. In fact they trust you so much that they will optimize your code as is. Which is fine to do when you have as much Words of memory than my comments has, but this is excruciating to work with. C type system is inexistant, the compiler won't enforce anything without you adding 3 billions of weird platform specific, compiler specific, poorly documented, cryptic named flags, that still let you do stupid stuff. Really for any project go with Rust, I'm not big on it I prefer Zig but the point is anything at this point is better and more ergonomic than C.
Hi there, I work in critical safety industries and I am always open to learn new technologies that help us to be more efficients, fast and detect errors early. I would love to see in this channel topics like, RUSt support on RTOSs and SOCs vendors support, TDD, automatic documentation(llike doxygen) and CI for RUSt in a professional environment.
Best of luck with the project!
I was already interested at the beginning, but the cheeky bit completely hooked me in hahah
Thank you. I'm interested on how Rust would plug in existing eco-systems, Arduino, Platformio, esp-idef,...
i came here just to +1 the thumbnail... great job Dad!
Man, I watched this video like I was watching a Marvel movie... I grabbed a beer, a snack, and everything. High quality content my friend. Thank you very much for all the effort you put into this.
The part where you say that "the product feels fragile" really hits home 😂
I'm fortunate enough to be using Rust for production embedded systems, and it's awesome! Time and again it just delivers on all the promises and just like you hinted to in the video, the compiler really has your back. You actually can undertake pretty massive refactorings without worrying that you're going to break something if it compiles, it usually works.
Great video btw, subscribed!
Woohoo, this looks interesting. I'm just dipping my pointers into Rust. Good luck with the channel. Subscribed.
Great video! As a hobbyist, I really hope that future content will include some simple examples on easy-to-use microcontrollers, and not go directly to RTOS on industrial-grade hardware that needs special tools and expensive software to program.
Like, would it be possible to do a Blinky example on an Arduino?
Another thing is that I believe coding towards hardware (such as an OLED display, or an I2C RTC, or toggling gpios) is very different from the coding you do on the desktop. And would expect Rust wouldn't be different.
So what are the things to look out for in that type of programming?
Really looking forward to what's to come!
I can't believe your earliest video is only 3 months old! The quality tells me you've been doing this for years, but I'm glad I caught this train just as it was leaving the station.
I just enjoy this language. You hit the nail on the head: Rust just removes the anxiety of attacking problems, because the language makes me confident that I won't create new problems in trying to fix old ones.
Great video.
The production value on this was high. Please keep doing videos! Also quantity is so much more important than quality. Keep it up dude! Easy to understand rust explainers are rare.
I have never been in favor of "burning the ship" and in all the time I have been programming I have seen many languages that claim to be "the best option", I sincerely believe that it is worth simply trying to improve c++, no matter how complicated it is, it is better than basing your entire infrastructure on a tool that has yet to prove its worth. Because I can assure you that the problems will come to light sooner or later. The only programming language that no one complains about is the one that is not used.Awesome channel btw !!
Great to see more rust for embedded devices. Already subscribed to the channel.
“A bit of a learning curve”. I love Rust but this is a massive understatement. You are also massively overstating Linux kernel’s Rust adoption which will take at least a few more years before it shows any real world impact.
That said I find the type system alone reason enough to switch as much as possible of my development to Rust.
I’d love to see something with the maturity of FreeRTOS written in Rust. Then embedded Rust will go places.
Cool channel, subscribed. Hoping my next embedded project will be in Rust. 😊
As a C++ programmer, I have to agree: memory issues and runtime errors are my nightmare. In modern C++ there are tools to simplify your work with memory and, what's the most important thing, modern C++ kinda forces you to use them. But all in all C++ feels a bit... Fractured? Standard library has a lot of things, but also doesn't have a lot of required stuff. The std itself is a little bit of low level and you have to write your own functions on top of it. And I don't even mention external dependencies.
But in Rust you feel like home. Starting from memory management, type system, lifetime control, crates, testing tools, built-in build system (yeah, Cmake, I look at you) and many other thing I wish we had in C++ ecosystem (if I can name it like that).
Keen to see some embeded stuff. Like something that helps me understand WHY each HAL does what it does.
great first video!! quality content thanks for sharing
Subbed and liked. This channel sounds like it's teaching exactly what I want to learn, right when I'm ready to learn it. Really excited to see what comes next!
Yes sir i am currently working as an embedded systems engineer, been using C. Seeing all the hype about rust will try to learn it with you ❤.
I was introduced to rust over a year ago in a university course and although I found it interesting I was overwhelmed by sheer complexity of it as someone who had just gotten into embedded development. Maybe I'll revisit the topic again down the line, this video definitely encourage me to give it a shot. Consider myself subscribed!
Sounds great! Personally I would like to see step by step exploration tutorials about all peripherals of microcontrollers
Subscribed!
I don't work in the embedded sphere but I've always been curious about it. I played around with Rust for a little bit, but it just doesn't solve problems that I face. I often times find myself doing deep dives on low-level topics but often find myself in over my head. I'm extremely excited to see what comes of this channel.
Side note, between this channel and "Core Dumped" what is up with the small programming channels popping up out of nowhere with the high quality content!? It's awesome!
Great video! Looking forward to next one 🎉
Hilarious and informative video, instant subscribe!
Well-made, engaging video. It didn't cross my mind that this was one of your first videos (let along _the_ first) until the end where you implied it. Keep it up!
I recently discovered Forth and after researching the ins and outs Ive found it surprisingly more promising than even Rust. Most of what we call memory errors are just C calling convention in one form or another and ironically that was one of it's big innovations. Rusts borrow checker helped me realize this and Forth showed me theres still fundamental programming language research to discover.
Fantastic video! Thank you. Looking forward to more content. I would love to see a project with practical use. Especially with sensors, user I/O and networking.
Nice video. I’d love to see something about writing a bootloader, that’s the next level of black magic to me
Great idea!
The reason I started learning Rust in 2024 as a very junior developer, is because I saw the potential it had for embedded systems.
Great video - I have subscribed and "liked", and look forward to your future videos, and to seeing how the channel develops. Thanks!
congrats on the first video :)
Looking forward to this series. I've been an embedded C developer for years. I started writing a GBA emulator in rust that I wanted to eventually run on an MCU but I haven't worked on the project in years due to frustrations with the borrow checker.
I definitely want to see topics where esp32 and pi pico w are used, cause i think they are the most versatile boards and you can get them cheap.
Will do 👍
I really like the delivery - I laughed and I learned! Can't wait for more videos. 😍
For me any quality content is good (be it for beginners or a bit more advanced) as long as it's about Rust and embedded programming. I moved into the embedded role after years of programming with C#, and as much as I like C very much, there are so many dangers associated with it, and it makes me anxious too 😅 Looking forward to learn more and more of Rust! 🦀
I have just started some Embedded Rust development and I really looking forward to what this channel has to offer. I would see some videos on developing code as barebones as possible, without any Abstraction layers.
Incredible video, subbed and can't wait for future content!
Nice video! I like your style and I'm looking forward to seeing some embedded dev work in rust.
It was 2018, and I had been working for a series of early-stage hardware startups, and Rust was *getting* there, but wasn't *quite* there yet. If it had been, oh man. Well, I can tell by your eyes that you've been there too.
Loved the video!
In case you are still reading through comments:
Something that I would love to see (maybe in the future) would be something about the future of compiler certification to enable Rust as an option for SIL certified applications.
I feel like that is one of the main things where it is still held back atm for me.
@FerrousSystemsGmbH is on it: ferrous-systems.com/ferrocene/
Thank you for this, I am currently in my third year of electronics engineering and planning to focus on controls. As a person that is going into the industry a few years from now, would it be worth it to start learning rust right now? I already know C and C++ at a beginner level and python at a novice level. I have not seen a video explaining the advantages of Rust this clearly. Usually they just say it has memory safety features and moves on to C, I don't have much knowledge on the software side so this has given me quite an insight.
Rust is at a bit of a strange point: it is mature enough for companies to start wanting to use it in their products, but there aren't many seasoned Rust developers on the market for them to hire. With increased scrutiny on memory safety issues from consumers and governments, demand for developers that know Rust is only going to increase: knowing Rust would make you stand out in the job market, no doubt. But yeah, start now, because it takes awhile to learn 😅
I agree that Rust is an aspirational language for developers (as mentioned in the developer survey) but the nature of embedded development is more often about finding proper coefficients to use in functions over writing elegant code (most of which is already written by the chip manufacturers).
I'm glad I found your channel, this video was great
Fantastic video and presentation. Thank you for making such high quality videos on such a niche subject. :-) please keep them up
Haven't really touched C for years now. So far, I got away with mostly using C# (dotnet on Debian). But I wanted to pickup embedded development again, when I found this channel.
Hope my rusty C knowledge is enough to the transition into rust. Let's find out!
Great video ❤ congrats on starting the channel. Subscribed!
A project that's uses all the modules possibles BLE, WIFI, Normal serial communications Like UARTS, SPI, I2C with eeproms and other modules etc.... A project that's not particularly does something but use everything
I've not had a chance to get deep into Rust yet, but i'm really curious how it handles multithreading on embedded devices. Now days i tend to use FreeRTOS for almost all projects i work on.
For embedded project i feel its really important to have a scheduler with priorities that is optimised for real time operation. So before i switch to Rust i need to have that functionality natively (along with all the other bells and whistles like mutexs, semaphores, queues, etc) or have an easy way to interface it with some RTOS library (preferably FreeRTOS)
That would be a fairly advance topic that i find pretty interesting, but dont have the time to go in depth on.
Thank you so much for starting this! I got the bell ready to ring ❤
Looking forward to what you do next, this video is great, exactly the kind of thing I’m looking at exploring myself.
Possible future video topics could explore integrating the cpu with external systems like the gps or lte module, using rust
I do embedded work as a masters research assistant at my university, this is all to relatable. I been trying Rust on Pico Pi, not once did I experience any issues like I did, it just works! I have been wanting to introduce Rust into my work, since no one my campus is using it! I will gladly take a long compile time as opposed to a potentially unsafe C program.
Just curious, how many lines of code are your projects?
Damn I wish I hadn't found this channel yet.
If I'd found it in a few years I would have so much content to binge watch!
Looking forward to more videos! I've been getting into robotics and learning C has been my least favourite part of it so far. Even though my use cases are very low risk, the anxiety that I'm unknowingly making a big mistake still hangs over me.
Rust does help with this. I’ve been programming for like 25 years and I honestly feel so much less anxiety that something is going to go very wrong with Rust. Don’t get me wrong, you can absolutely still make logic mistakes, but it’s usually much more straightforward to see what went wrong.
What does get a bit frustrating is when you’re pretty sure you’ve got things right but the compiler’s telling you you’re screwing it up but you just can’t figure out what the right way to do things is.
And here’s the thing: if you’re not in a hot loop: copying to fix an issue can usually get you out of a jam.
YMMV as you get aim for lower and lower hardware specs.
As someone very versed in these devices and making them for bigger companies... I love your approach! Fun - this bleep is fun, all the problem statements no one likes to hear...thanks 🎉
This was funnier than it had any right to be! Loved the intro to the module squad at the start
Whenever I watch your videos. It always inspires me to continue studying Embedded Rust Programming.
I liked your thoughts, subbed. For future videos could you consider shorter or more integrated chapter markers? Waiting over 10 seconds for the next section (along with a sentence introducing it and sometimes one leading onto it) added a bit of friction for me.
Nice video. Looking forward to the next one. I'm coming from the perspective of someone who can program in Rust but don't really know embedded software development. Hopefully subsequent videos will be accessible to such a public as well. Keep up with the good work.
This is so promising! I am really looking forward to more videos!
This was amazing. Learning and laughing at the same time; great script.
This video was amazing, thank you for making it :)
Oh man you would love Zig. Zig is halfway the high level powers of Rust, but with 10x more control and ease of use for low level system programming, It's the true embodiment of what C should have been. Strongly statically typed, awesome standard library, the most readable language that exist, really fine control over the assembly output, extremely explicit everything you see is everything you get, no hidden control flow, no hidden memory allocation, custom allocators are first class citizen (also in the std which makes it suitable for freestanding targets) portable, cross-platform, cross-compile, and seamless inter ops with C you can include and compile most of C header files, Comptime allows you to write your meta programming in Zig and not in another language that has different rules. Would love to see a video about Zig, in low level embedded. Oh and the Zig compiler can be bootstrapped with a C compiler on most targets.
Just ordered a MicroBit v2 and am excited to get started!
This channel is amazing! Thank you for this content 💕 I’m learning Rust and LOVING it.
I want to know some details:
- Did you actually rewrite that project in Rust? (didn't really get it)
- What was the firmware size before, after
- What is the stack usage before, after
- Lines of code before, after
thanks :)
I'd like to see a guide for moving from C to Rust from an embedded perspective. I've seen many for backend, just none for people moving from low-level C.
Things like: How is it possible to wrap MMIO registers in structs in rust? What are pitfalls that suddenly cause bad things to happen? After years in C we've built up a very deep knowledge about the languages behavior, we read a line and can say with relative confidence what the resulting cpu instructions will be, but can we reach that level in rust?
I'm a junior developer with a strong C/C++ background, but my main profession is building sensors and actuators as peripherals. I'm not familiar enough with Rust to make a final call, but I think it's a great language for devices with multiple connections, changing data formats, or updateable devices. For the simple open and closed loop controls, there are tested and certified C and C++ constructs we just feed with the right data to match the system. I don't see any change in those as barely any coding goes into those devices. The only reason I can see is to unify production for a wider range of devices.
For devices that justify an RTOS, because they have multiple applications that share a common resource it's interesting because of how synchronization in Rust works. Also, devices that need to speak different protocols or need to adapt their behavior similarly, while using common data or resources are interesting because of memory usage.
I'd like a series where you start with an open/closed loop device and build it up to an IoT device introducing or comparing a language feature each episode?
I'm looking forward to more content. I've started programming with Rust some time ago but for now I've only been creating programs for embedded Linux (with std). I've been planning to learn no_std for bare metal embedded programming.
Step 2 of any embedded C project is to be sure everyone knows that dynamic memory is absolutely forbidden under all circumstance. If you find the need to use malloc/calloc, then you need to re-visit the specifications for the hardware to find the correct size of the buffer/storage you are accessing. Of course, Step 1 is to be sure you have documentation and a support contract with the hardware manufacturer.
Me and a colleague once spent 4 months, yes, FOUR MONTHS solving one particular bug in C code -- which was noticed several months after the product was rolled out and the original developers had left. And noticed it was. It caused a light-rail vehicle to just stop. In the middle of the road. Until it was towed away. About once a week on average.
I LOVE Rust, it is a godsend. At this point, C or C++ should not be used for new projects. Use Rust instead. It is so much better.
(That particular bug turned out to be a resource leak. The home-brew RTOS has a limited supply of handles for error situations, and when it ran out, it froze. Someone had modified a bit of code so that these handles were leaked. Something the Rust borrow checker would have detected during compile time)
2:36 love the Key and Peele exposed browser history sweating profusely clip.
Pretty likeable presentation... sorry for simpler-than-newbie questions.
I'm an old, old small systems designer, started out when MCU's had 256 bytes of RAM, 2k UV EPROM... So, what's the smallest kind of application that Rust makes sense for, and what processor families can it compile to?
The ecosystem focus is mostly on microcontrollers with Arm Cortex-M or RISC-V processors; order of magnitude for program memory is 10s or 100s of kilobytes. Rust is great for all applications 😄 but the payoff is highest for more complex ones.
I started my Rust journey with the ESP32 Rust Suite a few months ago. But the learning curve hit really hard, especially when trying to compile and flash on an ESP32 but have no idea how to debug on embedded hardware. So I would love to see some videos with ESP32, Rust and debugging on embedded systems =)
A fantastic video, simply fascinating 🎉 Never knew embedded development could be talked about in such a fun way!!
I subscribed - can't wait to learn rust and cry!!
Such a great channel i found!!.... As an embedded engineering student this channel is the best thing! I love the puns too😂😂
Excellent quality both in content & production.
Already subbed. A low down on debugging and its limitations and alternatives would be excellent, as that feels like a pain point coming from C
always love to see more embedded rust folks! 😄✨
thanks for making it fun, too :)
Those memory corruption bullet points just give me PTSD.. 😅 Superb video! Looking forward for more!
I’m not an embedded developer, so maybe this is way to easy, but two suggestions are:
- GPIO / sensor data on esp32 (+ communication via gRPC/mqtt/http)
- Interfacing with a basic or advanced display (maybe also on the esp32)
Excellent video! I love the simplistic yet momentarily energetic editing, it somehow screams engineering lol. Convinces me that I prob should learn rust now
Awesome video!
this video is so solid
Lightweight RTOS implementation would be great. Like starting with array of functions and a while loop and later implementing some sort of yield.