QT Py with CH552 Ultra Low cost microcontroller?


We were looking at WCH @Patrick_RISCV for a USB to serial chip to replace the CP210x, when we remembered a lot of chatter a few years ago about the CH552 series of ultra-low-cost 8051 microcontrollers with native USB. you can kinda sorta code these with Arduino https://hackaday.io/project/172143-ch55xduino and we thought it could be an interesting QT Py since it has so few pins but does cover the basic use cases: 4 ADC, UART, SPI and maybe even I2C with a bitbang connection? Still, for very very basic USB projects maybe it would be useful, particularly since it has a ROM USB bootloader. Here’s a simple design we whipped together. Since there isn’t a lot of muxing or IO available, MISO and A2 share the same pin. Some interesting unusual things to watch for: reset is backwards from how we’d expect, and bootloader mode is entered by pulling D+ to 3V? Any CH55x experts out there who want to take a look and see if we got it all wired right? Anything we missed?


Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here: adafruit.com/editorialstandards

Join Adafruit on Mastodon

Adafruit is on Mastodon, join in! adafruit.com/mastodon

Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.

Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7pm ET! To join, head over to YouTube and check out the show’s live chat – we’ll post the link there.

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Join over 36,000+ makers on Adafruit’s Discord channels and be part of the community! http://adafru.it/discord

CircuitPython – The easiest way to program microcontrollers – CircuitPython.org

Maker Business — “Packaging” chips in the US

Wearables — Enclosures help fight body humidity in costumes

Electronics — Transformers: More than meets the eye!

Python for Microcontrollers — Python on Microcontrollers Newsletter: Silicon Labs introduces CircuitPython support, and more! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi

Adafruit IoT Monthly — Guardian Robot, Weather-wise Umbrella Stand, and more!

Microsoft MakeCode — MakeCode Thank You!

EYE on NPI — Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — #NewProds 7/19/23 Feat. Adafruit Matrix Portal S3 CircuitPython Powered Internet Display!

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !


  1. Author of ch55xduino here.

    The ch552 uses vcc for USB IO, and it has internal regulator to generate 3.3V for core. If you want a 5V board, ldo is not needed and neopixel should be connected to 5V. If you want a 3.3V board, I need to check how the 3.3v pin should be connected. But VCC should definitely be connected to 3.3V

    For ch552, 3.3V voltage limit code speed to 16M

  2. Finally get to access to internet and laptop.

    RESET can be repurposed as IO by setting the configuration bit. So the resistors and capacitors may not be needed, there is internal pull-down on reset anyway.

    It seems you do want the board to run on 3.3V, then you need to connect 3.3V to VCC. In this way there is no risk to break the external boards. However, I think it is also OK to keep the LDO for external 3.3V boards, and add pull-up resistors to 3.3V. Then the chip can work at 24M with 5V power, and the IO can be configured to open drain and work with 3.3V I2C.

Sorry, the comment form is closed at this time.