I really likes your "low level made simple" approach without overly complicated setups with IDE's but just an editor and a terminal. You really inspire one to experiment with more bare metal pgm. Will try this. Cheers.
The AT tiny series are great for small tasks. The one without RAM is extra fun to program, as the CPU registers are pretty much the only memory you have.
Your videos and bare metal programing skills are both off the charts. This is exactly what I was looking for. I have an Arduino Uno and I have been learning to program with it but I wanted to know if it was possible to program chips individually instead of just keeping to the board. What you just showed us was incredible and I have been reading and trying to grasp hardware for the last 2 years. This gives me a greater understanding than I ever had on programs, chips, systems and this was a 6 minute video.
I like that you speak in a quick and easy to understand manner. I should be able to follow your tuts. with ease and it helps I have basic understanding already of all of this. Thank you.
I've been REALLY enjoying this channel. If you're talking about stuff I don't know you make it sound easy... If you're talking about stuff I do know, it's still interesting enough for me to listen along and chuck in a comment or two. ......... Great subject matter, really well presented! For a lot of my projects, I use the ATTiny24... it's got a bit more GPIO than the 45/85 (usually "just enough") but it's still not as "huge" ;) as an ATMega328. ATTiny2313 is a nice one too It's got a bit more GPIO than the 24 (but no ADC).
Nice! I really like how I've never found how I can specify a different CPU speed in Arduino IDE (it seems you need to change configuration files and what not) and here it's just a simple F_CPU definition passed to the compiler. I may end up forgetting about ArduinoIDE and switch to this way
For the purpose of this video I didnt want to dive too deep on bitmasking and thought the macro looked a bit cleaner. Also I think you mean ^= for the toggle ;) Thanks for watching and commenting bro!
@@LowLevelTV sorry, too used to AtMega328. It has a few PIN registers, AtTiny just has PINB (as you know!) -- I should have typed PINB rather than PINx. My bad. Cheers, Norm.
@@LowLevelTV Nope. I wrote what I meant (copy-n-pasted from an actual program). When you write a bit to "PINB", it's not the same as writing to the PORTB. In the datasheet, you will see that writing bits to PINB SFR tells it to "toggle" the bit(s). :)
I love this little chip. Well actually it’s bigger brother ATTiny85 I personally program them in assembler because it’s functionality is so limited :) but useful chip.
@@LowLevelTV yeah I started a month ago, with beating the world record on 100M Dash :) and since I have so many smallish projects and ideas and sometime, I’m between projects taking a little sabbatical, it gives me some time to make those videos. My HornyBox mark 1 (uses the ATTiny85) the video about the mark 2 is all C++ on a Pi zero. I don’t know how many videos I will make, when I’m back in the daily grind though :) My bigger project is actually this: instagram.com/p/CMunoMunpU3/? a programming game. The NodeJS VS C++ performance test is actually for this programming game.
@@LowLevelTV Straight C is hard to beat. Have the compiler output ASM for you, and then see if you can optimize it? Unless you really really like assembly.. I've tried in the past, but always found C's code already pretty well optimized. But, on the other hand, I'm not an assembly expert... so I'm sure others can do better than I...
Thanks for this video, If I understand it correctly, this is what I'm looking for. I'm looking to make my own lighting kits for model making, setting up lights to go on and off to make an effect. So once I program a chip accordingly, I can make a small board, solder items in place and place it in a model. Is that correct? I know I will have to be doing the math to get the right power source for the lights to to be lit.
Great tutorial but when i try to program attiny45 i got avrdude: AVR device initialized and ready to accept instructions avrdude: Device signature = 0x000000 (retrying) avrdude: Device signature = 0x000000 avrdude: Yikes! Invalid device signature. avrdude: Expected signature for ATtiny45 is 1E 92 06 avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "blink.hex" avrdude: input file blink.hex auto detected as Intel Hex avrdude: writing flash (1238 bytes):
At 3:37 you're all like "just blindly trust me" and then at 3:41 you're exiting "int main()" with no return value! You charlatan 😂😂😂 your ruse is up! 😉😂 Seriously though. Nice demo!
There was no external crystal connected, however the clock speed was set to 1MHz. Does that mean the Atiny has an internal clock set to that frequency?
I really likes your "low level made simple" approach without overly complicated setups with IDE's but just an editor and a terminal. You really inspire one to experiment with more bare metal pgm. Will try this. Cheers.
Wow, thanks!
i will fixes your grammars
Man I can't say how well your content compliments my CS major, I just wish more people were here to appreciate it!
Thanks bro! The channel is growing, if that makes you feel better! :D
Finding your channel is like hitting gold. Thank you for such great videos.
The AT tiny series are great for small tasks. The one without RAM is extra fun to program, as the CPU registers are pretty much the only memory you have.
Your videos and bare metal programing skills are both off the charts. This is exactly what I was looking for. I have an Arduino Uno and I have been learning to program with it but I wanted to know if it was possible to program chips individually instead of just keeping to the board. What you just showed us was incredible and I have been reading and trying to grasp hardware for the last 2 years. This gives me a greater understanding than I ever had on programs, chips, systems and this was a 6 minute video.
Glad you enjoyed, thanks for watching!
I like that you speak in a quick and easy to understand manner. I should be able to follow your tuts. with ease and it helps I have basic understanding already of all of this. Thank you.
I love the little "Activate Windows" in the corner
I've been REALLY enjoying this channel. If you're talking about stuff I don't know you make it sound easy... If you're talking about stuff I do know, it's still interesting enough for me to listen along and chuck in a comment or two. ......... Great subject matter, really well presented!
For a lot of my projects, I use the ATTiny24... it's got a bit more GPIO than the 45/85 (usually "just enough") but it's still not as "huge" ;) as an ATMega328. ATTiny2313 is a nice one too It's got a bit more GPIO than the 24 (but no ADC).
Glad you’re enjoying the videos!
Awesome video! Short and simple.
Nice! I really like how I've never found how I can specify a different CPU speed in Arduino IDE (it seems you need to change configuration files and what not) and here it's just a simple F_CPU definition passed to the compiler. I may end up forgetting about ArduinoIDE and switch to this way
Cool video. Thanks. "_BV(DDB3)" is the same as (1
For the purpose of this video I didnt want to dive too deep on bitmasking and thought the macro looked a bit cleaner.
Also I think you mean ^= for the toggle ;)
Thanks for watching and commenting bro!
Writing a 1 to a bit in the PINx register will toggle the corresponding pin. No need to ^=. Works on the AtMega328 as well.
Cheers,
Norm.
@@NormanNodDunbar Wow I was not aware of the PINX register, today I learned!
@@LowLevelTV sorry, too used to AtMega328. It has a few PIN registers, AtTiny just has PINB (as you know!) -- I should have typed PINB rather than PINx. My bad.
Cheers,
Norm.
@@LowLevelTV Nope. I wrote what I meant (copy-n-pasted from an actual program). When you write a bit to "PINB", it's not the same as writing to the PORTB. In the datasheet, you will see that writing bits to PINB SFR tells it to "toggle" the bit(s). :)
I love this little chip. Well actually it’s bigger brother ATTiny85 I personally program them in assembler because it’s functionality is so limited :) but useful chip.
That's smart, 4K flash isn't a ton of room. I'll probably do a video on AVR assembly with this chip in the coming weeks
@@LowLevelTV cool! I’ll subscribe, I see we do similar things and have similar interests.
@@CallousCoder subbed back. I see your channel is fairly new, good luck and have fun!
@@LowLevelTV yeah I started a month ago, with beating the world record on 100M Dash :) and since I have so many smallish projects and ideas and sometime, I’m between projects taking a little sabbatical, it gives me some time to make those videos. My HornyBox mark 1 (uses the ATTiny85) the video about the mark 2 is all C++ on a Pi zero.
I don’t know how many videos I will make, when I’m back in the daily grind though :)
My bigger project is actually this: instagram.com/p/CMunoMunpU3/? a programming game. The NodeJS VS C++ performance test is actually for this programming game.
@@LowLevelTV Straight C is hard to beat. Have the compiler output ASM for you, and then see if you can optimize it? Unless you really really like assembly.. I've tried in the past, but always found C's code already pretty well optimized. But, on the other hand, I'm not an assembly expert... so I'm sure others can do better than I...
Thanks for this video, If I understand it correctly, this is what I'm looking for. I'm looking to make my own lighting kits for model making, setting up lights to go on and off to make an effect. So once I program a chip accordingly, I can make a small board, solder items in place and place it in a model. Is that correct? I know I will have to be doing the math to get the right power source for the lights to to be lit.
Since you're working with chips, shouldn't the return of main is void?
Good catch! You're right, main in an embedded system should be a procedure and not a function.
Great tutorial but when i try to program attiny45 i got
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x000000 (retrying)
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
avrdude: Expected signature for ATtiny45 is 1E 92 06
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "blink.hex"
avrdude: input file blink.hex auto detected as Intel Hex
avrdude: writing flash (1238 bytes):
Probably has to do with the connection or baud rate. The 0x0000000 device signature reads like a voltage issue
Teach me how to write raw hexadecimal assembly code on AVRs please.
Would you like to do a video about simple AVR bootloaders?
Hmm, very interesting. I like your funny words, magic man
Thanks! 😃
Where do you write C code? Vim?
At 3:37 you're all like "just blindly trust me" and then at 3:41 you're exiting "int main()" with no return value!
You charlatan 😂😂😂 your ruse is up! 😉😂
Seriously though. Nice demo!
There was no external crystal connected, however the clock speed was set to 1MHz. Does that mean the Atiny has an internal clock set to that frequency?
Yup! The AtTiny45/85 have internal clocks tunable up to 20 MHz.
Led running forward and reverse code video please
A few years ago, I was playing around with a ATTiny13.
If i use 2000 pixel led programming then what is the steps
This chip has some ROM memory set aside in it, and you're interfacing with those pins using the adurino? Am I following this correctly?
Led chaser code please
Hello. you are using a modern development environment. a to run the code. you are using dos-era commands. what's the point of that? greetings.
What advantage does a cumbersome IDE provide?
Huh? Oh, you mean the bash terminal and vim or neovim, it's what the cool Linux and Mac kids use:
ua-cam.com/video/U-omALWIBos/v-deo.html
"It's"
That's not a 470 ohm resistor, it's a 1k.
its not the smallest, try the attiny10
8 pins? Wimp. Call me when you've used a 6-pin chip.
attiny10 ben hack XD