We love using chips with 'native USB' peripherals - that's the magic silicon that lets a microcontroller act like an HID keyboard or mouse or disk drive or MIDI synth. It's a standard addition on SAMD21, RP2040, and even the latest ESP32-S2 and ESP32-S3 boards. But what about when you have a classic ATmega328 Uno? or an original ESP32 or ESP8266? Maybe even a single-board computer like a Raspberry Pi? We would say "sorry...that's not possible" UNTIL NOW!
The CH9328 is a funky chip that is basically a programmed microcontroller that enumerates as an every-day HID keyboard and can convert ASCII or 8-byte raw reports, read over a standard serial port UART, into keypresses. So, you can emulate a keyboard even if your chip doesn't have native USB! You do need a hardware or software serial port: some way to generate 9600 baud 3V-logic signal that the CH9328 can read.
We added all the support circuitry to make this chip easy to use, you may not even need to do any soldering. The CH9328 is connected to a USB Type C port so it's easy to plug into any computer, laptop or even phone/tablet. Then, you can get 5V power from the 5V and Ground pads. There's a UART RX receive input plus a reset line if you want to perform a hard reset. If you want 'solderless' functionality, grab one of our JST SH cables: the red line will provide 5V, black is Ground, and the white wire is data in.
You can configure the 'Mode' using the 4 on-board switches, do that before powering it up:
- Switch #1 is used to configure the "Upload speed" - for most cases it doesn't matter which way its set
- If Switch #2, #3 and #4 are all 'ON' the chip is in Mode 0:
Visible ASCII characters are sent as-is: if you send ASCII "A", an "A" is typed. If 0x1B is received, it is converted to the Enter key - If Switch #2 and #4 are 'ON' and Switch #3 is 'OFF' the chip is in Mode 1:
Visible ASCII characters are sent as-is: if you send ASCII "A", an "A" is typed - If Switch #2 and #3 are 'ON' and Switch #4 is 'OFF' the chip is in Mode 2:
Visible ASCII characters are sent as-is: if you send ASCII "A", an "A" is typed. If 0x28 is received, it is converted to the Enter key - If Switch #3 and #4 are 'ON' and Switch #2 is 'OFF' the chip is in Mode 3:
This is the mode for sending raw 8-byte HID reports. This is also good if you want more control over the keypresses, or keyholds, or to mimic a non-US keyboard because you can control exactly what control codes are sent and when.
We recommend using mode 3 if possible, but you'll want to use our CH9328 library to do so.
This is a nice and easy way to emulate a keyboard without having to worry about native USB support, gadget mode, or maybe you just want to emulate more than one kind of device. You can also do 'funky' things like have one desktop or single-board computer 'type' into a device such as a computer or mobile device by running our Python code and having it send UART data via a USB-to-UART converter. Either way, the CH9328 will make it easy to keeb away.
Technical Details
Product Dimensions: 26.4mm x 20.3mm x 4.6mm / 1.0" x 0.8" x 0.2"
Product Weight: 2.7g / 0.1oz
Shipping rates Australia wide and New Zealand
FAQ:
- How do I estimate shipping for my order?
- Add products in the shopping cart and head to the checkout page to estimate the shipping.
Dispatch time
Unless expressly agreed otherwise with you, we will not commence delivery of an order until we have received cleared payment of the purchase price in full.
All orders placed before 11 am AEST (Monday to Friday) will ordinarily be processed on the same day.
We will endeavour to ship the Products by the applicable time indicated on the website, but all times are indicative only. All shipping times are dispatch times only, and actual delivery dates will depend on the shipping method chosen, delivery address and delivery service provider.
Note- Please make a note during purchase if you require any item urgently. However we cannot guarantee that we will be able to comply with any request.
*Go to Australia post delivery time calculation to get various Australia post service in your area please use our shipping postcode Thomastown, 3074 as the "from" address - https://auspost.com.au/parcels-mail/delivery-times.html?ilink=tools-open-deliv-times.
We ship all products throughout mainland Australia, Tasmania and New Zealand - Including Darwin, Melbourne, Sydney, Tasmania, Adelaide, Brisbane, Perth, all metro and regional areas but do not deliver to areas in Australia where the Australia Post delivery network is not available.
Check Express shipping delivery coverage area at - http://auspost.com.au/parcels-mail/delivery-areas.html
Receipt of deliveries
Deliveries to post office boxes are not permitted where delivery is by courier. If delivery is by courier and nobody is available at the delivery address to accept delivery when delivery is attempted then the courier may either:
- leave the relevant parcel at the unattended address (the courier will do so if specified in your delivery requirements); or
- re-attempt delivery at a later time or date, in which case we may charge you an additional re-delivery fee.
Note that if a delivery is left unattended at the shipping address and is subsequently stolen then the theft is your responsibility, not ours.
Payment & Security
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.