Skip to content
Pololu A-Star software and drivers
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
bootloaders optiboot: Change the 8MHz bootloader to use 57600 baud because it can… Feb 16, 2018
drivers added INSTALL.txt: installation instructions in drivers folder Dec 8, 2016
libraries added readme in libraries folder to point to new repos Sep 1, 2015
udev-rules Added supporting files for the A-Star 32U4. Apr 12, 2014
.gitattributes Treat MD files as text files so they will have Windows line endings i… Dec 12, 2014
LICENSE.txt Normalize line endings of .txt files. They will always have LF in the Jul 21, 2014 update readme and platform.txt for 4.0.2 Apr 17, 2018
boards.txt add quotes around path in extra_flags Apr 17, 2018
extra_avrdude.conf Added ocdrev=1 in extra_avrdude.conf. Feb 13, 2018
programmers.txt programmers.txt: fix mistake Feb 16, 2018

Pololu A-Star Software and Drivers

Version: 4.0.2
Release date: 2018-04-17

These files are the software and drivers for the Pololu A-Star 32U4 and A-Star 328PB boards, along with Pololu's ATmega32U4-based robots (Zumo 32U4, Balboa 32U4, and Romi 32U4 Control Board).

For more information about A-Star boards and robots, see their user's guides:

These files are available on GitHub.

Arduino IDE integration

These files can be used to add A-Star and robot support to the Arduino IDE. Entries for Pololu A-Star Boards will appear in the Boards menu when you do this.

For most people, we recommend setting up A-Star support in the Arduino IDE by installing our boards package through the Boards Manager. (These instructions can also be found in the user's guide for each controller).

  1. In the Arduino IDE, open the File menu (Windows/Linux) or the Arduino menu (macOS) and select "Preferences".

  2. In the Preferences dialog, find the "Additional Boards Manager URLs" text box. Copy and paste the following URL into this box:

    If there are already other URLs in the box, you can either add this one separated by a comma or click the button next to the box to open an input dialog where you can add the URL on a new line.

  3. Click the "OK" button to close the Preferences dialog.

  4. In the Tools > Board menu, select "Boards Manager..." (at the top of the menu).

  5. In the Boards Manager dialog, search for "Pololu A-Star Boards".

  6. Select the "Pololu A-Star Boards" entry in the list, and click the "Install" button.

For additional information, including instructions for uploading a sketch and troubleshooting, refer to the user's guide for your controller.

Manual installation

To manually add A-Star and robot support to the Arduino IDE, follow these steps.

  1. Download the latest release archive from GitHub and decompress it.

  2. Rename the directory "a-star-xxxx" (which includes this README, platform.txt, boards.txt, and other files) to "avr".

  3. Locate your Arduino sketchbook directory. You can view your sketchbook location by opening the File menu and selecting Preferences in the Arduino IDE.

  4. Inside the Arduino sketchbook folder, add a folder named "hardware" if it does not already exist.

  5. Inside the "hardware" folder, add a folder named "pololu" if it does not already exist.

  6. Move the "avr" folder into the "pololu" folder.

  7. Restart the Arduino IDE.

  8. In the Boards menu, you should now see entries for the Pololu A-Star boards.

If you do not see these entries in the "Boards" menu, make sure that the final path to this README looks like this (where "Arduino" is your sketchbook directory):


ATmega328PB support in the Arduino IDE

These files have been tested with the Arduino IDE version 1.8.5. Since that version of the IDE does not have official ATmega328PB support, these files configure the compiler to target the older ATmega328P, which is very similar to the PB. We added extra definitions so you can use all of the new features of the ATmega328PB, while still being able to compile almost any code that worked on the older ATmega328P.

Here are some details about what Arduino features work when programming the A-Star 328PB in the Arduino IDE:

  • The Serial and Serial1 objects both work, providing access to UART0 and UART1, respectively.
  • There is no library support for accessing the ATmega328PB's second I2C module (TWI1), or its second SPI module (SPI1). However, you can access the registers for those new modules and define ISRs for them.
  • pinMode(), digitalRead(), and digitalWrite() should work on every I/O pin.
  • analogRead() should work on every analog pin (A0 through A7).
  • analogWrite() should work on every pin with PWM.

The ATmega328PB has two new pins, PE0 and PE1, that have no equivalent on the ATmega328P. These pins do not yet have official pin numbers in the Arduino environment, so if you need to use their pin numbers in your code, we recommend using the constants SDA1 (for PE0) and SCL1 (for PE1) that are defined in our header files. For example:

digitalWrite(SDA1, HIGH);


The "bootloader" directory contains the source code and compiled files for the A-Star and Zumo bootloaders. The A-Star 32U4 boards and ATmega32U4-based robots use "caterina", while the A-Star 328PB boards use "optiboot".


The "drivers" directory contains the A-Star 32U4 drivers for Microsoft Windows. To install the drivers, right-click on "a-star.inf" and select "Install".

udev rules

The "udev-rules" directory contains a file named "a-star.rules" for Linux users. If you copy this file to /etc/udev/rules.d/, it will tell ModemManager to not try to access the virtual serial ports of the A-Star 32U4 and ATmega32U4-based robots. This is necessary on some systems in order to program these devices.

Library support

If you are programming an A-Star 32U4 or ATmega32U4-based robot with the Arduino environment, you might also want to install the applicable Arduino libraries, which are available in separate repositories:

Version history

  • 4.0.2 (2018-04-17): Fixed an unquoted path in build flags that could cause an error when compiling for the 328PB.
  • 4.0.1 (2018-04-11): 328PB interrupt vectors should be linked into sketch more reliably.
  • 4.0.0 (2018-03-21): Moved selection of A-Star 328PB versions to custom menu.
  • 3.1.0 (2018-02-20): Added support for A-Star 328PB.
  • 3.0.1 (2016-12-01): Fixed A-Star 32U4 bootloader unlock/lock bits.
  • 3.0.0 (2015-12-15): Restructured repository to work with the Arduino Boards Manager.
  • 2.0.0 (2015-09-01): Separated Arduino libraries into their own repositories and removed them from this repository.
You can’t perform that action at this time.