<30 cent MCU with USB controllers, capactive touch & more: WCH's CH55X series - Page 1
Forum section: electronics / general

author: dgramop
author_rank: Newbie
timestamp: May 14, 2019, 01:13:39 am
content: Hello All!I bring the CH55x series MCU's to this forum. They're pretty loaded 8051 MCUs, all of them have USB Device capability, some support USB-C, some support USB Host as well.They come pre-loaded with a USB bootloader that way you can flash your projectsHackaday article:https://hackaday.com/2019/02/17/how-to-program-a-really-cheap-microcontroller/SDCC SDK & examples:https://github.com/Blinkinlabs/ch554_sdccGerman forum with discussion:https://www.mikrocontroller.net/topic/462538librech551 flasher for *nix:https://github.com/rgwan/librech551Development boards:https://www.electrodragon.com/product/ch552-ch554-mini-dev-board-ch55x-series/You can purchase the MCUs off of the Chinese supplier LCSC. I myself and trying to flash them from either my linux or my mac machine. Right now I'm kind of stuck, and I'm considering flashing via serial.I have several of these CH552s, if anyone here helps the community out and lives close enough that the shipping will not be more than the cost of several MCUs and wants one I can send one over to you. These are insanely cheap.I have several translated datasheets, the CH554 is from the Blinkinlabs repo and has mostly the same information as the CH552, just in better english. The CH552 datasheet is translated from an online service - its readable but it's helpful to have both datasheets out just in case.

author: oPossum
author_rank: Super Contributor
timestamp: May 14, 2019, 04:46:28 am
content: I have been playing with the CH551G for a few weeks now. The low price and built in USB bootloader is an attractive combination.This a a BoB I made for it...EAGLE CAD files attached@ OSH Parkhttps://oshpark.com/shared_projects/jPinrlkB

author: oPossum
author_rank: Super Contributor
timestamp: May 14, 2019, 04:50:09 am
content: First project is a USB CDC ACM to LCD interfacehttps://youtu.be/4pnEp9554o0

author: dgramop
author_rank: Newbie
timestamp: May 14, 2019, 11:36:27 am
content: When your microcontroller is cheaper than your passives 🤣Their entire stock of all 360 components is 4 cents...Interesting project @oPossum. Thanks for posting the boards!Im having trouble flashing mine on my Linux and MacOS machines... I've been trying to put them in download mode but I have no clue what's going on. I short DOWN and 3.3 V before plugging in, and I always end up with the same issue from librech551 - "The chip id 0x18 not yet support in the program". Even when I edit the program to recognize that hex value as 0x18 it doesn't work. I also noticed that all pins are pulled high. Is this normal behavior? What am I doing wrong?On Windows, does the wch-supplied program work?

author: oPossum
author_rank: Super Contributor
timestamp: May 14, 2019, 12:12:11 pm
content: I am using WCHISPTool V2.70 from wch.cn on Windows 10. Works great. Maybe you could get it to work with WINE.There was some discussion on the German forum about a new version of the USB bootloader that does not work with the open source tools. Maybe your chips have this newer bootloader.

author: oPossum
author_rank: Super Contributor
timestamp: May 14, 2019, 01:57:11 pm
content: All GPIO are high when the bootloader is active. I didn't try to determine if this is due to pullup resistors being enabled (most likely) or being driven high.Note that reset is activeHIGHon these chips. This is different than almost every other MCU or CPU. ActiveLOWis the norm. There is an internal pulldown resistor on the reset pin.

author: dgramop
author_rank: Newbie
timestamp: May 14, 2019, 07:11:22 pm
content: @oPossum, I think you're right.I'm reading up the open source versions issues and readme, it seems like the new protocol is still being implemented. Till then I might install windows on a thumb drive for the sole purpose of flashing. I'll give it like 15 gigs of space haha. Even after forcing the open-source version to detect my chip it doesn't work, regardless of the protocol. If I force it to recognize the chip and if I force it to use v2 of the protocol, it I get the same issue as issue #5 in the git repo. I'll give the Windows version a shot... I hate windows

author: PCB.Wiz
author_rank: Super Contributor
timestamp: May 14, 2019, 08:21:44 pm
content: Quote from: dgramop on May 14, 2019, 01:13:39 amHow do they enable USB loader ? Some pin tied low ?Quote from: dgramop on May 14, 2019, 01:13:39 amDo they include UART loaders, in the USB loader too ?lcsc also has the newer CH549F (QFN-28) in stock, with a faster 48MHz 8051 MCU core, and more peripherals, Host/Device capable, but also higher price than CH551.

author: dgramop
author_rank: Newbie
timestamp: May 14, 2019, 10:05:56 pm
content: Quote from: PCB.Wiz on May 14, 2019, 08:21:44 pmI'm not sure, I think they do support a non-USB method as described in the datasheet. I'd have to check.I've finally set up a windows VM. I've setup virtualbox to share USB devices, and I can confirm that the USB devices are being shared properly. For some reason my ch552 isn't getting flashed. I suspect it has to do with previous unsuccesful attempts with the librech551 program... But probably not because the datasheet says that we can't flash the bootloader. I think that I might be doing the programming pins wrong: The WCHISPTool is saying "Wrong hex file". I brought the hex file directly from sdcc after using the makefile on the example

author: PCB.Wiz
author_rank: Super Contributor
timestamp: May 14, 2019, 10:25:01 pm
content: Quote from: dgramop on May 14, 2019, 10:05:56 pmDoes it show the device name ok ? - ie has it connected ?

author: dgramop
author_rank: Newbie
timestamp: May 14, 2019, 10:45:30 pm
content: Ooops, I forgot. Yeah, it shows the name of the device & has recognized it

author: PCB.Wiz
author_rank: Super Contributor
timestamp: May 14, 2019, 11:12:45 pm
content: Quote from: dgramop on May 14, 2019, 10:45:30 pmI don't have any devices here, but I see in the SW a tick under Functions for an earlier 2.3 bootloader.Maybe try that, if there are variant changes in the loader ?I see no Read, but there is Verify, so you could make some tiny hex files of (eg) FF FF FF and LJMP SomeAdr and verify those.It should report a fail address and value ?

author: dgramop
author_rank: Newbie
timestamp: May 14, 2019, 11:50:17 pm
content: I figured out the problem. I've had this problem on completely unrelated projects before as well. It stems from me having compiled on linuxAs you may have figured out, I'm only really use darwin and linux, so whenever I develop for windows I get these kinds of issues every now and then. Basically, windows expects line endings to be \r\n, wheras in linux you can just do \n.\r\n is a Carriage Return + Line Feed.I just used unix2dos to fix that like I had before.

author: PCB.Wiz
author_rank: Super Contributor
timestamp: May 15, 2019, 12:19:50 am
content: Quote from: dgramop on May 14, 2019, 11:50:17 pmCool, so it was actually fairly right about that 'wrong hex file' commentCan you summarize what you have working, with maybe a screen shot of a connected and successful program pass ?

author: oPossum
author_rank: Super Contributor
timestamp: May 15, 2019, 12:26:57 am
content: Quote from: PCB.Wiz on May 14, 2019, 08:21:44 pmConnect P3.6 to 3.3V via a 10k resistor during power up. Reset can not be use, must be power cycle.

author: dgramop
author_rank: Newbie
timestamp: May 15, 2019, 01:14:23 pm
content: Quote from: PCB.Wiz on May 15, 2019, 12:19:50 amYep, it was exactly right! I thought it was cross-checking something in the hex file with supported instructions or something. I wish it said wrong format or told me it had trouble parsing the file.Quote from: PCB.Wiz on May 15, 2019, 12:19:50 amI'm at school right now, so I'll post the screenshot when I get home.How I flashed the code (minus the things that didn't work)First, I cloned git sdcc sdk repo by Blinkinlabs so I could find working sample code. Then, I used "make" to produce binaries. Since I compiled the code on my debian Machine, I used unix2dos <hex file path> to convert the hex file's endlines from LF to CRLF. Next, I copied the hex file over to my windows machine, and then filled in the input "User File" to the path to the hex file. Then I shorted the 3.3 and DOWN as I plugged in the device into my usb hub, then I immediately unshorted the pins after plugging in the device. I could tell it was in bootloader mode because all GPIOs were pulled HIGH. Finally, I clicked "Download" to load the code onto the device. All other settings were default on the WCHISPTool.librech551 doesn't work with the new bootloader yet - still some bugs that need ironing out according to issues on repo.

author: splin
author_rank: Frequent Contributor
timestamp: May 16, 2019, 03:32:33 am
content: Quote from: blueskull on May 14, 2019, 04:59:50 amSo how many of you took advantage of this 'offer'? I see they have now corrected the price to $0.78 but oddly they apparantly have 11 in stock compared to 360 when they were $.0001 each. Did someone here buy 349?

author: oPossum
author_rank: Super Contributor
timestamp: May 16, 2019, 05:26:56 am
content: These chips don't have an output mux for the UART. The UART has a rx enable, but not a tx enable. So how do you send the UART output to the pin? Nothing in the docs about that that I could find. What is seems to do is simply AND the UART and GPIO register bit. So the corresponding GPIO has to be set high for the UART to work. Took me way too long to figure this out.

author: oPossum
author_rank: Super Contributor
timestamp: May 24, 2019, 03:15:12 am
content: PCB for the USB LCD project...

author: radiolistener
author_rank: Super Contributor
timestamp: May 26, 2019, 05:13:27 am
content: 8051 is terrible architectureone dollar STM32F103C8T6 is much-much better and much-much more comfortable for programming.

author: PCB.Wiz
author_rank: Super Contributor
timestamp: May 26, 2019, 06:12:03 am
content: Quote from: radiolistener on May 26, 2019, 05:13:27 amIf you write in C, the core is largely irrelevant.'one dollar' ? Digikey shows $3.03905/2,400, and that part is 48 pins.The 8051 wins on price and package size here. 8051 is growing quite rapidly in Asia, as they see room for 8 bit MCUs.

author: ataradov
author_rank: Super Contributor
timestamp: May 26, 2019, 06:17:08 am
content: SAM D11 is ~$1, and still much easier to program.Compiler is irrelevant when underlying architecture is suitable for the C compiler, and 8051 is not.

author: techman-001
author_rank: Frequent Contributor
timestamp: May 26, 2019, 09:20:39 am
content: Quote from: radiolistener on May 26, 2019, 05:13:27 amI agree! ... tho the STM32F103 announced in 2007 is getting a little old in the tooth and has a few limitations that the newer STMF or L models don't.CAN Bus Shares memory with the USB hardware, which means that USB and CAN cannot be enabled at the same timeSerial Comms No AutobaudNevertheless a STM32F103C8T6 is *immensely capable*, lightning fast, 32 bits, 53 peripherals on chip has every development tool one could ever ask for, and all Free.I bought 10 off STM32L162RDY6TR from Arrow a couple of weeks ago for $0.90 AUD each and free shipping. These 32 bit MCUs have 384KB of Flash, 12 KB of eeprom and 48KB of ram and 46 peripherals on chip. just like the STM32F103C8T6, this mcu also has every development tool one could ever ask for, and all Free.I also bought 10 off STM32L053C8 for $0.46 AUD with free shipping.Delivery from the USA to my doorstep in Australia via TNT ... 4 days including a weekend !If you shop carefully there is no reason to buy seemingly cheap Chinese homegrown 8041 mcus with no tools, scant English documentation and few internal resources when you can get really cheap, proven ARM Cortex-M's with established and proven, free toolchains for around half a dollar

author: sorin
author_rank: Frequent Contributor
timestamp: May 26, 2019, 10:00:14 am
content: Quote from: techman-001 on May 26, 2019, 09:20:39 amThis code don't exist.Quote from: techman-001 on May 26, 2019, 09:20:39 amWhere did you buy them?At Arrow they cost around 3.2$.

author: techman-001
author_rank: Frequent Contributor
timestamp: May 26, 2019, 11:21:38 am
content: Quote from: sorin on May 26, 2019, 10:00:14 amSorry I omitted a char in error, the correct part number is STM32L162RDY6TR.I bought them from Arrow.com. This isTODAY, I bought them acouple of weeks agowhen they were OVERSTOCKED. IIRC they had about 22,000 of them at that price.You have to keep a eye on the prices, look for 'overstock' and pounce!

author: techman-001
author_rank: Frequent Contributor
timestamp: May 26, 2019, 11:30:54 am
content: Quote from: techman-001 on May 26, 2019, 11:21:38 amRight now on arrow.com you can buy the following and they have 13 other STM32Lxxx mcus on OVERSTOCK.STM32L053R8H6 for 0.4578 each min qty 10, 2,973 in stock, 1 day free shippinghttps://www.arrow.com/en/products/stm32l053r8h6/stmicroelectronics

author: techman-001
author_rank: Frequent Contributor
timestamp: May 26, 2019, 11:36:58 am
content: Quote from: techman-001 on May 26, 2019, 11:30:54 amHow about STM32L162RDY6TR, $0.6982 each in quantities of 10.Please! strict limit of 824,162 PER CUSTOMER, FIRST COME, FIRST SERVED!;-)https://www.arrow.com/en/products/stm32l162rdy6tr/stmicroelectronics

author: sorin
author_rank: Frequent Contributor
timestamp: May 26, 2019, 01:51:57 pm
content: Thanks, but this are BGA. Its not that easy to solder.

author: wraper
author_rank: Unknown
timestamp: May 26, 2019, 01:59:09 pm
content: Basing design on currently heavily discounted part is not smart at all. It will bite you in the ass further down the road and result in higher total costs.

author: splin
author_rank: Frequent Contributor
timestamp: May 26, 2019, 02:11:56 pm
content: Quote from: techman-001 on May 26, 2019, 11:36:58 am$3.835 each for 10 off viewed from a UK IP. Are they offering special rates for Australians?Boy is the Arrow website painful - if you can bear to wait long enough for it's search engine to find 'overstock' and select the microcontroller tab it shows precisely one microcontroller (Renesas). Google finds the others... OK. Just spotted cut strips offered at $.6982 - but only 1,442 in stock.

author: wraper
author_rank: Unknown
timestamp: May 26, 2019, 02:13:27 pm
content: Quote from: splin on May 26, 2019, 02:11:56 pmSelect cut strips or ARROW reel and enter 10+ quantity. BTW only 1442 parts are discounted, everything else goes at full price. They just want to get rid off 5 year old date code.Quote from: techman-001 on May 26, 2019, 11:36:58 amExcept they go at full price as I wrote above.

author: techman-001
author_rank: Frequent Contributor
timestamp: May 26, 2019, 02:53:17 pm
content: Quote from: splin on May 26, 2019, 02:11:56 pmOf course, life is so harsh here in Australia we get special rates from other countries to help us bear it!The Arrow website is painfully slow and often won't render the selection segment for me. Different Browsers make no difference. This is a total shame as their service and prices are fantastic.

author: dgramop
author_rank: Newbie
timestamp: May 27, 2019, 04:17:11 am
content: I agree that ST Microcontrollers tend to be easier to use and quite powerful. The benefit of the ch55x controllers is that they are always cheap, and we don't have to wait for an accidental overstock or a sudden price drop to get a price that cheap. Even after an anomaly in pricing, STM still costs ~10c more /PC.

author: GromBeestje
author_rank: Frequent Contributor
timestamp: May 30, 2019, 10:00:40 pm
content: I've been looking at the documentation, but it seems this CH55x chip offers no in-circuit debugging (JTAG/SWD). It's common for 8051 based MCU's to not have such features, and those that do, have limited support in debugging software anyways. I don't like a microcontroller I cannot debug.

author: wraper
author_rank: Unknown
timestamp: May 30, 2019, 10:05:24 pm
content: Quote from: GromBeestje on May 30, 2019, 10:00:40 pmSay 8051 based MCUs from Silicon Labs can be easily debugged in their own Simplicity Studio (free) and Keil µVision.QuoteIt's not ARM.

author: GromBeestje
author_rank: Frequent Contributor
timestamp: May 31, 2019, 07:53:24 am
content: QuoteSo? Cypress has SWD/JTAG on their PSoC3 series, 8051 core. The Nordic nRF24 which has an 8051 core has JTAG. The bigger SiLabs 8051 chips have JTAG (The smaller ones a proprietary protocol C2, nevertheless, it is a debugger interface)There are 8051-based designs that offer JTAG as their debugging interface. And Cypress seems to do SWD as well. --

author: oPossum
author_rank: Super Contributor
timestamp: June 02, 2019, 04:27:33 am
content: My initial interest in the CH551 was to create a low cost DIY friendly single chip version of theIR Widget. The existing designs all required a USB to UART chip. I just got the pulse count mode working. There isn't comprehensive documentation for using USB ping-pong buffers, but it wasn't hard to figure out how it works. Data rate is 10k bytes/s and seems to work reliably.

author: brucehoult
author_rank: Super Contributor
timestamp: June 02, 2019, 08:03:46 am
content: Quote from: dgramop on May 14, 2019, 11:50:17 pmThat's stupid. The Intel HEX file specification explicitly says that record separators can be any combination of CR and LF.

author: brucehoult
author_rank: Super Contributor
timestamp: June 02, 2019, 08:08:00 am
content: Quote from: PCB.Wiz on May 26, 2019, 06:12:03 amExcept the 8051 is an awful target for C, and you get huge bloated slow code, many times larger than it would be for any of AVR, ARM, RISC-V, MSP430.

author: oPossum
author_rank: Super Contributor
timestamp: June 19, 2019, 12:42:09 am
content: PCBs arrived and are working well. Still have a bit of work to do on the firmware.

author: ebclr
author_rank: Super Contributor
timestamp: December 16, 2019, 07:18:03 pm
content: Do you have a GitHub for this project, I'm interested in making the same thing

author: Just4Fun
author_rank: Contributor
timestamp: December 23, 2019, 12:24:43 pm
content: Wanting to play with this thing I'm preparing my "Dragon" too...

author: dgramop
author_rank: Newbie
timestamp: December 26, 2019, 07:52:31 pm
content: I recently got back into writing code for this. I'm working on getting USB to work for HID, and eventually writing a U2FHID implementation.I tried making a nice little USB dongle that uses the thickness of the PCB + the thickness of the ch554 to fit inside the port.Here's the carnage after I tried plugging it in:

author: ebclr
author_rank: Super Contributor
timestamp: December 27, 2019, 02:27:44 am
content: Just4Fun I guess you try to make a complete dragon, I would recommend you to add one extra CH340 USB converter ( or even another CH552), Who can be plugged to com0 or com1 through jumpers, Those com's is very useful to debug especially if you use keil ISD51Also, write on the silkscreen the alternate functions for the I/os, Like RX0 TX0 etcYour 1st attempt is well done

author: Just4Fun
author_rank: Contributor
timestamp: December 27, 2019, 02:20:54 pm
content: Quote from: ebclr on December 27, 2019, 02:27:44 amThanks!About the secondary serial-USB adapter, I've thought about it at the beginning but I ended up that because this board can be easily directly inserted into 1-2 breadboards it would have been possible to use commons serial-USB adapters that we have already around if needed.About the secondary function name, I think that it take too much space... but marking as TXD and RXD (as marked in the datasheet) the USART0 pins instead of P3.0 and P3.1 it is a better choice so i did.I've just sent the files to the service, so we'll see...When ready I'll do a "project page" on hackaday.io with all the details and put here the link.

author: legacy
author_rank: Super Contributor
timestamp: December 27, 2019, 02:57:24 pm
content: One year ago I bought a couple ofmatrix-orbital/economy-displaylcds. Paid 10 euro for each one + S/H. They are Hitachi HD44780 with an MPU attached on the back. Nothing special, but cheap and well done.The real problem is ... damn, there is no mounting kit for installing one of them inside a computer like if it was a 5.25" device. I still have to design an STL model for a 3D printer.I haven't found yet the time, but for sure putting the LCD inside a computer (there are internal USB ports, as well as RS232 ports) is useful in my case because it's a server, hence the LCD can facilitate you a couple of operations in the compute room. Like visually checking if the server is up and running, and if the RAID is requiring you to replace an harddrive . Otherwise you need to plug a laptop, with a serial and ethernet cable to inspect things.It would be nice to find a similar kit. A very nice idea.

author: Just4Fun
author_rank: Contributor
timestamp: January 25, 2020, 05:08:43 pm
content: If anyone is interested I've just started a page on hackaday.io about the "CH552 Dragon":https://hackaday.io/project/169671-ch552-dragon

author: oPossum
author_rank: Super Contributor
timestamp: January 30, 2020, 10:28:22 am
content: Quote from: ebclr on December 16, 2019, 07:18:03 pmI don't have anything up on github yet. Hopefully soon.Current firmware and CAD files attached to this post.The protocol is "LCD on Serial" (los-panel in lcdproc) that is derived from the original Scott Edwards (seetron) protocol. There is also support for the Crystalfontz protocol that is mostly complete, and some work has been done of the Matrix Orbital protocol.

author: oPossum
author_rank: Super Contributor
timestamp: January 30, 2020, 10:44:25 am
content: My latest project using the CH551G is a Z80 SBC. The '551 does power-up/on-demand reset, clock generation, USB to UART bridge and Blinkenlights.

author: Just4Fun
author_rank: Contributor
timestamp: January 30, 2020, 12:19:51 pm
content: Quote from: oPossum on January 30, 2020, 10:44:25 amWow! Beautiful idea

author: Bob-2
author_rank: Newbie
timestamp: March 26, 2020, 05:52:00 am
content: Hey, some really awesome projects in this thread! Excited to get to use these micros in some of my own projects. I'd really like to get it working as a USB HID device.Just curious if anyone has had trouble getting the WCHISPTool to work for them? I believe the problem for me might be driver related. When I plug my CH554 dev board from electrodragon into USB (I am on windows 10) it doesn't seem to respond to windows with a device descriptor and windows stops the device. Attached is a screenshot of what shows up in device manager. Is this normal? The WCHISPTool also does not see the device. I tried updating the device driver using Zadig to libusb which also didn't work but it showed a USB ID as 0000 0002 which I think is wrong.Don't want to hijack the thread - just hoping for confirmation whether the device descriptor thing is or isn't normal, or if anyone ran into this.

author: PeterZ
author_rank: Regular Contributor
timestamp: March 26, 2020, 09:41:22 am
content: I'd check if the board is assembled correctly. My CH559 board from electrodragon had the main chip 90° rotated and installed that way, ontop of that look what i found underneath one of the USB sockets:They redesigned the board and were improving the QC, so things are hopefully much better now.Did you power up the board with the bootloader button pressed? If the demo firmware does not use the USB it won't be recognized unless you start the bootloader (VID=0x4348, PID=0x55E0).If anyone is interested, i have written a python flasher tool for the CH55x series. It's based on work of others, reverse engineered bootloader and lots of my own research.The script is here:https://github.com/hexeguitar/CH55x_python_flasherIt requires python3, pyusb and pyserial libraries. Tested and works with CH559, CH554 (bootloader v.2.31) and CH551 (usb only, bootloader v1.1).I have also implemented the UART flashing for the bootloader v2.31. It might be useful when working on usb host projects, replugging the usb back and forth to program the chip is really annoying.However there are two little disadvantages:- baudrate is fixed to 57600, slooow...- bootloader in uart mode replies only after hard reset (checks a flag on boot), so i designed a small circuit to cycle the power and start the mcu with the bootloader button pressed. For now i have tested the CH559 version only. CH554 is different, the bootloader pin is active high and normally used as USB D-.Here is the reboot circuit for the CH559:https://github.com/hexeguitar/CH55x-HW-rebootThe chflasher script uses the DTR line to restart the MCU if it doesn't get any reply. I have another version for the CH554, too, but it's not yet tested in practice. I'll add it to the repo soon.With the flasher script, SDCC, vscode + CMake/Ninja i was able to make a nice open source programming environment for the CH55x MCUs on Linux.And here is another small CH554 based board, i plan to use it as a generic USB host ->UART module to interface a keyboard or mouse with various projects:

author: Bob-2
author_rank: Newbie
timestamp: March 27, 2020, 03:33:41 am
content: LOL is that solder paste under the USB connector?Thanks for pointing me towards it being a hardware issue. I had actually already checked for incorrect rotation in the chip and probed around a little bit. What I missed was that USB D- to P3.7 wasn't connected! Even though it looked fine at first glance, the pin on the USB connector was bent up slightly and the solder on the pad had missed it!!! Jeez. Funny thing is I think I probed this before but it must have pushed the pin down and made contact.

author: Noopy
author_rank: Super Contributor
timestamp: April 17, 2020, 06:15:19 pm
content: Hi all!Are you interested in some die pictures?I have taken pictures of the CH551 and the CH552:https://richis-lab.de/CH55x.htmThe CH551 and the CH552 share the same die (as far as I can evaluate it).Certainly WHC deactivates some blocks in the CH551.

author: Noopy
author_rank: Super Contributor
timestamp: April 23, 2020, 03:49:23 am
content: Quote from: Noopy on April 17, 2020, 06:15:19 pmUpdate:https://www.richis-lab.de/CH55x.htmThe CH554 uses the same die as the CH551 and the CH552. That means that most likely all three have USB-Host-Hardware inside.The CH559 is completely different.

author: hidden
author_rank: Contributor
timestamp: May 27, 2020, 06:34:08 am
content: Found an open source design for CH55xThttps://easyeda.com/OSHWHub/ch55xt_core

author: oPossum
author_rank: Super Contributor
timestamp: May 27, 2020, 07:03:20 am
content: My CH55xT BoBhttps://oshpark.com/shared_projects/3PnMEdlx

author: hidden
author_rank: Contributor
timestamp: June 01, 2020, 05:29:11 pm
content: BoB is Board On Board ?

author: ds_user
author_rank: Newbie
timestamp: June 17, 2020, 02:30:19 pm
content: I just make an Arduino package for CH55x. Programming CH55x is now a one-click process.Also, there is a breakout board you can solder without a magnifying glass.https://github.com/DeqingSun/ch55xduino

author: knapik
author_rank: Regular Contributor
timestamp: June 17, 2020, 03:22:31 pm
content: I'm pretty interested in the CH559. Sounds like the perfect microcontroller for a simple project idea I had (USB mouse & keyboard support for SPARCstations).

author: ds_user
author_rank: Newbie
timestamp: June 18, 2020, 04:53:08 am
content: Quote from: blueskull on June 17, 2020, 02:48:28 pmHi, where can we get CH552 with new bootloader? Can we get it from LCSC?

author: soFPG
author_rank: Frequent Contributor
timestamp: June 18, 2020, 07:31:24 pm
content: What is the advantage of the new bootloader? Did anyone ever successfully programmed these uCs without USB? I heard some rumors that programming via SPI would be possible

author: up8051
author_rank: Frequent Contributor
timestamp: June 18, 2020, 09:37:16 pm
content: What about Flash readout protection in new version of bootloader?

author: oPossum
author_rank: Super Contributor
timestamp: June 19, 2020, 01:23:50 am
content: Both the old and new bootloader have flawed code protection and can be read. All but the CH551 can be programmed by USB and UART. There is no SPI support in any parts.

author: soFPG
author_rank: Frequent Contributor
timestamp: June 19, 2020, 05:58:36 am
content: So how do you program the CH551 then? Your first post was about the CH551 and you said it has a USB bootloader?

author: Yansi
author_rank: Super Contributor
timestamp: June 19, 2020, 06:37:47 am
content: Quote from: oPossum on May 14, 2019, 01:57:11 pm8051 based MCUs (including the original 8051 and all derivates) had a positive polarity reset. So you are in fact wrong.And there is no norm on reset polarity as far as I know. That you are used to something does not make it a rule.

author: oPossum
author_rank: Super Contributor
timestamp: June 19, 2020, 06:46:04 am
content: I was referring to it be the norm on *other* MCUs, not the 8051. Can you name any MCU or CPU from the 90s or later with active high reset? I haven't seen one.

author: oPossum
author_rank: Super Contributor
timestamp: June 19, 2020, 06:47:52 am
content: Quote from: soFPG on June 19, 2020, 05:58:36 amThe CH551 is USB only. All the others are USB and UART.The manuals briefly mention a serial (possibly SPI) programming capability that does not use the bootloader. This is not publicly documented as far as I know.

author: Bassman59
author_rank: Super Contributor
timestamp: June 19, 2020, 05:27:35 pm
content: Quote from: oPossum on June 19, 2020, 06:46:04 amThe real mistake is assuming that because the MCUs or CPUs that you have seen have an active-low reset, therefore all of them do. RTFDS.

author: ice595
author_rank: Regular Contributor
timestamp: June 20, 2020, 03:54:07 am
content: Quote from: oPossum on May 14, 2019, 04:50:09 amThis really reminds me of my capstone project I did 3 years ago.I used the CoreTemp SDK to gather CPU clock, temperature and I think I used a native Windows API or performance counter for CPU and RAM usage.

author: serisman
author_rank: Regular Contributor
timestamp: June 22, 2020, 04:37:47 pm
content: Quote from: Yansi on June 19, 2020, 06:37:47 amWell now, that is also in fact wrong. There are certainly 8051 derivatives that have a negative polarity reset. For instance, the Nuvoton N76 and MS51 series both use a negative external reset (and there are probably others). So don't assume anything, and always double check the datasheet.

author: hidden
author_rank: Contributor
timestamp: August 10, 2020, 11:31:28 am
content: Attached is CH55X ISP Introduction(Chinese )

author: olin
author_rank: Newbie
timestamp: February 13, 2021, 07:43:07 pm
content: Frustrated by the variety of different bootloader versions for CH55x and their spotty support in open source FW uploader tools I have created a new project that combines them into one. It supports several bootloader versions: v1.0, v2.3.1 and v2.4.0. The project is hosted on github here:https://github.com/ole00/chprog