Don't gettit... Pro Micro question 5V or 3,3V??

Hi guys,

There is something I do not get about the Pro Micro.
As I understand it correctly, there are two types of Pro Micro boards.
The first running on 5V 16Mhz.
The second running on 3,3V, 8Mhz, Right??

At least... That is what I read and See on tutorials on Youtube. :smiley:

I have a project with a Pro Micro, 5V 16Mhz pressumably, according to the notification on the chip(?), which says 16.000 (I know it is a hard read, but I'm sure that is what it says...)
This project is powered by 5 AAA style batteries of 1,5v, making it 7,5V...
I connected this powersupply to the RAW powerport of the PM and things are running spoothly.

For some reason I had this 3,3V vs 5V discussion on a Facebook Arduino page and everyone was certain I would measure 5v on the VCC, due to the internal voltage regulator, when power is provided on the RAW port.
But even though I have a 16Mhz type of PM, I have 3,3V on the VCC port.

OK, I had some other issues and I put the project aside for a while.
Now, I had an other project with a Pro Micro chip 16Mhz, but connected to my USB port, rather then an external powersource on the RAW port.
Out of curiousity, I measured the VCC power and again... 3,3V...

Truely, I do not mind it because I needed to connect it with a board using 3,3V.

However, I do not understand why everybody keeps claiming the 5V versus 3,3V equals 16Mhz versus 8Mhz.
Is there any other way to check if for some reason I might have a 8Mhz/3,3V type, with a wrong description on the chip??
The 16.000 thingy is the only reference to determine the 3,3 of 5V type of board.

Regards,
FTMZ

What marking is on the processor chip?

According to the datasheet spec, you really need 5V to run at 16 MHz. My guess is you either have a 16MHz crystal with the wrong (i.e. - 3.3V) regulator on the board, or you have an 8 MHz crystal with its matching 3.3V regulator.

If you are unsure of the frequency that your AVR is running at, then I found the code from Nick Gammon (reply #14) in this thread:
https://forum.arduino.cc/index.php?topic=345862.0
It worked for me when I had an unmarked resonator.

I programmed my first 3.3V/8MHz ProMicro as Leonardo; so 16MHz. After that I could not program it anymore. I did fix that.

So the lesson is that if you program a 8MHz ProMicro as a 16MHz (or vice versa)you will no longer be able to upload. If you think yours is a 16MHz, program it as a 5V/16MHz; if you can program it again, it's a 16MHz version.

As far as I know, there in no difference in the microcontroller on both versions of the board.

Did you buy cheap Chinese crap or original SparkFun. With the latter, you have less problems like this.

Be aware that 3.3V is more than likely out of spec for a 16MHz; check the datasheet. If so, your system might be very sensitive to the slightest variations in power.

On a cell phone, so can't easily consult datasheets.

@sterretje is correct. The manufacturer does not guarantee correct operation of the chip at 16MHz if you are running off a 3.3V supply - I think somewhere around 13MHz is as high as you can go at 3.3V. Having said that, I read recently on the forums that some have the chip running at 16MHz on 3.3v without any apparent problems.

As far as I know, the processor chip has the same external markings regardless of the operating voltage.

If you can program the chip, then give Nick Gammon's code a go and see what sort of frequency it reports. If it says somewhere around 8000, then it's 8MHz. If it says somewhere around 16000, then it's 16MHz. It won't be precise because it uses the watchdog timer as the timing source.

Thanks for your replies guys.

The chip most certainly says 16.000.
I managed to take a picture.
My USB output is 5V, of course. And my ~8V external power source connected to the RAW pin, should also create a 5V, if the voltage regulator does what it needs to do, according to the 16.000 reading on the chip, right?
But I get a 3,3V readout.

Both (actually 3 of them) my ProMicro's were programmed as Leonardo indeed, and I did quite some debugging over time so I programmed each chip a lot. Without any errors of unstable operations.

I will try the sketch mentioned and I'll keep you informed.

Sorry guys...
16Mhz, but still 3,3 volts.
:o

Yep, that looks like the chip is running at 16MHz.

If you locate the voltage regulator, what does it say on the top of it? It won't say much, probably 3 or 4 numbers and/or letters.

Looks like you have a wrong voltage regulator (3.3V )installed on your board. Processor frequency and voltage are different things. However higher frequency required higher voltage.

You can run same board at 5V with 8MHz crystal or 16 MHz crystal. In most cases you can still run board with 3.3V at 16MHz but stability is not guaranteed.

So your option are:

  • Continue to use your 3.3V board at 16MHz but be prepared for some unexpected behavior.
  • Replace voltage regulator to 5V one
  • Replace crystal to 8Mhz ( bootloader change required)
  • Fuse your crystal to run from internal 8Mhz oscillator (bootloader change required, serial communication may work unstable at high baud rates)

FYI

The little silver component at the bottom in the image in reply #6 is not "the chip". It's the crystal.

Tx guys...
Now, the Promicro is a very versatile board of course.
And I am planning to use it for many project, due to that and because it is small.
What kind of operations will most likely endure the most problems, running on 3,3V 16Mhz?

Does its fuctionality as an HID suffer from that?
Some of my projects are intended to simulate keyboard-strokes.
I can of course use the 5V/16Mhz board to accomplish that and I easely accept my losses on buying an inferior board.
But it is something to be carefull with in ordering boards abroad.

Is there a "easy" way to tell the board to run on 8Mhz Max, to prevent mentioned trouble?
Easy as in some code or a library to fit in the main sketch?

Generally you can get away with running 16MHz@3.3V at room temperature without issue. IME, at least at room temperature or anything around there, AVR processors will run well beyond their voltage/frequency specs (I suspect in large part because the parts came out a decade or more ago, and technology has moved forward. Plus they are spec'ed for 20 MHz @ 4.5V at 85 degrees C, or 105 degrees (depending on temperature grade your device uses - the 0/1 series tinyAVR and megaAVR. and the new Dx-series - the post 2016 parts - are rated 105 or 125C!), and those speeds themselves are spec'ed with considerable margin for error, as they're meant for applications like industrial control systems, where "letting the smoke out" could involve the entirety of what used to be a high current power supply being turned into plume of noxious black smoke, or worse still, in vehicle onboard computers, where a system crash might literally result in a system crash... so a hobby project would have generally much less demanding operating conditions as well as much lower expectation/requirement for reliability :wink: (though also, based on the designs I've seen people getting help with, the designmanship involved is also, ah, a wee bit lower)

One can't really say what the sign of problems would be - likely hangs or resets would be most likely, but anything is possible (as in, an instruction giving incorrect result at a CPU operation level).... but you can generally get away with 16@3.3v under normal hobby conditions.

On the third hand... like... there's an easy solution here... One which you really ought to do anyway, considering that those rice grain sized regulators aren't really good for any sort of current anyway.... Get your favorite 1117-series regulator (I like LDL1117's as they absolutely CRUSH the standard 1117 regulators... check the minimum dropout... but ofc, they're SMD only). Your input voltage to Vin, Vout to Vcc, an Gnd to Gnd. Add appropriate input and output specs per datasheet. Now it'll be running at 5v :wink: I don't know the pro micro schematic off hand, nor do I have time to look it over, you may also need to do something to make sure it would be safe to plug into USB when powered like that (though I see a diode next to the USB port, so you may be fine...) - point is, it's not hard to just hack it so it's actually running at 5v, and since you may well bneed to connect it to 5V devices you might need to do thAT ANYWAY.

Hmm...
I recall replying on this topic.
I guess I stuck with the preview :confused:

Actually, I might switch to an 8Mhz/3,3V type of ProMicro, if it turns out to be troublesome.

Thanks for the advice and input, Guys!