Everything from here is intended for developers, not users.

Development environment

You will need

  • Python 3
    • mac OS: The version of Python shipped with mac OS should do but it’s untested. I use Homebrew.
  • Arduino. I use the latest (1.8.12 as of this writing). The build script expects this to be found
    • In /Applications/Arduino.app on mac OS
    • In ~/arduino on Linux
    • Anywhere on Windows (it’s detected through the registry)
  • A compiler to build the C extension
    • On mac OS, install XCode and its command-line tools
    • On Linux, the build-essential and python3-dev packages should be enough
    • On Windows, Visual Studio Community Edition is free. Make sure to install the “C++ Desktop development” module.

Python modules

Install the Python modules listed in requirements.txt at the root of the source tree, plus

  • colorama (for the log viewer utility)
  • Sphinx (to build the docs)
  • pylint

Arduino libraries

Install the “USB Host Shield Library 2.0” library the usual way using the Arduino IDE. Unfortunately, this library includes some serial debugging code which is compiled even though it isn’t used, and LUFA breaks this. So you must go to the library’s installation directory, which should be

  • Windows: Documents/Arduino/libraries/USB_Host_Shield_Library_2.0
  • mac OS: ~/Documents/Arduino/libraries/USB_Host_Shield_Library_2.0
  • Linux: ~/Arduino/libraries/USB_Host_Shield_Library_2.0

and edit the settings.h file. Replace the following line

#define USB_HOST_SERIAL Serial

with

#define USB_HOST_SERIAL Serial1

Now install LUFA. This may prove a pain in the ass on Windows; you must clone the library and run activate.py in an Administrator console. Likewise on mac OS you may need to use sudo to install stuff in the application bundle under /Applications/Arduino.app/Contents/Java/libraries. No problem on Linux if you extracted the IDE under ~/arduino.