×

SparkFun will be closed May 25, 2015 for Memorial Day. Orders placed after 2pm on Friday the 22nd will ship out on Tuesday. Thanks!

gsgeschke

Member Since: April 20, 2011

Country: United States

  • I just found that crackmonkey commented with an equivalent fix on the Fio v3 product page.

  • Here’s the fix. Unfortunately it has to be made in the Arduino core code.

    In the USBDevice_::attach() function of arduino-1.0.1\hardware\arduino\cores\arduino\USBcore.cpp, line 641, change:

    PLLCSR = 0x12;          // Need 16 MHz xtal
    

    to this:

    PLLCSR = 0x12;          // Need 16 MHz xtal
    #if (F_CPU == 8000000)
        PLLCSR = 0x02;          // Alternately, support 8MHz
    #endif
    

    Bit 4 of the PLLCSR register enables a divide-by-2 of the input clock to the PLL. This is needed for a 16 MHz design, but should not be enabled for an 8 MHz clock.

    If you select the SparkFun Pro Micro 3.3V/8MHz board type when compiling your sketches, then the F_CPU define will already be set to 8000000 for you.

    After making this change, the example sketches provided by Arduino 1.0.1 were able to enumerate as both a CDC serial port and HID device.

  • Has anyone had this 8 MHz Pro Micro work as the multi-function USB device (CDC and HID) provided with Arduino 1.0.1?

    I have a similar design with an 8MHz clock and used this board as a reference. I knew I would have to rebuild the bootloader to support the 8MHz clock - that was easy, just change the F_CPU frequency definition in the Caterina bootloader Makefile.

    But once I put a sketch into the Arduino, Windows could not identify the device. None of the basic example sketches could be enumerated by Windows, it was always complaining about an “unknown device.”

No public wish lists :(