At this point you should be able to upload code (such as the “Blink” sketch) to the board, the basics are confirmed working. If not, work though the prior two pages.

Source Code

Source code for this project is found in the Adafruit_Learning_System_Guides repository on Github, specifically in the M4_Eyes subdirectory. Here’s a direct download link:


The following libraries are used by the eye code (or are referenced indirectly by libraries used). These can be installed through the Arduino Library Manager (SketchInclude LibraryManage Libraries…)

  • Adafruit_Arcada
  • Adafruit_GFX
  • Adafruit_BusIO
  • Adafruit_ImageReader
  • Adafruit_LIS3DH
  • Adafruit_MSA301
  • Adafruit_NeoPixel
  • Adafruit_Seesaw
  • Adafruit_Sensor (Adafruit Unified Sensor in Library Manager)
  • Adafruit_SPIFlash
  • Adafruit_ST7789
  • Adafruit_TinyUSB
  • Adafruit_TouchScreen
  • Adafruit_ZeroDMA (Adafruit Zero DMA in Library Manager)
  • Adafruit_ZeroPDM (Adafruit Zero PDM in Library Manager)
  • Adafruit_ZeroTimer
  • ArduinoJson (not Arduino_JSON)
  • SdFat - Adafruit fork (not the standard SdFat fork)

Recent versions of the Arduino IDE install dependent automatically, so installing Adafruit_Arcada should cover most if not all of this.

Additionally, depending on which of the “user” code tabs is active, you might need:

  • Adafruit_AMG88xx (used by user_watch.cpp)

Project Settings

  • Tools→CPU Speed→180 MHz (overclock) (200 MHz is a bit too much for some boards and may lock up, but you can give it a try. We use 180 MHz for our prepackaged .UF2 files since it’s likely to work on more boards in the wild.)
  • Tools→Optimize→Faster (-O3) (do not use higher settings for this code, it may corrupt the flash filesystem requiring a complete wipe)
  • Tools→USB Stack→TinyUSB (the code will not compile without this selected!)

This guide was first published on Aug 20, 2019. It was last updated on Apr 17, 2024.

This page (Source, Libraries and Settings) was last updated on Apr 17, 2024.

Text editor powered by tinymce.