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


  • 0.0.6 release!

    deqing10/06/2020 at 17:51 0 comments

    Add 16M clock option for 3.3V board.
    Add support for 2.4.0 version bootloader.
    Add EEPROM (DataFlash) support.

  • 0.0.5 release!

    deqing07/23/2020 at 21:27 0 comments

    More optimization. And a CMSIS-DAP example included.

    A ch552 acts as debugger for an Arduino-Zero compatible board.

  • 0.0.3 & 0.0.4 release!

    deqing07/08/2020 at 23:46 0 comments

    Now you can make any USB device. There are examples of CDC and HID keyboard device.

    Also it is possible to upload code with UART1.

  • 0.0.2 release!

    deqing06/16/2020 at 22:08 0 comments

    Support most Arduino functions. (Except pulse, shift, tone)
    Add SPI library
    Add touchkey library

    Photo of a breakout board. Fully tested.

View all 4 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?



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