Vorpal Robotics Wiki
Log in

Vorpal The Hexapod: Flashing The Arduino Code

From Vorpal Robotics Wiki
Revision as of 16:02, 6 December 2018 by Vorpalwiki (talk | contribs) (Installing Required Libraries)

This guide has information on installing and using the Arduino IDE to flash new versions of firmware on the Vorpal Hexapod and gamepad. This guide does not assume you are familiar with Arduino programming, and it provides a step by step cookbook approach. To further explore Arduino, please see educational materials on the web, including at the Arduino website, youtube.com, and other sources.

Downloading the Arduino IDE

You can download the Arduino IDE from the Arduino Project Website Downloads Page. It's available for Windows, Mac, and Linux. Download the version for your system and follow the instructions to install it.

This guide assumes you sourced the Nanos in your kit from the Vorpal Store. If you didn't, then you may have a different version of Nano than we're talking about here, and you would potentially need to slightly adjust what you do here. We assume that if you sourced your own parts, you known what you're doing.

Downloading the Hexapod Arduino Code

The code is available on Github (search for Vorpal Hexapod and it pops right up), but for convenience we have stored the current tested and released version in a shared dropbox folder here:

Download all the files and folders to your local hard drive before continuing.

Installing Required Libraries

The Hexapod project code requires three libraries that are maintained by other organizations. These are open source and are free:

  • Adafruit Servo PWM Driver Library
  • Pixy Camera Library
  • SDFat Library by Bill Greiman

The versions we have tested with the current release are in the shared Dropbox folder referenced above. You may also go directly to the project pages for those projects if desired, a web search will bring them right up. However, it's possible the libraries have been revised up to later versions that have not been tested by Vorpal Robotics. So, you are better off using the files that are posted in the shared folder.

To install the libraries follow these steps:

  1. Download the ZIP files for the libraries from the shared files area http://tinyurl/VorpalFiles (look in the LIBRARIES subfolder).
  2. Open the Arduino IDE that you previously installed.
  3. Click on the menu SKETCH, select INCLUDE LIBRARY. Then select ADD .ZIP LIBRARY.
  4. Browse in the folder you downloaded the ZIP files previously and select Adafruit Servo Library. Then, repeat for the Pixie library.

After this, click on the menu SKETCH, choose INCLUDE LIBRARY, and confirm that you see the Adafruit Servo PWM Driver Library, the SDFat library, and the Pixy library listed there.

NOTE: Do not actually select any library from this list! Just look to see that they appear in the list. Selecting one or more from the list would insert extra header files that will cause the program not to compile.

Installing Drivers for the CHG34x USB Serial Chip

This step is only required for MAC operating systems, and only if you plan on flashing the robot. The Nano we use on the robot has a serial port that requires the CHG34x driver on Mac operating systems. On Windows and Linux, this driver is almost always installed by default. Just be sure you have a live Internet connection before plugging the USB cord into the Nano on the robot in case Windows needs to find the driver online.

For MAC, see the DRIVERS folder in the shared dropbox link shown above. Follow the instructions in the folder.

Flashing Code on the Gamepad

To flash a new version of the Vorpal Gamepad Code onto the Gamepad follow these steps:

  1. Browse your filesystem and find the gamepad code in the files you downloaded from the Vorpal Files Shared Dropbox folder.
  2. Open either the debug or production version of the gamepad code. (The names of the files describe what they contain).
  3. The Arduino IDE should now boot up and show the code. Confirm again that you've opened one of the "Gamepad" file names.
  4. Plug the Gamepad Nano into a USB port on your computer. If this is the first time you've ever plugged an Arduino into your computer and it's a Windows system, you may need to wait a minute or so for the drivers to install.
  5. Go into the menu TOOLS, select the BOARD item and make sure it's set to "Arduino Nano".
  6. Make sure the TOOLS menu PROCESSOR item is set to ATMEGA328P. NOTE: In very recent versions of the Arduino IDE you should choose ATMEGA328P (Old Bootloader).
  7. Open the TOOLS menu COM port item and make sure the COM port for your Nano is selected. If you see no COM ports, you either didn't plug in a Nano, or you don't have the drivers installed yet. If you see more than one COM port and don't know which one is your Nano, you may need to dismiss the menu, unplug the Nano, bring the menu up again, and notice which one dissappears/reappears as you unplug/plug in your nano. NOTE: The menu doesn't refresh unless it's dismissed and brought back up.
  8. Press the "Upload" button (a small arrow pointing to the right). The code will now compile and upload.

If the upload is successful, you will get a message "Upload is Done" near the bottom of the screen.

If something went wrong, carefully follow the instructions a second time. If you still have issues, try our support forum for help.

Most of the steps you have done above only have to be done once. After the first time, you will normally just need to boot up the IDE and hit the "upload" button. The driver will still be installed, all the menu items retain their prior values, libraries will remain installed, etc. You may sometimes need to use TOOLS, PORT to select the right device.

Flashing Code on the Robot

The steps for uploading the robot program are identical. You just want to open up the robot source file instead of the gamepad source file.

Also, be sure the robot has a fresh battery and is turned on before you plug in your USB cord. Unlike the gamepad, the robot cannot be powered solely by USB and you may brown out your computer's USB port if the robot is not powered.