

The Adafruit CH552 QT Py (Manufacturer Part ID: 5960) is a compact and versatile microcontroller board featuring the CH552 chip. Designed for ease of use and integration, this board is ideal for rapid prototyping, IoT applications, and projects requiring a small form factor. Its compatibility with various sensors and peripherals makes it a popular choice for hobbyists and professionals alike.








The Adafruit CH552 QT Py is built around the CH552 microcontroller, which is based on an 8-bit 8051 core. Below are the key technical details:
| Parameter | Value |
|---|---|
| Microcontroller | CH552 (8051-based) |
| Operating Voltage | 3.3V |
| Input Voltage (USB) | 5V |
| Flash Memory | 16 KB |
| RAM | 1 KB |
| Clock Speed | 24 MHz |
| USB Support | USB 2.0 Full-Speed |
| GPIO Pins | 11 |
| Communication Protocols | I2C, SPI, UART |
| Dimensions | 22.8 mm x 17.8 mm |
The Adafruit CH552 QT Py features a total of 14 pins, including power, GPIO, and communication pins. Below is the pinout description:
| Pin Name | Pin Type | Description |
|---|---|---|
| 3V3 | Power | 3.3V output for powering external components |
| GND | Power | Ground connection |
| D0 | GPIO, UART TX | General-purpose I/O or UART transmit |
| D1 | GPIO, UART RX | General-purpose I/O or UART receive |
| D2 | GPIO | General-purpose I/O |
| D3 | GPIO, PWM | General-purpose I/O or PWM output |
| D4 | GPIO | General-purpose I/O |
| D5 | GPIO, PWM | General-purpose I/O or PWM output |
| D6 | GPIO | General-purpose I/O |
| D7 | GPIO | General-purpose I/O |
| SCL | I2C Clock | I2C clock line |
| SDA | I2C Data | I2C data line |
| MISO | SPI Input | SPI Master-In-Slave-Out |
| MOSI | SPI Output | SPI Master-Out-Slave-In |
| SCK | SPI Clock | SPI clock line |
Powering the Board:
Connecting Peripherals:
Programming the Board:
Below is an example of how to use the Adafruit CH552 QT Py with an I2C temperature sensor:
#include <Wire.h> // Include the Wire library for I2C communication
#define SENSOR_ADDR 0x48 // I2C address of the temperature sensor
void setup() {
Wire.begin(); // Initialize I2C communication
Serial.begin(9600); // Start serial communication for debugging
Serial.println("CH552 QT Py I2C Example");
}
void loop() {
Wire.beginTransmission(SENSOR_ADDR); // Start communication with the sensor
Wire.write(0x00); // Request temperature data (register 0x00)
Wire.endTransmission();
Wire.requestFrom(SENSOR_ADDR, 2); // Request 2 bytes of data from the sensor
if (Wire.available() == 2) { // Check if 2 bytes are available
int temp = Wire.read() << 8 | Wire.read(); // Combine the two bytes
Serial.print("Temperature: ");
Serial.println(temp / 256.0); // Convert and print the temperature
}
delay(1000); // Wait 1 second before the next reading
}
The board is not recognized by the computer:
Unable to upload code to the board:
I2C or SPI communication is not working:
The board overheats or malfunctions:
Q: Can the CH552 QT Py be powered by a battery?
A: Yes, you can power the board using a 3.3V battery connected to the 3V3 pin. Ensure proper voltage regulation.
Q: Is the CH552 QT Py compatible with Arduino libraries?
A: Yes, many Arduino libraries are compatible with the CH552 QT Py, but some may require minor modifications.
Q: Can I use the CH552 QT Py for USB HID applications?
A: Yes, the CH552 supports USB HID functionality, making it suitable for creating custom keyboards, mice, or other USB devices.
Q: What is the maximum current output of the 3V3 pin?
A: The 3V3 pin can supply up to 100 mA, but it is recommended to keep the current draw below this limit for stable operation.