Blinking an LED: Embedded Rust ecosystem explored

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 ม.ค. 2025

ความคิดเห็น • 170

  • @chrisgriff1512
    @chrisgriff1512 9 หลายเดือนก่อน +145

    As a professional Embedded Firmware Engineer, I would have killed to have this guy teach me when I started out.

  • @MrMillyBob
    @MrMillyBob 9 หลายเดือนก่อน +135

    Do I know rust? No
    Do I program embedded? No
    Did I throughly enjoy the video anywas? Absolutely!

  • @therealjpster
    @therealjpster 9 หลายเดือนก่อน +64

    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
      @therustybits  9 หลายเดือนก่อน +2

      Thanks!! 🙏

  • @JulianBolivarGaleno74
    @JulianBolivarGaleno74 8 หลายเดือนก่อน +24

    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
      @therustybits  8 หลายเดือนก่อน +1

      Thanks Julian!

  • @jakubdavid2715
    @jakubdavid2715 9 หลายเดือนก่อน +19

    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.

  • @PtYt24
    @PtYt24 4 หลายเดือนก่อน +4

    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!!

  • @radar1437
    @radar1437 9 หลายเดือนก่อน +58

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

  • @HybridRobotix
    @HybridRobotix หลายเดือนก่อน +1

    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!

  • @hnariman_
    @hnariman_ 7 หลายเดือนก่อน +7

    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!!!

  • @lua-nya
    @lua-nya 4 หลายเดือนก่อน +1

    Thank you for using code as part of explaining each abstraction layer, it truly helps.

  • @LibreGlider
    @LibreGlider 8 หลายเดือนก่อน +1

    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.

  • @AerialWaviator
    @AerialWaviator 8 หลายเดือนก่อน +3

    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.

  • @kentbowling7513
    @kentbowling7513 9 หลายเดือนก่อน +13

    Great video, and cleared up some of the acronym salad I see I out there. Please keep it up.

  • @cqubemc4169
    @cqubemc4169 9 หลายเดือนก่อน +11

    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
      @therustybits  9 หลายเดือนก่อน +17

      Embassy/async videos coming…

    • @yondaime500
      @yondaime500 9 หลายเดือนก่อน +1

      Speaking of which, the embassy docs have an example that is the same idea as this video, called layer-by-layer.

  • @nulltrope
    @nulltrope 5 หลายเดือนก่อน +1

    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.

  • @dennisdecoene
    @dennisdecoene 8 หลายเดือนก่อน +4

    Third video and 13k subs. I think you hit the motherlode. Well done. Thank you for this content, hope you can keep going!

  • @rammrras9683
    @rammrras9683 8 หลายเดือนก่อน +1

    You found too many ways of blinking an LED and I found a great channel to follow!

  • @TheEvertw
    @TheEvertw 8 หลายเดือนก่อน +1

    This is a masterful video, HIGHLY recommended if you want to start with embedded Rust.

  • @weiSane
    @weiSane 8 หลายเดือนก่อน +3

    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 👌

  • @yosiaagustadewa
    @yosiaagustadewa 3 หลายเดือนก่อน

    Please make a bootcamp course for us, i love the way you tech rust easily

  • @alexitosworld
    @alexitosworld 3 หลายเดือนก่อน

    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! 🎉

  • @juanbeliz6296
    @juanbeliz6296 9 หลายเดือนก่อน +7

    Cristal clear. Superb teacher...Thx for this serie of videos about embeded rust. Kudos

  • @lxbtlxbt
    @lxbtlxbt 5 หลายเดือนก่อน +5

    "...Oxidation forms on the metal; so that's where we begin!"

  • @NotherPleb
    @NotherPleb 9 หลายเดือนก่อน +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 :)

  • @zactron1997
    @zactron1997 9 หลายเดือนก่อน +4

    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.

  • @AleifrLeifrson
    @AleifrLeifrson 4 หลายเดือนก่อน

    These videos are an absolute joy to watch!

  • @Onyx-it8gk
    @Onyx-it8gk 8 หลายเดือนก่อน +2

    This is so cool!!! I just ordered my microbit. I'm sure you're busy, but hopefully you'll keep making these videos.

  • @rartero
    @rartero 5 หลายเดือนก่อน +1

    I love how you structure the explanation of each video, thanks, very good job!

  • @yperboreus
    @yperboreus 8 หลายเดือนก่อน +1

    Thanks for the vids so far, here’s to getting a lot more people into embedded!

  • @simonakpoveso5022
    @simonakpoveso5022 7 หลายเดือนก่อน

    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

  • @alexdai_
    @alexdai_ 5 หลายเดือนก่อน

    Your video makes embedded dev so coool!

  • @rbsfinger
    @rbsfinger 6 หลายเดือนก่อน

    " Oxidation forms on the metal." Dope. Subscribed.

  • @artificeindustries
    @artificeindustries 6 หลายเดือนก่อน

    I’m really looking forward to more of these videos. Please keep them coming!

  • @themenon
    @themenon 5 หลายเดือนก่อน

    Waiting for the next video! Clear and consice explanation!

  • @timello
    @timello หลายเดือนก่อน

    Amazing video! Fantastic quality.

  • @kv7622
    @kv7622 9 หลายเดือนก่อน

    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.

  • @michaelsandman1757
    @michaelsandman1757 หลายเดือนก่อน

    Thanks!

    • @therustybits
      @therustybits  หลายเดือนก่อน

      Thanks again! 😊

  • @utubercj
    @utubercj 7 หลายเดือนก่อน

    The video is awesome : it makes embedded rust fun to learn !

  • @nicholasmascioni3333
    @nicholasmascioni3333 9 หลายเดือนก่อน +1

    Really high quality video, great job!

  • @alexs6986
    @alexs6986 9 หลายเดือนก่อน +2

    This is just phenomenal content

  • @neekonsaadat2532
    @neekonsaadat2532 8 หลายเดือนก่อน

    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!

  • @jakobgegeniger6793
    @jakobgegeniger6793 7 หลายเดือนก่อน

    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.

  • @CanadaElon
    @CanadaElon 9 หลายเดือนก่อน

    He is definitely a team leader ❤

  • @yondaime500
    @yondaime500 9 หลายเดือนก่อน +2

    11:30 this is called the TypeState pattern, by the way.

    • @therustybits
      @therustybits  9 หลายเดือนก่อน +2

      Typestate FTW! 🙌

  • @nilton61
    @nilton61 9 หลายเดือนก่อน +1

    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

  • @mikkelens
    @mikkelens 9 หลายเดือนก่อน

    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!

  • @PauloLuisFranchiniCasaretto
    @PauloLuisFranchiniCasaretto 8 หลายเดือนก่อน

    Great content, and great production. The music is such a vibe

  • @j-p-d-e-v
    @j-p-d-e-v 9 หลายเดือนก่อน

    I started studying embedded rust last saturday and did this blinky exercise. Rooting for more of your videos in the future. Great content!.

  • @KirylZhydalovich
    @KirylZhydalovich 7 หลายเดือนก่อน

    I can't wait for the next tutorial, the are so great!

  • @VladimirDjokic
    @VladimirDjokic 9 หลายเดือนก่อน

    You were born to be a teacher!! Great Video!

  • @slash.9882
    @slash.9882 9 หลายเดือนก่อน +1

    great video, glad to be watching part 2

  • @WilliamWatkins-o6z
    @WilliamWatkins-o6z 9 หลายเดือนก่อน

    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

  • @sebastianestay
    @sebastianestay 2 หลายเดือนก่อน

    This is gold, thank you

  • @AndyDuplain
    @AndyDuplain 7 หลายเดือนก่อน

    Fantastic information! Thank you!

  • @justinw6978
    @justinw6978 8 หลายเดือนก่อน

    Thank you for another excellent video! :D

  • @CyrilLEVIS
    @CyrilLEVIS 4 หลายเดือนก่อน

    Your videos are awesome, thanks a lot !

  • @ivanlazepnyi
    @ivanlazepnyi หลายเดือนก่อน

    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.

  • @skippy_oz
    @skippy_oz 9 หลายเดือนก่อน

    Damn, these are good. Love the tone, love the rythm. Keep up the great work!

  • @mannycalavera121
    @mannycalavera121 9 หลายเดือนก่อน

    Superb videos. Clear, concise, beautiful.

  • @Ramiprops
    @Ramiprops 9 หลายเดือนก่อน

    Another video, another banger. Keep up the good work!

  • @unaimillian
    @unaimillian 9 หลายเดือนก่อน

    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.

  • @PlayerOne1999
    @PlayerOne1999 9 หลายเดือนก่อน +3

    Finally this video pop out🎉🎉.

  • @fluffy_tail4365
    @fluffy_tail4365 9 หลายเดือนก่อน

    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

  • @Jon4as
    @Jon4as 9 หลายเดือนก่อน +1

    Very nice video!
    But waiting for the next one will be hard!

  • @ybb_
    @ybb_ 8 หลายเดือนก่อน

    These vids are awesome, please do continue!

  • @centameta8597
    @centameta8597 6 หลายเดือนก่อน

    See you soon, in each video, in each amazing work :)

  • @cubedude76
    @cubedude76 5 หลายเดือนก่อน

    wow this was an extremely well made video thanks!

  • @1vader
    @1vader 9 หลายเดือนก่อน

    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.

  • @FuadIsmail
    @FuadIsmail 9 หลายเดือนก่อน +1

    I knew this one's coming after the last one 😁 Already pre-liked the video! ❤

  • @FedynaPavlo
    @FedynaPavlo 9 หลายเดือนก่อน +1

    I guess my biggest problem with your videos is that they come out not that often. Otherwise, the best embedded tutorials so far!

    • @therustybits
      @therustybits  9 หลายเดือนก่อน +2

      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
      @lohikarhu734 7 หลายเดือนก่อน

      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!

  • @thebigswiss1239
    @thebigswiss1239 8 หลายเดือนก่อน

    Thank you very much!!!!!

  • @peterklemenc6194
    @peterklemenc6194 9 หลายเดือนก่อน

    Fascinating and educational, thank you!

  • @andrewrussellmalcolm
    @andrewrussellmalcolm 9 หลายเดือนก่อน

    Great video. I'm off to try some of these approaches on my stm32 projects😊

  • @homeape.
    @homeape. 4 หลายเดือนก่อน

    this was super cool

  • @descriptionsuchandsuch4709
    @descriptionsuchandsuch4709 9 หลายเดือนก่อน

    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

  • @Saturate0806
    @Saturate0806 8 หลายเดือนก่อน

    the into got me hooked

  • @yad-thaddag
    @yad-thaddag 9 หลายเดือนก่อน

    I don't know Rust and I don't write embedded software, but this video is amazing!

  • @jackkendall6420
    @jackkendall6420 9 หลายเดือนก่อน +1

    Pro content, respect.

  • @arniesneider7163
    @arniesneider7163 4 หลายเดือนก่อน

    I love your videos, keep going!

  • @dymastro788
    @dymastro788 8 หลายเดือนก่อน

    Thank you!! Awesome stuff

  • @luqasc1
    @luqasc1 9 หลายเดือนก่อน

    You make great content!!
    Keep it coming 🔥🔥🔥

  • @sluagh5534
    @sluagh5534 9 หลายเดือนก่อน

    Loving your channel, great video!

  • @TheOmfg02
    @TheOmfg02 8 หลายเดือนก่อน

    Man, you’re gonna get big :)

  • @pedromota7506
    @pedromota7506 9 หลายเดือนก่อน

    Gotta love this guy ❤

  • @ozanmuyes
    @ozanmuyes 6 หลายเดือนก่อน +1

    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?

  • @miguelfrutos8738
    @miguelfrutos8738 9 หลายเดือนก่อน

    Great video!! Thanks for sharing

  • @edgeeffect
    @edgeeffect 9 หลายเดือนก่อน

    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

    • @ekon01cz
      @ekon01cz 9 หลายเดือนก่อน

      STM32 has one of the best documentation out there. What do u mean over-complicated? Setting output pin is about setting THREE registers.

  • @hemlobrypto
    @hemlobrypto 9 หลายเดือนก่อน

    man i love this channel

  • @arnetriesyoutube
    @arnetriesyoutube 8 หลายเดือนก่อน

    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
      @therustybits  8 หลายเดือนก่อน

      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 😀

  • @johnwu5908
    @johnwu5908 9 หลายเดือนก่อน

    Strong Opening

  • @krauterbaguette3645
    @krauterbaguette3645 9 หลายเดือนก่อน

    love when you drop a new video 😂

  • @reinhardtvonbrandis3760
    @reinhardtvonbrandis3760 9 หลายเดือนก่อน

    Awesome video!

  • @lefran229
    @lefran229 9 หลายเดือนก่อน

    Keep up the great work!!

  • @skinoma
    @skinoma 8 หลายเดือนก่อน

    Finally another video :))

  • @drew-koning
    @drew-koning 9 หลายเดือนก่อน

    Another great video!

  • @panagiotischagias4119
    @panagiotischagias4119 8 หลายเดือนก่อน

    awesome!

  • @StayCHilL24
    @StayCHilL24 9 หลายเดือนก่อน

    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.

  • @Daww7l07Zcb
    @Daww7l07Zcb 8 หลายเดือนก่อน

    I have a question about the unsafe rust version.
    Why did you write 1

    • @therustybits
      @therustybits  8 หลายเดือนก่อน

      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!

    • @Daww7l07Zcb
      @Daww7l07Zcb 8 หลายเดือนก่อน

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

    • @therustybits
      @therustybits  8 หลายเดือนก่อน +1

      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.

    • @Daww7l07Zcb
      @Daww7l07Zcb 8 หลายเดือนก่อน

      @@therustybits Thanks for clearing things up! Keep up the great content btw!

  • @jesusvelasco4893
    @jesusvelasco4893 8 หลายเดือนก่อน

    Amazing

  • @Polynuttery
    @Polynuttery วันที่ผ่านมา

    Excellent video ❤✝