Arduino was what brought me into Programming. I wanted to build robots and eventually iron man (of course, it never happened) so I played with Arduino and learned about Programming. Then I moved onto Python and now I'm in Web Development watching this awesome channel.
@@konstantinrebrov675 Truth be told, I did love embedded systems programming but there were no jobs to do with those stuff in my country so I had to switch to web dev. Honestly, I'm starting to like Web Dev more and since there's limited hardware in embedded systems and there's tons of things to do in Web Dev.
💯 Back when I was a physics undergrad (15ish years ago) our closest equivalent to an Arduino was a multi-hundred-dollar GPIO EVM hooked up to a computer running LabVIEW. (We also had to walk one mile to the physics building, uphill, in the snow)
@@GSBarlev But back then there was a microcontrollers already. Even without UV-erasable rom, just with flash as today. There was no problem to build your own playground with bread boards and circuits and use loaders for flashing. And there was people who did all sort of these things as well.
My favorite thing to do with an Arduino is hook up an ultrasonic distance sensor and a relay shield, and plug an RC car into the relays. Then a one-liner in the loop to Map distanceFromWall to motorOutput, so it slows as it approaches a wall and stops just before. Map is a cool function that scales a value from between one set of ranges to between another set of ranges, vastly simplifying scaling arbitrary outputs with arbitrary inputs.
one thing i always wondered is why they made the map function using long as in and putput type, rather than float or double (or better yet, auto) it took us a while to figure out why we couldn't use it to map the analog input to a voltage. The remedy was to look up the map function of arduino online, copy it into your code and replace all long with float. It makes voltage reading so much more accurate
@@Djellowman wouldn't using optical sensor imply a lot more variables. E.g. if your lightsource is behind the car its own shadow will reach the wall before the sensor does so you'd get stop at different distances from the wall based on the environment lighting.
@@Djellowman Ultrasonic has longer range than infrared optics, and isn't affected by temperature. I have some infrared sensors that basically stop working (detector always detects) when it's over around 90 F or 30 C outside. And cameras are a lot more complicated, need to figure out CV and maybe need another shield.
True, I have to learn python after years of C++ and I hate it. C++ is so easy. It just does what you say with a few basic functions and keywords. Using python sometimes feels like it does what it wants.
@@hackfleischking5162 I felt the same thing. When I wanted to pass an object to a function in python i didn't know if it was a copy or a reference. C++ gives you a lot more control and python does a lot of things for you, but I like to know what's happening under the hood
I tried to learn programming multiple times before, but when I got an arduino, that's when I got hooked. Seeing your code directly affects the world and react to it is just amazing! It also started my passion for engineering, and I am now studying in Comp. Eng :)
Same for me. I coded a bit in school and it was fun and all but programming something that does something in the real world was the real shit for me. Then the dark time when I had to programm a website came and I lost all the fun and quited programming for years. After many years the company where I work at a mini job needed a prototype, bought some components and needed someone to programm the arduino. I was asked if I could do it because I told them I programmed in the past. I had no idea what an arduino was or how to programm in C++ but I tried and created an abomination of stupid code that finaly did what it should. I had so much fun that I started studying embedded software development.
I love how different people are. We had to learn arduino first and while I didn't hate it, trying to connect the wires and sensors with my shaky hands was a hassle lol, I really started enjoying coding after we started to focus more on the software side.
@@hanasschoolwork4564 Bro how many redbulls do you drink per day connecting wires is not hard💀 But I agree that with many wires it can become messy, and sometimes you don't know if the problem is hardware or software side
@@Joel-pl6lh I drink a lot of coffee but my hands are just naturally shaky. I can't even take stable pictures lmao. And yep! Debugging the software side is enough for me :D
Correction (you probably know that of course, but I'm not comfortable with imprecision): Arduino doesn't have its own language. It also isn't simplified C. It's actually C++, it's just that Arduino (the organization) built easy to use libraries around (initially) AVR libraries so that you could program in english, not in microcontroller technical.
Yes, it sounds emotional. But with Arduino you use only C-syntax. The rest of work is just to call sequentially the functions from Arduino libraries. Most of time you spent to study which function to call and with which args. Finally you don't have to be an experienced C/C++ programmer to feel free in Arduino.
Why do people keep saying “you only use c syntax”. It’s 100% regular c++. There are some libraries auto imported by a pre processor , and the build tool is configured for you, but it’s still just c++.
The language itself is a custom C++ compiler that compiles to the instruction set of ATMega328P microcontroller and variants. I have written many arduino programs using C++ classes and making objects out of them.
It is not a custom C++ compiler, it is the commonly used gcc. Depending on the architecture, the gcc variant is used, e.g. avr-gcc for the AVR CPUs. Yes, the default language is the C++ and more specifically C++11. Indeed, a bunch of header files is also included to allow every functionality of the microcontroller - however, this does not "change the language" technically.
its not even a custom c++ compiler. the .ino file is just rearranged to have all the functions at the top. i would also say that as there are Arduino cores for almost all architectures, Arduino is basically a standardized hardware abstraction
Arduino is one of the main reasons I started to learn how to code. Started with a line follower on a UNO and, over time, moved on to a 3D printer on a Mega.
It's almost a decade ago but I still remember the school project we made with arduino, a basic calculator that just adds 2 numbers. I also remember how my fingers bleed from how much I peeled the wires while debugging it physically. But I don't remember a dedicated *.ino file for it. We just used C.
I am so glad you did a hardware video. You should do more of them. I bet you could do a video on Single board computers, Super computers, IoT, mechanical keyboards, maybe even mice.
Cool videos, but i noticed some errors. 1. 1:32 , arduino uno outputs 5V when a "pin" is set to high 2. Correct me if I'm wrong, but Arduino is based on C++ 3. 2:00 , you cant really directly connect a motor to a digital pin, in most of the cases you would use a shield, or a driver to drive that motor Other than that, cool videos :). I really love this format
1. Don't think this is a error, because there's a "greater than" sign before the 3.0V label, so technically yes, HIGH value is over 3.0 V 2. You are right, this is an error, Arduino IDE uses C++, not a custom language 3. Well, he means put a motor on a protoboard, not directly into the Arduino....
@@yogpanjarale Correct. I won a scholarship from a coding competition hosted by a local automotive company last June. I used low level concepts for optimization such as direct port manipulation and bit fields to save space on booleans and numbers and such.
the uno uses an atmega328p-pu, which also works on a range of voltages including 3.3v, in which case the high output is 3.3v. if that really makes a difference to you I think you already know what you're doing 😁
I hope he has the patience to wait until the supply shortage ends (or until competitor SBCs see the same level of Linux kernel support so we can start using the term "Pi" like we use "Arduino" now for any of a wide range of compatible board)
definetly! If the price is what kept you from doing so i can highly reccomend the ESP32. It's super affordable, very resilient, has more than 10 times the clock speed of an arduino nano, much better analog resolution, wifi + bluetooth and so much more. Beginning is just as easy since it works with the arduino ide, but you don't reach the limits of your microcontroler as quickly
One of the things i love the most about Arduino is the range of devices you can program with the same code. All the way down to 8mhz 2kb flash attiny chips the size of a rice grain, up to ESP32 chips with dual 240mhz cores, wifi and bluetooth, and enough ram to emulate a commodore 64
I run a Code Club, and I started with exploring Arduino this year, the students love it and their only limit is imagination (and our funding). Plus it's inspired me to save up and hobby from home. Eventually I want to do MicroPython as well.
Back in my Engineering Bachelor, they made us learn microcontrollers with a Texas Instruments Board with poor documentation so I developed my course project entirely on Arduino and then later ported it to the TI chip since it’s just so much simpler to work with arduinos
It's great to see Jeff getting into embedded electronics 😄 PS. This is how I started coding and fell in love with building stuff Edit: Mom I'm famous! 🥲
@@ninobach7456 stay on the lookout for all sorts of sensors and actuators (motors, lcd displays, hacked gadgets) and how they can turn into something useful if combined together. I started doing this to the point that I started perceiving gadgets like individual components. Helped a lot in understanding low level design of thing. I started using arduino boards in all sorts of automations/lifehacks.
@@ninobach7456 follow a couple of simple project guides first. Adafruit actually had excellent project build guides that can get you going. They do rely on their own hardware, but that's nice because then you don't have to learn how to choose hardware right away, you can lean on their expertise. Sparkfun does this too. Then after a few simple guided projects, throw yourself into a project that is WAY too difficult and keep forcing yourself to learn new things to solve problems
And a tip: don’t use delay. It is a blocking function which freezes everything. Instead, check if the time has already passed a given amount and do the action. If not, wait for the next loop and check again.
If you do a deeper dive into open microcontroller computing, I hope you cover how the original Arduino developers got completely shafted. I also would love to see a "100 seconds" on microPython (/ CircuitPython) and cover how these days you can don't even have to write static programs--you can just start up a REPL (or, better, WebREPL) and just run python commands *directly* on the device. The level to which this has cut down on iteration time and increased prototyping speed has made it *really hard* to justify going back to Arduino.
If there is one thing Embedded engineers hate more than Arduino, it's microPython / CircuitPython. They're all fun toys to play with, yet useless for real hardware development projects...
@@timmy7201 In what way? Just the lack of stability? I've found uPython to be perfectly adequate for DIY projects--even moving off the breadboard and flashing to 8285s--but I'm far from a professional engineer
When i first started getting interested in electronics as a hobby as a kid. hobby friendly Microcontrollers where still a bit rare. You either where looking at expensive ecosystems like the BASIC stamp or needed a complete full-fledged programmer to get anywhere, so i mostly was just making 555 circuits. Then i found the Arduino "Duemilanove" and that started a long journey. Next month i'll be defending my Thesis to get a bachelor in electrical engineering, while besides that i'm working on a retro computer project with a old-school 6502 processor. Funny how things can go.
Not gonna lie I've been fascinated by SBCs for a while but this Arduino tutorial is pretty much the only one that's made me understand what arduino is really all about
Pretty funny that you dip into some very intense stuff when it comes to other frameworks but totally miss the most epic parts of Arduino. Namely, providing the framework and hardware to interface various sensors and controllers to wireless protocols such as Bluetooth or WiFi.
Little precision on the language: Arduino uses C++ without it's standard library, but does include the C library, and has the Arduino library built-in. The only language difference is that main() is replaced by setup and loop. It is literally compiled with gcc
I just bought arduino nano and MKR 1400 a week ago. I`m going to develop a carsharing service and will build gps tracker with arduino. Thanks for the video, dude you are awesome !
Awesome tool to instigate the love of engineering. In my first semester at college I used it to build a car controlled by a Bluetooth on my phone. Using other parts like an ALU, some leds to represent some bits and a button to be the clock we also did processor capable of running some basic instructions.
You are wrong on this . It is not C and it is not a "C variant". It is pure C++. You can write a class definition (in the .ino or using a .h file), and obviously there are no classes in C. The default compiler is C++11 (try using some C++11 features to verify it!). There are some classes too, like the String, Serial class, which are different from the STL classes. If you check the headers internally, you can find out the classic main function which is the entry point. If it were a new language it would require a custom-made compiler. The compiler is the avr-gcc (for AVR chips), which is plain gcc for the AVR CPU. To conclude, there is no such thing as "Arduino C" obviously - and most people are completely unaware of that. It's just C++ with some headers and class definitions which you cannot see (without searching!).
Not necessarily. The way a language is implemented is up to the implementer. The fact you can use C++ with Arduino code or that the Arduino code itself is in C++ doesn't prove that Wiring (the original name of the language) isn't a language and if you read anything on the subject, it is clearly the author's intent and effect that Wiring (now known as Arduino) is a programming language. You can, for example, implement Pascal using C++ Macros. Does that make it not a language because you can use this hypothetical Pascal with C++? No because you still need the implementation to actual use that hypothetical Pascal. The same is true with Arduino. Also the custom-made compiler things is a very silly idea as C and C++ have both been compiled by other language compilers apart from their own. You can write C code in C++ for christ sake! Does that make the C++ language fake, an illusion? It's a completely ridiculous concept. The only thing I can agree on would be saying ino is a C variant. It is technically true, but it is misleading. Though it's not the first time that there's misinformation about the Arduino going about. Most of the world is grossly misinformed about the arduino's history for example.
@@doigt6590 based on your terminology, whenever you add your custom library (headers + implementation) in C++ you define a new language. So every program is a new language? I think your aspect is a way of viewing things in general. Even this way, I would call this a C++ extension, not a C extension. If you compile your code as pure C it will not compile - it will compile as C++ only. I am talking about the default Arduino IDE and compilers that it uses obviously. The creator has not created his own compiler and does not interpret the code using his own tools - he uses a plain commonly used C++ compiler, so this is the way that code is interpreted in the end.
@@pavfrang Your dodging the points is not addressing the points. What specific terminology did I use that makes it so broad? I never said nor implied anything you said I said. Something tells me you're not reading what I posted so I'm just going to ignore anything along the lines of this again if you don't read my post. I think you'll agree it's infuriating when people don't take the time to read what you say despite taking the time to respond... and going by the length of your post, you don't have a lot to say, probably because you don't know and you're not actually addressing any point I made. As for compilers being used as libraries, if for some reason that ever comes up again, just so you know it's not a new concept and has been something going on for a while in many programming languages. Also last question, can you compile your ino code without any arduino tooling? Yeah I thought so, you must be using wizardry.
@@rblorre I remember we used a potentiometer to adjust brightness of LED and was confused as heck why didn't do pinMode for an analog pin Turns out they're for input only so not required And pinMode can only set digital input or output Fireship should've explained this
Rad! I'm a web developer and coding and robotics teacher and having some micropythyon or robotics with JS could be cool. The Johnny npm package is pretty great for this.
The "arduino language" is literally c++, what?.. The sketch file just has the .ino extension and gets automatically a few includes added as well as a main method that runs the setup once and the loop continuously
You are right, but it also has some downsides, mainly that the RPi will use more power doing nothing than the Arduino does when it's running code. It also costs much more. I would say they are targeted for different use cases: the RPi as low-energy general purpose Linux machine and the Arduino as way to make smart electric circuits and prototype IoT applications.
RPi is really not the right tool if you want analog signals (Arduino boards have ADC onboard), 5v logic, or timing sensitive protocols. They have different use cases.
Arduino can do microsecond-level response times, Raspberry π cannot. That’s the difference between a full computer running a full OS, and a bare-bones one running just the code you compile for it and nothing more. Each has their uses.
we learn arduino in class. a bunch of 13 year olds learning c++ as their first language is certainly a good idea. (arduino is basically c++ with custom compiler)
The smaller arduino nanos can also be an excellent 'USB converter', enabling all sorts of things through direct serial communication with a computer via USB.
sleep(420) ... Ha ha Hey Jeff! I'm incredibly excited to see you doing Arduino! You did it no less wonderfully than I expected. I've tried to reach out to you via email to suggest you do NodeRED in 100 seconds. I also offered to give you input on that as I have been teaching this stuff for a few years and I think only a few people know about it. It's really an amazing tool. Please feel free to reach out!
Arduino was what brought me into Programming.
I wanted to build robots and eventually iron man (of course, it never happened) so I played with Arduino and learned about Programming.
Then I moved onto Python and now I'm in Web Development watching this awesome channel.
Bro, you same as me. I also started with arduino, then pygame in Python and then i'm learning vuejs
you should've continued hardware programming :(
Why did you choose Web Development over Embedded Systems?
@@konstantinrebrov675 Truth be told, I did love embedded systems programming but there were no jobs to do with those stuff in my country so I had to switch to web dev. Honestly, I'm starting to like Web Dev more and since there's limited hardware in embedded systems and there's tons of things to do in Web Dev.
@@kehan6252 do it for hobby
As a Mechatronics Engineering student, Arduino is a godsend.
💯 Back when I was a physics undergrad (15ish years ago) our closest equivalent to an Arduino was a multi-hundred-dollar GPIO EVM hooked up to a computer running LabVIEW.
(We also had to walk one mile to the physics building, uphill, in the snow)
@@GSBarlev you also had to defy physics on the way back by walking 1 mile, uphill in the snow once again
Hello fellow Mechatronics Engineer and Arduino enjoyer!
Its easy
@@GSBarlev But back then there was a microcontrollers already. Even without UV-erasable rom, just with flash as today. There was no problem to build your own playground with bread boards and circuits and use loaders for flashing. And there was people who did all sort of these things as well.
My favorite thing to do with an Arduino is hook up an ultrasonic distance sensor and a relay shield, and plug an RC car into the relays. Then a one-liner in the loop to Map distanceFromWall to motorOutput, so it slows as it approaches a wall and stops just before. Map is a cool function that scales a value from between one set of ranges to between another set of ranges, vastly simplifying scaling arbitrary outputs with arbitrary inputs.
one thing i always wondered is why they made the map function using long as in and putput type, rather than float or double (or better yet, auto)
it took us a while to figure out why we couldn't use it to map the analog input to a voltage. The remedy was to look up the map function of arduino online, copy it into your code and replace all long with float. It makes voltage reading so much more accurate
Why would you use ultrasonic instead of an optical sensor?
@@Djellowman wouldn't using optical sensor imply a lot more variables. E.g. if your lightsource is behind the car its own shadow will reach the wall before the sensor does so you'd get stop at different distances from the wall based on the environment lighting.
@@Djellowman Ultrasonic has longer range than infrared optics, and isn't affected by temperature. I have some infrared sensors that basically stop working (detector always detects) when it's over around 90 F or 30 C outside. And cameras are a lot more complicated, need to figure out CV and maybe need another shield.
@@Djellowman infrared ones can be sensitive to sunlight etc also, giving you noisy (more noisy) data then ultrasound.
Purpose-Built Easy-to-Learn Programming Language.
Yep, a good description of C++.
Easy to learn hard to master lol
True, I have to learn python after years of C++ and I hate it. C++ is so easy. It just does what you say with a few basic functions and keywords. Using python sometimes feels like it does what it wants.
@@hackfleischking5162 I felt the same thing. When I wanted to pass an object to a function in python i didn't know if it was a copy or a reference. C++ gives you a lot more control and python does a lot of things for you, but I like to know what's happening under the hood
@@maksymiliank5135 yea I'm in the same boat
Yeah
I tried to learn programming multiple times before, but when I got an arduino, that's when I got hooked. Seeing your code directly affects the world and react to it is just amazing! It also started my passion for engineering, and I am now studying in Comp. Eng :)
Same for me. I coded a bit in school and it was fun and all but programming something that does something in the real world was the real shit for me. Then the dark time when I had to programm a website came and I lost all the fun and quited programming for years. After many years the company where I work at a mini job needed a prototype, bought some components and needed someone to programm the arduino. I was asked if I could do it because I told them I programmed in the past. I had no idea what an arduino was or how to programm in C++ but I tried and created an abomination of stupid code that finaly did what it should. I had so much fun that I started studying embedded software development.
I love how different people are. We had to learn arduino first and while I didn't hate it, trying to connect the wires and sensors with my shaky hands was a hassle lol, I really started enjoying coding after we started to focus more on the software side.
@@hanasschoolwork4564 Bro how many redbulls do you drink per day connecting wires is not hard💀
But I agree that with many wires it can become messy, and sometimes you don't know if the problem is hardware or software side
@@Joel-pl6lh I drink a lot of coffee but my hands are just naturally shaky. I can't even take stable pictures lmao.
And yep! Debugging the software side is enough for me :D
I love your avatar dude. I tried to remove a hair from my screen.
I love embedded electronics and I'd say this is a very good intro video to Arduino.
I get a special feeling thinking about my code moving across the floor, driving a remote control car's motors.
@@StephenGillie it makes you have an impact unlike software coding which is all virtual!
Yes, I agree with your statement.
@@konstantinrebrov675 thank you ☺
Correction (you probably know that of course, but I'm not comfortable with imprecision): Arduino doesn't have its own language. It also isn't simplified C. It's actually C++, it's just that Arduino (the organization) built easy to use libraries around (initially) AVR libraries so that you could program in english, not in microcontroller technical.
That == true, a lot of people say it is modified c, but avr-gcc compiles c++ without a problem.
@@loekwous What's the problem with == true? Is it because the "true" doesn't exist in C? You can still add stdbool.h I don't get it
@@w花b that was more or less a C/C++ joke. That == true --> that is true
Well the libraries are mostly written in C, but the Arduino code usually resembles a C program.
@@loekwous it compiles C without a problem too
Would love to see more hardware development content on this channel!
Agreed
Same bro,
I love how simple and easy it is to learn things.
Agreed
Yes!
Ah yes, C++, a well known, purpose-built, easy to learn programming language.
Yes, it sounds emotional.
But with Arduino you use only C-syntax. The rest of work is just to call sequentially the functions from Arduino libraries. Most of time you spent to study which function to call and with which args. Finally you don't have to be an experienced C/C++ programmer to feel free in Arduino.
ua-cam.com/video/Fm5Ust7vEhk/v-deo.html
Why do people keep saying “you only use c syntax”.
It’s 100% regular c++. There are some libraries auto imported by a pre processor , and the build tool is configured for you, but it’s still just c++.
It's just a bit harder than java, which of course it's also super easy to learn
@@JuanBeta23 it's cool on the surface
The language itself is a custom C++ compiler that compiles to the instruction set of ATMega328P microcontroller and variants. I have written many arduino programs using C++ classes and making objects out of them.
It is not a custom C++ compiler, it is the commonly used gcc. Depending on the architecture, the gcc variant is used, e.g. avr-gcc for the AVR CPUs. Yes, the default language is the C++ and more specifically C++11. Indeed, a bunch of header files is also included to allow every functionality of the microcontroller - however, this does not "change the language" technically.
its not even a custom c++ compiler. the .ino file is just rearranged to have all the functions at the top.
i would also say that as there are Arduino cores for almost all architectures, Arduino is basically a standardized hardware abstraction
Even lambdas work in it, it’s basically g++ without std lib support
@@savejeff15 indeed, Arduino is essentially a HAL - Hardware Abstraction Layer.
How did you use c++ on it? Please tell me, I really want to use c++ on arduino!!! Would be great help
Arduino is one of the main reasons I started to learn how to code. Started with a line follower on a UNO and, over time, moved on to a 3D printer on a Mega.
Yes, more hardware stuff, please. Would love a video on CUDA with Python.
Please do PlatformIO in 100 seconds! It's such a huge step up from the basic tooling Arduino provides by default.
A video on FreeRTOS could also be cool
@@bradk8590 Agreed. Also an ESP32 video those things are swiss army knives
It's almost a decade ago but I still remember the school project we made with arduino, a basic calculator that just adds 2 numbers. I also remember how my fingers bleed from how much I peeled the wires while debugging it physically. But I don't remember a dedicated *.ino file for it. We just used C.
Yes because C/C++ and rust are used for embedded programming so it's possible
This is perfect! Just started working with Arduino yesterday in my Digital Electronics class.
One thing. At 0:20, that is not the microcontroller, the microcontroller is actually the little black square near the ethernet port.
I coded in arduino day and night at a summer camp I went to, it's amazing! I love the number of libraries available!
literally the best tutorial ive ever seen, i wish people made more of these!
I'm an electronics engineer who jumped into the Web dev world. I worked with arduino alot and I can say that this video is really good! ☺
A video about FPGAs would be great! Learning that right now with a friend of mine
Yes, I would like to see more hardware development content in this channel.
I am so glad you did a hardware video. You should do more of them. I bet you could do a video on Single board computers, Super computers, IoT, mechanical keyboards, maybe even mice.
Cool videos, but i noticed some errors.
1. 1:32 , arduino uno outputs 5V when a "pin" is set to high
2. Correct me if I'm wrong, but Arduino is based on C++
3. 2:00 , you cant really directly connect a motor to a digital pin, in most of the cases you would use a shield, or a driver to drive that motor
Other than that, cool videos :). I really love this format
2. Arduino ide langauge is very simplified Than C++ you can use C++ but without std
1. Don't think this is a error, because there's a "greater than" sign before the 3.0V label, so technically yes, HIGH value is over 3.0 V
2. You are right, this is an error, Arduino IDE uses C++, not a custom language
3. Well, he means put a motor on a protoboard, not directly into the Arduino....
@@yogpanjarale Correct. I won a scholarship from a coding competition hosted by a local automotive company last June. I used low level concepts for optimization such as direct port manipulation and bit fields to save space on booleans and numbers and such.
The high is Arduino library being weird. It's just a binary true.
the uno uses an atmega328p-pu, which also works on a range of voltages including 3.3v, in which case the high output is 3.3v. if that really makes a difference to you I think you already know what you're doing 😁
This is by far the most useful Arduino 'getting started' video out there. I wish I'd had this simple of a high-level overview when I started.
Would love to see some stuff on raspberry pis as well! Awesome vid as always :)
I was going to get one on 12 month backorder, with some unicorn farts I had in storage, but decided I’m impatient & broke.
@@everyhandletaken Yes patience and money two things I lack as well.
I hope he has the patience to wait until the supply shortage ends
(or until competitor SBCs see the same level of Linux kernel support so we can start using the term "Pi" like we use "Arduino" now for any of a wide range of compatible board)
been really interested about embedded electronics for a while now so i guess its time i start
definetly! If the price is what kept you from doing so i can highly reccomend the ESP32. It's super affordable, very resilient, has more than 10 times the clock speed of an arduino nano, much better analog resolution, wifi + bluetooth and so much more. Beginning is just as easy since it works with the arduino ide, but you don't reach the limits of your microcontroler as quickly
@@tobbleboii5988 thank you ill definitely check it out
One of the things i love the most about Arduino is the range of devices you can program with the same code.
All the way down to 8mhz 2kb flash attiny chips the size of a rice grain, up to ESP32 chips with dual 240mhz cores, wifi and bluetooth, and enough ram to emulate a commodore 64
This is amazing, your videos are my source for developments in tech. Would love to see a video on QT QML. :D
I run a Code Club, and I started with exploring Arduino this year, the students love it and their only limit is imagination (and our funding). Plus it's inspired me to save up and hobby from home. Eventually I want to do MicroPython as well.
Back in my Engineering Bachelor, they made us learn microcontrollers with a Texas Instruments Board with poor documentation so I developed my course project entirely on Arduino and then later ported it to the TI chip since it’s just so much simpler to work with arduinos
Big brain thinking!
It's great to see Jeff getting into embedded electronics 😄
PS. This is how I started coding and fell in love with building stuff
Edit: Mom I'm famous! 🥲
Ya it's pretty cool.
Any tips? :)
@@ninobach7456 stay on the lookout for all sorts of sensors and actuators (motors, lcd displays, hacked gadgets) and how they can turn into something useful if combined together.
I started doing this to the point that I started perceiving gadgets like individual components. Helped a lot in understanding low level design of thing. I started using arduino boards in all sorts of automations/lifehacks.
same for me
@@ninobach7456 follow a couple of simple project guides first. Adafruit actually had excellent project build guides that can get you going. They do rely on their own hardware, but that's nice because then you don't have to learn how to choose hardware right away, you can lean on their expertise. Sparkfun does this too. Then after a few simple guided projects, throw yourself into a project that is WAY too difficult and keep forcing yourself to learn new things to solve problems
U have no idea how long I've been waiting for a video about Arduino from you. Great work, need more on embedded tech. ❤️💯🔥
And a tip: don’t use delay. It is a blocking function which freezes everything. Instead, check if the time has already passed a given amount and do the action. If not, wait for the next loop and check again.
millis no?
Tbh I think is a bad tip for beginners, for it's complexity, good tip for more advanced arduino programmers.
Its very suprising for me to find a video about something I started learning in school
Thanks arduino, for motivating me to pursue this insufferable computer science degree by giving me dreams of how its all a piece of cake
I was a Nuclear Engineering students, with Electro Mechanical study program. Matlab and Arduino brought me to programming and now I'm a web developer
If you do a deeper dive into open microcontroller computing, I hope you cover how the original Arduino developers got completely shafted.
I also would love to see a "100 seconds" on microPython (/ CircuitPython) and cover how these days you can don't even have to write static programs--you can just start up a REPL (or, better, WebREPL) and just run python commands *directly* on the device. The level to which this has cut down on iteration time and increased prototyping speed has made it *really hard* to justify going back to Arduino.
How did the original Arduino developers get completely shafted?
@@brandon_wallace Do a web search for Hernando Barragán.
If there is one thing Embedded engineers hate more than Arduino, it's microPython / CircuitPython.
They're all fun toys to play with, yet useless for real hardware development projects...
@@timmy7201 In what way? Just the lack of stability? I've found uPython to be perfectly adequate for DIY projects--even moving off the breadboard and flashing to 8285s--but I'm far from a professional engineer
@@timmy7201 What would you suggest people use for embedded engineering development?
When i first started getting interested in electronics as a hobby as a kid. hobby friendly Microcontrollers where still a bit rare. You either where looking at expensive ecosystems like the BASIC stamp or needed a complete full-fledged programmer to get anywhere, so i mostly was just making 555 circuits. Then i found the Arduino "Duemilanove" and that started a long journey. Next month i'll be defending my Thesis to get a bachelor in electrical engineering, while besides that i'm working on a retro computer project with a old-school 6502 processor.
Funny how things can go.
Cool! I’m about to start working with a Raspberry Pico and I was considering getting an Arduino as well to compare.
Pico is easy to use as it uses Micropython which is just Python for hardware.
They are quite different by design..
Seriously? I literally dug up my arduino YESTERDAY after not having touched it in, like, 2 years.
the stretches are C++
...
It's just literally C++
Not gonna lie I've been fascinated by SBCs for a while but this Arduino tutorial is pretty much the only one that's made me understand what arduino is really all about
We need a video on the IEC 61131-3 languages! PLC programmers are often forgotten in the coding world!
the what now?
the fuck is that =))
You program in Python, I program in Ladder, we are not the same
Amen to that. Ladder rules!
100 second is the best playlist in the world 🔥🔥🔥
Pretty funny that you dip into some very intense stuff when it comes to other frameworks but totally miss the most epic parts of Arduino. Namely, providing the framework and hardware to interface various sensors and controllers to wireless protocols such as Bluetooth or WiFi.
A simple and wonderful introduction to arduino please we need more videos on embedded electronics
Little precision on the language: Arduino uses C++ without it's standard library, but does include the C library, and has the Arduino library built-in. The only language difference is that main() is replaced by setup and loop. It is literally compiled with gcc
Nope, main isn't replaced, setup and loop are functions that will be called in main.cpp, and this isn't a language difference
@@iliasalaur Correct, it isn't. It's a different way to handle entry point specific to Arduino's bootloader
I just bought arduino nano and MKR 1400 a week ago. I`m going to develop a carsharing service and will build gps tracker with arduino. Thanks for the video, dude you are awesome !
Awesome tool to instigate the love of engineering. In my first semester at college I used it to build a car controlled by a Bluetooth on my phone. Using other parts like an ALU, some leds to represent some bits and a button to be the clock we also did processor capable of running some basic instructions.
sounds like you have a cold,
Hope you get well soon! X
I literally just helped my uncle with an Arduino he recently bought! What a coincidence
Definitely more hardware dev videos!
You are wrong on this . It is not C and it is not a "C variant". It is pure C++. You can write a class definition (in the .ino or using a .h file), and obviously there are no classes in C. The default compiler is C++11 (try using some C++11 features to verify it!). There are some classes too, like the String, Serial class, which are different from the STL classes. If you check the headers internally, you can find out the classic main function which is the entry point.
If it were a new language it would require a custom-made compiler. The compiler is the avr-gcc (for AVR chips), which is plain gcc for the AVR CPU.
To conclude, there is no such thing as "Arduino C" obviously - and most people are completely unaware of that. It's just C++ with some headers and class definitions which you cannot see (without searching!).
Not necessarily. The way a language is implemented is up to the implementer. The fact you can use C++ with Arduino code or that the Arduino code itself is in C++ doesn't prove that Wiring (the original name of the language) isn't a language and if you read anything on the subject, it is clearly the author's intent and effect that Wiring (now known as Arduino) is a programming language.
You can, for example, implement Pascal using C++ Macros. Does that make it not a language because you can use this hypothetical Pascal with C++? No because you still need the implementation to actual use that hypothetical Pascal. The same is true with Arduino.
Also the custom-made compiler things is a very silly idea as C and C++ have both been compiled by other language compilers apart from their own. You can write C code in C++ for christ sake! Does that make the C++ language fake, an illusion? It's a completely ridiculous concept.
The only thing I can agree on would be saying ino is a C variant. It is technically true, but it is misleading. Though it's not the first time that there's misinformation about the Arduino going about. Most of the world is grossly misinformed about the arduino's history for example.
@@doigt6590 based on your terminology, whenever you add your custom library (headers + implementation) in C++ you define a new language. So every program is a new language? I think your aspect is a way of viewing things in general. Even this way, I would call this a C++ extension, not a C extension. If you compile your code as pure C it will not compile - it will compile as C++ only. I am talking about the default Arduino IDE and compilers that it uses obviously.
The creator has not created his own compiler and does not interpret the code using his own tools - he uses a plain commonly used C++ compiler, so this is the way that code is interpreted in the end.
@@pavfrang Your dodging the points is not addressing the points. What specific terminology did I use that makes it so broad? I never said nor implied anything you said I said. Something tells me you're not reading what I posted so I'm just going to ignore anything along the lines of this again if you don't read my post. I think you'll agree it's infuriating when people don't take the time to read what you say despite taking the time to respond... and going by the length of your post, you don't have a lot to say, probably because you don't know and you're not actually addressing any point I made.
As for compilers being used as libraries, if for some reason that ever comes up again, just so you know it's not a new concept and has been something going on for a while in many programming languages.
Also last question, can you compile your ino code without any arduino tooling? Yeah I thought so, you must be using wizardry.
YUP! We definitely want more hardware dev content
I'm learning this in college rn lol but u really should've touched on the analog pins too for handling non binary input
Agreed
@@rblorre I remember we used a potentiometer to adjust brightness of LED and was confused as heck why didn't do pinMode for an analog pin
Turns out they're for input only so not required
And pinMode can only set digital input or output
Fireship should've explained this
@@3793loop The analog input works over a built-in ADC, that's what the original comment was referring to
@@adityaanuragi6916 Yep, use pwn pins for this purpose
Rad! I'm a web developer and coding and robotics teacher and having some micropythyon or robotics with JS could be cool. The Johnny npm package is pretty great for this.
Could you do one about the ESP32 chips? (like the popular esp32-C3 by Espressif Systems)
Arduino is what made me realize how easy it is to start programming, this is a good intro to both the software and the hardware.
Purpose built language is incorrect. It's C++ with a custom, easy to use, HAL library
The Arduino was what introduced me to programming. Was really into electronics for most of my childhood, the Arduino changed everything.
When you appear to be something but your entire image cancels out itself:
What
Big bang right there
what
What
What
Yesss yessss yesss more hardware related content!
0:35 sike, its actually just c++
Wow I never expected that you will discuss arduino 😮
All I know this is the one computing channel AI is not gonna replace. Fantastic as always! 🎉
what if it's already an AI?
@@vibaj16 What if... I'M already an AI!?!?
@@vibaj16 what if not?
"A simplified version of C"
The language: Literally C++
This was missing in this channel.
Now The Channel is Complete.
Arduino Framework is Awesome But IDE is not.
Have you tried the latest one
I would love to see more Hardware topics here!
Wer all gona assend from Fullstack Developers to Fullware Developers
Hardware + Software = Fullware
PLEASE I BEG for hardware content with your video quality, btw Im an engineering student, and U helped me a lot
The "arduino language" is literally c++, what?.. The sketch file just has the .ino extension and gets automatically a few includes added as well as a main method that runs the setup once and the loop continuously
I wanna see more such hardware and system development content on this channel, so I hit the like button!
1:08 I think, Arduino is prefer to C++. Because, in C++ are more developed the Libraries and Data Types.
No
That’s nice i have been looking to start playing with hardware but don’t know exactly how to start before this video
I think that with Raspberry pi you can use others programming languages, even JavaScript.
You are right, but it also has some downsides, mainly that the RPi will use more power doing nothing than the Arduino does when it's running code. It also costs much more. I would say they are targeted for different use cases: the RPi as low-energy general purpose Linux machine and the Arduino as way to make smart electric circuits and prototype IoT applications.
RPi is really not the right tool if you want analog signals (Arduino boards have ADC onboard), 5v logic, or timing sensitive protocols. They have different use cases.
Yes, but, do you want it to not melt 😂
Arduino can do microsecond-level response times, Raspberry π cannot.
That’s the difference between a full computer running a full OS, and a bare-bones one running just the code you compile for it and nothing more. Each has their uses.
@@lawrencedoliveiro9104 you are right, Raspberry is a full computer, but It has a lot of processing power.
Thanks, was just planning on learning about Arduino products
0:04 why tf does he have saftey glasses on?
If anyone is wondering, in the professional world, engineering directly manipulate registers because its faster
"Meaning of Life" in 100 seconds next?
Great videos man!
Wow. Best Arduino introduction ever 💪
we learn arduino in class. a bunch of 13 year olds learning c++ as their first language is certainly a good idea. (arduino is basically c++ with custom compiler)
Not even a custom compiler, it's a custom wrapper around a regular C++ compiler (GCC if I remember correctly)
Very timely, I've been wanting to learn this.
We started developing with Arduino in school, gotta say I like it so far
Kindly continue doing hardware related videos. Love all your content.
The smaller arduino nanos can also be an excellent 'USB converter', enabling all sorts of things through direct serial communication with a computer via USB.
sleep(420) ... Ha ha
Hey Jeff! I'm incredibly excited to see you doing Arduino! You did it no less wonderfully than I expected. I've tried to reach out to you via email to suggest you do NodeRED in 100 seconds. I also offered to give you input on that as I have been teaching this stuff for a few years and I think only a few people know about it. It's really an amazing tool. Please feel free to reach out!
This was very helpful
I CAN'T BELIEVE IT!
I just started a project where I'm using Arduino and you release it.
What kind of wizard fukery is that?
Yes, more embedded computing videos. Make one about FPGAs!
Vhdl
@@Ali-Aljufairi Verilog
Finally u got this one ❤️ fireship 🔥
I seriously have concerns this guy monitors my internet history.
I just started learning Arduino, this guy made a video on it
It's c++ with the Arduino libraries not a custom language but does feel close to one
I got into arduino recently. IT can be challenging sometimes, but it's fun.
Love to see more hardware videos 🎊
I used to build Arduino projects when I was a kid. I highly recommend it as a way too learn programming/electronics to kids
Fireship is God sent.Thank you so much for this.
With chatGPT out there we better swap to hardware jobs :(
Thanks fireship ... always ahead of the curve
ما شاء الله على الشرح الواضح و الدقيق
Oh, I can finally add embedded systems engineer to my resume !! thanks fireship
arduino actually uses c++, but it automatically include the needed files for I/O :)