Adafruit ATtiny1616 Breakout Board comes with Seesaw Firmware and STEMMA QT / Qwiic JST Connector
Adafruit’s latest ATtiny1616-based breakout board is slightly more unique than the average breakout board you can commonly find in the market. Not only this board features the Seesaw Firmware, but it also features the STEMMA QT / Qwiic connector, through which you can use this board as a plug-and-play I2C controller or peripheral.
So, why would you need a separate microcontroller as an I2C peripheral? Does the main microcontroller already have all the necessary functionality? Well, it all depends on the project requirements. Sometimes, you may need additional GPIOs; sometimes, there could be a need for extra ADC. In other cases, there could be a situation where strict timing requirements need to meet for a peripheral to work.
When discussing strict timing requirements, the WS2812B is a great example. The LEDs will only light up if the timing is managed correctly. Speaking of Neopixel, this board is perfect for driving Neopixel LEDs because it has a dedicated Neopixel driver capable of driving up to 250 LEDs.
So, having an I2C expansion board on top of your microcontroller is cool and all, but doesn’t make the coding part more complicated? Well, it turns out that Adafrut is also taking care of that by giving us custom software libraries for Arduino and Python which is the two most used embedded development platforms.
The seesaw firmware runs on a microcontroller, like Microchip’s ATtiny1616 breakout board, and handles all the communication processes, the ATtiny1616 comes preloaded with the seesaw firmware and you have custom libraries available for Arduino and Python. The code is pretty simple, here is an example code for setting up PWM on the ATTiny1616 breakout board:
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries # SPDX-License-Identifier: MIT # Simple seesaw test for writing PWM outputs # On the SAMD09 breakout these are pins 5, 6, and 7 # On the ATtiny8x7 breakout these are pins 0, 1, 9, 12, 13 # # See the seesaw Learn Guide for wiring details. # For SAMD09: # https://learn.adafruit.com/adafruit-seesaw-atsamd09-breakout?view=all#circuitpython-wiring-and-test # For ATtiny8x7: # https://learn.adafruit.com/adafruit-attiny817-seesaw/pwmout import time import board from adafruit_seesaw import seesaw, pwmout i2c = board.I2C() # uses board.SCL and board.SDA # i2c = board.STEMMA_I2C() # For using the built-in STEMMA QT connector on a microcontroller ss = seesaw.Seesaw(i2c) PWM_PIN = 12 # If desired, change to any valid PWM output! led = pwmout.PWMOut(ss, PWM_PIN) delay = 0.01 while True: # The API PWM range is 0 to 65535, but we increment by 256 since our # resolution is often only 8 bits underneath for cycle in range(0, 65535, 256): # led.duty_cycle = cycle time.sleep(delay) for cycle in range(65534, 0, -256): led.duty_cycle = cycle time.sleep(delay)
The example code is taken from Adafruit’s website and you can check that out for more information.
The Adafruit ATtiny1616 breakout is interesting because it uses Microchip’s new family of microcontrollers the ATtiny1616. Despite its compact size, it offers 16 kilobytes of flash memory, 2 kilobytes of RAM, and 256 bytes of program-accessible EEPROM. Furthermore, it features an internal oscillator clocked at 20 MHz.
By default, the breakout board operates at 5V, but the operating voltage range of the ATtiny1616 microcontroller is between 2V to 5V. That is why there is a 3.3v regulator onboard; the regulator provides flexibility allowing seamless interfacing with 3.3V devices.
Features of the Adafruit ATtiny1616 Breakout Board
The ATtiny1616 breakout board from Adafruit offers many features designed to extend the capabilities of microcontrollers. Here are the key specifications:
- ATtiny1616 8-bit microcontroller
- 16KB flash memory, 2KB RAM, 256B program-accessible EEPROM
- Internal oscillator capable of running at up to 20MHz
- 3.3V regulator for low-power devices
- 12 GPIO pins with pullup resistors
- Nine analog inputs with 10-bit resolution
- 5 PWM outputs with 8-bit resolution
- 1 NeoPixel output supporting up to 250 pixels
- 1 EEPROM with 127 bytes of non-volatile memory
- 1 interrupt output for event-driven programming
- I2C connectors for seamless communication
- Activity LED for visual feedback during operation
For more information on seesaw firmware and its uses, you can check out tutorials on Adafruit Learning System. Moreover, if you want to purchase the Adafruit ATtiny1616 Breakout with seesaw – STEMMA QT / Qwiic, it is available at Adafruit Store.