Jump to content

Haro

Member
  • Posts

    14,360
  • Joined

Reputation Activity

  1. Like
    Haro got a reaction from EphraimK in Rate the Photo Above you   
    Got a new daily driver watch, gifted to me by my dad, an open heart automatic Fossil, and it's simply beautiful. 
    First Shot: EOS 2000D ISO100, 1/125 F2.8 @50mm. 
    Second shot: EOS 2000D ISO100, 1/300 F2.8 @50mm.
     

  2. Like
    Haro got a reaction from Lightwreather in Rate the Photo Above you   
    Got a new daily driver watch, gifted to me by my dad, an open heart automatic Fossil, and it's simply beautiful. 
    First Shot: EOS 2000D ISO100, 1/125 F2.8 @50mm. 
    Second shot: EOS 2000D ISO100, 1/300 F2.8 @50mm.
     

  3. Like
    Haro reacted to YellowJersey in Rate the Photo Above you   
    I made a thing.
     
    This is more of a proof of concept than a final image; I just wanted to see if I could do it. The next step is to figure out how to do it well. I had to crop in a lot, so the resulting file is pretty low-res. I'll probably rent the gear I need to get a better image since I don't see myself doing tonnes of Andromeda photos. I can rent something decent for about $100 a night. I'll probably go with a Canon 80D and the 100-400mm so I can get a 5.6 aperture; that gives me a 600mm FF equivalent. I could rent the Nikon 200-400mm f4, but it's too heavy for my star tracker; plus, my bahtinov mask wouldn't fit on it. A star tracker with a higher payload capacity runs about $1000 CAD anyway, so at that point I'd be more inclined to just buy a telescope.

    A7rIII
    Sigma 100-400mm 5.6-6.3 DG DN lmnop (@400mm, 6.3)
    Star Adventurer star tracker
    iso 6400
    Shutter speed 30 seconds
    100 (approx) exposures stacked)

  4. Like
    Haro reacted to sub68 in Rate the Photo Above you   
    I love the red light it draws the viewer in.

    here is my camera at a holloween party I was covering. 
    from a iPhone 6s
  5. Like
    Haro got a reaction from Lightwreather in Rate the Photo Above you   
    8/10; While I like the composition, I think perhaps the shot with colors would look better than it being in B&W, though that's of course, somewhat subjective.
     
    A generic shot of my PS Vita, not my proudest work but I'm quite happy with it.
     
    EOS 2000D 1/125, ISO200, F3.2@50mm.
     

     
  6. Like
    Haro reacted to Kilrah in Show off your latest purchases   
    Finally took the plunge for the promo
     

  7. Funny
    Haro reacted to Dr_badwolf in Motherboard VRM Tier List v2 (currently AMD only)   
    Ya, I know all this - Those thermals don't actually matter tho.
    Im sure you know why...
  8. Like
    Haro reacted to WkdPaul in Show off your latest purchases   
    2 desks mats
    1 organizer (fixing it on the wall)
    1 laptop stand
    1 TV antenna
     

  9. Like
    Haro reacted to Jurrunio in Motherboard VRM Tier List v2 (currently AMD only)   
    tuf pro s is better.
  10. Like
    Haro reacted to The Blackhat in Rate the Photo Above you   
    Built a new photo backdrop last night. Pairs really well with my Golem knife.
    (didn't rate the above photo because someone else did and then didn't have a photo to post)

  11. Like
    Haro got a reaction from Zodiark1593 in Rate the Photo Above you   
    10/10 doggo. 
     
    Got around to shoot a couple of shots for a friend of mine.
    EOS 2000D ISO400, F2.5 @50mm. 
     

  12. Like
    Haro got a reaction from sub68 in Rate the Photo Above you   
    10/10 doggo. 
     
    Got around to shoot a couple of shots for a friend of mine.
    EOS 2000D ISO400, F2.5 @50mm. 
     

  13. Like
    Haro got a reaction from RockSolid1106 in Rate the Photo Above you   
    10/10 doggo. 
     
    Got around to shoot a couple of shots for a friend of mine.
    EOS 2000D ISO400, F2.5 @50mm. 
     

  14. Like
    Haro reacted to Zodiark1593 in Rate the Photo Above you   
    Sometimes, you just don’t have time to dial your settings to perfection. The subject is in focus and not super blurry, which takes priority, so you definitely nailed it. 8/10. 

    Sony A7C and Samyang 35mm F2.8
    F2.8, 1/2000, ISO 100
     

  15. Like
    Haro got a reaction from RockSolid1106 in cat thread   
  16. Like
    Haro got a reaction from soldier_ph in cat thread   
  17. Like
    Haro got a reaction from poochyena in Rate the Photo Above you   
    Great shot! I always loved your style, really love the bronze painted DAC behind the MH750s as well. 
     
    Cate.
    EOS 2000D, 1/160 F2.2 50mm, ISO100.

  18. Like
    Haro got a reaction from Red :) in Rate the Photo Above you   
    Great shot! I always loved your style, really love the bronze painted DAC behind the MH750s as well. 
     
    Cate.
    EOS 2000D, 1/160 F2.2 50mm, ISO100.

  19. Like
    Haro got a reaction from sub68 in Rate the Photo Above you   
    Great shot! I always loved your style, really love the bronze painted DAC behind the MH750s as well. 
     
    Cate.
    EOS 2000D, 1/160 F2.2 50mm, ISO100.

  20. Like
    Haro reacted to The Blackhat in Rate the Photo Above you   
    I love the framing. Great shot.
     
    Been trying out this new 105 DC and it's basically a perfect lens for literally everything.
    Hedpahonees

  21. Like
    Haro reacted to minibois in Ducky keyboard repair and USB Type C introduction/explanation   
    While this topic is relatively image heavy, I tried to keep the images as small as possible. All pictures together are just over 4.6MB in size.
    Table of contents (be sure to use Ctrl+F to navigate through the thread):
    [0] Introduction to this topic
    One of my colleagues knows I’m a fan of (mechanical) keyboards, so handed me a Ducky One 2 Mini keyboard and told me to not flip it over. Of course that was the first thing I did, which is when I noticed all the screws were missing on this board.
    This keyboard seemed to have suffered a rough fate, as not only were all screws missing, one of the standoffs on the board was slightly damaged, but I hadn’t noticed the worst yet. The USB Type C port was missing, it seemed to have been pulled off the board as some of the pads on the PCB were gone too.

    This thread will cover my experience of repairing this keyboard, while at the same time also giving some information on how the USB (2.0) Type C port and specification works.
    Any thoughts, corrections and criticism will as always be appreciated.
    [0.1] Naming used in this topic
    This section is here to make certain the wording and terms in this topic are clear.
    Receptacle / Connector
    A device which supports USB Type C will have a receptacle on it, which allows you to plug a cable into it. The connector on your device (i.e. on your phone/computer/etc.) will be called a ‘receptacle’ and the plug on a cable will be called a ‘connector’. A receptacle receives a connector and two connectors with a cable in between is used to connect two receptacles together.
    USB Naming
    With 25 years of evolution on the USB specification together with the introduction of new technologies within this standard, name changes are inevitable. This thread will use the current version of all the terms and technologies in the USB specification.
     
    For example, after USB 2.0 we got USB 3.0, which was later renamed to USB 3.1 Gen 1 and then to its current name of USB 3.2 Gen 1. The latter of these three - the current name - will be used.
    Another example is how USB has been designed originally as a ‘Master/Slave’ protocol, which describes a protocol where one device (master) controls one or more devices (slave(s)). Especially in the last years this term has grown outdated and controversial, being replaced by Host/Device, Source/Sink and DFP/UFP (Downstream-/Upstream Facing Port) for the various parts of communication.
    ‘Device’ is a word commonly used to describe any type of physical apparatus, instead of “Host/Device”, this thread will describe it as “Host-/Sub-device”. Device will describe any and all devices, no matter their Host/sub roles.
     
    These terms and technologies will be explained further in their respective sections. This section is here to explain any possible discrepancies with your own knowledge of these terms and the words used in this thread.
     
    [1] USB protocol and connector
    After years of progression towards the USB specification, USB now exists in many shapes, sizes and speeds. The physical connector decides what cables fit in what receptacle, while the connections within these cables/connectors/receptacles decide the speed and extra features available (such as charging and Displayport alternate mode).
    [1.1] USB basics and its various connectors.
    USB works with a host- and sub-device approach, where the two devices connected both have a different role in communication. It’s either a host- or sub-device and the way this communication used to be achieved was through the physical connectors present. The most famous USB connector is ‘USB Type A’, also known as ‘regular USB’ thanks to its near ubiquitous use over the last 25 years. This rectangular connector has been used on a myriad of devices, such as desktops, laptops, TV’s, etc.

    When USB Type A was launched, a connector for sub-devices was also introduced, named ‘USB Type B’, which in modern times would be called a “printer connector”, because of their use on printers - both back then and still now - but this connector is also used on other USB devices, such as scanners, hard drives, USB hubs and much more. These USB Type A and B ports are great for desk equipment, but when portability became a much more important aspect in devices - such as external hard drives and at a later point mobile phones - it was important to make a smaller USB standard. That meant the introduction of smaller USB host- and sub-device connectors, namely USB Mini A, Mini B and at a later point Micro A, Micro B and Micro AB.
     
    Though the smaller host-connectors (Mini/Micro A) and the host-/sub combination connector (Micro AB) didn’t see wide-spread use, the same cannot be said for the smaller sub-connnectors: Mini B and Micro B.  Mini B was the default connector for many smaller peripherals - such as the PS3 controller, various hubs, etc. - but Micro B was definitely the better known small sub-connector as the de facto standard for (non Apple) smartphones and tablets for years, until USB Type C was made.
     
    USB Type C sought to unify the host- and sub-connector types, to create one default connector for any type of device to use. This connector achieves this feat by following the default USB wiring and adding some wires and components as needed. To effectively discuss these differences, we must first discuss the default USB wiring.
    [1.2] Internal wiring and back- and forwards compatibility
    USB provides data-communication and also power transfer between devices. 
    Power is handled through one more positive voltage and ground pins. Data is transferred through one or more differential pairs, which are wires of equal length working as a pair to transfer the data from or to a device.
    The way power and data work will be discussed in separate chapters, as well as the ways how USB achieved higher speeds above USB 2.0.
    [1.2.1] USB Power
    USB provides its power through a positive voltage pin(s) (colored red) and creates a circuit using its Ground (pins) (colored black). Without both positive voltage and Ground, a circuit is not completed and power cannot be transferred. This power is typically 5V, but higher voltage modes exist using the “Power delivery” standard of USB Type C (discussed later).
    The amount of current USB supports will depend on the version (2.0, 3.1 Gen 1, etc.), its mode (low- vs. high-power) and whether it is Power Delivery compliant. The total power is decided by the combination of the voltage and current and lies somewhere between 0.5W and 240W.
     
    Most desktop peripherals will be somewhere in the neighborhood of 0.5 - 15W, as the higher power targets are either for charging devices (like phones, laptops and tablets) or for larger devices (such as monitors).
    [1.2.2] USB (2.0) Data
    USB works with differential pairs for the transfer of data. The amount of pairs a receptacle, cable and connector has depends on the version of USB used. USB 2.0 has a single data pair, which are colored green and white for Data+ and Data- respectively.
     
    Together with the positive voltage and Ground a USB 2.0 cable will have four wires on the inside and has a maximum of 480Mb/s of transfer speed.
    [1.2.3] USB 3.0 and its name change
    After wide-spread adoption of USB 2.0 in the market, USB 3.0 was released to address higher speeds and more power in 2011. The theoretical max speed went from 480Mb/s on USB 2.0 to 5Gb/s on USB 3.0, a roughly 10x increase. This feat was achieved by adding two data pairs (4 wires) which would be used for USB 3.0 data transfer
    Later USB IF released an even faster version than USB 3.0 using the same pinout, which doubled the speed from 5Gb/s to 10Gb/s. They named this version of “USB 3.1 Gen 2” and also renamed USB 3.0 to “USB 3.1 Gen 1”.
    When introducing the doubling in speed with USB 3.2 Gen 2x2 (‘2x2’ being pronounced as “Two by Two”) they again renamed the previous 5Gb/s and 10Gb/s USB versions to their current names of “USB 3.2 Gen 1” and “USB 3.2 Gen 2” respectively.
     
    Whether or not this renaming of 5Gb/s and 10Gb/s was a good idea I will leave up to you to decide. Regardless, this thread will use the current names of USB 3.2 Gen 1 and USB 3.2 Gen 2, to conform to the current standard.
    [1.2.4] USB 3.2 Gen 1 (and above) pinout and their backwards compatibility
    One of the beauties of USB is its backwards and forwards compatibility, when it comes to using older/newer cables with older/newer connectors.
    Newer versions of USB include more data pairs for higher speeds and incorporate higher power levels, while still retaining the original data pair of USB 2.0 for flawless backwards compatibility.
     
    USB 3.2 Gen 1 was the first iteration on USB 2.0 - originally being named USB 3.0 - and it increased the speed from 480Mb/s to 5000Mb/s (5Gb/s) using two data pairs (TX+/- and RX+/-):

    USB 3.2 Gen 1 also increased maximum power consumption, in the low and higher power bracket of devices. Going from 0.5W to 0.75W on low power devices and increasing from 2.5W to 4.5W on high power devices. Forward compatibility - plugging a USB 3.2 Gen 1 device into a USB 2.0 port - is made possible by USB 3.2 Gen 1 devices having a USB 2.0 mode, where the trade-off might be slower charging and data transfer. Although not all USB 3.2 Gen 1 devices will work on USB 2.0, it is generally expected for a USB device to have backwards- and forwards compatibility.
    USB 3.2 Gen 2 doubles the speed compared to USB 3.2 Gen 1 - from 5Gb/s to 10Gb/s - while using the same pinout of USB 3.2 Gen 1.
     
    USB 3.2 Gen 2x2 yet again doubles the speed, but now only exists in a USB Type C connector. To facilitate its reversible connector - more on this in [2.2] -, USB Type C has the USB data pairs duplicated on the top and bottom row and during USB 2.0/3.2 Gen 1/3.2 Gen 2 simply either uses the top or bottom data pairs. As the 2x2 (pronounced as ‘2 by 2’) implies, instead of using either the top two or bottom two pairs, this standard now uses all four data pairs as individual data pairs, allowing for speeds of up to 20Gb/s.

    [2] USB Type C
    USB comes in many varieties of host- and sub-connectors and in different generations, allowing for different speeds. The goal of USB Type C is to provide a single connector appropriate for all scenarios. USB Type C can be either a host- or sub-connector, while previously most connectors were either one or the other, but not both.
    USB Type C can also be all different generations of USB, allowing for different speeds from 480Mb/s to 20Gb/s. Its extra features - such as higher power levels and extra modes such as audio/displayport adapter modes - make it a highly versatile connector.
    This thread will focus on the USB 2.0 implementation of USB Type C, as that is overall still the standard on keyboards, including the Ducky One 2 Mini which is the repair subject. The newer USB modes work in mostly the same way, just with different and more data pairs.
    [2.1] Connector pinout
    USB Type C has 24 pins, 12 on either side of the connector:
    Compared to USB Type A 2.0’s 4 pins, or USB Type A 3.2 Gen 1/2’s  9 pins, that is a plethora of pins of various uses. While power and data pins are of course still included, USB Type C also has certain pins dedicated to host-/subdevice detection, reversibility and extra modes.
    The reversibility and different modes of Type C shall be discussed in [2.2] and [2.2.1].
    [2.1.1] Pinout on the board
    The part of the USB Type C receptacle always has to be the same for the cable to plug into, it’s still possible to vary with the design of the receptacle in the way it mounts on the board and how the pins are connected on the PCB.
    In what way the USB receptacle mounts to a PCB is known as a ‘footprint’, which will have a resulting ‘pinout’.
    A USB Type C uses up to 24 pins. With the receptacle being 9mm wide (compare that to your pinky finger’s nail) it’s simply not possible to have all those pins next to each other. Most footprints use two rows of pins to account for the amount of connections needed. These connections can be through-hole (THT) - so visible on the other side of the board - or surface-mount (SMD), which means the pads are underneath the receptacle.
    The THT approach allows the receptacle to be soldered in place using an iron, where-as the SMD approach requires the use of more advanced equipment (hot-air station or oven).

    Note the double row of gold SMD pins. These Type C receptacles also exist in a through-hole variety.
     
    My previous thread* goes into much more detail about the general anatomy of a PCB, including the differences between SMD and THT.
    While all 24 pins are needed for USB 3.2 Gen 1 and above functionality, USB 2.0 doesn’t use all of Type C’s pins, so the connector on the board can be made using fewer pins, allowing for easier hand soldering and a smaller footprint on the PCB.
    This previous project* used a USB Type C footprint with 12 pins and so does this Ducky keyboard, so I had some familiarity with the footprint and the layout of pins, plus I also had some Type C receptacles fit for this keyboard laying around too.
    For what I hope is obvious reasons, these accessory pins are unused on keyboard PCB’s, including this Ducky board.

    *link: https://linustechtips.com/topic/1366493-elixivy-a-65-mechanical-keyboard-build-log-pcb-anatomy-and-how-i-open-sourced-this-project/
    [2.2] USB Type C reversibility, source/sink capability and different power levels
    USB Type C has a plethora of advantages compared to its predecessors, such as its ability to be a host- or sub-connector and the higher power and speed capability. One of its most well-known qualities is the reversibility of the connector. Gone are the days of plugging in the cable the wrong way twice before being able to plug it in, as the connector can be plugged in both ways.
     
    This feat of reversibility is achieved through clever cable and receptacle design, as well as some additional electronic components on the source and sink side devices.
    [2.2.1] USB Type C receptacle/connector pinout
    A USB cable has a connector on it which will plug into the receptacle on your PC/laptop/phone/keyboard/etc. USB Type C can be plugged in both ways, which means there is a ‘flipped’ and ‘unflipped’ orientation for the connector. The connector and receptacle are designed around this reversibility, using a clever setup of pins with some being duplicated and some pins dedicated to detecting the orientation of a cable.
     
    Below are the pinout of a USB Type C receptacle and connector:

    Keep in mind we’re looking at the front of both the connector and receptacle, meaning one of them is mirrored when plugging in to the other. For example, looking at the top row of the USB Type C receptacle it counts from A1 to A12, while on the connector it counts from A12 to A1.
    The pinout when shown on a cable and receptacle would look like this, so just visualize the cable turning around before it plugs in, also turning around the pins:

     
    The pinout on the connector and receptacle possess a radial symmetry, so that when it’s flipped around 180° it’s exactly like not having it flipped.
    When a cable is plugged in the ‘unflipped’, A6 on the cable makes connection with A6 on the receptacle and when ‘flipped’ A6 on the cable will make contact with B6 on the receptacle, both A6 and B6 on the receptacle being USB 2.0’s D+.
    This symmetry in connection holds true for all the other pins too, including the power pins - GND and VBUS -, the TX and RX data pairs, SBU and CC.
    [2.2.2] Resistors and the CC pins
    This section will focus on pins A5 and B5. Those are CC1 and CC2 on the receptacle side and CC and VCONN on the cable side.
    A device with a USB Type C receptacle needs to have these resistors, which handle a range of USB Type C features. These features include host- and subdevice detection, power level requested and the orientation of the plug. Communication between two devices will only be initiated if these resistors are detected on the CC pins.
    [2.2.2.1] Source/sink identification and providing power
    The USB specification in the past featured host- and sub-connectors, as discussed in [1.1]. USB Type A is a source connector, while (mini/micro) B are sink connectors. We’ve probably all had the thought once - or had someone ask us - if it’s possible to use a USB Type A to Type A cable to connect two computers together for data transfer. This isn’t possible, because the computers would both assume they’re the source device and start giving each other power.
    Best case scenario, your devices would throw an error and worst case scenario it can break something, as a part of circuit suddenly gets power instead of just sending it out.
    Legitimate USB Type A to Type A cables for data transfer do exist, but they have some special circuitry inside to allow for this use.
     
    USB Type C on the other hand can be used as a host- or sub-connector.
    It can appear on your computer or laptop, as a host-connector and can also appear on your mouse, keyboard or headphones as a sub-connector. A resistor is attached to the CC pins of the USB Type C receptacle and the other goes to either VBUS (‘pulled up’ to positive voltage) or GND (‘pulled down’ to ground).
    If it’s connected to VBUS: it’s a host device
    If it’s connected to GND: it’s a sub device.
     
    This way the device on either side of the USB Type C to Type C cable can see if the device on the other end is a host- or sub-device. If both are a host or both are a sub, they won’t connect together. If one is host and the other is sub (or vice-versa), a successful connection is made.

    This ‘handshake’ is typically done on the side of the host-device, while the sub-device is passive. This means a keyboard just has the resistors and no additional circuitry to detect a source device. Some more advanced sink devices - chargers in particular - do try to actively look for a source device. This is why a cable with a resistor to ground would work for most use-cases (as the resistors are detected on the source side and the sink side doesn’t look for them and just connects), it does give up some compatibility issues with certain devices which do require detection from itself to the other device.
     
    While a lot of devices are exclusively host or sub, a third type of device exists as well, the so-called ‘Dual Role Port’ device (or DRP for short). A device like your phone might need to be a sub-device in certain scenarios - such as when it’s connected to your computer for data transfer - while in other scenarios it needs to be a host-device - like when connecting a USB Type C hub or headphones to it.
    A DRP controller is used to switch between the host- and sub-device mode. These controllers work by choosing the opposite mode of what it’s connected to (so when a host-device is connected to the DRP controller, it becomes a sub-device and vice-versa). I already hear you asking - just like I did myself - “But what if two devices with a DRP controller are connected together?!”. The somewhat underwhelming answer to this question is that host- or subdevice status is chosen randomly.
     
    The host-device in the relation will only start giving power to the sub-device once a successful connection is made between the two devices.
    [2.2.2.2] Connector reversibility
    The CC pins are also used to identify what way the connector is plugged into the receptacle, right-side ('un-flipped') up or upside-down (‘flipped’). 
    The orientation doesn’t matter for USB 2.0 functionality, as the D+ and D- are simply connected together on the PCB*, but it does matter for USB 3.2 Gen 1 and above. The speeds of these newer USB standards are hindered by the so-called ‘dead-ends’ that exist when connecting two pins on the PCB together.

    *The two D+ and two D- pins are connected together on the PCB side, but this isn't recommended to do with the higher speeds of USB 3.2 Gen 1.
     
    A nonactive USB Type C cable will have a single wire which - depending on the cable orientation - goes from CC1 or CC2 on the host-device receptacle side to either CC1 or CC2 on the receptacle of the sub-device. The orientation of the cable is based on if either CC1 or CC2 is connected to a resistor (pulled down to ground) or not.
    An active USB Type C cable (which supports higher lengths) has its own circuit which will connect to the usually leftover CC pin, which is why it’s important to have two resistors on each device, more on this in [2.2.2.4].
    [2.2.2.3] USB Type C Power Delivery
    One of the other advantages of USB Type C is its ability for a wide range of power standards, anywhere from 2.5W to 240W. How much power a device can use is decided by the value of its resistors. A calculation is done using the value of the resistor(s) (which is measured in Ω/Ohm) to decide how much power a device can use (at most). 
    The different power levels are discussed in the USB IF Power Delivery (PD) specification should you be interested in what resistors you need for your projects.
    [2.2.2.4] “Wait, but can’t I just use one resistor for both CC pins?”
    No, you cannot.
    Or more accurately, you can, but that would not be adhering to the full USB IF specification of USB Type C, meaning (active) cables - which use both CC pins - wouldn’t work with your device.
     
    When the Raspberry Pi Foundation released the Raspberry Pi 4, the first revision(s) contained a single resistor for both CC pins. USB Type C relies on a resistance value to know how much power it should provide. By having a single resistor, the equation of both resistors together wouldn’t give the right number using a single resistor. Because of this singular resistor, the device on the other side would think the Raspberry Pi 4 is an audio device, so power wasn’t provided to it.
    This article goes in more depth about the issue: https://www.scorpia.co.uk/2019/06/28/pi4-not-working-with-some-chargers-or-why-you-need-two-cc-resistors/
     
    Even though a single resistor for both CC pins seems like a great way to save space (and a bit of money), it shouldn’t be done to make sure all cables work with your device, as per the full USB IF specification.
    [2.2.3] The type of resistors used on a keyboard
    Now that we’ve figured out resistors are important to USB Type C to decide a device’s configuration of host-/sub-device mode and power level, it’s easy to find out what type of resistors are needed.
    A keyboard typically uses a little amount of power (compared to what USB Type C could output), so 5.1kΩ (5100Ω) resistors which allow for up to 1.5A power output are the right choice.
    Keyboards are sub-devices, which connect to a host-device (such as a desktop PC, laptop, etc.), so these resistors connect to the CC pins and are then pulled down to Ground, so a host-device can detect this is in fact a sub-device.

    [3] The Repair
    With all the background information on USB Type C out of the way it’s time to address the damage on the keyboard and the method of repair.
    The USB Type C port of this board was ripped off - somehow - and it also took some of the pads with it. That is the biggest bit of damage on the keyboard, which will be discussed first. The broken standoff/missing screws will be discussed later.
    [3.1] Background information
    This part will lean lightly on the information presented in my previous thread about my keyboard eLiXiVy, specifically the anatomy of a PCB (which is discussed in section [2] of that thread). This previous thread has been updated slightly since last posting it. While the steps on how to create a PCB were accurate for hobbyist or home-use, this method of manufacturing does not reflect the steps a large-scale manufacturer takes. The layers of the PCB were accurate, so with the knowledge given in the previous thread you will be able to follow along with this thread, but feel free to check the previous thread for the corrected information.
     
    The main thing to know about a PCB is that it’s a layer of fibreglass, with copper on it, but only in certain places to create traces, which act as wires to connect components together. Most of this copper is covered with a layer of soldermask, to make sure nothing can (accidentally) connect to it. Some of the copper is not covered with this soldermask however, to create a point which can be soldered to. This is what we call a ‘pad’.
    [3.2] Assessing the PCB damage
    This keyboard is missing its USB Type C port and it seems like the USB port didn’t come off cleanly, taking some of the (12 in total) pads off of the board as well.
    Using the pinout discussed in [2.1.1] it was possible to determine what pads are gone. Most of them are in very bad shape or totally missing.
    This keyboard PCB uses the same types of USB Type C receptacles as my eLiXiVy custom PCB, so while I had some receptacles laying around, I also had some familiarity with the footprint on the keyboard.
     
    Because this USB Type C connector is on the bottom of the keyboard PCB, going from left to right is going from pin 12 to pin 1.
    The state of the pins:
    Pin 12 (GND): Good Pin 11 (VCC): Good Pin 10 (CC2): Gone Pin 9 (SBU2): Gone (not needed though) Pin 8 (D+): Half gone Pin 7 (D-): Half gone Pin 6 (D+): Gone Pin 5 (D-): Half gone Pin 4 (CC1): Half gone Pin 3 (SBU1): Half gone (not needed though) Pin 2 (VCC): Good Pin 1 (GND): Half gone Which means: 3/12 are in good order, 6/12 are half gone, 3 are fully gone.
     
    While I have the receptacles already, the missing pads would serve a problem though, specifically the missing D+ and CC pads. 
    A missing D+ pad means a cable will only work when plugged in one way, while the missing CC pad means the detection of orientation will only work when the cable is plugged in one way, both not great to have on a reversible connector.
    The half gone pads were in decent enough state to still solder to, so I did have something to work with.
    [3.2.1] Testing the functionality of the board using test pads
    Before spending time soldering a new connector in place, it was important to first know if it’s even worth it to put any effort in this keyboard. The USB port is broken off, the screws are missing and a screw post is a little mangled; who knows what else is wrong with the board.
     
    This revision of the Ducky One 2 Mini features some pads on the board just below the USB Type C port likely meant for a JST header:

    The SMD pads on the keyboard.
    Likely meant for a header like this:

    These types of headers make it easy to connect two PCB’s together using that header and a cable.
    I had some suspicion these pads on the board would have USB functionality and by grabbing a multimeter and testing I found the four USB 2.0 pads: D+, D-, VCC and Ground.
     
    Before proceeding forward with some more complicated ways of repair, it was time to do a quick test to see if the keyboard is in working order. Soldering a couple wires to these pads on the PCB and connecting a micro USB board was easy enough.

    Plugging in a cable revealed success! With RGB and all, this board is in working order. Just had to reset it real quick, as it seemed to be stuck in some weird 'RGB-showoff' mode, but after that it’s all working.
    This gave me the confidence these pads on the board would actually work for the repair, so I moved onto the next step.
    [3.3] Soldering a USB Type C port in place
    What seemed to be the obvious step now, was to grab a Type C receptacle and solder it in place on the board. The problem though is the missing pads, specifically CC2 and D+ (one of them), which are essential for full compatibility. My first instinct was soldering a USB Type C connector in place on the board and connecting small wires to the pins of the missing pads. This soon turned out to be a big mistake, as it proved to be impossible to solder the needed wires in place.
     
    The USB Type C receptacle is roughly 9mm * 7.3mm (0.36” * 0.29”) in width and depth, or roughly the size of an adult’s pinky finger nail. Just imagine a connector of that size having 12 pins along its width and trying to solder a wire just to a single of those 12 pins. 
    At some point I did have a wire attached to D+ and D- (I decided to solder a wire to both, just to be safe both are connected the same) and while it looked fine, testing what parts of the USB Type C receptacle the wires were connected to showed both wires were connected to two connection points (both to their respective data pin, but accidentally the other data pin next to it to).
     
    After trying to fix up the wires for a little bit, I decided this wasn’t going to work. My tools, equipment and skills just weren’t up to what it took to solder a wire to a singular pin.
    This is not impossible to do, as there are quite a few videos online of people repairing devices with USB Type C ports (i.e. phones and Nintendo Switches) using tiny wires to connect receptacles to pads, but it didn’t work out for me.
     
    Unfortunately while removing the USB Type C receptacle I accidentally ripped up all the already half gone pads. Just after making this mistake I felt really stupid, but with hindsight I can say mistakes should be something you can’t be afraid of admitting, but always make it a point to learn from your mistakes.
    The mistake of ripping off these pads turned out to not be a huge deal, as I already have a plan B lined up, which doesn’t involve these pads on the board, but rather involved a custom PCB.
    [3.4] USB Type C breakout boards
    With the USB Type C pads being mostly gone from the keyboard’s PCB and connecting tiny wires to the receptacle proving impossible, it was time to look at an alternative solution.

    A USB Type C breakout board is a tiny PCB with a USB Type C receptacle soldered on it. This tiny PCB has a few pads on it, exposing the power and data pins of the USB Type C receptacle (VCC and GND for power, D+ and D- for USB 2.0 use and optionally the TX and RX data pairs too for USB 3.2 Gen 1 functionality). These pads on the breakout board would just connect to the ‘test pads’ on the board, as described in [3.2.1]. 
     
    A breakout board would be easy to use, but there would still need to be a way to actually adhere it on the board. The holes on the board where the USB receptacle was originally soldered into would be perfect to use (as it ensures a proper fitment of the port, relative to the keyboard case), but all the off-the-shelf options didn’t allow for this.
    After contemplating the various options, I opened up KiCAD to design something myself.
    [3.4.1] Designing a breakout board PCB
    When making a PCB it’s important to consider the purpose. That means keeping in mind what it should do and what physical limitations you’re working with.
    In this case the purpose was quite simple. This board had to solder to the SMD pins of a USB Type C receptacle, expose D+, D-, VCC and GND, have room for the two CC resistors and most important of all: it has to be small and install on the 'wrong side' of the receptacle:

    White = Keyboard PCB, Grey = receptacle, Yellow = receptacle pins, Green = breakoutboard
    With those design requirements and limitations in mind, it was time to open KiCAD to first set up the schematic. That schematic was easy to make, as it just involved wiring up VCC/GND/D+/D- to four pads and placing two 5.1K Ohm resistors on the CC pins.

    (I promise this all might seem a lot more complicated than it really is, in reality this is a very simple schematic).
     
    After the schematic was done, it was time to start designing the PCB. With the size limitations and the overall design in mind the overall layout was quickly made. Now it was time to place the components on the board and route the traces between them, all while keeping the board as small as possible yet still easily accessible, giving me this as an end-result:
    This is the front and the back
    It was named ‘Non-standard Type C Breakout Board’ because the standard for one of these boards is to install it on the bottom of the SMD pads; not the top. Soldering the receptacle from the other side wouldn’t even work, as the D+ and D- would be switched around and CC and SBU would be switched with each other. Most of the text on this board was made way too small though, as I just didn't consider the size of individual letter when working on this. When seeing a board on a big screen it's way different than in real life!
    Making this PCB - including the schematic - took about an evening's worth of time and after that it was time to wait on the PCB to arrive from the manufacturer.
    [3.5] Attempt two at repair: with a USB Type C breakout board
    After receiving the USB Type C breakout board, it was time to attempt the repair for the second time.
    When working on a PCB in software it always looks like a normal size, but when you then receive it, it suddenly looks much smaller. It's about 7.6 x 5mm (0.3" x 0.2"), but here it is compared to a CR2032 battery for a bit of comparison:

     
    Step #1 was soldering the USB Type C receptacle to the board. This proved quite difficult, as there is very little of the receptacle’s pins that actually make contact with the pads on the board. After a bit of work, it was soldered into place; although with the minimal contact it wasn’t a connection I had much confidence in. After that, it was time to solder the two 5.1KΩ resistors and the wires, to give me a board like this:

    Definitely not the prettiest solderjob, but soldering at this size is still quite outside of my comfort zone.
    At this point, this is an untested PCB design, so before soldering the receptacle to the board it was wise to first test it out by soldering the wires to the test pads (like done before with the first test). The test was a success, so it was all set to solder to the keyboard!
     
    First adding some electrical tape so the Type C receptacle pins don’t make contact with the keyboard pads, afterwards soldering the Type C in place was easy. Braiding the cables together gave them a neater look and some electrical tape ensured no contact between the cables and other conductive parts of the keyboard. Electrical tape doesn’t look great and I would’ve much rather use heatshrink, but unfortunately when I used that the heatshrink and cable insulation melted (causing me to have to replace the wires).

    Because I tested the board before soldering the receptacle in place, I knew it would work, but now it also was in place in the correct position!
    Should you be interested, I’ve open-sourced this board. It can be found here: https://github.com/minibois/mini-non-standard-type-c-breakout
    [3.6] The screws/standoffs
    The screws leftover from a previous mechanical keyboard project unfortunately were not the right size. On forums some people said this keyboard uses M2 screws (screws with a 2mm diameter), which unfortunately I didn’t have around. After searching through a couple bins of screws, I didn’t find many screws fit for this board, as most of them were either too wide or too narrow. After a bit of searching I found three screws fit for the job. Three screws out of six total.. 50%, good enough for me!
    The slightly broken standoff needed a wider screw, but otherwise it worked out well. The screws were too long for the shallow standoffs on the board, but after cutting and filing the screw the keyboard is now in place

    [4] End result and conclusion
    There are different goals to have in a project and it’s possible to change, adapt or drop these goals while moving through a project. In my last thread I mentioned the importance of finishing projects too. This proved to be important for myself once again in this project. 
     
    One of the goals in this project was to take my overall approach to refurbishing, which can be described as “make it look like it had no work done to it”. With the USB Type C soldered into place in the original position, I think I managed to hit that goal, but you can be the judge of that! 

    Of course the inside doesn’t look original though.
    Other than the USB Type C repair, I wanted to further mod this keyboard, by putting the well-known open-source (keyboard) firmware ‘QMK’ on it (more about this firmware in my eLiXiVy thread), but unfortunately this revision of the One 2 Mini keyboard has an unsupported processor (microcontroller) for QMK.
     
    This project also forced me to learn more about USB Type C, which has given me more ideas for future projects as well. More on this in the future of course!
    Many thanks for reading. Any feedback, criticism and overall thoughts would be lovely to hear!
    [4.1] Pictures
    Here I have a couple pictures which didn't fit in the rest of the thread, but I still wanted to show off.
    [5] (Re)sources / Further reading / Links
    Multiple sources were used to write this thread, in no particular order:
    My previous threads:
    Software used:
    [6] Frequently Used Terms
    There are many (technical) terms used, this section will quickly describe some of the most used (and optionally where they’re discussed further).
    [7] Frequently Asked Questions
    Feel free to ask any questions you may have about this project, if I tend to get certain questions more often I'll post them in the FAQ spoiler below.
    [8] License
    [9] Changelog
    Dates are noted in ISO 8601 (YYYY-MM-DD)
  22. Like
    Haro reacted to Arika in Show off your latest purchases   
    well i know what i'm doing tonight
     

  23. Like
    Haro reacted to TVwazhere in Show off your latest purchases   
    Went to Salem MA this weekend, and I spotted this Amethyst dagger looking crystal, as well as an old rail tie recycled into a cool knife
     
     


  24. Like
    Haro reacted to Levent in does disabling csm affect performance?   
    No.
  25. Like
    Haro got a reaction from Tamesh16 in Show off your latest purchases   
    My Nifty Fifty finally arrived. 
     

     

×