Why I’m switching over from the awesome Arduino IDE to Atmel Studio.

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 ก.ย. 2024
  • In this video I would like to explain why I’m switching over from the Atmel IDE to Atmel studio for my personal projects. And let’s explain it with a simple code example and an in-depth explanation of the workings of the Arduino IDE.
    Please don’t get me wrong, the Arduino platform is absolutely amazing to get acquainted with microcontrollers. It’s very user friendly and easy to learn. So I highly recommend it to anybody who would like to start with microcontrollers.
    The link to the Arduino quadcopter project:
    www.brokking.ne...
    And more information about the bitwise operators:
    playground.ardu...

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

  • @Joop_Brokking
    @Joop_Brokking  8 ปีที่แล้ว +103

    Thank you for all the positive reactions. I appreciate every single one of them!

    • @vitaliyd193
      @vitaliyd193 7 ปีที่แล้ว +6

      Great! I am fascinated! Thank you! Please keep up with examples in AtmelStudio. (i.e. operations with strings, serial monitor, AND HOW TO USE REGULAR ARDUINO libraries)

    • @AndreasAndrik0s
      @AndreasAndrik0s 7 ปีที่แล้ว +2

      Very good and helpful explanations, keep the good work.

    • @nchaconn79
      @nchaconn79 6 ปีที่แล้ว +2

      thank you so much for this informative video, I was going crazy trying to figure out why the arduino's serial port was displaying slightly different voltage values than what my digital multi meter was showing, thanks again.

    • @billfusionenterprise
      @billfusionenterprise 5 ปีที่แล้ว

      good tech desciptions are hard to find, you do it good

  • @Popugaj4ik
    @Popugaj4ik 4 ปีที่แล้ว +45

    As for me, Arduino IDE - for prototyping, Atmel studio - to make an end product.

  • @JoshuaAugustusBacigalupi
    @JoshuaAugustusBacigalupi 6 ปีที่แล้ว +40

    I've been trying to find the right path of action for my specific time-sensitive application for weeks now. In 9 minutes you not only clearly and completely answered exactly why I need to move beyond the Arduino IDE, but gave honest assessment of the task before me to achieve my goals. Thank you.

  • @donaldwright2426
    @donaldwright2426 2 ปีที่แล้ว +1

    Even after almost 5 years, this simple code example still not outdated and, very instructive.Thanks!

  • @TheKetsa
    @TheKetsa 8 ปีที่แล้ว +71

    Yes, we like details.

  • @waynet8953
    @waynet8953 6 ปีที่แล้ว +10

    You can access the PWM timer control codes directly from C because the PWM registers are just memory locations. So bit memory manipulation will allow direct PWM control without any compiler overhead. That's the only way to have tight control of the timing and minimum processing overhead.

  • @MrPnew1
    @MrPnew1 8 ปีที่แล้ว +3

    Personally I loved your in depth analysis of the limitations and solutions to fix the timing errors caused by the overlay of the Arduino IDE. I was aware that this IDE can complicate the micro controllers operation in the task of making the setting of the registers more user friendly for the lay person who just wants to get things done with a micro controller but at the expense of simplicity. The way you showed the underlying cause of the timing inaccuracy and variability and how to rectify it was excellent Thank you again Joop for another great job

  • @MilanKarakas
    @MilanKarakas 8 ปีที่แล้ว +58

    One side note: instead "DDRB |= B00100000", to me - it is easier to remember "DDRB |= (1

    • @IGBeTix-Electronique
      @IGBeTix-Electronique 7 ปีที่แล้ว +1

      It's exact. The register names are known normaly.

    • @stephanesonneville
      @stephanesonneville 6 ปีที่แล้ว +17

      Use macro
      #define set_bit(byte, bit) (byte = byte | (1

    • @hbirtt
      @hbirtt 6 ปีที่แล้ว +1

      @stephane sonneveille: Great tip. It's funny how working in a different environment makes you think different. If I'm writing PC software, I use macros more than I probably should. I've used macros just to make a single line look better, or be more descriptive, even if I only use them once. However, I never once considered using macros for this until I read your comment. Thank you.

    • @joshuavincent7884
      @joshuavincent7884 4 ปีที่แล้ว

      Cool. Nice and efficient bit shifting operations

  • @WPeee
    @WPeee 7 ปีที่แล้ว

    Joop your video is EXCELLENT. The information is well presented (both visually & verbally ) and covers the TIMING concerns many of us have had to deal with on the dark side. While we am not looking to change away from the ease and comfort of the Arduino IDE, your presentation shines the light on an area of darkness for many of us --- THANK YOU, keep up the great work.

  • @vmstanford
    @vmstanford 6 ปีที่แล้ว +2

    Thank you Joop! This is just the kind of information we need to actually understand the timing on the Arduino using the IDE code. As you say, it takes many hours to find this stuff out form data sheets and documentation. Well done!

  • @KaspersMC
    @KaspersMC 8 ปีที่แล้ว +29

    YAY Now i Hope you will start make some(Alot) of video about Atmel Studio ( code for Arduino )
    yes ofc. we love the in depth info ( it is why i am here ) ( + inline assembler )
    Thanks :)

    • @IGBeTix-Electronique
      @IGBeTix-Electronique 7 ปีที่แล้ว +2

      Inline assembler is not necessary in general. C or C++ are sufficient.

  • @anthonybonney8224
    @anthonybonney8224 ปีที่แล้ว

    Clear, concise and informative. Good background information as to what the problem was and how to overcome it. And why in this case Atmel was a better IDE. Will now keep this information close to hand. Well done.

  • @thehkrgeek
    @thehkrgeek 8 ปีที่แล้ว +6

    Yes, an indepth info video would be much appreciated. A video on Atmel studio for beginners will be helpful.

    • @asincich
      @asincich 3 ปีที่แล้ว

      Something better: Oshonsoft AVR Simulator IDE/PIC Simulator IDE (just Basic code!)

  • @RobertoColi
    @RobertoColi 6 ปีที่แล้ว

    WOW ! Extremely useful. I just heard about this topic, but I have never seen a so clear demostration.

  • @robertparenton7470
    @robertparenton7470 3 ปีที่แล้ว

    Thank You! I have bought all the parts to build your drone. Your videos are very inspirational and fun. Frisco, TX

  • @ArcaneMachine
    @ArcaneMachine 4 ปีที่แล้ว

    Fantastic video. Clear, well-explained, well-integrated audio and video. Worth every second!

  • @GelFireQueensland
    @GelFireQueensland 3 ปีที่แล้ว

    Thankyou. I'm Getting an SMD board produced and the Engineer said we'll go from IDE to Studio at that stage.
    Now I'm looking into it, so I can change the Code accordingly.

  • @chuckwilcox6997
    @chuckwilcox6997 4 ปีที่แล้ว

    Great example description, as to why it maybe necessary to move from Arduino IDE to Atmel Studio. Thank you for taking the time to put this video together and the depth of information was great. Brilliant work.

  • @MrKeksdoserl
    @MrKeksdoserl 8 ปีที่แล้ว

    I don't comment often on youtube videos, but your video series is absolutely amazing and without it i couldn't build my own quadcopter. I also switched from Arduino IDE to Microsoft Visual Studio with Visualmicro plugin and eventually to Atmel Studio for the same reasons you listed in this video. Keep this work up !

  • @AndresLeonSalas
    @AndresLeonSalas 6 ปีที่แล้ว +1

    Wow, thanks a million for this invaluable in-depth explanation! I few months ago I made a project involving (needing) very precise timing for pulses, and I was very frustrated while programming over the Arduino IDE. I wish I would have seen this explanation right before starting that project. Thanks again sir.

  • @tommcqueary7831
    @tommcqueary7831 7 ปีที่แล้ว

    Being a long time ago embedded assembly language programmer (back in the 80s) and current day C/C++ programmer, I was delighted to learn I can use low level register programming for the Arduino to enhance performance. Another plus is the use of standard C programs using the Atmel Studio.
    These tools and techniques raise the Arduino platform from the hobby-oriented entry-level audience to the professional-level audience. As an old timer, I am amazed at what can be accomplished these days with relatively inexpensive tools and parts. And of course, this wonderful sharing of knowledge makes things much easier than in the old days.
    Thanks for your videos.

    • @Joop_Brokking
      @Joop_Brokking  7 ปีที่แล้ว

      Thank you for writing this message.

    • @noweare1
      @noweare1 7 ปีที่แล้ว

      You can use all that in the Arduino environment also.

  • @twotires
    @twotires 8 ปีที่แล้ว +1

    Another amazing video, Joop. I very rarely comment, but I sincerely hope you will keep making these informative and easy to watch videos.

  • @paollamota
    @paollamota 7 ปีที่แล้ว

    Hey there! Just have to thank you for all of the detailed information about Arduino and I also wanna congratulate you for the great content of your channel! It complemented my humble Arduino knowledge I got from the internet :D Hope you continue producing these great videos for us!

  • @bayliner4387
    @bayliner4387 2 ปีที่แล้ว

    I'm amazed that you could tweek that down. I didn't think the Arduinino platform was fast enough to trim to that level of accuracy. Great work

  • @JohnHansknecht
    @JohnHansknecht 7 ปีที่แล้ว

    You are a very good instructor. I hope you are using this skill to teach locally as well as online. You were crystal clear. I have been using PIC microcontrollers for years and MikroC programming, but I'm researching a switch over to Atmel Studio.

  • @edexnorth123
    @edexnorth123 7 ปีที่แล้ว +2

    *I'm happy that I find this channel these tips are gold.*

  • @aakashvishwakarma614
    @aakashvishwakarma614 7 ปีที่แล้ว +13

    Looking through comments made my day :D For people who are interested in building the end application, who don't care what the code looks like or how accurate it works and want to get it done as fast as possible will be happy to choose the so called Arduino as its famous for its vast support and tons of libraries developed by all other users of Arduino, but for people who are serious into learning how things work, how every individual bits work, so that they can have better control/knowledge of what's going on should go with the plain Micro-controller with its own IDE and program in ASM/C. Now of course it doesn't look friendly at all in the beginning, but it gets very easy once you continue to work on it. And besides your code will be the most optimized code for your required application than having unnecessary piece of useless crap running which you would not even know using IDE's like Arduino.

  • @Ghost572
    @Ghost572 4 ปีที่แล้ว

    Thanks for the video, really handy having people who understand things a bit better giving out valueable information like this.

  • @ryanbusch4015
    @ryanbusch4015 5 ปีที่แล้ว

    your videos are fantastic, great details and extremely informative. just found your Chanel recently and i am considering doing the drone project.. i have seen a lot of DIY quad copter projects but yours seems to be the most refined for entry level people, mostly because you take the time to explain the code in great detail. and provide cheap resources for the home gamer. Ive also learned how the Arduino which is so popular and accessible is both powerful and limited based on code efficiency. i didn't even think it was possible to control a quad copter with and Arduino uno. im sure there are as cheap and more powerful micros now but still seems like a great entry level fun project. thanks again!

  • @noweare1
    @noweare1 7 ปีที่แล้ว +7

    There is an add-on called "visual micro" that lets you program an arduino as an arduino with library support as in the arduino IDE. The add on works with Atmel Studio. I like the Atmel Studio code completion and has all the features of a professional programming editor unlike Arduino IDE

    • @peace4world
      @peace4world 6 ปีที่แล้ว

      Thank you Joey Mac. Due to your comment, I searched Visual Micro and found that they suggest Microsoft Visual Studio over Atmel Studio (www.visualmicro.com/page/User-Guide.aspx?doc=Getting-started-which-IDE.html). Any comments?

    • @RobertShaverOfAustin
      @RobertShaverOfAustin 6 ปีที่แล้ว +1

      For one thing Atmel Studio 7 is free and Microsoft Visual Studio is $499. (correct me if I got this wrong)
      *EDIT:* Oh, I saw some lower prices for Visual Studio. Do they have a free version?

    • @Dr.Stein99
      @Dr.Stein99 5 ปีที่แล้ว

      I use Visual Studio with Visual micro. Community Visual studio is free, and you can use it without feeling you are at a strip club and being asked for money each time, unlike Visual Micro - which actually begs you to pay for it pretty much every day you start the application. It is petty. I do not know any programmers who pay for software to write software.

  • @everythingquads
    @everythingquads 7 ปีที่แล้ว

    I started with the Arduino IDE, It was a great introduction to micro controllers. I switched to Atmel Studio for the same reason as you, as I wanted more control over resources, and more efficient code. I have had many hurdles along the way, but it has been a very educational journey, and I now feel comfortable writing very precises timing routines and using interrupt vectors. My knowledge of programming in C and using bit wise operators means I can also use my programming experience to write windows and Linux console applications. Good video, very well explained. I would highly recommend getting a programmer such as the AVR dragon, as you can debug code in real time on any AVR micro's. Great video, and a good reason to develop skills at a higher level.

    • @Joop_Brokking
      @Joop_Brokking  7 ปีที่แล้ว

      Thank you for sharing your experience. The debugger tool is indeed a very useful tool as I show in this video: th-cam.com/video/o3dcmo-hbQw/w-d-xo.html

  • @stratman1234
    @stratman1234 4 ปีที่แล้ว

    I can appreciate both IDEs. It's the same argument for choosing between, for example, C and assembly. Ease vs control.

  • @KennyLong1
    @KennyLong1 6 ปีที่แล้ว

    This was a fantastic video! I am an experienced software develop, just getting started with Arduino. I will be doing some time critical processing, so this information is extremely valuable. Thank you for taking the time to create this video. I would love to see more of these advanced videos.

  • @johnlucas5201
    @johnlucas5201 7 ปีที่แล้ว

    I had been wondering what I was missing on the backside of Arduino and now I know. Thank you very much. This is excellent information for beginners like myself to use in making IDE decisions.

  • @roidroid
    @roidroid 8 ปีที่แล้ว

    Oh yes, i absolutely loved the indepth arduino info, so much so that i Faved the video. It's right up my alley.
    I especially loved how you showed howto write Arduino code which bypasses/disables those limitations. That sortof thing is exactly what i love to see: Howto modify the most commonly used & accessible tools (like the Arduino environment), to squeeze more outof them when needed.

  • @mikecurley69
    @mikecurley69 5 ปีที่แล้ว

    Your explanation of how you solved those two problems was clear and easy to follow.
    I would never count on a function like DelayMicroseconds() embedded in code to generate a consistent and accurate output signal as you have described here. I would probably use a hardware timer and/or an interrupt routine.
    Thanks again for your lesson. Very informative!

  • @stevethackery9853
    @stevethackery9853 7 ปีที่แล้ว

    This level of information is incredibly useful. Thank you for taking the time to express it so clearly.

  • @bgable7707
    @bgable7707 5 ปีที่แล้ว +1

    great review and demonstration!

  • @gizmoguyar
    @gizmoguyar 6 ปีที่แล้ว +1

    I can definitely appreciate the sentiments in this video. And it's true that the Arduino core does add lots of overhead to your code. But I feel like there's nothing wrong with that. The Arduino environment is really good for people learning embedded systems or simple robotics, It's really not made for people like you who have moved beyond the basic use cases. I don't think it's appropriate to throw a newbie into the deep end and make them start off with direct port manipulation. At the other end of the spectrum, for advanced, users. I feel like it's our responsibility to fully understand the capabilities, strengths, and weaknesses, of different micro controllers, and make an educated choice on which one is best suited for our specific project. There are some projects I do that don't require high speed or accuracy. In these cases I'm happy to use the AVR micro controllers, as I thoroughly understand all the registers inside and out (side note: reading through the entire data sheet is very useful for advanced users). For other projects I need high speed, or maybe more memory, and I choose a different controller that is more suited for the task. Often times I strike a balance, where I can use an AVR controller, but specific pieces of code need to be very accurately timed, or highly efficient. In this case I may simply use direct port manipulation for that portion only.

  • @Bengadeer
    @Bengadeer 7 ปีที่แล้ว

    Thanks for the enlightenment. I'm aware of turning on certain bits via AVR commands, but did not realize these timing issues. If multi-tasking scheduling is important, and should be in any machine control operations, it sounds like working around the Arduino IDE limitations is a must.

  • @Debraj1978
    @Debraj1978 6 ปีที่แล้ว +1

    If you want time critical events (like sampling of analog signals), use interrupt. Even for interrupt, there are settings, which caries latency due to how many registers need to push to stack and later pop from stack (context saving). These were basic fundamentals taught during graduation engineering class. Sadly, most students now join the Arduino bandwagon and forget these basics. Later, they realize the shortcoming of Arduino and then make a video out of their learning.

    • @djnor1979
      @djnor1979 ปีที่แล้ว

      You are absolutely correct, I as well used interrupt in the past to make timing. This way the 50ms will be really 50ms, not 50.125 ...

  • @thomaskinsman8662
    @thomaskinsman8662 6 ปีที่แล้ว +2

    Any good engineer would ask themselves, "This works, but how does it work?" Or, "What is going on under the covers?" I agree with you that the answers are not easy to find. Thank you for your insights.

  • @donsmith1224
    @donsmith1224 7 ปีที่แล้ว

    you my friend are a great teacher , explained well for anyone who has the tech to understand what your talking about.

  • @georgeorwell7607
    @georgeorwell7607 6 ปีที่แล้ว

    Caveat Emptor: wonderful explanation, by pointing out the pitfalls of using digitalWrite(), and timer/counter(0) overflow interrupt.

  • @ng4559
    @ng4559 8 ปีที่แล้ว

    This is best way to explain some difficult things. You just did a great work. keep it up.

  • @cepwin
    @cepwin 5 ปีที่แล้ว

    Very interesting.....your arguments make a lot of sense. Pointing out the difference between the chip ports and the Arduino ports is definitely helpful. I will be looking into atmel studio and subscribing to your channel. Thanks again!

  • @migfer7
    @migfer7 3 ปีที่แล้ว

    Thanks for this video ,I work with microchip microcontrollers for almost two decades and now I was starting to try some projects with Arduino and Esp32 and not understanding why I had so many troubles .

  • @boonedockjourneyman7979
    @boonedockjourneyman7979 5 ปีที่แล้ว

    As a general rule, always use the dev enviro from the manufacturer. As an opinion, work in a C variant and be able to understand in-line assembly code. Those two things are required to solve all timing issues.

  • @lurrehsinigang2073
    @lurrehsinigang2073 6 ปีที่แล้ว

    You deserve way more subscribers. Thank you so much for all of these tutorials!

  • @dorianmccarthy7602
    @dorianmccarthy7602 6 ปีที่แล้ว

    Loved this short, accurate and easily understandable explanation. thanks muchly

  • @sangkang6294
    @sangkang6294 3 ปีที่แล้ว

    This video was really useful. I was outputting a series of pulses in exact pulse width and kept getting wider values under the scope, fluctuating, and was scratching my head. For a whole month, I fiddle with the pulse width to get the results I needed but it always bothered me that I had to reduce the pulse size on the code to fit the width on the scope.

  • @rafaelrabadansaiz4611
    @rafaelrabadansaiz4611 7 ปีที่แล้ว

    Thanks a lot. I was suspecting this kind of potential issues and you proven it. Very useful.

  • @la7yka
    @la7yka 7 ปีที่แล้ว

    Thanks for a great in-depth discussion of the compiler handling.

  • @immortalsofar5314
    @immortalsofar5314 5 ปีที่แล้ว

    Thanks for this. I won't be able to use Atmel studio myself (as I'm a Linux user) but it certainly makes me think twice about using the Arduino IDE. Back in my day (the early 80s), we programmed in assembler to bypass these things or hooked in timer ICs to get a reliable timer source (including soldering a wire to the IRQ pin of the PCI board to synchronize the timing).

  • @plaije
    @plaije 8 ปีที่แล้ว +5

    Thank you for the video, the details are a huge benefit.

  • @wmd5645
    @wmd5645 7 ปีที่แล้ว

    894 down to 492 down to 506 finally at 164 bytes, good work! On the fix as well as the explanation of what was going wrong! These are examples that should be in textbooks on debugging software and hardware, thanks Joop! Clean, efficient, and informative work!

    • @llothar68
      @llothar68 7 ปีที่แล้ว

      You could use FORTH and get it down to the bare minimum. Don't understand why people aren't using FORTH anymore, it was the microcontroller solution of the day when i was young (35 years ago).

    • @wmd5645
      @wmd5645 7 ปีที่แล้ว

      I'll check that out, thanks Lothar.

  • @christophernetherton9389
    @christophernetherton9389 8 ปีที่แล้ว

    Enjoyed the video very much. I enjoy the way you contrast the operation of the 2 environments (Arduino IDE vs Atmel Studio.)

  • @rondlh20
    @rondlh20 8 ปีที่แล้ว +10

    Thanks, very useful info. I would be interested in more examples like this if there are any.

    • @Joop_Brokking
      @Joop_Brokking  8 ปีที่แล้ว +2

      Check this video: th-cam.com/video/ibYA229U08w/w-d-xo.html

  • @stefanivovic
    @stefanivovic 8 ปีที่แล้ว

    vary nice video and yes we like details and in depth explanation of arduino and microcontrollers. and let me tell u something, its refreshing when i get explanation from someone who actually this stuff . keep up the good work

  • @PiefacePete46
    @PiefacePete46 8 ปีที่แล้ว

    Thank you Joop, clear, concise and properly reasoned as always... it makes for very useful viewing.

  • @heyarno
    @heyarno 7 ปีที่แล้ว +3

    I think this is what Arduino originally aimed for, as a stepping stone to professional development.

  • @AlJay0032
    @AlJay0032 4 ปีที่แล้ว

    I had the same experience, Arduino did some stuff under the hood which caused me great frustration and many hours of debugging.
    It doesn't tell you what initialization and so on it is doing.
    That is why I prefer the use the bare bones gcc cross compiler and tools to flash the micro controller.
    Then I know exactly what is going on.

  • @DrenImeraj
    @DrenImeraj 8 ปีที่แล้ว

    I have been planning to fully move to Atmel Studio a while back, and I did for some personal projects. The problem is that the Atmel Studio is not cross-platform since it's based around Visual Studio, which makes it unsuitable for community projects. Microchip did a better job building their development environment around NetBeans, which is cross-platform.

  • @AbishaiSingh
    @AbishaiSingh 8 ปีที่แล้ว

    This video is amazing. I learned a lot of new information. Please make more of this kind of videos.

  • @miloradowicz
    @miloradowicz 3 ปีที่แล้ว

    Used Arduino IDE for exactly one day and switched to VSCode + PlatformIO, simply because Arduino UX was much less responsive and used to take minutes to pass through communication errors whenever my knock-off CH340-based Arduino would disconnect on verification stage.

  • @kenwallace6493
    @kenwallace6493 6 ปีที่แล้ว +1

    This is exactly why the hobby development systems are so frustrating to real-time control applications.
    For my specialty, power conditioning, the unpredictable delays/anomalies are a disaster.
    I would suggest development board vendors provide direct register access options for critical functions
    like ADC read to PWM compare register updates, etc. Often these are done via PWM timer compare or
    TOP interrupts and are on a very tight schedule.

  • @PrinceP1025
    @PrinceP1025 3 ปีที่แล้ว

    Thank you for all the information you have through this video, it’s helping a lot!

  • @coryglanton3380
    @coryglanton3380 4 ปีที่แล้ว

    This was excellent info! As a beginner this was immensely helpful.

  • @CXensation
    @CXensation 7 ปีที่แล้ว

    Great video ! You got me started on in-depth study on the atmel processor registers.

  • @margatrains
    @margatrains 6 ปีที่แล้ว

    I agree with you, some programmers are stucked on the Arduino comfortabilities, so they no longer pay attention to how a program runs on a microcontroller and how to optimize it's performance.

  • @SagaSeaCraft
    @SagaSeaCraft 7 ปีที่แล้ว +3

    You came to the same conclusions that I came to about Arduino IDE vs AS7. Except I was a bit delayed.
    I was constantly wondering wtf Arduino had in mind when it designed it's IDE.... for 'artists?!" Please. ... wtf is a sketch?!...It's a PROGRAM!!!
    I have been using the registers directly for awhile now, but within Arduino IDE, but it always puts in the header files that it think it needs without telling the programmer what is happening. Or perhaps I'm too naive and just don't see them....
    Anyway, I may make more mistakes initially with AS7, but at least I will understand what is happening inside my code rather than just allowing some IDE to do it all for me automatically... that's not programming.
    Thanks for the vid!
    :)

    • @v-dutzu
      @v-dutzu 5 ปีที่แล้ว

      It's because Arduino IDE is based on Processing language IDE, which is indeed "for artists" - a visual computing platform to easily make computer graphics. And in Processing each program is a "sketch" because you would draw something with it in the end.

  • @mesuttopuzlu6248
    @mesuttopuzlu6248 2 ปีที่แล้ว

    Not only for Arduino framework, it also valid for all embedded high level libs such as HAL

  • @Der6FingerJo
    @Der6FingerJo 8 ปีที่แล้ว +1

    Great Video! I like those detailed explanations of Arduino stuff very much.

  • @BernhardHofmann
    @BernhardHofmann 8 ปีที่แล้ว

    Great insight, well explained and a balanced view on the different approaches. This is a great video, thank you.

    • @BernhardHofmann
      @BernhardHofmann 6 ปีที่แล้ว

      I'm back, watching this again, and enjoying it just as much as the first time! :)

  • @pepe6666
    @pepe6666 6 ปีที่แล้ว

    this video was extremely valuable. im doing timing related stuff with the arduino and yeah this is super signifficant

  • @BramVdbogaerde
    @BramVdbogaerde 8 ปีที่แล้ว +1

    great video, very interesting to see how it all works internally.

  • @RobertShaverOfAustin
    @RobertShaverOfAustin 6 ปีที่แล้ว

    I agree. Arduino IDE may be good for people just getting started but sometimes I prefer to program right down to the bare metal.

  • @eliasgeorge8534
    @eliasgeorge8534 5 ปีที่แล้ว

    Great video. I agree with all you have presented as I have just gone through an exhausting exercise in trying to use an attiny841 within the Arduino IDE. This microcontroller has 6 pwm pins of which only one worked out of the box in the Arduino IDE with analogWrite(). After coming the datasheet of the attiny841 and using register manipulation and bitmath, etc, I was able to achieve the desired outcome for my project. As the final code uses little to no Arduino specific user friendly functions, I'm better off going with the Atmel Studio to get more efficient code for this memory limited microcontroller.

  • @advancednutritioninc908
    @advancednutritioninc908 8 ปีที่แล้ว +4

    Excellent Teaching Example!, You took a rather complicated problem and showed the 3 solutions to solve all issues and get to the solution you needed! You didn't include any fluff .. but you explained enough for us to understand what the problems and solutions were!
    I am old school technical, discrete transistors & IC circuits and pc's - what would you suggest as i learn coding on the arduino? what platform would be the smartest one for me to start to develop micro controller projects on? Thank You!

    • @Joop_Brokking
      @Joop_Brokking  8 ปีที่แล้ว +2

      If you are new to microcontrollers I strongly recommend the Arduino platform. It is so much easier than Atmel Studio for example.

    • @mother-fng-bonswa3612
      @mother-fng-bonswa3612 6 ปีที่แล้ว

      but , once you really understand Arduino, you start realizing things you miss, cause you want to get more out of the program but its limited.
      Is it by that time easier to step over to amtl or any other software program?
      I remember this issue from producing music and the DAW software programs. In the beginning all these programs were kinda gibberish to me.
      But once i started to control / master one, it was really easy to understand and control the rest of these programs. And i could by playing one day, easy tell which one was the one i liked to get comfortable with or don't.
      Note: I do know programming is a different world and i do not want to compare its difficulty with daw's for producing music.
      My question is more based on your experience, from the point you started programming.
      Sorry for my bad english.. I' am dutch, your name seem to be Dutch, have friends with that second and first name . haha

    • @thomaspatrick4564
      @thomaspatrick4564 6 ปีที่แล้ว

      I started using Arduino and IDE and Amtel devices and have moved to ESP devices using Arduino IDE. I will move to Python as I can use Python for more devices.

  • @EarlWallaceNYC
    @EarlWallaceNYC 7 ปีที่แล้ว

    Very helpful video. Love the details. Thanks.
    I was having some timing problems in my project.
    And, now I know why and how to fix them.

  • @user-gc9kh5zm7f
    @user-gc9kh5zm7f 6 หลายเดือนก่อน

    I am a beginner interested in electronics, microcontrollers and learned a lot from watching your videos, hope you can explain me how to open the file inside the snippet.

  • @microc51pankaj
    @microc51pankaj 5 ปีที่แล้ว

    Very good tutorial to visualise the drawbacks of using high level libraries of a fabulous IDE with which any novice can code without knowing how his code is going to perform on actual hardware.
    I really appreciate your analysis and solutions to the problem your showed.
    And u are very right bro that your real friend is the datasheet/TRM in the world of microcontrollers...I personally dislike development tools which in which u are not able to see/write code at register level granularity...u should be able to visualize the assembly instructions behind your code and get most out from the microcontroller u are using. Whether u write in assembly or C...Atmel Studio is very good.

  • @marcdraco2189
    @marcdraco2189 4 ปีที่แล้ว

    Well now I know what has been plauging me... the question now is will my 3rd party libraries compile on ATMel Studio. That's not just a wonderful explanation, it's clear and takes me back to the 6502! Oh and if you ever feel like donating that scope, I know of someone who would love to give it a home! :)

  • @billfusionenterprise
    @billfusionenterprise 5 ปีที่แล้ว

    If you think this is bad , should try programming PLC (industrial computer control) where even a simple logic command can go wrong with a simple line in wrong place.
    If i was trying to make a very strick timing pulse , i would see about some kind of self running circuit which it is it's only function and being set by the arduino, so any code timing issue will not interfere .
    By the ways , I have found over the years specs and real world don't always work. Had a special video editor board that brand of RAM chips could not be changed. Diagnostics says ok but software would not run. Another was a voice mail system which did not like certain brands of video cards

  • @Electronieks
    @Electronieks 8 ปีที่แล้ว

    Zeer mooi uitgelegd en ook duidelijk

  • @northshorepx
    @northshorepx 8 ปีที่แล้ว

    Love it. Way complex but you explain it well. Thank you.

  • @bendewachter3789
    @bendewachter3789 5 ปีที่แล้ว

    Very good video.
    This kind of information should actually be published on the Arduino website when you look up a function.

  • @user-vt1zg3iu9o
    @user-vt1zg3iu9o 2 ปีที่แล้ว

    狂赞狂赞!!哥们你除了英语差一点,别的都做的非常牛逼哈,我想了解的,你都讲了,感谢感谢。you can tell that i am a chinese, since I am using chinese to comment. you might want to translate that to get some foreign feel. haha. it's really nice to watch your video.

  • @Lkabouter
    @Lkabouter 5 ปีที่แล้ว

    Very nice explanation ! I use the Arduino IDE a lot because of its simplicity. It is really a nice IDE, but I also saw its limitations. ATMEL Studio is sure more versatile but more difficult to use. So when programming an easy application I use Arduino IDE, but when it is more time critical or complex (or a need another microcontroller) I switch over to AtMEL IDE.

    • @camelCased
      @camelCased ปีที่แล้ว

      I like PlatformIO in Visual Studio Code better for Arduino. But that might be because I'm used to VS and VS Code in my everyday work (non-hardware) and find Arduino IDE a bit awkward at times.

  • @rafaelcabelo6616
    @rafaelcabelo6616 7 ปีที่แล้ว

    Excellent video! I just need point out that you used Arduino IDE 1.0.x. If you use IDE 1.6.x that have better compiler, the program size will not be so difference of Atmel Studio.

  • @ciprianciprian5228
    @ciprianciprian5228 7 ปีที่แล้ว +2

    It would be nice to have more videos with real examples about transitioning from Arduino IDE to Atmel Studio IDE. A microcontroller world is a strange place.

  • @fivefive2433
    @fivefive2433 4 ปีที่แล้ว

    You don't have to disable timer register, you can eliminate the whole timer setting up code and free up some space.
    Using setup and loop lets the Arduino do its thing in setting timer and all that, you can avoid that by adding:
    int main() {
    setup();
    for(;;) loop();
    }

  • @Fogaata
    @Fogaata 5 ปีที่แล้ว

    Great explanation and delivery. More videos please! Thank you!!

  • @psion5mxfred
    @psion5mxfred 8 ปีที่แล้ว

    One more grateful viewer (now subscribed). Please keep up the good work :-)
    Regards from Dublin,
    Ruaidhri

  • @stephenhookings1985
    @stephenhookings1985 4 ปีที่แล้ว

    Great stuff. I also believe the Atmel studio has better debugging support than Arduino IDE.

  • @GerardWassink
    @GerardWassink 4 ปีที่แล้ว

    Useful info indeed... But it eludes me what your reason is to switch to Atmel Studio; I saw you solve the two prolems inside the Arduino IDE. Could you explain? Did I miss something?

  • @einars899
    @einars899 6 ปีที่แล้ว

    Very good explanation! What is not mentioned is the ability to use a debug tool. I just found this video, so you may have mentioned this in another. I'll go looking.

  • @gweliver
    @gweliver 7 ปีที่แล้ว

    I will be looking forward to more on this subject. I do not have an Oscilloscope yet, but wondered what has been happening with some of my code when the end results were not acceptable. Maybe it has not been just the code!
    Thanks so, so much. I'll be watching!

    • @Joop_Brokking
      @Joop_Brokking  7 ปีที่แล้ว

      A while ago I made a video about an oscilloscope: th-cam.com/video/ibYA229U08w/w-d-xo.html
      Maybe it will help you to really see the benefit of an oscilloscope ;-)

  • @farmerdave7965
    @farmerdave7965 7 ปีที่แล้ว +1

    Excellent detective work.

  • @VamosConLaPeli
    @VamosConLaPeli 4 ปีที่แล้ว

    Joop's videos are alwasy so instructive, thanks you are the man :D
    So I went to check the Atmel Studio web page... Windows only, no way.
    I _do_ have a Win10 installation and Win10's bugs are so unbelievably evident that it's just plain irritating, plus it starts doing unscheduled "house management" at any moment without asking for permission and imposes not to switch off the machine, you might be in a great hurry but no, it has been decided by Bill that you are going to be stuck for a while, it couldn't happen while you are going to eat etc., nope, right then when you are so much in a hurry.
    Besides, I love the Linux shell bash, I have plenty of scripts to make things easier, including searching for regular expressions in source files or headers only. But thanks anyway, maybe some project in the future _will_ require the Atmel Studio (but I'll do my best for that not to happen... notice that I also have some expensive software I bought in the past which is Windows-only, aaaand the same I ended up using it veeeery seldom, alas... Bill Gates should stop forwarding the depopulation agenda with his vaccine-disguised sterilizers and go back to take care of Microsoft's products... not that there were no awful bug before, too).