Skip to content

michpro/Arduino_Pro_Mini_XL

Repository files navigation

Arduino Pro Mini XL


Overview

The Arduino Pro Mini XL is a compact microcontroller board based on the ATmega1284P, designed to extend the capabilities of the standard Arduino Pro Mini while retaining its familiar form factor. With increased memory, additional I/O pins, and enhanced features, this board is well-suited for embedded applications requiring greater processing power and connectivity than the ATmega328P-based Arduino Pro Mini can provide. It integrates seamlessly with the Arduino ecosystem, making it accessible to hobbyists, engineers, and developers alike.

Features

  • Microcontroller: ATmega1284P
  • Flash Memory: 128KB
  • SRAM: 16KB
  • EEPROM: 4KB
  • Digital I/O Pins: 22
  • Analog Input Pins: 2
  • Analog Comparator: 1
  • PWM Channels: 8
  • UARTs: 2
  • SPI: 1
  • I2C: 1
  • Operating Voltage: 5V
  • Clock Speed: 20/16/8MHz
  • Form Factor: Compatible with Arduino Pro Mini

Schematic diagram

wiring diagram

Module visualisation

(click on the image to see the 3D model)

Arduino Pro Mini XL

Assembly

Interactive BOM and placement

Production files

Production files can be found here.


Software Compatibility

The Arduino Pro Mini XL is supported by the Arduino IDE through the MightyCore board package, which provides board definitions for the ATmega1284P.

Installing MightyCore

To configure the Arduino IDE:

  1. Open the Arduino IDE.
  2. Navigate to File > Preferences.
  3. Add the following URL to the Additional Boards Manager URLs field:
    https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json
    
  4. Click OK.
  5. Go to Tools > Board > Boards Manager.
  6. Search for "MightyCore" and install the package.

After installation, select "ATmega1284P" under Tools > Board, and configure the variant and clock settings as needed.

Getting Started

  1. Connect the Board: Attach an FTDI-compatible cable or adapter to the 6-pin programming header.
  2. Configure the IDE: Select the ATmega1284P board and the appropriate serial port in the Arduino IDE.
  3. Upload a Sketch: Use a simple sketch, such as "Blink," to test functionality.
    void setup()
    {
       pinMode(PIN_PC6, OUTPUT); // Onboard LED 
                                 // Don't forget to close JP1.
    }
    
    void loop()
    {
       digitalWrite(PIN_PC6, HIGH);
       delay(1000);
       digitalWrite(PIN_PC6, LOW);
       delay(1000);
    }
  4. Verify Operation: Confirm that the onboard LED blinks, indicating successful setup. Don't forget to close JP1.

Burning the Bootloader

To burn the bootloader using an ISP programmer:

  1. Connect the ISP programmer to the board’s pins.
  2. In the Arduino IDE, select the ATmega1284P board and your programmer.
  3. Choose Tools > Burn Bootloader.

Consult the MightyCore documentation for correct fuse settings.

Troubleshooting

  • Upload Failures: Verify board and port settings; check FTDI connections and drivers.
  • Power Issues: Ensure input voltage is 5V (VCC); inspect for shorts. Board has no RAW input
  • Pin Mapping: Confirm pin assignments, as they differ from the ATmega328P.

Physical Specifications

  • Dimensions: Comparable to the Arduino Pro Mini (18.5mm x 33mm).

Reporting bugs

Create an issue on GitHub


Acknowledgments

Thanks to the Arduino community and the MightyCore developers for enabling support for the ATmega1284P.


License

Copyright © 2020-2025 Michal Protasowicki

This project is released under CERN Open Hardware Licence Version 2 - Permissive.

License: CERN-OHL-P-2.0


Support

If You find my projects interesting and You wanted to support my work, You can give me a cup of coffee or a keg of beer :)

PayPal Direct     ko-fi     Coinbase