Seriously good series. Nobody has coherently explained anything this well, useful for all microcontrollers because you broke it into actual pieces and skipped the confusing stuff.
@FilamentFridayАй бұрын
4yrs ago but this was excellent.
@WaldoHazeleger Жыл бұрын
I like this bare-metal series a lot. Would love to see you make an episode to replace delay() with the AVR timer.
@adaminsanoff3 жыл бұрын
One could not explain it better. I am an experienced hobby programmer, yet I enjoyed the series. Thank you for putting these videos together, Mitch!
@asifjc Жыл бұрын
I just discovered your videos and I must say that you have done a splendid job. I am starting to explore Attiny10 and would appreciate some videos on programming these small devices.
@draufunddran4 жыл бұрын
ADC and UART without libraries would be awesome... I hope I'm not too late.
@MrVouligny3 жыл бұрын
on STM tooooo!!
@metamud86862 жыл бұрын
5:03 actually you won't be getting an 8 MHz internal CRYSTAL oscillator, you will be getting an 8 MHz internal RC (resistor-capacitor) oscillator. No issue for what you're trying to achieve here, but there is a big difference in accuracy between an RC osc and an external, say, HC49 crystal with two 22pF caps.
@diegoamaya63534 жыл бұрын
I think compilers would be a good follow up on the series before getting into another MCU, although I would love to see some other series using an ARM microcontroller. Also seeing the programming of IO interfaces is quite interesting, Uart and maybe I2C too, thanks for the videos btw
@GrimReaperCalls4 жыл бұрын
These are getting better and better, thanks a lot for making them! I would love to compilers next.
@JBERGALIEN11 ай бұрын
Hello Mitch, I found out from Atmel ATTINY85 datasheet page 148 note 2. After this fuse has been programmed device can be programmed via high-voltage serial mode, only, so the best way to alternate is to use an HV fuse setter.
@ashoksingh48792 жыл бұрын
You have huge knowledge sir. Awesome explanation. Love from India 🎉🎉
@mnavarrotube2 жыл бұрын
Wow, this video is at a different level. Thank you so much
@shvideo13 жыл бұрын
What an awesome detailed and very informative video. Great information. Thank you for taking the time.
@adammontgomery79802 жыл бұрын
I did some bare metal programming a while back and used #define F_CPU 8000000UL to get timer/counters working properly without halving everything.
@formosabrowning35392 жыл бұрын
The best explanation.
@CrazyMineCuber3 жыл бұрын
Wonderful series! Please do more!
@Thiselectron214 жыл бұрын
Awesome video! I would definitely be interested in learning more about cross compiling and ARM
@1fertube7 ай бұрын
Excellent teaching!
@pbs570 Жыл бұрын
excellent, excellllllllent JOB!!!! Keep it up!
@DRI19663 жыл бұрын
Thank You for making this video, you explain everything that I needed in a nutshell. Really well done 👍
@aashutoshswami8 ай бұрын
I love your videos!!!!!! They are helping me understand my engineering course much better. Thank you so much!!!! Can you make a video on ADC and UART without libraries please ?
@jonathanstodden60294 жыл бұрын
Is there any slick was to fix the delays? Will running the microcontroller at 8 MHz instead of 16 MHz affect communication over uart? Thank you for all your great work so far. I'm really enjoying the videos.
@konaprog Жыл бұрын
So great! Thank you. I never would have figured out that the "Arduino as ISP" was an emulated stk500v1 and that I needed to set the baud rate. This morning I was first time able to terminal mode talk to a scrap air conditioner control that uses an atmel325v. Question though, the end of the terminal session Safemode said the lfuse, hfuse, and efuse had been changed even though I was only looking at dumps. whats that about?
@EvilSapphireR Жыл бұрын
At 20:29, if i understand correctly, the arduino as ISP is using the serial programming interface to write the compiled hex of the blink sketch to the flash, and NOT using the STK protocol to write the hex to the flash (which would require the programmed arduino to have a bootloader present), correct? So the stk500 naming avrdude gives to the 'arduino as ISP' is just a naming, and not the actual communication protocol being used by the programmer Arduino. Also, why is there no need of the -P flag when avrdude talking to the usbtiny programmer? Is it because avrdude talks to the usbtiny over usb port? But even when using a second arduino as isp, we connect it to the pc over usb too, so I'm not exactly sure about the difference.
@user-mr3mf8lo7y2 жыл бұрын
Amazing videos. Thanks a bunch.
@martianzero24 жыл бұрын
These are great! Just watched all 5 and really clarified a bunch of concepts I’ve been trying to wrap my head around for the last few months. I’d also had a pro micro with a bad boot loader that I couldn’t fix following some other tutorials, but with your vids I was able to fill in some gaps that I was misunderstanding. I’d like to see stuff about samd21/51 if you’re ever inclined. Thanks!
@aviv9312 жыл бұрын
love your tutorials !
@JBERGALIEN11 ай бұрын
Hello Mitch, and thank you for your knowledge and talent, I've just getting my feet wet about ATTiny85, and I wonder if it's better & faster to execute a line of code than having to build an HV fuse resetter , witch one is the best of the west. thank's again
@proffirmanable3 жыл бұрын
Very inspiring and informative, thanks :)
@isaacatia-abugbilla24763 жыл бұрын
Great video. I am really learning a lot here. Just a quick question, could we say that avrdude is thus acting like an "external bootloader" since its basically doing what the boot loader does which is essentially to to act as an intermediary between my computer and the chip/arduino itself?
@testme20264 жыл бұрын
thank you, all works you are a star mate!
@henkoegema63902 жыл бұрын
Very well done. 👍 Q: I have installed avrdude via the command line in Ubuntu22.04. (no Arduino IDE). Where is avrdude.conf? (for the -C parameter)?
@henkoegema63902 жыл бұрын
Yesterday I could not find it, but today I could. 🙂 It is in /etc. I really enjoy your videos.
@robinwilliams53482 жыл бұрын
This video has been SO useful, thank you so much! Is this correct please - My understanding is that I don't need to upload the bootloader to my chip at all. Using avrdude I can set the fuses and the flash the binary without putting a bootloader on there at all. Am I able to do it all in the same command or must they be done separately? I'm thinking to write the command in this order: burn the Extended, High, and Low fuses, flash the binary and then finally set the lockbits. I want to set lockbits to 0x00 (I think) such that the chip cannot be read or rewritten as much as one is able to. All it can do is execute the binary unless the entire chip is erased. Thanks again for your useful videos!!!!
@MitchDavis22 жыл бұрын
It’s been a while since I made this, so take this response worth a grain of salt. You should be able to chain everything together in one command. You are correct that you don’t need a bootloader at all. Sometimes they’re nice to have, and other times it’s nice to have a little bit extra program space for your code.
@robinwilliams53482 жыл бұрын
Thank you so much for taking the time to reply. Cheers!!
@douglasthomson19892 жыл бұрын
Hi Mitch. really enjoyed this series so far and have learned alot. However, not quite sure what I've done with a couple of Arduinos nano's i seem to have bricked. They both communicated with AVRDUDE just fine when they were Arduinos and reported what they were perfectly. I've sent a little fuse (only) command to them from AVRDUDE to use the internal RC clock, and as soon as I went back to make sure they were all still good, I get the rc=-1 error, and they now won't communcate at all. It's defo not the wiring. I know I've screwed up somewhere...just not exactly sure where. Any ideas? My fault for messing with the fuses I guess. Looked so simple when you were doing it.
@MitchDavis22 жыл бұрын
Are you able to reset the fuses to their defaults, or is avrdude not communicating anymore?
@leNnard_7 ай бұрын
I ran into the same problem on my ATTINY, and figured out how to fix it consistently. If you're still looking to un-brick your NANO let me know!
@farzadbakhtiar4 жыл бұрын
Hi Mitch. Quick question. I think the answer is yes but in this video you show using your ICSP programmer while the 328p is seated in the Uno but presumably you can use the programmer with the 328p on the breadboard by wiring your programmer to the board, right?
@gyaviratuz20292 жыл бұрын
Can we learn how to use the EEPROM programmers
@plamenpetkov7132 Жыл бұрын
Тwo new ATMEGA328P (DIP28) from Ali are not seen by USBasp programmer (no response from target in SinaProg). Normal consumption (11 mA), no oscillations at 8 MHz crystal resonator, no help with external force fed clock to XTAL1 (tried 8MHz, 16 MHz). Another two in (quad flat pack in Nano) show the same no clock and no response to force fed clock. Do all 4 chips face the bin?
@reshadrei1788 Жыл бұрын
where is the video of using UART without library
@nortronics2 жыл бұрын
Ok. Forget my last comment on video 4. Now I see that bare metal
@Arceus3251 Жыл бұрын
Greets! I have to start off saying: Fantastic series thus far c: Easy for me to understand, granted I already have a background in computer science. However, I appear to have run in to a snag, unsure if anyone else had this issue. I'm attempting to write my fuses, but AVRDude fails to check the signature of my target. I get the same error in the Arduino IDE. I BELIEVE my connections are solid, sort of frustrating. ^^" Edit: Turns out my connections WERE good, it looks like the SCK pin on my target board is fried. Big sad. Gonna continue with the ATTiny85, seeing as there's a tutorial down the road for that
@evolearner2 жыл бұрын
ADC and UART without libraries please! And Awesome Video Series...
@tunckuyel4 жыл бұрын
i want to use modules without libraries. for example spi andi2c devices. but i guess before than i have to learn clock manipulations for using them or using interrupts.
@rompipelotas2 жыл бұрын
i think if you use avrdudess..it is much simpler ..thank you for your explanations ............
@eheadj4 жыл бұрын
Perfect series. Thanks for sharing. A question. Now that you are using the 8mhz internal osc, would this barebone chip be able to correctly communicate with e.g. an nrf24l01 through the RF24 library? Or like delay things would get messed up? Thank you!
@eheadj4 жыл бұрын
@@MitchDavis2 Thank you so much for taking the time to do this!!! I will study your answer ASAP!
@fusca14tube3 жыл бұрын
Hi Mitch. Awesome series! One question about security. Is there a way to protect your program against some dump technique? Maybe using this lock fuse? Can you explain it? THANKS!
@MitchDavis23 жыл бұрын
I haven’t used the lock fuses myself, so I’m not exactly sure what’s possible with them. I’m fairly certain you can make your write-protect, and read-protect it. Best place to answer this would be the ATMEGA328 datasheet, and just search for LOCK. It should tel you what all the combinations do.
@fusca14tube3 жыл бұрын
@@MitchDavis2 Thanks! I will look for it. Can I continuously set/unset/reprogram these fuses bit or it can be done only once? Can I brick the μc permanently setting up an invalid combination of these fuses?
@MitchDavis23 жыл бұрын
@@fusca14tube I always thought they were permanent, but according to the datasheet (i.imgur.com/ZVxTxTn.png), it looks like they can be reset ONLY with the chip erase command. That means you can “lock” the chip, and the only way to unlock it is to erase the whole chip.
@fusca14tube3 жыл бұрын
@@MitchDavis2 OK. Thanks for the reply.
@faxanidu30704 жыл бұрын
Yay you fixed it!
@JJSogaard2 жыл бұрын
Why didn’t I know about the programmer calculator?!? I normally use a Python shell to convert, but this is much better!
@cheapmod Жыл бұрын
You start to sound like Morpheus in this series
@JohnDavidDunlap3 жыл бұрын
ENHANCE
@chiraggoyal76374 жыл бұрын
Nice video. I've seen all 5 videos of Arduino to STM. It'd be great if instead of teaching many controllers you move towards getting better at a single controller and lead to making projects. Thank you