You can simply write code in Arduino IDE and hit one button to flash the ch55x chip to get code running.

Similar projects worth following
Ch55xduino is an Arduino-like programming API for the CH55X, a family of low-cost MCS51 USB MCU. The project tries to remove the difficulty of setting up a compiling environment. Users can simply write code in Arduino IDE and hit one button to flash the chip to get code running. No configuration or guesswork needed.

CH551/2/4 may be the lowest part count system that works with Arduino. The minimal system only requires one chip, 2 decoupling capacitors, and one optional pull-up resistor. These features made it ideal for DIY projects.

At this moment the project is still working-in-progress. USB-CDC communication, delay, millis, and the digital and analog pin functions are supported. Refer to examples in this repo for more info.

sch - 520.78 kB - 06/16/2020 at 22:07


brd - 105.28 kB - 06/16/2020 at 22:07


View all 10 project logs

  • 1

    Automatic IDE integration is supported via the Arduino Boards Manager. This is the recommanded way of installation now.

    Start the Arduino-IDE. In File->PreferencesSettings tab, enter

    as an Additional Boards Manager URL.

    • Open Tools->Board:...->Boards Manager
    • Find Ch55xduino by typing 'ch' into the search line
    • Click on the list entry
    • Click on Install.

    Now you should find a new entry CH55x Boards in the list at Tools->Board:...

    • Choose CH552 Board from the list
    • open the standard Blink example from File->Examples->01. Basics->Blink
    • Change pin number in Blink example. For example, if you have LED on P3_0, you will write pin 30.
    • compile it by hitting Verify
    • If your board is never used with ch55xduino before, you need to make the ch55x chip enter bootloader mode. You need to disconnect USB and unpower ch55x, connect the pull-up resistor on D+ line (generally a 10K resistor between D+ and 5V, controlled by a push-button or adjacent pads). Then you connect USB. and hit Upload. Also, a blank new chip will enter the bootloader automatically.
    • If you have used ch55xduino once and your code doesn't crash the USB subsystem, you can simply press Upload. Arduino and the firmware will kick the chip into the bootloader automatically.

View all instructions

Enjoy this project?



ilo wrote 06/23/2023 at 06:34 point

Pls. How can i change pinmode in loop?

  Are you sure? yes | no

Patrick Grønlund wrote 06/08/2023 at 10:25 point

Awesome project, alreaddy made a coupple of designs with this controller. For my next project I would like to comnect ch552 to an sd card. Could you make it comatible to use arduio sd.h library :). I tried myself, but my skills are to low :)

  Are you sure? yes | no

diy.mlg wrote 09/09/2022 at 23:20 point

Hi Deqing,

Thank you for all of your CH5xxduino, this project help me a lot

Is CH5xduino could use on CH554? because I do not see CH554 board on list

CH551 & CH552 hard to find now, but CH554 that have more fitures is simple to find

Maybe CH554 could be list on your next CH55xduino update


  Are you sure? yes | no

deqing wrote 11/08/2022 at 00:25 point

The current repo does not contain any host example so you just use ch552 option 

  Are you sure? yes | no

Ken Yap wrote 06/02/2020 at 05:35 point

Is that the Electrodragon dev board you are using? It's a pity they don't use a micro USB connector so that you can put the board on a breadboard for experiments, and use a micro USB cable, instead of a USB A male-female cable.

  Are you sure? yes | no

deqing wrote 06/02/2020 at 05:39 point

No, it is a board I bought from a small seller. The board is not well designed and I'm designing another one.

  Are you sure? yes | no

Ken Yap wrote 06/02/2020 at 05:41 point

Great, I hope you will share the design so that boards for this MCU series become more available.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates