The ATtiny1616 Breakout with seesaw is a different kind of microcontroller board. Rather than being a target for standalone programs, this breakout board is designed to be an intelligent port expander for other microcontroller boards. This is achieved using the purpose-written seesaw library from Adafruit. The ATtiny1616 Breakout comes with seesaw preinstalled on the board, ready to receive commands via I2C.
If you’ve ever used an I2C port expander like the MCP23008 or MCP23017, you’ll appreciate how much more a microcontroller can do when acting as a port expander. While those port expanders can do digital input and output, the seesaw library makes available so much more of the ATtiny1616’s capabilities. In addition to 12 digital I/O pins, the library gives you access to the 10-bit ADC on nine pins, 5 PWM outputs, an interrupt output pin, and you can assign one pin to be a NeoPixel output pin. The library will also allow you to write to the EEPROM on the ATtiny1616.
The first thing to notice about the board is the lack of a USB port for programming. Instead, there are two Stemma QT ports. Stemma QT ports provide power and an I2C connection for I/O peripherals and are compatible with SparkFun’s QWIIC ecosystem. The ATtiny1616 breakout can be connected to the microcontroller board that will issue its instructions, and then other Stemma QT peripherals can be daisy chained on the other port. Most of Adafruit’s recent microcontroller boards feature a Stemma QT port. Note that the UPDI pin on the ATtiny1616 is broken out, so you can still upload standalone programs to the microcontroller with an appropriate programmer.
To test the board out, I followed the guide from Adafruit. I decided to first test the board in the Arduino IDE, installing the Adafruit seesaw Library via the Library Manager. When the library installs, it adds example programs that show how to use all of the basic functionality of a seesaw-enabled device. On the hardware side, I needed to attach the ATtiny1616 Breakout to another microcontroller board. I decided to go with another Adafruit product, the QT Py ESP32, which I attached via the Stemma QT port. I wasn’t able to track down the source of the error, but it would not find the seesaw device. The second board I tried, a Metro ESP32-S2, found the seesaw target without a problem and was able to control the I/O pins. I connected an LED and a potentiometer to pins on the ATtiny1616 and was able to fade the brightness of the LED with the potentiometer by conducting analog reads and setting PWM outputs.
I did not test the board via CircuitPython, but reviewed the documentation to confirm it has the same capabilities and example programs. Adafruit’s documentation, as usual, is very clear and thorough. It includes sections on reconfiguring seesaw on the ATtiny1616 Breakout and reprogramming it via the UPDI port. If you need a port expander or just want a way to program one of Microchip’s new ATtiny1616 microcontrollers, the documentation and board are cost-effective and convenient.
Standout features:
- It’s a simple, cheap I2C port expander
- It has analog input and NeoPixel support