AStar32U4 library
AStar32U4 library

Version: 1.1.0
Release date: 2019-03-05
Build Status


This is a C++ library for the Arduino IDE that helps access the on-board hardware of the A-Star 32U4 controllers, which is a family of programmable controllers from Pololu based on the ATmega32U4. You can program an A-Star 32U4 directly from the Arduino IDE without using this library, but this library makes it easy to:

  • display information on the LCD
  • play sounds and music on the buzzer
  • read the battery voltage level
  • control the three user LEDs
  • use the three user pushbuttons
  • use the on-board motor drivers

(Not all of these features are available on every A-Star 32U4. For more information about each particular A-Star controller, please refer to their documentation and respective product pages.)

Installing the library

If you are using version 1.6.2 or later of the Arduino software (IDE), you can use the Library Manager to install this library:

  1. In the Arduino IDE, open the "Sketch" menu, select "Include Library", then "Manage Libraries...".
  2. Search for "AStar32U4".
  3. Click the AStar32U4 entry in the list.
  4. Click "Install".

If this does not work, you can manually install the library:

  1. Download the latest release archive from GitHub and decompress it.
  2. Rename the folder "a-star-32u4-arduino-library-master" to "AStar32U4".
  3. Move the "AStar32U4" folder into the "libraries" directory inside your Arduino sketchbook directory. You can view your sketchbook location by opening the "File" menu and selecting "Preferences" in the Arduino IDE. If there is not already a "libraries" folder in that location, you should make the folder yourself.
  4. After installing the library, restart the Arduino IDE.


Several example sketches are available that show how to use the library. You can access them from the Arduino IDE by opening the "File" menu, selecting "Examples", and then selecting "AStar32U4". If you cannot find these examples, the library was probably installed incorrectly and you should retry the installation instructions above.

Classes and functions

The main classes and functions provided by the library are listed below:

Component libraries

This library also includes copies of several other Arduino libraries inside it which are used to help implement the classes and functions above:

The Pushbutton and FastGPIO libraries are generally useful and you might want to use them directly in your sketch. You can use these libraries automatically without any extra installation steps and without needing to add any extra #include lines to your sketch.

You should avoid adding extra #include lines such as #include <Pushbutton.h> because then the Arduino IDE might try to use the standalone Pushbutton library (if you previously installed it), and it would conflict with the copy of the Pushbutton code included in the AStar32U4 library. The only #include line needed to access all features of this library is:

#include <AStar32U4.h>


For complete documentation, see If you are already on that page, then click on the links in the "Classes and functions" section above.

Version history

  • 1.1.0 (2019-03-05): Added readBatteryMillivoltsLV4 and readBatteryMillivoltsLV3 functions to support both A-Star 32U4 Prime LV (ac03e) and existing LV A-Stars. Deprecated readBatteryMillivoltsLV.
  • 1.0.5 (2016-10-12): Fixed a bug that caused the buzzer's isPlaying method to malfunction sometimes when link time optimization is enabled.
  • 1.0.4 (2016-04-06): Fixed PrimeDemo and Keyboard examples so they can compile with the latest version of the Arduino IDE (1.6.8).
  • 1.0.3 (2015-09-15): Fixed PrimeDemo example to display >4GB SD card capacity correctly.
  • 1.0.2 (2015-08-31): Renamed Demo example to PrimeDemo and updated comments in examples.
  • 1.0.1 (2015-08-13): Corrected commented motor flip code in Motors example.
  • 1.0.0 (2015-08-06): Original release, adapted from version 1.1.2 of AStar32U4Prime library in a-star repository.