Arduino UNO R3: what does the platformio.ini file do?

Curious what all these settings do as I noticed that changing board_build.f_cpu does NOT change the cpu clock. I am simply toggling a GPIO pin and from the signal readings I get via Logic Analyzer, theres no change in the frequency of the PWM signal I’m generating.

Do I have to manually configure the fuses to change the frequency of my board?

Your Uno is fused to use the 16MHz external crystal oscillator. If you want to change it, you will need to enable one of the other options by setting the appropriate fuse bits.

Don’t forget, a fuse but is programmed when it is zero and unprogrammed when it is 1.

The data sheet has all the details. Unless you find a good book on the matter! :wink:



board_build.f_cpu changes the value of the F_CPU macro passed to the board, aka what the code thinks the CPU frequency is. As Norman said, the programmed fuses in the chip have to match that. Fuse programming is covered in the documentation.