Pro-Micro on a breadboard

Greetings,

I have on order a couple "pro-micros" from ebay (5v16Mhz), which are still on the slow boat not arrived yet. One board for the inevitable mistake on my part that fries it, the second to hopefully have learned the lesson. At the price, I'm certain they are 'clones' of 'something' if you will.

It appears the official Arduino product is simply a 'Micro' if I am correct, as opposed to the also reputable Sparkfun's 'Pro Micro'. Which creates some confusion in itself, as the basic description/functionality seems identical, however, Arduino's description doesn't seem to mention requiring additional libraries or core files in order to use it, while Sparkfun's version does.

Now my background using Arduino is not a beginner, but still very novice. I have completed a number of projects using Attiny's and 328's on breadboards, as well as creating my own PCB's mostly at home, and also a few professionally.

The end goal is to purchase the Atmega32u4 chip and minimum supporting hardware, resonators, caps, etc. most which I have already, build a pcb, and ultimately tinker with building my own basic Keyboard and Trackball. I understand the 32u4 has the onboard ability to operate as usb 'HID' device, but this is where I begin getting stumped/ lack of understanding.

I downloaded and followed best I could the installation of the 'core' files from sparkfun for_their_ pro micro, and do have the 'Sparkfun Pro Micro 5V/16Mhz' board option available in my Arduino IDE, which happens to be v1.0.5 r-2 yes I know its older but I don't intend to update anytime soon, took me weeks to re-figure out what I thought I had figured out already last time I updated the IDE.

My specific questions are as follows:

  1. Am I able to simply breadboard bare minimum components and the 32u4 (well I have already built a breakout pcb to convert the TQFP to a DIL package for breadboard friendliness) and...

a) Simply use my Uno with ISP sketch loaded and using ISP to burn the 32u4 bootloader just as I have done with other 328's and the fuses on Attiny's?

b) Then flash sketches written in the IDE to my 'bare minimum' 'pro micro' using ISP, just as I have done with other 328's and Attiny's?

  1. Afterwards, if I were to build a 'bare minimum' PCB with the 32u4, and minimum required supporting components including USB connector, following the official Arduino's 'Micro' schematic, should I now simply be able to flash sketches from the IDE using usb, and more importantly, now use my 'bare minimum pro micro' as a HID device, as is the final goal?

  2. How do you specify for the PC, (Windows7 in my case) to distinguish the 'pro micro' as either an HID device, or just another Arduino to program?

Thanks for you consideration...

bc

You can do a "bare minimum" 32u4 and flash with ISP.
However, every time you flash with ISP the bootloader is erased. So all you need to do is burn the fuses. Might as well use the Burn Bootloader in the IDE.
It may also be possible to upload using the serial port?
You can also attach a USB port and program over USB.
There are specific libraries that don't need to be programmed with an ICSP which are used for HID. I think it still shows the COM port, but I am not sure.

Hi, thank you for the prompt info. :slight_smile:

So just to confirm: I will be able to burn the bootloader to the bare minimum raw atmega32u4 using Arduino as ISP, similarly to using the Arduino on a breadboard tutorial? After which, I can then program the 32u4 from the IDE using USB and a USB connector receptacle connected to the D+ and D- (and of course power& ground as well as the passives found in Arduino`s "Micro" schematic)?
Thanks again, that was the info I was questioning.

Isaac96:
However, every time you flash with ISP the bootloader is erased.

I didn't realize it, I thought maybe the bootloader resided somewhere in memory I've yet to delve into, and was not overwritten when programming via ISP. Coincidentally, usually in the past once I programmed various breadboarded Arduinos via ISP, I never programmed them again using the USB/hardware UART interface.

bc

You will need more than just a USB connector. USB uses 3.3V. If you are running at 3.3v, then you will be fine. But at 5v you will need a level shifter of some sort. See the V-USB circuit. link

Isaac96:
USB uses 3.3V. If you are running at 3.3v, then you will be fine. But at 5v you will need a level shifter of some sort

Well, that throws me for a spin, I'll need to study the Micro schematic better.

Now might i ask (novice)how is it that I power all of my Arduino projects from USB, and yet they operate at 5v? Is it only the data lines that are at 3v3? Even a quick search of USB pinout reveals +5v on the power line!

Yes. Only the data is 3.3v.
The Micro uses zener diodes and resistors instead of a seperate chip for the level shifting.

Ok I've studied the Micro schematic a little and looks to be a bit more than I anticipated. I do notice the zeners and resistors, as well as a few other connections/components I'm not totally clear on...I'll definitely need to study up a good deal more there.

Meanwhile I suppose I'll just try and get experience using the clones I've coming and forget about rolling my own at least for the time being :confused:

Thanks again for the heads up and friendly info regarding the 3v3, probably saved me some headaches down the road :slight_smile:

bc

Yeah, the virtual COM ports are not too easy to get going!

A bit disconcerting hearing the Windows ‘device disconnected’ tones every time you upload, but the Pro Micros are neat. Just remember to select the right board, the right Chip/V/MHz combo, and the right COM port in IDE.

  • Just a note, you -can- get Pro-Micros in +3.3v flavors..

I have ordered bothy +5 & +3.3v versions off ebay (clones)

And while they 'say' these are a direct replacement for the Pro-Mini's..

this is false.

I'd have to go back and look at my posted/documentation on it.. but if I recall, there are at least 2 pins that are different.

Well my Ebay pro micros showed, and I'll report my findings:

They appear to be identical to the pics from the Sparkfun site for their pro micro. Every component, every visible trace, every via. Just blue instead of red.

Now I'll admit complete confusion remains for me regarding the 3v3/5v usb shenanigans, if I were to roll my own...The Sparkfun pdf schematic for the 5v/16Mhz version is different from the Arduino Micro schematic, and I'm utterly confused where the SFE version(and my new clones) does the level shifting?? While the SFE schematic shows a solder bridge " for " 5v/16M, mine are not bridged, yet when plugged into USB I have 5v at VIN, and the resonator shows 16M.

Nonetheless, when I attached them to USB, my pc immediately recognised them as Leonardo, which after a little fuss with drivers or something now shows as either SFE pro micro, or just Pro micro in device manager, don't remember ATM. It seems that it does revert back to Leonardo during sketch upload/boatload ops temporarily, I believe that is expected.

I then proceeded to implement all the examples sketches from Sparkfun, and they all went off without a hitch! :slight_smile:

So as it stands,I can't possibly justify the trouble of a DIY 32u4 pcb considering the following:
No DIP for Atmega32u4...ugh
Only about 5 bucks each for the boards I bought, working great
Uncertainty regarding the level shifting

My only motivation for DIY originally... I despise micro USB. :frowning: So many failed devices just to save a knats ass of space :confused: Who's idea was that?
Regards
bc

Not sure where you get any level shifting from?
They either run @ the designated +5v/16Mhz or +3.3v/8Mhz

I use my ebay pro micros with the Sparkfun pro micro drivers.
Get those added to your board list with the url you enter into file/preferences.

xl97:
Not sure where you get any level shifting from?

Isaac96:
If you are running at 3.3v, then you will be fine. But at 5v you will need a level shifter of some sort.

Isaac96:
The Micro uses zener diodes and resistors instead of a seperate chip for the level shifting.

All I know is that I don't :slight_smile:

haha..

there is an 'operating voltage' and a 'logic voltage' (pe se`)..

If your board a +5v@16Mhz board.... its runs at 5v logic level

Just because it may have a regulator on it somewhere that provides a +3.3v pin or two does not mean it have +3.3v 'logic level'...

(sorry I'm lacking for better terminology right now!)

if you need the do some logic/level shifting for say an RX/TX pin or something.. you can usually get away with making a voltage divider from a few resistors.

if you are trying to shift many lines/pins a dedicated chip is usually best.

if you want to breadboard this anyways.. get one of the pre-made 'usb breakout boards' from ebay or wherever.

should have everything you need on the pcb..etc.