Hey All,
Just in case anyone is looking for an experimental version that might work with 3V3 Pro Micros, please see attached .hex file.
Details:
I started with the following .hex file:
resources/slightly-changed-sc-v1-12/15676
Which I found a link to here:
http://joefreeman.weebly.com/uploads/1/ ... _micro.pdf
This appears to be a modified version that exposes the reset line too on PB6 (read that .pdf), the default release I think has it on a pin that is not accessible on the pro micro, but it's otherwise accessible by other atmega32u4 boards.
I disassembled it, and looked for "out 0x29" instructions.
These instructions write the PLLCSR register.
Basicly for 16MHz pro micro the PINDIV bit of this register must be set, but for 8MHz Pro Micro PINDIV must not be set.
I found the following sequence:
│ 0x000016fc 82e1 ldi r24, 0x12
│ 0x000016fe 89bd out 0x29, r24
And I changed it to:
│ 0x000016fc 82e0 ldi r24, 0x02
│ 0x000016fe 89bd out 0x29, r24
After this change, if flashing the modified .hex file (see attached), then the 3.3V Pro Micro successfully enumerates.
Note: You probably need to short the J1 pads on the Pro Micro to force it to operate at 5V.
Note2: I have not tested this with a keyboard, and it's not guaranteed that this will work with the keyboard, there could be other timing sensitive elements in the firmware that assume that the CPU is running at 16MHz, in which case more mods are needed.
If you try this please report back here.
Andrei