Did you know fuses and signature bytes can be read out LIVE?

Also, I don't use the setup/loop programming style - I just use int main (void) with init() at the beginning and while (1) at the end.

Which would be a relief to people who have programmed in C for the last 20 years, I am sure. :slight_smile:

I honestly wish they had left it like that. How hard is it to tell people to "initialize stuff" and then "loop to do other stuff"?

There is also GitHub - WestfW/fusebytes: Arduino sketch for printing info about chip signature, fuses, bootloader version, etc
It probably doesn't compile any more; it's about 5 years old.
It's not clear that being able to read this sort of information is useful.

Now, did you know that you can unset the CKDIV8 at runtime? Not the fuse itself, but by modify CLKPR.
Apparently, all CKDIV8 does is determine the initial value loaded into CLKPR!

Yes, I discovered that recently. Useful thing to know.

I agree with you completely. The Arduino system is "dumbed down" to allow people with limited programming experience to actually be able to write a working program, but IMHO they take it too far.

westfw:
There is also GitHub - WestfW/fusebytes: Arduino sketch for printing info about chip signature, fuses, bootloader version, etc
It probably doesn't compile any more; it's about 5 years old.
It's not clear that being able to read this sort of information is useful.

Now, did you know that you can unset the CKDIV8 at runtime? Not the fuse itself, but by modify CLKPR.
Apparently, all CKDIV8 does is determine the initial value loaded into CLKPR!

Stuff that "doesn't compile anymore" is usually due to changes in GCC rather than the IDE itself.

In my setup, I completely removed the whole "tools" directory that has the avr-gcc compiler code and compiled my own (version 4.9.2) instead. As long as the compiler, linker, etc... are in the executable path, it works properly.

If I use the IDE at all, it's just for the "upload" button. I edit code using nano and serial monitor using minicom.

I've got a nice universal Makefile that takes the directory name I'm working in and passes it to the Makefile as the project name (so all I need to do is type "build" in the sketch directory).

It's nice to combine it all into one command line such as "nano program.ino && build && minicom", then it does everything automatically. To go again, all I need to do is quite "minicom" and recall the last command line and do it again.

(and about 1000 tries later I may actually have a program that works! :slight_smile: )