MightyCore is an Arduino core for large AVR ICs running Optiboot 6. Major libraries such as SD, Servo, SPI and Wire are modified to work with this core. Still, a large amount of third-party libraries often works without any modifications.
This core requires at least Arduino IDE v1.6, where v1.6.11+ is recommended.
Supported microcontrollers
- ATmega16*
- ATmega32*
- ATmega324*
- ATmega1284*
- ATmega644*
- ATmega164*
- ATmega8535*
* All variants – P, PA, A except PB. Select the correct version in the ‘Variant’ menu
Supported clock frequencies
- 20 MHz external oscillator
- 16 MHz external oscillator (default)
- 12 MHz external oscillator
- 8 MHz external oscillator
- 8 MHz internal oscillator *
- 1 MHz internal oscillator
How to install
Boards Manager Installation
This installation method requires Arduino IDE version 1.6.4 or greater.
- Open the Arduino IDE.
- Open the File > Preferences menu item.
- Enter the following URL in Additional Boards Manager URLs:
https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json - Open the Tools > Board > Boards Manager… menu item.
- Wait for the platform indexes to finish downloading.
- Scroll down until you see the MightyCore entry and click on it.
- Click Install.

- After installation is complete close the Boards Manager window.
Manual Installation
Click on the “Download ZIP” button. Exctract the ZIP file, and move the extracted folder to the location “~/Documents/Arduino/hardware“. Create the “hardware” folder if it doesn’t exist. Open Arduino IDE, and a new category in the boards menu called “MightyCore” will show up.
PlatformIO
PlatformIO is an open source ecosystem for IoT development. It got a built-in library manager and is Arduino compatible. It support most operating systems; Windows, Mac OSX, Linux 32 and 64-bit; ARM and X86.
- What is PlatformIO?
- PlatformIO IDE
- Getting started with PlatformIO IDE or PlatformIO command line interface
- Advanced functionality
- MightyCore compatible microcontrollers
- Integration with other IDE – Atom, CLion, Eclipse, Emacs, NetBeans, Qt Creator, Sublime Text, VIM and Visual Studio
- Project Examples
So Lets Get It Started
- If the BOD option is presented, you can select at what voltage the microcontroller will shut down at. Read more about BOD here.
- Select your prefered pinout. Personally I prefer the standard pinout because it’s “cleaner”, but the Bobuino pinout is better at Arduino UNO pin compatibility. Here I am using Bobuino pinout. Read more about the different pinouts here.

- Select your prefered clock frequency. 16 MHz is standard on most Arduino boards.
- Select what kind of programmer you’re using under the Programmers menu. Here I am using USBasp(MightyCore). You can buy it from our Store.

- If the Variants option is presented, you’ll have to specify what version of the microcontroller you’re using. E.g the ATmega1284 and the ATmega1284P got different device signatures, so selecting the wrong one will result in an error.
- Hit Burn Bootloader. If an LED is connected to pin PB0, it should flash twice every second.
- Now that the correct fuse settings is set and the bootloader burnt, you can upload your code in two ways:
- Disconnect your programmer tool (USBasp), and connect a USB to serial converter to the microcontroller, like shown in the minimal setup circuit.
Then select the correct serial port under the Tools menu. Under the Programmers menu select ArduinoISP(MightyCore) and click the Upload button.
If you’re getting some kind of timeout error, it means your RX and TX pins are swapped, or your auto reset circuity isn’t working properly (the 100 nF capacitor on the reset line). - Keep your programmer connected, and hold down the
shiftbutton while clicking Upload. This will erase the bootloader and upload your code using the programmer tool.
- Disconnect your programmer tool (USBasp), and connect a USB to serial converter to the microcontroller, like shown in the minimal setup circuit.
Your code should now be running on your microcontroller!
You can buy all the required hardware from our Store.



Pingback: 15 Arduino Blogs And Websites You Would Love to Know About | Engineering Blog