As a professional Embedded Firmware Engineer, I would have killed to have this guy teach me when I started out.
@MrMillyBob
5 ай бұрын
Do I know rust? No Do I program embedded? No Did I throughly enjoy the video anywas? Absolutely!
@JulianBolivarGaleno74
4 ай бұрын
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!
@therustybits
4 ай бұрын
Thanks Julian!
@PtYt24
25 күн бұрын
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!!
@weiSane
4 ай бұрын
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 👌
@lxbtlxbt
Ай бұрын
"...Oxidation forms on the metal; so that's where we begin!"
@AleifrLeifrson
10 күн бұрын
These videos are an absolute joy to watch!
@Onyx-it8gk
4 ай бұрын
This is so cool!!! I just ordered my microbit. I'm sure you're busy, but hopefully you'll keep making these videos.
@simonakpoveso5022
3 ай бұрын
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
@TheEvertw
4 ай бұрын
This is a masterful video, HIGHLY recommended if you want to start with embedded Rust.
@rartero
Ай бұрын
I love how you structure the explanation of each video, thanks, very good job!
@nulltrope
Ай бұрын
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.
@alexdai_
Ай бұрын
Your video makes embedded dev so coool!
@PauloLuisFranchiniCasaretto
4 ай бұрын
Great content, and great production. The music is such a vibe
@neekonsaadat2532
4 ай бұрын
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!
@artificeindustries
2 ай бұрын
I’m really looking forward to more of these videos. Please keep them coming!
@nicholasmascioni3333
5 ай бұрын
Really high quality video, great job!
@cubedude76
Ай бұрын
wow this was an extremely well made video thanks!
@CyrilLEVIS
22 күн бұрын
Your videos are awesome, thanks a lot !
@alexs6986
5 ай бұрын
This is just phenomenal content
@Jon4as
5 ай бұрын
Very nice video! But waiting for the next one will be hard!
@WilliamWatkins-o6z
5 ай бұрын
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
@centameta8597
2 ай бұрын
See you soon, in each video, in each amazing work :)
@rammrras9683
3 ай бұрын
You found too many ways of blinking an LED and I found a great channel to follow!
@unaimillian
5 ай бұрын
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.
@homeape.
22 күн бұрын
this was super cool
@VladimirDjokic
5 ай бұрын
You were born to be a teacher!! Great Video!
@TheOmfg02
4 ай бұрын
Man, you’re gonna get big :)
@ybb_
4 ай бұрын
These vids are awesome, please do continue!
@skippy_oz
5 ай бұрын
Damn, these are good. Love the tone, love the rythm. Keep up the great work!
@Alexander_Sannikov
2 ай бұрын
you didn't explain how you set up the rust environment: build targets, cargo, etc.
@thebigswiss1239
4 ай бұрын
Thank you very much!!!!!
@peterklemenc6194
5 ай бұрын
Fascinating and educational, thank you!
@1vader
5 ай бұрын
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.
@arnetriesyoutube
4 ай бұрын
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!
@therustybits
4 ай бұрын
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 😀
@krauterbaguette3645
5 ай бұрын
love when you drop a new video 😂
@CanadaElon
4 ай бұрын
He is definitely a team leader ❤
@panagiotischagias4119
4 ай бұрын
awesome!
@jesusvelasco4893
4 ай бұрын
Amazing
@caleblaws7722
5 ай бұрын
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.
@BensProgrammingLab
4 ай бұрын
Hey, I really love your videos! Thanks for the videos! I wanted to ask if you could at some point also cover embedded Linux with rust?
@therustybits
4 ай бұрын
Possibly! Must admit that is not my wheelhouse: running on embedded Linux is probably going to more closely resemble a Rust program developed for your host machine (using `std`) than something that is highly resource-constrained like an MCU (using `no-std`). Would be interesting to investigate eventually though...
@chari_md
4 ай бұрын
what are you using to edit your videos? great work not only on the embedded side but also on the editing wow
@therustybits
4 ай бұрын
Thanks! Currently using Final Cut Pro for video editing.
@tomekmgr
5 ай бұрын
Fantastic!, thanks ❤
@jrmoulton
5 ай бұрын
So good!!
@PietPanzer
5 ай бұрын
Love ur content ❤
@НиколаевВасилий-н3б
Ай бұрын
Hello. I was trying to use stm32f103c8t6 instead of yous and got failed in the middle I guess. I'm kinda new in microelectronics programming so I tried to make it even cheaper at the beginning. That explains my choice of mentioned stm32. So when I try to use pac and execute cargo embed it gives me lld gives me linking error: ERROR(cortex-m-rt): The interrupt vectors are missing. Even I tried to change to arm-none-eabi-ld as it's been suggested I got the same error. Can you suggest me what to do next? If it's not implementing vector myself. Thank you for the videos!
@НиколаевВасилий-н3б
Ай бұрын
OK. I'm answering myself. This will be especially useful for people as wise as me. Just begin and don't bring any other projects inside. Anyway I still get error while flashing with probe-rs(embed): ERROR probe_rs::architecture::arm::core::armv7m: The core is in locked up status as a result of an unrecoverable exception STM32f103C8 Any suggestions would be helpful. In case you encounter it too. Use st-flash instead. It seems OK
@НиколаевВасилий-н3б
Ай бұрын
So. This that journey has completed now. I finally managed to connect and flash. Unfortunatelly don't now how. I suggest two things. Openocd somehow helpd me by connecting/diconnecting. Or it was just wires connection issue which took me a week of investigating. So now it is up and running and I'm good to go.
@halavich9672
2 ай бұрын
PACs are soooooo elegant in comparison to CMSIS. I just don't see any reason to work with HALs anymore
@cunningham.s_law
3 ай бұрын
can we use async in embeded?
@therustybits
3 ай бұрын
Yep! Check out the embassy project (embassy.dev/). Next video will cover concurrency & async in embedded Rust.
@muxweb5736
4 ай бұрын
Nice video thank you sir , I'm an embedded systems engineering student , I work with C it's straightforward for me , I didn't work with Rust before ... I don't work with HALs , I do the work from register level , am I just wasting my time ?
@ekon01cz
4 ай бұрын
No, you would be wasting time learning Rust. Don't worry.
@therustybits
4 ай бұрын
Nice! Nothing wrong with working with registers directly (in C or Rust); the HAL is just a way to work at a higher level of abstraction. Becoming proficient in C is a great way to learn low-level systems... but eventually you may find yourself wanting some of the things Rust has to offer (memory-safety, stronger type system, modern tooling, etc).
@thegougler
5 ай бұрын
After seeing this, I am curious about the government's desire to move from C to Rust. I think it is well intentioned but knowing how underfunded/underallocated those jobs can be, I think there will be a lot of defaulting to unsafe rust when things get difficult (where the benefits of rust would be most needed).
@therustybits
5 ай бұрын
Hoping that I can do my small part in providing useful/engaging educational content regarding how to do Rust "the right way"
@thegougler
5 ай бұрын
@@therustybits I think the video does a great job of that! My comment was more directed at people who think rust will be a magic fix for memory issues. It only works if people are willing to pay and wait for developers with the ability to achieve what you are showing.
@midnightfuture
5 ай бұрын
Bonus exercise for the class: make the “I ❤ Rust” message *scroll*! 😂🤓
@ChidleyITCompute
4 ай бұрын
I feel like I'm getting a little bit clever with every video.
@erewnoh
5 ай бұрын
First
@radar1437
5 ай бұрын
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 .❤❤
@therealjpster
5 ай бұрын
Long time Rust Embedded Working Group member and full-time Rust and Embedded Rust trainer here. This was so good. 10/10, no notes.
@therustybits
5 ай бұрын
Thanks!! 🙏
@jakubdavid2715
5 ай бұрын
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.
@kentbowling7513
5 ай бұрын
Great video, and cleared up some of the acronym salad I see I out there. Please keep it up.
@cqubemc4169
5 ай бұрын
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.
@therustybits
5 ай бұрын
Embassy/async videos coming…
@yondaime500
5 ай бұрын
Speaking of which, the embassy docs have an example that is the same idea as this video, called layer-by-layer.
@hnariman_
2 ай бұрын
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!!!
@dennisdecoene
4 ай бұрын
Third video and 13k subs. I think you hit the motherlode. Well done. Thank you for this content, hope you can keep going!
@NotherPleb
5 ай бұрын
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 :)
@ozanmuyes
2 ай бұрын
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?
@zactron1997
5 ай бұрын
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.
@AerialWaviator
4 ай бұрын
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.
@rotors_taker_0h
3 ай бұрын
You make it look too simple
@PlayerOne1999
5 ай бұрын
Finally this video pop out🎉🎉.
@lua-nya
13 сағат бұрын
Thank you for using code as part of explaining each abstraction layer, it truly helps.
@eliwhalen604
5 ай бұрын
Curious what the name of the book is on the table in the background haha
@therustybits
5 ай бұрын
Slowly making my way through “The Linux Programming Interface”…
@yperboreus
4 ай бұрын
Thanks for the vids so far, here’s to getting a lot more people into embedded!
@jakobgegeniger6793
3 ай бұрын
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.
@GradManiaZ-br9yv
19 күн бұрын
That joke would make more sense if rust wasn't named after a fungus
@themenon
Ай бұрын
Waiting for the next video! Clear and consice explanation!
@jackkendall6420
5 ай бұрын
Pro content, respect.
@enigmaticsaini
2 ай бұрын
Please make next video with QEMU.
@nilton61
5 ай бұрын
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
@justinw6978
4 ай бұрын
Thank you for another excellent video! :D
@yondaime500
5 ай бұрын
11:30 this is called the TypeState pattern, by the way.
@therustybits
5 ай бұрын
Typestate FTW! 🙌
@utubercj
3 ай бұрын
The video is awesome : it makes embedded rust fun to learn !
@FuadIsmail
5 ай бұрын
I knew this one's coming after the last one 😁 Already pre-liked the video! ❤
@AndyDuplain
3 ай бұрын
Fantastic information! Thank you!
@arniesneider7163
15 күн бұрын
I love your videos, keep going!
@KirylZhydalovich
3 ай бұрын
I can't wait for the next tutorial, the are so great!
@skinoma
4 ай бұрын
Finally another video :))
@slash.9882
5 ай бұрын
great video, glad to be watching part 2
@FedynaPavlo
5 ай бұрын
I guess my biggest problem with your videos is that they come out not that often. Otherwise, the best embedded tutorials so far!
@therustybits
5 ай бұрын
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 😂
@lohikarhu734
3 ай бұрын
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!
@pedromota7506
4 ай бұрын
Gotta love this guy ❤
@johncoleman5666
4 ай бұрын
May be a question showing my ignorance with Rust and Microcontrollers but, if we have 1 pin for 25 leds, is it still possible to light them all at the same time? Not just to the naked eye, but in real time as well?
@therustybits
4 ай бұрын
Generally speaking, if you want to independently control N LEDs, you’ll need N pins to control them, assuming you’re not using dedicated external hardware that is effectively doing this for you. In the case of the microbit, we only light up one row or 5 LEDs at a time, though we do use all 10 pins to do this: the row pin we are interested in is high (the others must be all low), then each column pin is either high (no voltage difference across LED, is off) or low (voltage difference across LED, is on). If you just want to light up all N LEDs at the same time and don’t need to individually control them, you can wire all their cathodes to ground (through resistors) and all their anodes to one pin, assuming it can handle the current requirements without dropping too much voltage. ⚡️🚨
@Earth_Rim_Roamer
5 ай бұрын
lets do Zig next
@fdm-monster
4 ай бұрын
I recommend people to take a look at Embassy. The concept in this video and the previous ones is great, but it is also very complicated. Just my 2 cents
@lohikarhu734
3 ай бұрын
What's "Embassy"?
@Kfoo-dj4md
5 ай бұрын
Could you please explain how can I change the state of an output pin from 2 different places in the code? Since it takes ownership of it
@therustybits
5 ай бұрын
For a system that isn't running other tasks (or trying to drive the output pin via interrupt), you could pass a mutable reference to the pin to a function, which could then set its output. Something like: `fn set_output(pin: &mut impl OutputPin, is_on: bool) { pin.set_state(PinState::from(is_on)).unwrap(); }` Then to call it: `set_output(&mut row1, is_on);`
@juanbeliz6296
5 ай бұрын
Cristal clear. Superb teacher...Thx for this serie of videos about embeded rust. Kudos
@IvanDeMarino
27 күн бұрын
Hey mate, what happened? I’m sure I speak for others: we would love to have more content. You are gifted! Hope you can back to this series.
@therustybits
26 күн бұрын
Here you go! kzitem.info/news/bejne/2KSfm5xrr3uBm4o
@IvanDeMarino
26 күн бұрын
@@therustybits I know. Thanks for doing this new video just for me :P
@lukasz_kostka
5 ай бұрын
Try to abstract different pins on different boards (and MCUs). Since everything is a struct field, you can't use type aliases. You are left with horrible macros hand writing them. It does satisfy borrow checker, however reality brutally proves this approach horrible.
@haydenridd
5 ай бұрын
What would your alternate approach be?
@lukasz_kostka
5 ай бұрын
@@haydenridd Type aliases. for example.
@descriptionsuchandsuch4709
5 ай бұрын
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
@rbsfinger
2 ай бұрын
" Oxidation forms on the metal." Dope. Subscribed.
@kv7622
4 ай бұрын
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.
@fluffy_tail4365
5 ай бұрын
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
@mikkelens
5 ай бұрын
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!
@LibreGlider
4 ай бұрын
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.
@yad-thaddag
5 ай бұрын
I don't know Rust and I don't write embedded software, but this video is amazing!
Пікірлер: 158