Skip to content

pololu/a-star

Repository files navigation

Pololu A-Star Software and Drivers

Version: 5.1.0
Release date: 2022-08-31
www.pololu.com

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:

    https://files.pololu.com/arduino/package_pololu_index.json

    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):

Arduino/hardware/pololu/avr/README.md

ATmega328PB support in the Arduino IDE

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.
  • The "Default I2C bus" sub-menu in the "Tools" menu allows you to choose whether the Wire library and other libraries like it will use TWI0 or TWI1. There is no library support for accessing TWI0 and TWI1 in the same program.
  • The "Default SPI bus" sub-menu in the "Tools" menu allows you to choose whether the SPI library and other libraries like it will use SPI0 or SPI1. There is no library support for accessing both SPI0 and SPI1 in the same program.
  • 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);

Bootloader

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".

Drivers

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

  • 5.1.0 (2022-08-31): Made the Wire and SPI libraries usable on the A-Star 328PB again. Added menus that let you choose which bus each library will use.
  • 5.0.0 (2022-05-19): Removed workarounds and hacks that were required in older versions of the Arduino IDE that did not have official support for the ATmega328PB. This version was tested in Arduino 1.8.19.
  • 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.