Home > On-Demand Archives > Theatre Talks >

Beyond Arduino: Now what?

Mitch Davis - Watch Now - EOC 2021 - Duration: 13:24

Arduino is an incredibly popular way for beginners to be introduced to microcontrollers, but leaving the Arduino ecosystem can be quite scary. This presentation is directed at beginners AND experienced embedded engineers. It focuses on what it feels like to learn new microcontrollers beyond Arduino, and where you can go to find answers when you run out of youtube videos, books, and tutorials.
M↓ MARKDOWN HELP
italicssurround text with
*asterisks*
boldsurround text with
**two asterisks**
hyperlink
[hyperlink](https://example.com)
or just a bare URL
code
surround text with
`backticks`
strikethroughsurround text with
~~two tilde characters~~
quote
prefix with
>

Chris_C
Score: 0 | 2 years ago | no reply

Excellent talk, Mitch! As someone earlier in their embedded career and with a background / education in other areas of engineering, this has been the question on my mind since I started tinkering with Arduino and Raspberry Pi - how do I move this to a more professional skillset? I think you did a great job answering that question here, and now that I have professional embedded experience, I think your advice is spot on. Thanks again, and much appreciated!

Pradeepa
Score: 1 | 4 years ago | 1 reply

Great talk Mitch! Every year I do some technical talks about embedded systems to undergrads and everyyear during Q&A someone asks 'what do you think about Arduino?'. The way that you sort of broken down why people use Arduino is great and now I can answer that question really well.
Good job! (I absolutely love short effective videos)

MitchSpeaker
Score: 0 | 4 years ago | no reply

I?m glad to hear it was helpful. Just curious, what sort of topics do you speak about to undergrads?

SimonSmith
Score: 2 | 4 years ago | 1 reply

Thankyou. I?m the opposite, from the STM32 world and knowing nothing about the Arduino!

MitchSpeaker
Score: 0 | 4 years ago | 1 reply

That?s awesome. How did you first learn it? Was it school, on-the-job, or self-taught?

SimonSmith
Score: 0 | 4 years ago | no reply

On the job. CubeMX helps put much of the skeleton code in place.

Naveen_Shankar
Score: 0 | 4 years ago | 1 reply

That was really interesting. But a very short talk (not for a single take though ;-)). I am exploring building embedded applications with STM and NXP microcontrollers and your suggestions make complete sense. I tried a little with compiler optimisations in the Arduino IDE but did not achieve much success.
I am not so good in working with linker scripts and exploring other optimisation techniques, its a long learning process. Thank you!

MitchSpeaker
Score: 0 | 4 years ago | no reply

I like to keep my videos bit-sized, and avoid any unnecessary fluff. Most of my technical videos are 20-30 mins long, but this was a tad shorter since I didn't want to jump into a tutorial of "how to use any microcontroller". After seeing other talks on here, it seems I'm certainly the shortest one. Oh well.
Have fun with your adventures in STM and NXP. I know STM fairly well, but I haven't had a chance to play around with any NXP micros yet.

billionai
Score: 0 | 4 years ago | 1 reply

Great talk! I used to do this in a less organized fashion already, but seeing it laid out so clearly will probably help me out a lot going forward

MitchSpeaker
Score: 0 | 4 years ago | 1 reply

Thanks! Just curious, what do you mean that you used to do this in a less organized fashion? Reading datasheets, learning by breaking things down one step at a time, or something else?

billionai
Score: 0 | 4 years ago | no reply

I meant "this" as in reimplementing the same thing in a new way. I haven't done much with embedded yet, but whenever I got into a new programming language, I'd redo an old project in the new way to see what's the same, what's different and when I should choose one or the other. Embedded never felt like something I could do it, though, because of the amount of jargon. Glad to know it works :)

JLangbridge
Score: 0 | 4 years ago | 1 reply

As someone who used to write datasheets for a living, this made me smile. As a lecturer, this is an eye-opener for me. Now I know what to write. Many thanks for sharing!

MitchSpeaker
Score: 0 | 4 years ago | 1 reply

Writing datasheets sounds like it would be incredibly difficult. It's no easy task to take something highly complex and write it out in a way that makes sense to the reader without diluting any necessary technical information. Thanks!

JLangbridge
Score: 0 | 4 years ago | no reply

I have a further question. Is there any way I can contact you? I'm trying to create a course that targets this specific field, and I'd really appreciate your input on this subject, on what parts were frightening, what unexpected things you went through, etc.

malreverse
Score: 0 | 4 years ago | 1 reply

Thank you! I admire how you look at things going beyond what seems like "the easy route". I'm betting there are a handful of people like you who really start to understand how microcontrollers work inside and out? Again, great job!

MitchSpeaker
Score: 0 | 4 years ago | no reply

Thanks! I spend a lot of time tearing down microcontrollers to see how they tick, but then I almost end up going back to the high-level stuff because it's much more practical. It certainly makes it easier to jump from chip to chip, and why different manufacturers take different design approaches.

TimGuite
Score: 0 | 4 years ago | 1 reply

Hey Mitch, Great video! Thanks for sharing! I think you did a great job breaking it down. I learnt on a mix of Raspberry Pi and Arduino a few years ago, and I think there is still a big chasm between what you can do with a dev board and a tutorial, and getting something up and running from scratch. This isn't confined to embedded - people doing web development, AI, and the rest all have similar problems. Everything we can do to explain how to move on is great and I will definitely check out your Youtube channel. If there's anyone here who likes their Arduino and wants a step in between the Arduino IDE and bare metal, there is a new tool called Arduino CLI. I've made a video about what it is and why you might want to use it (https://youtu.be/Uk5_RKMf2Dk) as well as how to get set up from scratch (https://youtu.be/oXWGsVfYS6k)

MitchSpeaker
Score: 0 | 4 years ago | 1 reply

I'll have to add this to my list of things to learn. Arduino also released a new IDE that's actually an IDE, but I still haven't gotten a chance to play with it yet. I was just about to ask you a few questions about why you'd use the Arduino CLI, but it sounds like your video should answer that. Thanks!

TimGuite
Score: 0 | 4 years ago | no reply

Yea I haven't played with Arduino IDE 2.0 either. The nice thing about the CLI tool is that it answers both of the questions: "What next?" and "I am experienced enough to know that Arduino will get the job done quickly for this job (prototyping or testing tool), how can I make it reliable over a long period of time?". For beginners, just typing things on the command line will feel like a big step forward, and is part of a natural progression towards avr-gcc, linkers, Makefiles and all the rest. For The experienced, it provides at least some dependency management, potential for unit testing and CI, and access to your own IDE :) I think it is a pretty useful tool and stepping stone.

Having said all that, there is a definite need for more resources to bridge the gap between the hobby and industrial market for embedded. Sounds like your videos do a great job of that and I'm hoping I can contribute as well!

EbeamBobD
Score: 0 | 4 years ago | 1 reply

Microchip sells a dev board (about $10) for the ATmega328PB with provisions for Arduino-shield-compatible headers that has another microcontroller on it acting as a debug interface (they call it their mEDBG); the ATmega328PB-XMINI (the X stands for eXplained). This lets you do "traditional" debugging (breakpoints, single stepping, memory view, etc.) in the Atmel Studio; a big step up from "printf" debugging on the Arduino. I think this is another alternative to taking the chip off the Uno and putting it on a prototyping plugboard.

MitchSpeaker
Score: 0 | 4 years ago | no reply

That's interesting, I've never used this before. At first glance, this seems like a REAL development board for ATMEGA328's. That being said, there's still something satisfying about pulling a chip off an arduino and watching it run on a breadboard. However, as soon as you try to do anything practical, it gets messy really fast. At that point, I'd probably switch to something like the XMINI

DaveK
Score: 1 | 4 years ago | 1 reply

I think you are totally correct about datasheets. I took a course on digital logic decades ago and the first thing the instructor said was "I bet you thought you were going to learn about digital logic in this course. Well, guess what - I'm going to teach you how to read datasheets. Knowing that, you can teach yourself about digital logic". That was a very valuable lesson and has served me well all these years.

MitchSpeaker
Score: 0 | 4 years ago | no reply

Being able to read datasheets is indescribably helpful. I?m actualy really glad I?ve been reading STM32 datasheets recently because this microcontroller shortage is forcing me to use some obscure chips. Spent all day yesterday reading the reference manual, and I?m about to continue today.

nathancharlesjones
Score: 0 | 4 years ago | 1 reply

Thanks for the talk, Mitch! This is a topic that needs more attention and I love that you're producing content in this area. Keep it up! I had a moment in grad school where I realized that although I was getting my master's degree in computer engineering, I had no idea how to build any projects without a $20 development board. I spent a year working on an independent study to try and remedy that. I was already armed with that "base level of understanding", which helped, but I learned WAY more by simply picking a bunch of new microcontrollers and experimenting until I could blink an LED. It was a highly rewarding experience and I recommend folks follow your advice and do something similar: take something close to what you know (i.e. Arduino) and find a way to make it work in a slightly different way. I wrote up the things I learned here in the hopes that it might help someone else.

MitchSpeaker
Score: 0 | 4 years ago | no reply

Thanks! I'm glad to hear I wasn't the only one. I was mostly self-taught (and also learned on-the-job). Arduino made everything seem easy, so I figured it wouldn't be hard to try other things as well. That's when I realized how much of an impact the community has on a product line. On paper, other microcontrollers were WAYY better, but they're much harder to learn if you don't know what you're doing.
That github link looks really cool. You've put an incredible amount of work into documenting your knowledge, and stuff like that is a goldmine for anyone trying to do something similar. I spend a lot of time reading through people's wikis/repos to see what's out there.

mariner
Score: 0 | 4 years ago | 1 reply

I'll date myself. Arduino did not exist, it was a Tattletale by Onset Computer which I first really built something with, sort of the Arduino of its day. I went off away from hardware work for a decade, now have some full circle and now want to learn the STM32, staying in the open source world if possible.

MitchSpeaker
Score: 0 | 4 years ago | 1 reply

When you're learning new stuff, do you use all the fancy high-level IDEs, or do you like to stick closer to bare metal? I'm always curious to see what people think about the direction that some microcontrollers are moving in.

mariner
Score: 0 | 4 years ago | no reply

I am at this conference to figure that out. I would like to learn fewer things well.

acarvalho
Score: 0 | 4 years ago | 1 reply

Sometimes you get thrown into the tar pit and never really see the gap between beginning with an Arduino and working directly with uControllers. Thank you for your talk, I think it really helps to bridge the gap.

MitchSpeaker
Score: 0 | 4 years ago | no reply

Thanks for the feedback. I often find myself wondering what is happening behind the scenes, and after figuring out how it works, I go back to the high-level stuff. It certainly helps understanding the seemingly weird design choices that people make

WD
Score: 0 | 4 years ago | 1 reply

Love the video. Going back to the beginning and teach fundamentals is much harder that it looks like if you really want to help people out. Which is exactly what you're doing on your you tube channel. Keep up with the great work Mitch.

MitchSpeaker
Score: 0 | 4 years ago | no reply

Thanks for the kind words. I certainly don't have as much experience as most of the people who are here watching / making videos for this conference, but I'm still trying my best to create some well-planned content for people trying to learn. Most of my inspiration to get involved was fueled by frustration due to inconsistent or nonexistent tutorials. I hope other people do the same.

MitchSpeaker
Score: 1 | 4 years ago | no reply

Hey everyone, I hope you enjoy this 13-min talk on moving beyond Arduino.

If you were introduced to the world of embedded through Arduino, let me know in the comments. If you have already gone beyond Arduino, I?d love to hear what route you took, and what challenges you faced along the way.

OUR SPONSORS

OUR PARTNERS