Sorry for the lag in videos. Life's been crazy busy. Hopefully, I'll be able to post more regularly in the coming weeks. And, if any of you are worrying about how dark this one was...I know. My filming setup here in Botswana is quite limited, and I was racing the setting sun after work.
@@indiradendukuri2821Probably. It's all a matter of time for me. I make youtube videos on the side when I have a little extra time. There's never as much time as I would like for this. So, yes, an RTOS video is probably in my future, but it might be a few months. My first embedded systems videos will, I'm sure, focus more on the basics.
Hi Jacob. Thank you for the information. I am thinking about earning my associate's degree in Robotics & Embbeded Systems. I am interested in Robotics due to cosplay Ironman suits. I would like to reinvent the wheel buy developing a suit a for the medical field.
Thanks for the awesome content, I hope you decide to keep the Embedded stuff coming! I’m a CS grad w about 9 months in Industry. This stuff is hard to learn on your own but it has been a blast! Quality content is gold when going about this solo!!
I just got into embedded systems about a month ago. I already have prior experience with C so I decided to skip the Arduino route and start writing code for the STM32 family. I've tried a couple other microcontrollers but I'm loving STM32 so far. It's been a little difficult at first since I had no guide, I was kind of messing around for a couple weeks trying to understand everything but now I'm at a point where I can write some useful software I can use in real life.
@@LRflex Do you mean project-wise or how I learned to write code for them? Project-wise I just made stuff I thought was fun, like a simple controller for a game which was really just a 5-button keyboard or a simple physical calculator. For code, I just spent a lot of time reading the data sheets and at first used STM32Cube but later just used template makefiles and wrote a lot of code “manually” where I only defined the addresses I was going to use and created simple functions that activated GPIO or timers depending on the project
C's importance is underplayed here! Even if the JVM was available, C would still be a better choice. The capability to have full, and direct control over the hardware, in addition to having little to no natural overhead.
@@zoeherriot Is there a specific example of where it would be more efficient to run code on a virtual machine rather than just directly feed machine code to the processor when working on embedded systems?
0:45 we did have microcontroller class in my highschool! Granted it was pretty basic arduino class and it was technical highschool but still was my favorite
Great video, thank you, Mr. Jacob, for starting a new session of Embedded Systems that will help a lot of us to learn, understand and deal with Embedded Systems filed.
8:10 TBH i would recommend to watch Ben Eater BreadBoard computer series, it isn't about embedded systems but building simple computer from scratch but after that and few other thing after looking at Attiny13a block diagram yesterday day or something, i felt like at home... patrological one but still home.
@@nonnullptrhuman504 Yes, but i run into issues with interrupts on my setup so for now i'm working on other things and hopefuly i will try again in near time
Your content always amazes me as a cs student. It’s always rich and straight to the point, I almost can’t imagine it’s free. Idk if anyone pointed that out but I really appreciate it.
how interesting is this? I subscribed to your channel because of learning C in university at the beginning of 2022. Now, I find my direction and want to be an embedded system engineer see your video again, in embedded system
if you want to go professional, would go straight for cortex-m, most other are kind of deprecated by it. And learning ATMEGA today is like learning to program for DOS
@@dolby360I don't know, How should I start? Currently, I'm learning C++. What should I do after c++? Are there any books or courses which can be helpful in my journey?
damn that great man! In my electronics and communication degree we have embedded systems course in the sixth semester. Basically those of us who are interested have to do projects/online courses because obviously 3 years into ECE degree is already too late to get into embedded systems.
Thanks a lot for this video, Sir. It helped to solve lots of my doubts. I love embedded systems programming and I am from Computer science engineering. I will get a raspberry pi this week.
Would really love to see videos addressing data structures and algorithms as applied to constrained embedded devices. Really tired all the videos/books on high-level software principles that totally ignore embedded environments. Lets start with systems where no heap and no dynamic memory allocation are allowed. Lets apply some critical thinking on how we can improve programming in this environment. Embedded devices are not going away.
I am starting a certificate program in Embedded Systems Engineering at the University of California system, and the choice of micro-controller for the program is the STM32L4. Tell me the pros and cons, and what I can expect in terms of learning, ease and job market relevance.
I didn't even know what an embedded system is until i watched this video. Can't say i understand it fully but at least i got some info about this topic thanks to this guy!
Clang is great for bare metal development and now you can use it for AVR :). LLDB on bare metal does not exist unless you write python stub to have "thread context", so GDB still is the easiest choice to have debugging of embedded systems
There are some RTOS (real time operating systems) out there. A few extremely popular ones are: ZephyrOS, FreeRTOS (Inc Amazon version) RIOT as well as a number of good SDKs from silicon manufacturers.
If you're willing to spend a little money, I can recommend two things. 1. Is the dsPIC line of microcontrollers from Microchip. Their Explorer kits come with breakout boards and swappable processors. The dsPIC33 family is quite nice. 2. Get into SoC (Sytem On Chip) boards like NXP's sabrelite (I think it's called something else now) but essentially it runs Yocto Linux and will give you ability to do embedded Linux on a breakout board like a raspberry Pi but more inline with what you may see in automotive or more advanced systems.
Will you please ... please, do a series on embedded systems? Embedded Systems is what I want to do. It is extremely important to me. Please, if you can find the time I am sure that there are hundreds if not thousands of people who feel the same as I do about this topic.
That would be cool. That would be a bit more involved than my usual video. So, probably not going to happen in the next month, but I'll see what I can do. Thanks.
Could you please make a video on Careers in embedded systems? Can there be freelance embedded engineers? Do you have any information on embedded hardware development and the skill sets required to learn them?
When you said we can find a C/C++ compiler for almost every microprocessor in the market......... ......from my experience, the C/C++ compilers are actually running inside the IDE of the particular processor that we bought. This IDE is running on my desktop. So basically for every piece of code, i turn it to some machine level code and download it on the microprocessor. We can also use higher level languages to code too.
Any language that is first compiled to C (or that you have a cross compiler for), can then be compiled for your microcontroller. But some high-level languages (ruby, python) require an interpreter that runs on the microcontroller. And, on some microcontrollers that can be a challenge due to memory and computational power constraints.
Ok. So if we write codes for Microcontrollers in a particular language which when compiled converts to C, then that is not a problem. is there any programming language that compiles to C?
@@shamikchakraborty3341 Nearly all compiled programming languages use either C or Assembly as an intermediate step on their way to creating a binary executable. But, it's not a product of the language, as much as how the compiler writer decided to design the compiler. I would guess that g++ uses gcc in an intermediate stage. I believe LLVM has its own custom intermediate language. I would guess that Rust uses C as an intermediate. I really don't know about the functional languages like Haskell. But, the point is that two different Haskell compilers could do it differently-one could compile to ASM and then to executable code, or it could use C as an intermediate step. Or, I suppose it could just skip the middle man and generate binary code, but that would just be too much work with no benefit.
but none of the learn C tutorials seem to cover much related to microcontrollers? can you recommend any? my current interest is in making intelligent remote controllers for hub motors with lora and voice commands sure arduino been around for a while but STM32 is so cheap and powerful and it's used everywhere, doesn't it make sense to use that platform? The nucleo boards are pretty cheap too
I had started with AVR chips and then quickly moved on to ARM M4 microcontrollers.Those provided by STMicroelectronics are cheap and has a lot of features to play with.
Im serious to learn C. Im from architecture. The future is saying, u need to learn Programming language as basic skill. Robotics, AI in the future ahead
I have learned C programming but I need some practice to make my skill on C sharp. Besides, I need to know what kind of problems I might face in Embedded Systems. I have been doing web development using PHP and WordPress plus some article writing, I am not enjoying what I am doing at the moment and I do enjoy coding in C. Can you suggest to me a good website or a book where I can get tutorials on C and Embedded Systems also practice on various C and Embedded Systems problems? I am trying to build my career in Embedded systems. Have a good day.
I am a Java programmer and Mobile App Developer. I'm curious, for example, can i use C to program outputs on most PLC like Schneider or Simens or some CNC industrial machines, like i can use Arduino language to program outputs on an Arduino mc? I would like to learn more about this and what language is the best for this type of embedded programming.
Professor, i'd appreciate some advice. I'm currently third year CS student and i took Embedded systems course this semester just to try it out. It's one of my favorite courses so far and i'm really thinking about it as a career path. (we are using arduino) However, i'm not sure how to justify 2 more years of only software work that's gonna take up much of my precious time to get really good at this stuff, realistically i could work on it after school work maybe for 1-2 hours on most days. I don't have any digital signaling course or anything like that, Operating systems and Computer architecture is the closest thing i've had to this. Couple of questions: 1. How do CS majors do in this field? (I'm eager to learn deeply like you proposed) 2. Am i in a tight spot with this background regarding embedded systems? I'd hate to only be able to focus on it when i graduate. 3. I have this idea of slowly making turning my house into a smart house, however i don't really have any frame of reference of how much it would take to get required skillset and what are all the things i need to know for stuff like this? (Turning on lights and locking doors from mobile app etc.) My C is solid at least. :) Any advice is appreciated!!!
Not sure how I missed this comment, 8 months ago. 1) I was a CS major, and I've done fine. I did have to learn some stuff about circuits and electricity on my own, but it wasn't too difficult. More generally, the students I hire in my lab are usually CS majors or EE/CE majors. In both cases, there is a learning curve. I have tried to structure my lab so that lab members help train each other in the areas they're weak in. It works pretty well. 2) That's hard to say. I'd say, if you want to do it, do it. 2 hours a day is more than most spend on it, and it's better than nothing. How long it will take you to be great at it will depend on you - it's really hard to predict without knowing a lot more about you. 3) Sounds like a fun project. My advice is to start small. Learn to program a microcontroller. Then learn how to interface with stuff (like a sensor or an actuator that could lock a door). Explore wireless communication techniques. Working small-to-large like this, will help you do something useful, even if you don't make it all the way to the full DIY smart home, before running out of time, money, and patience Solid C is a good starting point. Best of luck.
Just wondering, I have a CE Bachelor’s degree and I’m currently pursuing a Programming Associate’s. Could I land an Embedded Systems job with these degrees and which companies do I look at?
This is the first video I selected in searching for info on creating code for usb drives. With that said, if I'm still off topic, I'm still asking my question here. Lol. Where would I start for learning how to code usb drives (your every day memory flash, thumb drive). I'm working on pentesting my virtual lab, and also screwing with friends. Lol. Thanks!
I'm not sure what you mean by "coding usb drives". Are you wanting to basically write malware that you would store on a USB drive and try to infect your friends' machines?
great video, I have a question though. I'm learning embedded systems right now using ATMEL SAM and STM32 microcontrollers and I just don't know which one to stick to till the end. Do you have any suggestions? PS: I'm an electrical engineering student and I'm learning this stuff by my self.
It's going to depend on what you need them to do, but I agree that it wouldn't hurt to learn both. Most things we do with one MCU translate pretty well to another. And, seeing how things are done on two chips will probably help you see pretty quickly which one you like best.
I know you are not a big fan of IDEs but do you have any opinion on PlatformIO? I have had some early success with it and it covers many platforms (but not TI).
I don't have personal experience with it, but I've heard good things. It's on my list of things to check out when I find the time. And, it looks (from their website) like they do support the MSP430. docs.platformio.org/en/latest/boards/timsp430/lpmsp430fr5994.html
Personally I want to learn c++ and I want to go to a trade school and learn communications electronics. So I want to learn about circuit boards, and signal waves and that sort of stuff.
Did you ever consider to use ++i over i++ in situations where it doesn't matter which one to actually have to use (e.. for loop), because of the not so optimizing C compiler for the embedded systems?
Yeah I'm trying to think of actual applications of this. The only one that comes to mind is if you're wanting to display something before it changes and then increment it for the next iteration
I have a question not actually related to this topic but should a beginner university student who is more interested in embedded systems more than web developing, learn html, css for 1 year? Or shouldn't I strive on them that much. I learnt C last term. Unexpectedly I joined a web developing team of a club in my uni. I'm thinking a lot about quitting it. Really would like to see your thoughts. Thank u.
Hello Jacob, I've been working on small scale sensors for the last 7 years as a technologist and my urge to make the jump into embedded systems has always been growing. I've really struggled to make the leap into embedded systems as it feels like a world of its own. These videos are very useful. We use various systems at work but generally it is using C and Xilinx. is Xilinx common and a good one to get started (taking the second option)? I found arduino does too much for me and have struggled to go from Arduino to Xilinx.
By Xilinx, I'm assuming you are talking about their FPGAs. I would personally, start with a microcontroller, unless you are coming from a hardware background are more comfortable with circuits than software. FPGA's are good for making your own pseudo-hardware-basically describing a circuit you would like to have in a hardware description language (HDL) and it will use it's large arrays of LUTs to implement your circuit. This is super useful when I need it, but I find that learning on a microcontroller in C is a bit gentler when you're just starting.
I have questions. Is the concept of Object Oriented Programming a necessity or a Luxury when designing a brand new OS? Can we see a brand new OS being build on Java or Python or anyother Higher level OOP & Interpreted Languages?
OOP is a luxury in designing an OS. Many an OS are built in C. The issue with building an OS in puthon, Java, Ruby, etc, is that they require fairly extensive runtime support (either a virtual machine or an interpreter). Consequently, you can expect the OS to be much slower than one built with a compiled language (C, C++, Assembly, Rust, etc)
Teaching young people to program devices! What can possibly go wrong? :) I can see kids trying to reprogram mom's washing machine and instead of the occasional sock going missing the washing machine goes into orbit! 😀
@@JacobSorber I actually was looking for a channel like yours. People like you who are up and coming make good content and reply to comments. I love these kind of channels! I am hoping to study from your channel and get a good job in embedded systems. So please make good vids 🙏😂😁
I heard somewhere that ARM Cortex microprocessors are really popular these days. You did mention that you use Texas Instruments microcontroller, but what do you think about ARM Cortex specifically?
They seem to be solid options. I use the TI MSP430 controllers because they have FRAM and they are a bit lower power than most of the ARM Cortex MCUs (though some of the M0 line are pretty low power, as well). But, I have nothing bad to say about the ARM chips. They seem solid and very popular.
Great vid, I got my interest in Arduino cause of it. Completely unrelated part of the comment, you do know that you sort of sound AND look like matthew McConaughey right?
hey I just came over your channel and I really loved this video. I am a ML/ deep learning student. Is there something where can I explore the intersection of AI and embedded systems? What about FPGAs? Are FPGAs embedded systems too?
check esp32 (ESP32-CAM & ESP32-WROOM-32), it's a great platform for exploring deep learning inference at the edge (using tensorflow lite for microcontrollers)
I am just getting started with hardware. Question is do I go with C or c++. PS : I am a java programmer and Iam trying find out whats best in terms of hardware interfacing/complex project code management etc
This depends a lot on your hardware and your computational resources. Some of the more dynamic features of C++ can be problematic when resources are really tight. But, that's also true of C. For example, I typically wouldn't use standard dynamic memory allocation (malloc/free) on an MCU with 2kB of RAM. Just too many risks. But, on a Raspberry Pi, you can probably use either without too many concerns.
I've recently started getting an interest in embedded software development as a career. Am I completely out of luck because of my degree? It's in IT, though I've recently been employed as a web developer in training?
Of course not. There's always room for course corrections. You just need to pick up the pieces that you're missing-and it's never been easier to pick up missing educational pieces.
Where can i find tutorials to learn me from scratch? I found only Arduino,buy i know for sure that companies arent using Arduino so i dont want Arduino.
Sorry for the lag in videos. Life's been crazy busy. Hopefully, I'll be able to post more regularly in the coming weeks. And, if any of you are worrying about how dark this one was...I know. My filming setup here in Botswana is quite limited, and I was racing the setting sun after work.
Can you do more videos on embedded systems sub topics like rtos etc
@@indiradendukuri2821Probably. It's all a matter of time for me. I make youtube videos on the side when I have a little extra time. There's never as much time as I would like for this. So, yes, an RTOS video is probably in my future, but it might be a few months. My first embedded systems videos will, I'm sure, focus more on the basics.
Can u pls continoue
Hi Jacob. Thank you for the information. I am thinking about earning my associate's degree in Robotics & Embbeded Systems. I am interested in Robotics due to cosplay Ironman suits. I would like to reinvent the wheel buy developing a suit a for the medical field.
Currently in the Carolinas
Great! As a electronic engineer this is the main thing I am interested when it comes to programming (apart from Labview programming).
Thanks for the awesome content, I hope you decide to keep the Embedded stuff coming!
I’m a CS grad w about 9 months in Industry. This stuff is hard to learn on your own but it has been a blast! Quality content is gold when going about this solo!!
I just got into embedded systems about a month ago. I already have prior experience with C so I decided to skip the Arduino route and start writing code for the STM32 family. I've tried a couple other microcontrollers but I'm loving STM32 so far. It's been a little difficult at first since I had no guide, I was kind of messing around for a couple weeks trying to understand everything but now I'm at a point where I can write some useful software I can use in real life.
What were you using to learn the STM32?
@@LRflex Do you mean project-wise or how I learned to write code for them? Project-wise I just made stuff I thought was fun, like a simple controller for a game which was really just a 5-button keyboard or a simple physical calculator.
For code, I just spent a lot of time reading the data sheets and at first used STM32Cube but later just used template makefiles and wrote a lot of code “manually” where I only defined the addresses I was going to use and created simple functions that activated GPIO or timers depending on the project
Matthew macaughney teaching embedded systems .
I though i was the only one!
Hahhahhhaahahhaahahahhhahha
@@eduardguse2396 time is a flat circle
Hahaha
Hhahahahahahahahahahahahahahah RT
7:00 he speaks the language of the power user.
C's importance is underplayed here! Even if the JVM was available, C would still be a better choice. The capability to have full, and direct control over the hardware, in addition to having little to no natural overhead.
It really depends on what you need to do.
@@zoeherriot Is there a specific example of where it would be more efficient to run code on a virtual machine rather than just directly feed machine code to the processor when working on embedded systems?
@@maxbd2618 yes. When speed of development is more important than any performance limitation.
The ability to make those micro-optimizations is an invaluable advantage of C
Ok
0:45 we did have microcontroller class in my highschool! Granted it was pretty basic arduino class and it was technical highschool but still was my favorite
You fortunate soul. I'm glad you had that experience. Microcontrollers are great.
Great video, thank you, Mr. Jacob, for starting a new session of Embedded Systems that will help a lot of us to learn, understand and deal with Embedded Systems filed.
8:10 TBH i would recommend to watch Ben Eater BreadBoard computer series, it isn't about embedded systems but building simple computer from scratch but after that and few other thing after looking at Attiny13a block diagram yesterday day or something, i felt like at home... patrological one but still home.
"Bean Eater" Lmao
@@nonnullptrhuman504 well i'm Dialectician and not native speaker so sometimes i write things like that XD
@@crusaderanimation6967 its okay, its not about u are a native speaker or not. I just find it funny. Btw are u still learning embedded systems?
@@nonnullptrhuman504 Yes, but i run into issues with interrupts on my setup so for now i'm working on other things and hopefuly i will try again in near time
Finally someone else understands my annoyance with IDE's.
Your content always amazes me as a cs student. It’s always rich and straight to the point, I almost can’t imagine it’s free. Idk if anyone pointed that out but I really appreciate it.
how interesting is this? I subscribed to your channel because of learning C in university at the beginning of 2022. Now, I find my direction and want to be an embedded system engineer see your video again, in embedded system
You really sparked my passion and interest towards embedded systems! I already had the seed, but you just poured the water and the sun over it!
Glad I could help. Best of luck with whatever you decide to build.
if you want to go professional, would go straight for cortex-m, most other are kind of deprecated by it. And learning ATMEGA today is like learning to program for DOS
And what are you thinking about PIC?
What am I doing here. I'm an embedded developer for 3 years. Actually I need to go to sleep to get up early tomorrow...
Please guide me
@@akashthoriya Be more specific
@@dolby360I don't know, How should I start? Currently, I'm learning C++. What should I do after c++? Are there any books or courses which can be helpful in my journey?
The is a great course I took called: " mastering embedded systems " you can find it in udemy.
Maybe try to start your own project.
@@dolby360 okay, thank you
Starting my second semester at uni soon I which we have a module on embedded systems. Perfect timing on the video haha
damn that great man! In my electronics and communication degree we have embedded systems course in the sixth semester. Basically those of us who are interested have to do projects/online courses because obviously 3 years into ECE degree is already too late to get into embedded systems.
Thanks a lot for this video, Sir. It helped to solve lots of my doubts. I love embedded systems programming and I am from Computer science engineering. I will get a raspberry pi this week.
Would really love to see videos addressing data structures and algorithms as applied to constrained embedded devices. Really tired all the videos/books on high-level software principles that totally ignore embedded environments. Lets start with systems where no heap and no dynamic memory allocation are allowed. Lets apply some critical thinking on how we can improve programming in this environment. Embedded devices are not going away.
I am starting a certificate program in Embedded Systems Engineering at the University of California system, and the choice of micro-controller for the program is the STM32L4. Tell me the pros and cons, and what I can expect in terms of learning, ease and job market relevance.
I didn't even know what an embedded system is until i watched this video. Can't say i understand it fully but at least i got some info about this topic thanks to this guy!
Clang is great for bare metal development and now you can use it for AVR :). LLDB on bare metal does not exist unless you write python stub to have "thread context", so GDB still is the easiest choice to have debugging of embedded systems
There are some RTOS (real time operating systems) out there.
A few extremely popular ones are:
ZephyrOS, FreeRTOS (Inc Amazon version) RIOT as well as a number of good SDKs from silicon manufacturers.
Dude, best video I have seen on this. Keep up the amazing work.
The "control issues" line made me laugh.
If you're willing to spend a little money, I can recommend two things. 1. Is the dsPIC line of microcontrollers from Microchip. Their Explorer kits come with breakout boards and swappable processors. The dsPIC33 family is quite nice. 2. Get into SoC (Sytem On Chip) boards like NXP's sabrelite (I think it's called something else now) but essentially it runs Yocto Linux and will give you ability to do embedded Linux on a breakout board like a raspberry Pi but more inline with what you may see in automotive or more advanced systems.
Maan, I'm doing a course from an Institute on Embedded Systems Designing. That's why i got attracted to your C/OS videos.
Any luck with job yet sir?
is it full of programming sir ?
Thankyou so much for this informative video. I am an absolute beginner, and your advice helped me gain some idea
during the whole video I thought if enderman will spawn in left corner of the room lol
Could you add this video to the Embedded playlist as well?
Yeah, just added it. Thanks.
Will you please ... please, do a series on embedded systems? Embedded Systems is what I want to do. It is extremely important to me. Please, if you can find the time I am sure that there are hundreds if not thousands of people who feel the same as I do about this topic.
I already started with c++, please I need to go back to learn C?
Please make a video series on creating a Linux device driver for a network card using its datasheet.
That would be cool. That would be a bit more involved than my usual video. So, probably not going to happen in the next month, but I'll see what I can do. Thanks.
for a moment i really thought why would Matthew McConaughey would talk about embedded systems?! you look so much like him. anyways, great content bro!
My favorite mcus are the nxp/freescale ones. I learned with those and are great
Ohh, a well good video, I like it, I will watch all of your videos! Hope you keep doing it!
Thanks Jacob for video, very helpful
Rust with stm32 is like match made in heaven ...our company created a tinyml inference pipeline with stm32 and tensorflow-micro Rust .
Could you please make a video on Careers in embedded systems? Can there be freelance embedded engineers? Do you have any information on embedded hardware development and the skill sets required to learn them?
Great topic buddy
When you said we can find a C/C++ compiler for almost every microprocessor in the market.........
......from my experience, the C/C++ compilers are actually running inside the IDE of the particular processor that we bought. This IDE is running on my desktop. So basically for every piece of code, i turn it to some machine level code and download it on the microprocessor.
We can also use higher level languages to code too.
Any language that is first compiled to C (or that you have a cross compiler for), can then be compiled for your microcontroller. But some high-level languages (ruby, python) require an interpreter that runs on the microcontroller. And, on some microcontrollers that can be a challenge due to memory and computational power constraints.
Ok. So if we write codes for Microcontrollers in a particular language which when compiled converts to C, then that is not a problem.
is there any programming language that compiles to C?
@@shamikchakraborty3341 Nearly all compiled programming languages use either C or Assembly as an intermediate step on their way to creating a binary executable. But, it's not a product of the language, as much as how the compiler writer decided to design the compiler. I would guess that g++ uses gcc in an intermediate stage. I believe LLVM has its own custom intermediate language. I would guess that Rust uses C as an intermediate. I really don't know about the functional languages like Haskell. But, the point is that two different Haskell compilers could do it differently-one could compile to ASM and then to executable code, or it could use C as an intermediate step. Or, I suppose it could just skip the middle man and generate binary code, but that would just be too much work with no benefit.
@@JacobSorber Sir, can I code Arduino in Python ? If yes, then how ??
Thank you.
thank you so much for all these important information
Hi Jacob before going deep on embedded, can you please make a tutorial on "volatile" keyword. thanks.
I'll see what I can do. A volatile video would probably be pretty easy to throw together.
is STM32 Nucleo board a good platform as a starter, I already know how to use Arduino and RPi
but none of the learn C tutorials seem to cover much related to microcontrollers?
can you recommend any?
my current interest is in making intelligent remote controllers for hub motors with lora and voice commands
sure arduino been around for a while but STM32 is so cheap and powerful and it's used everywhere, doesn't it make sense to use that platform? The nucleo boards are pretty cheap too
the best explanation!
I had started with AVR chips and then quickly moved on to ARM M4 microcontrollers.Those provided by STMicroelectronics are cheap and has a lot of features to play with.
Agreed. There are a lot of good options out there.
Are you from CDAC?
@@shamikchakraborty3341 no i am not from CDAC
gave up couldn’t find info on mc
@@user-oo2gz9ln8v search for STM32 Microcontroller
Embedded software is awesome.
Im serious to learn C. Im from architecture. The future is saying, u need to learn Programming language as basic skill. Robotics, AI in the future ahead
I have learned C programming but I need some practice to make my skill on C sharp. Besides, I need to know what kind of problems I might face in Embedded Systems. I have been doing web development using PHP and WordPress plus some article writing, I am not enjoying what I am doing at the moment and I do enjoy coding in C. Can you suggest to me a good website or a book where I can get tutorials on C and Embedded Systems also practice on various C and Embedded Systems problems? I am trying to build my career in Embedded systems. Have a good day.
Awesome video... Subscribed!
very interesting topic. definitely looking forward to your next videos!
thank you, very useful
"and it runs on Linux, for heaven's sake" ♥️🤣
I am a Java programmer and Mobile App Developer. I'm curious, for example, can i use C to program outputs on most PLC like Schneider or Simens or some CNC industrial machines, like i can use Arduino language to program outputs on an Arduino mc? I would like to learn more about this and what language is the best for this type of embedded programming.
Good cheap platform for option 2? One which is low level yet has alot of documantation and a good community maybe?
how about rust for embed? what do you think?
I think it's a great idea, as long as you can find a rust compiler that works for your platform.
I am just starting out my second year as a computer engineering major. Embedded systems seem fun
I study computer science and find this very itneresting. Do i have to be an electro engineer for this? Is there a course on embeded i can take?
Professor, i'd appreciate some advice.
I'm currently third year CS student and i took Embedded systems course this semester just to try it out.
It's one of my favorite courses so far and i'm really thinking about it as a career path. (we are using arduino)
However, i'm not sure how to justify 2 more years of only software work that's gonna take up much of my precious time to get really good at this stuff, realistically i could work on it after school work maybe for 1-2 hours on most days.
I don't have any digital signaling course or anything like that, Operating systems and Computer architecture is the closest thing i've had to this.
Couple of questions:
1. How do CS majors do in this field? (I'm eager to learn deeply like you proposed)
2. Am i in a tight spot with this background regarding embedded systems? I'd hate to only be able to focus on it when i graduate.
3. I have this idea of slowly making turning my house into a smart house, however i don't really have any frame of reference of how much it would take to get required skillset and what are all the things i need to know for stuff like this? (Turning on lights and locking doors from mobile app etc.)
My C is solid at least. :)
Any advice is appreciated!!!
Not sure how I missed this comment, 8 months ago.
1) I was a CS major, and I've done fine. I did have to learn some stuff about circuits and electricity on my own, but it wasn't too difficult. More generally, the students I hire in my lab are usually CS majors or EE/CE majors. In both cases, there is a learning curve. I have tried to structure my lab so that lab members help train each other in the areas they're weak in. It works pretty well.
2) That's hard to say. I'd say, if you want to do it, do it. 2 hours a day is more than most spend on it, and it's better than nothing. How long it will take you to be great at it will depend on you - it's really hard to predict without knowing a lot more about you.
3) Sounds like a fun project. My advice is to start small. Learn to program a microcontroller. Then learn how to interface with stuff (like a sensor or an actuator that could lock a door). Explore wireless communication techniques. Working small-to-large like this, will help you do something useful, even if you don't make it all the way to the full DIY smart home, before running out of time, money, and patience
Solid C is a good starting point. Best of luck.
Is it a evergreen field friend.. ?? Which country has good potential for embedded engineers... ?? I mean the job opportunities
What about real time operating systems? Can a newbie get into Embedded systems with rtos?
Thank you man, so much useful information.
How can you learn CAN protocols and connect different embedded system to communicate between them?
Great video! One question: What is the intro song?
Thanks. The song was just something I found on the YT music library. I think it's named Urban Lullaby, or something like that?
@@JacobSorber haha, thanks! I found it
Just wondering, I have a CE Bachelor’s degree and I’m currently pursuing a Programming Associate’s. Could I land an Embedded Systems job with these degrees and which companies do I look at?
Thank you sir.
What about STM32
STM32 is fine. I don't use it much, but I haven't heard anything bad about it.
How do you display data from STM32 to your PC's GUI program?
This is the first video I selected in searching for info on creating code for usb drives. With that said, if I'm still off topic, I'm still asking my question here. Lol. Where would I start for learning how to code usb drives (your every day memory flash, thumb drive). I'm working on pentesting my virtual lab, and also screwing with friends. Lol. Thanks!
I'm not sure what you mean by "coding usb drives". Are you wanting to basically write malware that you would store on a USB drive and try to infect your friends' machines?
@@JacobSorber Yes sir! Thanks!
@@JacobSorber I mean, if it's not as easy as copying the code files and pasting in the drive's folder. Lol.
great video, I have a question though. I'm learning embedded systems right now using ATMEL SAM and STM32 microcontrollers and I just don't know which one to stick to till the end. Do you have any suggestions?
PS: I'm an electrical engineering student and I'm learning this stuff by my self.
@@JihedCh thanks for the advice buddy
It's going to depend on what you need them to do, but I agree that it wouldn't hurt to learn both. Most things we do with one MCU translate pretty well to another. And, seeing how things are done on two chips will probably help you see pretty quickly which one you like best.
@@JacobSorber thank you for the reply
I know you are not a big fan of IDEs but do you have any opinion on PlatformIO? I have had some early success with it and it covers many platforms (but not TI).
I don't have personal experience with it, but I've heard good things. It's on my list of things to check out when I find the time. And, it looks (from their website) like they do support the MSP430. docs.platformio.org/en/latest/boards/timsp430/lpmsp430fr5994.html
@@JacobSorber OK, I see it now. I happen to have the C2000 Piccolo LaunchPad with device F28027 which is not listed by PlatformIO. Dang!
Could you please create a road map for embedded systems
I only know CPP P.L and other front-end web dev stuff.
What are your thoughts on PIC microcontrollers 🤔
I honestly don't have much experience with them. They seem like a solid option, though.
@@JacobSorber Thank You 👍, thank you very much for your support and time 😉
Personally I want to learn c++ and I want to go to a trade school and learn communications electronics. So I want to learn about circuit boards, and signal waves and that sort of stuff.
😂
Ok but what about Lua? Lua programming language was build for embedded systems and it's very close to C.
Please can I use Golang instead of C
Sir, make video on operating system development?
Did you ever consider to use ++i over i++ in situations where it doesn't matter which one to actually have to use (e.. for loop), because of the not so optimizing C compiler for the embedded systems?
I have, but usually old habits (i++) and the fact that it usually doesn't make that much difference win out.
Yeah I'm trying to think of actual applications of this.
The only one that comes to mind is if you're wanting to display something before it changes and then increment it for the next iteration
Hi, I have got a question. Do you think it is possible to learn all that embedded systems stuff on my own without any studies at university?
It's definitely possible. Not necessarily easy. You might want to check out my video about degrees and whether or not you need them.
@@JacobSorber Okay, I'll check it for sure. Thanks 🙂
I have a question not actually related to this topic but should a beginner university student who is more interested in embedded systems more than web developing, learn html, css for 1 year? Or shouldn't I strive on them that much. I learnt C last term. Unexpectedly I joined a web developing team of a club in my uni. I'm thinking a lot about quitting it. Really would like to see your thoughts. Thank u.
Hi, its been 3 years, what are you doing now
Hello Jacob, I've been working on small scale sensors for the last 7 years as a technologist and my urge to make the jump into embedded systems has always been growing. I've really struggled to make the leap into embedded systems as it feels like a world of its own. These videos are very useful.
We use various systems at work but generally it is using C and Xilinx. is Xilinx common and a good one to get started (taking the second option)? I found arduino does too much for me and have struggled to go from Arduino to Xilinx.
By Xilinx, I'm assuming you are talking about their FPGAs. I would personally, start with a microcontroller, unless you are coming from a hardware background are more comfortable with circuits than software. FPGA's are good for making your own pseudo-hardware-basically describing a circuit you would like to have in a hardware description language (HDL) and it will use it's large arrays of LUTs to implement your circuit. This is super useful when I need it, but I find that learning on a microcontroller in C is a bit gentler when you're just starting.
I wish this video was around when I was 15
I have questions.
Is the concept of Object Oriented Programming a necessity or a Luxury when designing a brand new OS?
Can we see a brand new OS being build on Java or Python or anyother Higher level OOP & Interpreted Languages?
OOP is a luxury in designing an OS. Many an OS are built in C. The issue with building an OS in puthon, Java, Ruby, etc, is that they require fairly extensive runtime support (either a virtual machine or an interpreter). Consequently, you can expect the OS to be much slower than one built with a compiled language (C, C++, Assembly, Rust, etc)
what about the video game, shenzhen io? Do you think it's a good introduction to embedded systems?
You can add beaglebone boards also as an option. I would prefer beaglebone over raspberry Pi boards.
Definitely. I've used them as well with good results. Thanks.
Teaching young people to program devices! What can possibly go wrong? :) I can see kids trying to reprogram mom's washing machine and instead of the occasional sock going missing the washing machine goes into orbit! 😀
Thanks so much for all these resources. Just please upload them regularly!
You're welcome. I try to keep them coming weekly whenever I can.
@@JacobSorber I actually was looking for a channel like yours. People like you who are up and coming make good content and reply to comments. I love these kind of channels! I am hoping to study from your channel and get a good job in embedded systems. So please make good vids 🙏😂😁
PLEASE DO STM32F407VG DISCOVERY BOARD
I heard somewhere that ARM Cortex microprocessors are really popular these days. You did mention that you use Texas Instruments microcontroller, but what do you think about ARM Cortex specifically?
They seem to be solid options. I use the TI MSP430 controllers because they have FRAM and they are a bit lower power than most of the ARM Cortex MCUs (though some of the M0 line are pretty low power, as well). But, I have nothing bad to say about the ARM chips. They seem solid and very popular.
Great vid, I got my interest in Arduino cause of it. Completely unrelated part of the comment, you do know that you sort of sound AND look like matthew McConaughey right?
Yeah, I have heard that once or twice. Thanks, Avraam. Best of luck with your Arduino adventures.
7:00 a bit too personal :p
FPGAs are also embedded systems?
No, fpga is used to synthesize a digital circuit, it works on a hardware level using HDL
Thoughts on Rust for embedded systems?
can anyone suggest which platform should I start with, to learn ethical IOT hacking ?
Can u recommend books about c. Please.
hey I just came over your channel and I really loved this video. I am a ML/ deep learning student. Is there something where can I explore the intersection of AI and embedded systems? What about FPGAs? Are FPGAs embedded systems too?
With FPGAs you basically design your own CPU, your own assembly and code on top of it.
check esp32 (ESP32-CAM & ESP32-WROOM-32), it's a great platform for exploring deep learning inference at the edge (using tensorflow lite for microcontrollers)
thanks
On udemy there are great courses on embedded c and microcontrollers.
Todd moore please leave a author name here
@@gopimarvathi3733 just search microcontroller u get it
I am just getting started with hardware.
Question is do I go with C or c++.
PS : I am a java programmer and Iam trying find out whats best in terms of hardware interfacing/complex project code management etc
This depends a lot on your hardware and your computational resources. Some of the more dynamic features of C++ can be problematic when resources are really tight. But, that's also true of C. For example, I typically wouldn't use standard dynamic memory allocation (malloc/free) on an MCU with 2kB of RAM. Just too many risks. But, on a Raspberry Pi, you can probably use either without too many concerns.
@@JacobSorber thank you 👍
I've recently started getting an interest in embedded software development as a career. Am I completely out of luck because of my degree? It's in IT, though I've recently been employed as a web developer in training?
Of course not. There's always room for course corrections. You just need to pick up the pieces that you're missing-and it's never been easier to pick up missing educational pieces.
Where can i find tutorials to learn me from scratch? I found only Arduino,buy i know for sure that companies arent using Arduino so i dont want Arduino.