Really Impressive, I didn't have idea that Embedded Rust was on so elaborated state yet and exist support crates for different micros and also commercial boards. I was thinking that on Embedded Rust everything will be need to be did at "bare metal" level. Thanks so much for taking the time to made this videos!
The real strength of Rust is the awesome content crated by people like this guy. This is essentialy a dramatization of a Rust book, one place with a comprehensive domain specific content. I love it.
the best video i see so far explains layers in embbeded WITH EXAMPLES , keep the great work , the video productions is very good . expect tutorials soon .❤❤
All I can say is KEEP DOING WHAT YOU ARE DOING! I am starting out with Rust with the intent that I am also going to use it in embedded systems. You are top drawer and I am going to keep coming back for more!
Please please please, keep up with this channel and this quality of content. This is absolutely my favorite channel since few days I've discovered it. I'm a professional engineer with years of experience in a different (web) stack and just love Rust. I do embedded and Rust development as a hobby/pet projects since I'm not trained to do it professionally. This channel is a game changer for me, if you ever decide to create some course or newsletter or patreon I hope I will not miss it. Bravo! This is excellent content, very very pleasant, just love video editing in first few videos and overall, and are really really motivating and eye opening to variety of things. I do sincerely highly appreciate existence of such a channel. Thank You!!!
Don't know if you know or like it, but you're a natural great teacher. You should cover more rust topics with a real-world example. Just like the blinky light.
A very friendly, well explained intro to Rust on embedded systems. The algorithm recommended video, so took a peak with a bit curiosity, now wanting to learn more.
Really great Video! I would love to see a video from you about embassy-rs and async embedded rust and where it fits into the whole embedded rust ecosystem.
This was an excellent overview of the different ways one might write embedded rust. I appreciated how you started out doing it the most manual way via unsafe, then showed each abstraction layer on top. I was having trouble visualizing this reading the docs so seeing you step through them w/ examples really helped.
The production quality and the simple way you teach and explain things makes it such a great experience to watch and learn from your videos. This is too good 👌
I don't work in embedded software, and barely touch Rust, but you got yourself a new sub! The content and presentation on these videos are top notch! thanks and congrats! 🎉
Really good video! I think you're the first one on YT exploring this space of Rust and you'll be helping a lot of people get started. Keep it up! I hope to see some tutorials on using I2C and SPI interfaces :)
Excellent explanation. I like the focus on why these layers of abstraction exist, and how Rust lets you traverse this whole tower of abstractions as you please.
This channel is a goldmine in my search for embedded content. I've been writing software for over 5 years and miss my early embedded career. I'd like to transition back and your videos are wonderful. Thank you and I look forward to future videos
this reminds me of a Friends episode (I know) "He uh, forgets to umm… Oh-oh he always, he always umm-Oh, who am I kidding! He’s the best roommate ever! (Hugs Chandler.)" The best Embedded Rust series ever! Keep up the great work.
Fantastic video! Great job covering the process of finding the information you need and implementing an idea start to finish. This series is going to become a staple for getting started with embedded rust, and even rust alone for some!
Great Introduction, I followed your guide and the setup was a piece of cake. I would love to learn from you, how to structure a bigger embedded project. Hopefully some with unit tests, that could also run partly on the Host system.
Maybe this is a tangent. But back in the days i developed some, lets call them exotic, i/o techniques for coping with limitations. For example using analog multiplexers to read a whole matrix keyboard with just a few pins or reading both channels of an encoder and using them as a 2bit value to index into an array to detect state changes. Without doing soma analysing it feels a bit hard to implement these with HAL or BSP. Great video, exact the right level of detail and great pace and well scripted. Thank you
I wish I had this exact video before I started working with my microprocessors HAL a couple weeks ago, and before I tried working with my 8x8 multiplexed LED just last week. Excited for more videos!
Great, This is way I'm at, looking forwards for the next video. I'm actually really eager to your videos as they will be my supporting material to try and persuade colleagues to try rust in their projects. thanks
Thank you for a such helpfull embedded rust world intro! Also, it would be interesting to compare such a simple example with the blinking led between rust and C. I'm a bit confused about the pros and cons of low-level programming using rust in such baremetal cases, since to deal with it we need to go into unsafe mode anyway.
Very informative videos! Thank you a lot for the effort ❤ I'm new to the embedded world so clarifications on each step are very useful. Also cool to know how to approach the same problem with a different layers of abstraction.
Thanks for this overview, coming from C embed it can be a bit confusing to find your bearings in the rust ecosystem. The ability to possibly write your own BSP for custom boards to properly handle complex peripherals (like IC2 screens or memory) sounds great
5:25 btw, there's also a write_volatile method on pointers, so you could have written this as GPIO0_PINCNF21_ROW1_ADDR.write_volatile(PINCNF_DRIVE_LED). It saves an import and reads slightly nicer imo.
This one was supposed to come out several weeks ago, but travel and sickness pushed it back... on the upside, the delay allowed me to catch a fairly major update to the `nrf-hal` crates, which if missed would have rendered the example from the HAL chapter inoperable when run under the latest version. So there is a silver-lining to being late I guess 😂
better a bit less often, and this quality maintained! BTW, any suggestion for just learning more Rust basics...strangely, by connecting bare metal to Rust, I start to understand more... big thanks!
Such a great video! Your videos are truly the best ones I've seen regarding embedded rust. The others were always skipping some steps and left a lot of ambiguity. If you are ever searching for ideas to make a video out of: I'd love to see one that ports one little program to multiple different microcontrollers / boards to show the steps that need to be changed. Or a video about using SPI to drive a simple peripheral - for example an 8x8 LED-Matrix. I tried the latter, but failed due to the MAX7219-crate potentially having some bugs. Please continue to make these great, detailed videos. Tell us if you're in need of patreon subscriptions :-D
The video is amazing, as is Rust and embedded capabilities. But like this one almost all the videos I've come across talks about blinky (I guess it's the Hello World equivalent for embedded). Nevertheless I'd like to shift gears and utilize other peripherals like WiFi, Bluetooth, gyro etc. Can someone point me the direction? Where should I start?
Very very good breakdown of the various layers of abstraction in embedded Rust... "oxidation forms on the metal"... NICE! My main take away from this is that the nRF52833 is quite a nice chip... sounds loads less over-complicated than the STM32s
I really loved this video and I hope to see more from you soon :) One question: What is your workflow with music? Do you write it yourself or is there some nice software you use? Is it stock music that is just timed really well? Thanks!
All the music is from Epidemic Sound, for now at least.. I think I'm burning through some of their best content at an alarming rate 😅 I try to find songs that fit the mood of the chapter or just sound cool & help carry the story forward, and try not to reuse tracks between videos. Editing is done in Final Cut Pro. We'll see how long I can continue making videos this way, but for now I'm really enjoying how they turn out 😀
I've been starting my embedded (at least non Arduino IDE) journey with rust recently and decided to target the esp32 with std. I think in downloading the esp32 crates and reading through the basic tutorials to get it compiled I missed some of the underlining info this video had.
Something I didn't mention (but probably should have) is that all of the pins default at reset to inputs, with a disconnected input buffer: they are basically floating, neither high nor low. In order for current to flow through the LED, it needs to see a high voltage on its anode side (row 1) and a low voltage on its cathode side (column 1). So we need to set both pins 21 and 28 as outputs. Only setting row 1 as an output and driving it high (3.3V) is not enough, as the circuit is left open without also grounding column 1 (0V). Hope that made sense!
@@therustybits I see so you set 28 to an output with setting 0x770 to 1 to avoid it being an input. So all in all both pins need to be outputs but we only toggle 21 high/low.
Yep! The line where we toggle the state of row 1/pin 21 is also setting all the other output pins low (0), which in this example is just column 1/pin 28.
As a professional Embedded Firmware Engineer, I would have killed to have this guy teach me when I started out.
Do I know rust? No
Do I program embedded? No
Did I throughly enjoy the video anywas? Absolutely!
Same here
Long time Rust Embedded Working Group member and full-time Rust and Embedded Rust trainer here.
This was so good. 10/10, no notes.
Thanks!! 🙏
Really Impressive, I didn't have idea that Embedded Rust was on so elaborated state yet and exist support crates for different micros and also commercial boards. I was thinking that on Embedded Rust everything will be need to be did at "bare metal" level. Thanks so much for taking the time to made this videos!
Thanks Julian!
The real strength of Rust is the awesome content crated by people like this guy.
This is essentialy a dramatization of a Rust book, one place with a comprehensive domain specific content.
I love it.
As am a fairly seasoned programmer and was trying to get into rust and embedded, what a gem you tube help me find, keep on coming!!
the best video i see so far explains layers in embbeded WITH EXAMPLES , keep the great work , the video productions is very good . expect tutorials soon .❤❤
All I can say is KEEP DOING WHAT YOU ARE DOING! I am starting out with Rust with the intent that I am also going to use it in embedded systems. You are top drawer and I am going to keep coming back for more!
Please please please, keep up with this channel and this quality of content. This is absolutely my favorite channel since few days I've discovered it. I'm a professional engineer with years of experience in a different (web) stack and just love Rust. I do embedded and Rust development as a hobby/pet projects since I'm not trained to do it professionally.
This channel is a game changer for me, if you ever decide to create some course or newsletter or patreon I hope I will not miss it.
Bravo! This is excellent content, very very pleasant, just love video editing in first few videos and overall, and are really really motivating and eye opening to variety of things. I do sincerely highly appreciate existence of such a channel. Thank You!!!
Thank you for using code as part of explaining each abstraction layer, it truly helps.
Don't know if you know or like it, but you're a natural great teacher. You should cover more rust topics with a real-world example. Just like the blinky light.
A very friendly, well explained intro to Rust on embedded systems. The algorithm recommended video, so took a peak with a bit curiosity, now wanting to learn more.
Great video, and cleared up some of the acronym salad I see I out there. Please keep it up.
Really great Video! I would love to see a video from you about embassy-rs and async embedded rust and where it fits into the whole embedded rust ecosystem.
Embassy/async videos coming…
Speaking of which, the embassy docs have an example that is the same idea as this video, called layer-by-layer.
This was an excellent overview of the different ways one might write embedded rust. I appreciated how you started out doing it the most manual way via unsafe, then showed each abstraction layer on top. I was having trouble visualizing this reading the docs so seeing you step through them w/ examples really helped.
Third video and 13k subs. I think you hit the motherlode. Well done. Thank you for this content, hope you can keep going!
You found too many ways of blinking an LED and I found a great channel to follow!
This is a masterful video, HIGHLY recommended if you want to start with embedded Rust.
The production quality and the simple way you teach and explain things makes it such a great experience to watch and learn from your videos. This is too good 👌
Please make a bootcamp course for us, i love the way you tech rust easily
I don't work in embedded software, and barely touch Rust, but you got yourself a new sub! The content and presentation on these videos are top notch! thanks and congrats! 🎉
Cristal clear. Superb teacher...Thx for this serie of videos about embeded rust. Kudos
"...Oxidation forms on the metal; so that's where we begin!"
Really good video! I think you're the first one on YT exploring this space of Rust and you'll be helping a lot of people get started. Keep it up! I hope to see some tutorials on using I2C and SPI interfaces :)
Excellent explanation. I like the focus on why these layers of abstraction exist, and how Rust lets you traverse this whole tower of abstractions as you please.
These videos are an absolute joy to watch!
This is so cool!!! I just ordered my microbit. I'm sure you're busy, but hopefully you'll keep making these videos.
I love how you structure the explanation of each video, thanks, very good job!
Thanks for the vids so far, here’s to getting a lot more people into embedded!
This channel is a goldmine in my search for embedded content. I've been writing software for over 5 years and miss my early embedded career. I'd like to transition back and your videos are wonderful. Thank you and I look forward to future videos
Your video makes embedded dev so coool!
" Oxidation forms on the metal." Dope. Subscribed.
I’m really looking forward to more of these videos. Please keep them coming!
Waiting for the next video! Clear and consice explanation!
Amazing video! Fantastic quality.
this reminds me of a Friends episode (I know) "He uh, forgets to umm… Oh-oh he always, he always umm-Oh, who am I kidding! He’s the best roommate ever! (Hugs Chandler.)" The best Embedded Rust series ever! Keep up the great work.
Thanks!
Thanks again! 😊
The video is awesome : it makes embedded rust fun to learn !
Really high quality video, great job!
This is just phenomenal content
Fantastic video! Great job covering the process of finding the information you need and implementing an idea start to finish. This series is going to become a staple for getting started with embedded rust, and even rust alone for some!
Great Introduction, I followed your guide and the setup was a piece of cake.
I would love to learn from you, how to structure a bigger embedded project.
Hopefully some with unit tests, that could also run partly on the Host system.
He is definitely a team leader ❤
11:30 this is called the TypeState pattern, by the way.
Typestate FTW! 🙌
Maybe this is a tangent. But back in the days i developed some, lets call them exotic, i/o techniques for coping with limitations. For example using analog multiplexers to read a whole matrix keyboard with just a few pins or reading both channels of an encoder and using them as a 2bit value to index into an array to detect state changes. Without doing soma analysing it feels a bit hard to implement these with HAL or BSP.
Great video, exact the right level of detail and great pace and well scripted. Thank you
I wish I had this exact video before I started working with my microprocessors HAL a couple weeks ago, and before I tried working with my 8x8 multiplexed LED just last week. Excited for more videos!
Great content, and great production. The music is such a vibe
I started studying embedded rust last saturday and did this blinky exercise. Rooting for more of your videos in the future. Great content!.
I can't wait for the next tutorial, the are so great!
You were born to be a teacher!! Great Video!
great video, glad to be watching part 2
Great, This is way I'm at, looking forwards for the next video. I'm actually really eager to your videos as they will be my supporting material to try and persuade colleagues to try rust in their projects. thanks
This is gold, thank you
Fantastic information! Thank you!
Thank you for another excellent video! :D
Your videos are awesome, thanks a lot !
Thank you for a such helpfull embedded rust world intro! Also, it would be interesting to compare such a simple example with the blinking led between rust and C. I'm a bit confused about the pros and cons of low-level programming using rust in such baremetal cases, since to deal with it we need to go into unsafe mode anyway.
Damn, these are good. Love the tone, love the rythm. Keep up the great work!
Superb videos. Clear, concise, beautiful.
Another video, another banger. Keep up the good work!
Very informative videos! Thank you a lot for the effort ❤
I'm new to the embedded world so clarifications on each step are very useful. Also cool to know how to approach the same problem with a different layers of abstraction.
Finally this video pop out🎉🎉.
Thanks for this overview, coming from C embed it can be a bit confusing to find your bearings in the rust ecosystem. The ability to possibly write your own BSP for custom boards to properly handle complex peripherals (like IC2 screens or memory) sounds great
Very nice video!
But waiting for the next one will be hard!
These vids are awesome, please do continue!
See you soon, in each video, in each amazing work :)
wow this was an extremely well made video thanks!
5:25 btw, there's also a write_volatile method on pointers, so you could have written this as GPIO0_PINCNF21_ROW1_ADDR.write_volatile(PINCNF_DRIVE_LED). It saves an import and reads slightly nicer imo.
I knew this one's coming after the last one 😁 Already pre-liked the video! ❤
I guess my biggest problem with your videos is that they come out not that often. Otherwise, the best embedded tutorials so far!
This one was supposed to come out several weeks ago, but travel and sickness pushed it back... on the upside, the delay allowed me to catch a fairly major update to the `nrf-hal` crates, which if missed would have rendered the example from the HAL chapter inoperable when run under the latest version. So there is a silver-lining to being late I guess 😂
better a bit less often, and this quality maintained!
BTW, any suggestion for just learning more Rust basics...strangely, by connecting bare metal to Rust, I start to understand more... big thanks!
Thank you very much!!!!!
Fascinating and educational, thank you!
Great video. I'm off to try some of these approaches on my stm32 projects😊
this was super cool
Such a great video! Your videos are truly the best ones I've seen regarding embedded rust. The others were always skipping some steps and left a lot of ambiguity.
If you are ever searching for ideas to make a video out of: I'd love to see one that ports one little program to multiple different microcontrollers / boards to show the steps that need to be changed.
Or a video about using SPI to drive a simple peripheral - for example an 8x8 LED-Matrix. I tried the latter, but failed due to the MAX7219-crate potentially having some bugs.
Please continue to make these great, detailed videos. Tell us if you're in need of patreon subscriptions :-D
the into got me hooked
I don't know Rust and I don't write embedded software, but this video is amazing!
Pro content, respect.
I love your videos, keep going!
Thank you!! Awesome stuff
You make great content!!
Keep it coming 🔥🔥🔥
Loving your channel, great video!
Man, you’re gonna get big :)
Gotta love this guy ❤
The video is amazing, as is Rust and embedded capabilities. But like this one almost all the videos I've come across talks about blinky (I guess it's the Hello World equivalent for embedded).
Nevertheless I'd like to shift gears and utilize other peripherals like WiFi, Bluetooth, gyro etc. Can someone point me the direction? Where should I start?
Great video!! Thanks for sharing
Very very good breakdown of the various layers of abstraction in embedded Rust... "oxidation forms on the metal"... NICE!
My main take away from this is that the nRF52833 is quite a nice chip... sounds loads less over-complicated than the STM32s
STM32 has one of the best documentation out there. What do u mean over-complicated? Setting output pin is about setting THREE registers.
man i love this channel
I really loved this video and I hope to see more from you soon :)
One question: What is your workflow with music? Do you write it yourself or is there some nice software you use? Is it stock music that is just timed really well?
Thanks!
All the music is from Epidemic Sound, for now at least.. I think I'm burning through some of their best content at an alarming rate 😅 I try to find songs that fit the mood of the chapter or just sound cool & help carry the story forward, and try not to reuse tracks between videos. Editing is done in Final Cut Pro. We'll see how long I can continue making videos this way, but for now I'm really enjoying how they turn out 😀
Strong Opening
love when you drop a new video 😂
Awesome video!
Keep up the great work!!
Finally another video :))
Another great video!
awesome!
I've been starting my embedded (at least non Arduino IDE) journey with rust recently and decided to target the esp32 with std. I think in downloading the esp32 crates and reading through the basic tutorials to get it compiled I missed some of the underlining info this video had.
I have a question about the unsafe rust version.
Why did you write 1
Something I didn't mention (but probably should have) is that all of the pins default at reset to inputs, with a disconnected input buffer: they are basically floating, neither high nor low. In order for current to flow through the LED, it needs to see a high voltage on its anode side (row 1) and a low voltage on its cathode side (column 1). So we need to set both pins 21 and 28 as outputs. Only setting row 1 as an output and driving it high (3.3V) is not enough, as the circuit is left open without also grounding column 1 (0V). Hope that made sense!
@@therustybits I see so you set 28 to an output with setting 0x770 to 1 to avoid it being an input. So all in all both pins need to be outputs but we only toggle 21 high/low.
Yep! The line where we toggle the state of row 1/pin 21 is also setting all the other output pins low (0), which in this example is just column 1/pin 28.
@@therustybits Thanks for clearing things up! Keep up the great content btw!
Amazing
Excellent video ❤✝