For a project in mind I am planning on replacing a USB micro B type receptable with USB C receptable. After trolling the internet I came across a solution proposed in Reddit. I don’t know if any of you guys have any experience in this. I would appreciate if you can have a look at my schematic and let me know if what I am doing is correct or wrong.
the end user will be using a normal usb c charger kind of cable. basically I am trying to reverse engineer https://olkb.com/parts/qmk-proton-c. as my project will have the mcu on board and will not have a breakout board.
The whole type C is a messy hairball. I have read about it and even read some of the official specs. There just are too many details and combinations.
Is there any reason to use type C instead of micro, other than that you can plug it in both directions (upside down)? You don’t need high current for that application, do you? Micro connectors are cheaper and easier to handle (solder), especiall THT. The external standard cable and the other end of the communication take care of details, you wouldn’t have to know anything about type C.
micro cables are all but gone these days. finding a USB c lying around is more easier than a micro B.i just though I will future proof the device. all i am trying to build is a macro keyboard with 5x5 matrix. I will be using an atmega micro for this.
its not really a high current application. even if i decide to incorporate RGB led’s its should not be a lot.
It seems like the pictures on that olkb.com site are goot enough to do a bit of reverse engineering:
But if you are serious about reverse engineerging, then simply start with buying at least one of them. USD16 is not an extreme amount of money.
Firmware seems to be Open Source and available on Github: https://github.com/qmk/qmk_firmware and I won’t be surprised if you can also find full schematics somewhere, but I just spent a few minutes on it
But if all you’re interested in is the cable connection, then simply grab one of your cables and a DMM and beep them through.
This is often easier if you can put plugs in the connectors.
sure I am planning on getting one anyways. I forgot the fact that i can always Buzz them out. Thanks for the suggestion. I would love to use their board as some of the proceeds go the QMK community but unfortunately adding a breakout board would increase the thickness of the end product. I wish they made fully assembled board instead of a breakout that would have been ideal.
Sometimes I simply buy the cheap hardware from China and then donate to the projects that make the hardware usefull.
I did not look deep into this project. Another keyboard project you may find interesting is the GH60. The Teensy (from pjrc) also has keyboard firmware, but the boards are relatively expensive).
Also, There is almost no hardware on such boards which makes reverse engineering very easy. The vast majority of the connections are for the keyboard matrix. Power supply is simply deduced from the datasheets, or develepment board schematics for your uC. USB pins are usually hardwired to fixed positions ( or multiplexed to only a few possibilities).
If the firmware is written decently, it’s got the I/O pins defined in a single file, etc.
The STM32F103C8T6 (aka “Blue Pill”) is very popular because of it’s low price point ( < EUR 2 for a breakout board and around EUR 1 for bare chips.)
It’s probably similar enough to the 303 to glean form it’s schematics.
The 103 is a pretty old design, and in the later chips it seems that many hardware improvements have been made, but I still use the 103.
The main reason is that I simply buy them in batches of 10 and put them in a drawer. With a EUR15 development board, you only buy it if you need it, and then have to start with waiting untill it arrives.
Supporting Type-C from an existing USB2.0 design is straightforward and cheap (except for the connector). Basically you tie the DP pins together, tie the DM pins together, and add one pull-down resistor to each CC pin. This new Type-C device will identify as a data and power sink, use the default USB2.0 power of 500 mA, and work in either orientation of the plug.
@eelik thanks for the links i am now designing the device based on those links and I will update you about if i was successful once I have the prototypes.
I have not changed much apart from adding diodes and a fuse for surge protection. I believe the main challenge is routing 90 ohm diff pair keeping the length of the short circuited S1+ D2+ and D1- and D2- the same.