Why is Arduino Pro Mini 3.3V/8MHz delay half long as that of other devices?

From left to right, there are ESPs 8266-01 and 8266-12, Arduinos Pro Mini (3.3V, 8MHz), Pro Mini(5V, 16MHz), Nano and Micro. I did flash default "Blink" example on all devices with "delay(1000)" (had to change pin 13 to 1 for the ESPs). The left group is connected to 2 AA batteries, the right group to 3AA batteries.

As you can see in video the 3.3V/8MHz Pro Mini shows double frequency compared to the other 5.
What is the reason for this?
(I know that the ESPs run @80MHz and not @16MHz, but the ESP8266 Arduino IDE does it right)


When you compiled the sketch for the 8MHz version with the 8MHz Pro Mini as selected board, then everything should be fine. I assume that you did that.

Did you buy a cheap Pro Mini 8MHz from Ebay ? They just put on any crystal they happen to have. There is probably a 16MHz crystal on it. If you check with a magnifier, perhaps you can see something like "16..." or "8...".

Like Peter_n said, I'm sure there is a 16Mhz crystal on it...

If you upload an 8Mhz configuration, then it basically says something like "1 millisecond is 100 cycles of the clock". However, if your board has a 16Mhz crystal, then that 100 cycles will happen in 1/2 the time...thus your delay is twice as fast...

This should be an easy fix, you just go to the boards.txt file and change the 8000000L to 16000000L and it should be fine.

I assume that you did that.


Did you buy a cheap Pro Mini 8MHz from Ebay ?

From Aliexpress, this one (1.99$ incl. free shipping):

Thanks Ps991, that change in boards.txt did what you said, now delay(1000) is a 1sec delay on the 3.3V Pro Mini, too.