Overview
The Adafruit AS7343 14-Channel Light / Color Sensor Breakout is a multi-channel spectrometer, which is a special type of light sensor that is able to detect not only the amount of light present but also the amounts of light within different wavelengths. You can use it determining what color or colors of light is present much better than the human eye is capable of.
The AS7343 packs within its 3x2mm footprint 25 photodiodes that can detect 11 separate, overlapping bands of visible light, plus one near infrared, one clear and a flicker channel for 14 channels total. Compared to the AS7341, this sensor has 4 more light channels - but you'll need to use a new firmware driver since it's not backward-compatible.
The multi-spectral color measuring capabilities of the AS7343 can be used to quantify the specific makeup of light, either emitted or reflective. It's kind of like a mini spectroscopy sensor. This is possible thanks to the impressive collection of sensors in the AS7343 being routed through a 16-bit 6-channel ADC that takes the raw measurements and converts them into digital values that can be read out over I2C.
14 readable individual sensor elements (13 light channels plus flicker detection) don’t exactly fit through a 6-channel ADC all at once, so the chip includes a so-called Super MUX (SMUX) that allows you to route the signal from any sensor to any ADC channel. The sensor also has GPIO and interrupt pins that can allow it to communicate directly with other sensors, or the microcontroller itself.
All of this capability is made accessible by mounting the sensor on a STEMMA QT form factor breakout board, complete with level shifting circuitry and SparkFun Qwiic compatible Stemma QT connectors. This means that you can, without needing to solder, connect our AS7343 breakout into your 3.3V or 5V microcontroller of choice be it an Arduino Uno, Raspberry Pi, or one of the many CircuitPython-compatible boards. While it certainly takes a bit of work to make all those different light sensors share their measurements, our Arduino and CircuitPython libraries take care of all of that hard work for you and even include example code to help get you started. QT Cable is not included, but we have a variety in the shop.
Page last edited March 13, 2026
Text editor powered by tinymce.
Pinouts
The fixed I2C address is 0x39.
- VIN - this is the power pin. Since the sensor chip uses 3VDC, we have included a voltage regulator on board that will take 3-5VDC and safely convert it to 3VDC. To power the board, give it the same power as the logic level of your microcontroller - e.g. for a 5V micro like Arduino, use 5V.
- GND - common ground for power and logic
- SCL - the I2C clock pin, connect to your microcontroller's I2C clock line.
- SDA - the I2C data pin, connect to your microcontroller's I2C data line.
- STEMMA QT - These connectors allow you to connectors to dev boards with STEMMA QT connectors or to other things with various associated accessories
INT - the interrupt pin. It is an open-drain interrupt. To use, connect the pin to a GPIO pin on your microcontroller.
GPIO - the GPIO pin on the breakout. It is an open-drain pin that can be used as an input or output.
The AS7343 includes LED driver circuitry. This breakout has a white LED connected to the driver. It can be controlled using the CircuitPython or Arduino libraries.
This can be used to shine white light onto an object and measure the colors in the light being reflected back from the object into the sensor.
Above the left STEMMA QT connector there is a small green ON power indicator LED. When the breakout is powered this LED will turn on.
On the back of the AS7343 breakout there is a jumper with a small trace between two pads that can be cut to disable the ON power indicator LED on the board.
If you do not want that indicator lit, carefully cut the trace. It can always be reconnected with a bit of solder.
Page last edited March 13, 2026
Text editor powered by tinymce.
CircuitPython and Python
It's easy to use the AS7343 with Python or CircuitPython, and the Adafruit_CircuitPython_AS7343 module. This module allows you to easily write Python code to read data from the sensor.
You can use this driver with any CircuitPython microcontroller board or with a computer that has GPIO and Python thanks to Adafruit_Blinka, our CircuitPython-for-Python compatibility library.
CircuitPython Microcontroller Wiring
First wire up a AS7343 to your board exactly as shown below. Here's an example of wiring a Feather RP2040 to the sensor with I2C using one of the handy STEMMA QT connectors:
-
Board STEMMA 3V to sensor VIN (red wire)
-
Board STEMMA GND to sensor GND (black wire)
-
Board STEMMA SCL to sensor SCL (yellow wire)
- Board STEMMA SDA to sensor SDA (blue wire)
The following is the AS7343 wired to a Feather RP2040 using a solderless breadboard:
-
Board 3V to sensor VIN (red wire)
-
Board GND to sensor GND (black wire)
-
Board SCL to sensor SCL (yellow wire)
- Board SDA to sensor SDA (blue wire)
Python Computer Wiring
Since there are dozens of Linux computers/boards you can use, we will show wiring for Raspberry Pi. For other platforms, please visit the guide for CircuitPython on Linux to see whether your platform is supported.
Here's the Raspberry Pi wired with I2C using the STEMMA connector:
-
Pi 3V to sensor VIN (red wire)
-
Pi GND to sensor GND (black wire)
-
Pi SCL to sensor SCL (yellow wire)
- Pi SDA to sensor SDA (blue wire)
Here's the Raspberry Pi wired with I2C using a solderless breadboard:
-
Pi 3V to sensor VIN (red wire)
-
Pi GND to sensor GND (black wire)
-
Pi SCL to sensor SCL (yellow wire)
- Pi SDA to sensor SDA (blue wire)
Python Installation of AS7343 Library
You'll need to install the Adafruit_Blinka library that provides the CircuitPython support in Python. This may also require enabling I2C on your platform and verifying you are running Python 3. Since each platform is a little different, and Linux changes often, please visit the CircuitPython on Linux guide to get your computer ready!
Once that's done, from your command line run the following command:
pip3 install adafruit-circuitpython-as7343
If your default Python is version 3 you may need to run 'pip' instead. Just make sure you aren't trying to use CircuitPython on Python 2.x, it isn't supported!
CircuitPython Usage
To use with CircuitPython, you need to first install the Adafruit_CircuitPython_AS7343 library, and its dependencies, into the lib folder on your CIRCUITPY drive. Then you need to update code.py with the example script.
Thankfully, we can do this in one go. In the example below, click the Download Project Bundle button below to download the necessary libraries and the code.py file in a zip file. Extract the contents of the zip file, and copy the entire lib folder and the code.py file to your CIRCUITPY drive.
Your CIRCUITPY/lib folder should contain the following folders and files:
- adafruit_bus_device/
- adafruit_register/
- adafruit_as7343.mpy
Python Usage
Once you have the library pip3 installed on your computer, copy or download the following example to your computer, and run the following, replacing code.py with whatever you named the file:
python3 code.py
Example Code
If running CircuitPython: Once everything is saved to the CIRCUITPY drive, connect to the serial console to see the data printed out!
If running Python: The console output will appear wherever you are running Python.
# SPDX-FileCopyrightText: Copyright (c) 2026 Tim Cocks for Adafruit Industries
#
# SPDX-License-Identifier: MIT
import time
import board
from adafruit_as7343 import AS7343
i2c = board.I2C()
sensor = AS7343(i2c)
CHANNEL_LABELS = [
"FZ (450nm blue)",
"FY (555nm yellow-green)",
"FXL (600nm orange)",
"NIR (855nm near-IR)",
"VIS_TL_0 (clear top-left, cycle 1)",
"VIS_BR_0 (clear btm-right, cycle 1)",
"F2 (425nm violet-blue)",
"F3 (475nm blue-cyan)",
"F4 (515nm green)",
"F6 (640nm red)",
"VIS_TL_1 (clear top-left, cycle 2)",
"VIS_BR_1 (clear btm-right, cycle 2)",
"F1 (405nm violet)",
"F7 (690nm deep red)",
"F8 (745nm near-IR edge)",
"F5 (550nm green-yellow)",
"VIS_TL_2 (clear top-left, cycle 3)",
"VIS_BR_2 (clear btm-right, cycle 3)",
]
while True:
readings = sensor.all_channels
print("--- AS7343 Channel Readings ---")
for label, value in zip(CHANNEL_LABELS, readings):
print(f" {label}: {value}")
print()
time.sleep(1)
First, the sensor gets initialized over I2C. In the main loop the spectral data is read from the sensor and the different channel values are printed to the serial console once per second.
Page last edited March 13, 2026
Text editor powered by tinymce.
Arduino
Using the AS7343 breakout with Arduino involves wiring up the breakout to your Arduino-compatible microcontroller, installing the Adafruit_AS7343 library, and running the provided example code.
Wiring
Wire as shown for a 5V board like an Uno. If you are using a 3V board, like an Adafruit Feather, wire the board's 3V pin to the sensor VIN.
Here is an Adafruit Metro wired up to the sensor using the STEMMA QT connector:
-
Board 5V to breakout VIN (red wire)
-
Board GND to breakout GND (black wire)
-
Board SCL to breakout SCL (yellow wire)
- Board SDA to breakout SDA (blue wire)
Here is an Adafruit Metro wired up using a solderless breadboard:
-
Board 5V to breakout VIN (red wire)
-
Board GND to breakout GND (black wire)
-
Board SCL to breakout SCL (yellow wire)
- Board SDA to breakout SDA (blue wire)
Library Installation
You can install the Adafruit_AS7343 library for Arduino using the Library Manager in the Arduino IDE.
Click the Manage Libraries ... menu item, search for Adafruit_AS7343, and select the Adafruit_AS7343 library:
If asked about dependencies, click "Install all".
If the "Dependencies" window does not come up, then you already have the dependencies installed.
/*!
* @file basic_readings.ino
*
* Basic example for the Adafruit AS7343 14-Channel Multi-Spectral Sensor
*
* Reads all 18 channels (14 spectral + VIS + FD in 3 cycles) and prints
* the values to Serial.
*/
#include <Adafruit_AS7343.h>
Adafruit_AS7343 as7343;
void setup() {
Serial.begin(115200);
while (!Serial) {
delay(10); // Wait for Serial on native USB boards
}
Serial.println("Adafruit AS7343 Basic Readings");
if (!as7343.begin()) {
Serial.println("Could not find AS7343 sensor!");
while (1) {
delay(10);
}
}
Serial.println("AS7343 found!");
// Configure sensor
as7343.setGain(AS7343_GAIN_64X);
as7343.setATIME(29); // Integration cycles
as7343.setASTEP(599); // Step size
Serial.print("Integration time: ");
Serial.print(as7343.getIntegrationTime());
Serial.println(" ms");
}
void loop() {
uint16_t readings[18];
// Read all channels (starts measurement, waits, reads internally)
if (!as7343.readAllChannels(readings)) {
Serial.println("Read failed!");
delay(500);
return;
}
// Print spectral channels (wavelength order)
Serial.println("\n--- Spectral Readings ---");
Serial.print("F1 (405nm violet): ");
Serial.println(readings[AS7343_CHANNEL_F1]);
Serial.print("F2 (425nm violet-blue):");
Serial.println(readings[AS7343_CHANNEL_F2]);
Serial.print("FZ (450nm blue): ");
Serial.println(readings[AS7343_CHANNEL_FZ]);
Serial.print("F3 (475nm blue-cyan): ");
Serial.println(readings[AS7343_CHANNEL_F3]);
Serial.print("F4 (515nm green): ");
Serial.println(readings[AS7343_CHANNEL_F4]);
Serial.print("F5 (550nm green-yel): ");
Serial.println(readings[AS7343_CHANNEL_F5]);
Serial.print("FY (555nm yellow-grn): ");
Serial.println(readings[AS7343_CHANNEL_FY]);
Serial.print("FXL (600nm orange): ");
Serial.println(readings[AS7343_CHANNEL_FXL]);
Serial.print("F6 (640nm red): ");
Serial.println(readings[AS7343_CHANNEL_F6]);
Serial.print("F7 (690nm deep red): ");
Serial.println(readings[AS7343_CHANNEL_F7]);
Serial.print("F8 (745nm near-IR): ");
Serial.println(readings[AS7343_CHANNEL_F8]);
Serial.print("NIR (855nm near-IR): ");
Serial.println(readings[AS7343_CHANNEL_NIR]);
// Print clear/VIS channels (one from each cycle)
Serial.print("VIS (clear): ");
Serial.println(readings[AS7343_CHANNEL_VIS_TL_0]);
delay(500);
}
Upload the sketch to your board and open up the Serial Monitor (Tools -> Serial Monitor) at 115200 baud. You'll see the AS7343 recognized over I2C. Then, the spectral reading values of different channels will be printed out to the Serial Monitor.
Page last edited March 13, 2026
Text editor powered by tinymce.
Downloads
Page last edited March 13, 2026
Text editor powered by tinymce.