KM003C in Action - PSSD Power Consumption Profiling

Prior to the adoption of the KM003C as a replacement for the tried and tested Plugable USBC-TKEY (Google Twinkie), we wanted to perform a few checks. Any inline power meter has the possibility of introducing signal interference that can adversely affect bandwidth (by introducing retransmissions). That is one of the primary reasons for almost all low-cost PD analyzers in the market to completely disable data transmission while monitoring the PD traffic.

The test setup for the KM003C involves one of the Thunderbolt 3 ports on the Quartz Canyon NUC - our direct-attached storage testbed. The SanDisk Professional PRO-G40 was chosen as the target device. A CrystalDiskMark run with a 32GB data span (five passes, and 12 distinct workloads, with each workload separated by 5 second intervals) was processed in three different setups:

  • Direct connection to the Thunderbolt 3 host port without inline power metering
  • Connection to the Thunderbolt 3 host port with a Plugable USBC-TKEY (Google Twinkie) acting as a man-in-the-middle (MITM)
  • Connection to the Thunderbolt 3 host port with a ChargerLAB KM003C as a MITM

The three screenshots below show the CrystalDiskMark benchmark numbers obtained in each of the above three scenarios.



Though the vanilla configuration with no MITM comes out on top in all the workloads except for the high queue depth random writes, all the numbers are bunched close together within the realm of run-to-run variations. As such, the impact on the performance numbers with the KM003C is no different from the impact resulting from having the USBC-TKEY as an interposer.

Moving on to the recorded power consumption data, we first take a look at the numbers polled from the USBC-TKEY at 1 second intervals.

A peak of 7.16W was observed via the USBC-TKEY. From the Google Twinkie / USBC-TKEY documentation, it is not clear whether the 'twinkie vbus' command reports instantaneous numbers or averaged ones - but, looking at the smoothening, it does appear to be an averaged one.

In the first pass with the KM003C, we attempted to retain the 1 second polling interval used with the USBC-TKEY. Recording the averaged power consumption made more sense in that case.


A peak of 6.63W is observed for the 1s polling interval, and the graph is quite smooth. This needs to be compared with the high-resolution graph (where the data is polled every 100ms, and the instantaneous values are recorded) having a 7.55W peak.

A 100ms polling interval seems to yield a better record of power consumption spikes. A better idea of the energy efficiency of a bus-powered device can probably be obtained by looking at the sum of the averaged power numbers throughout the duration of the test. For devices like portable SSDs, this will also take into account any deep-sleep idle timeout features and garbage collection activities. Overall, the KM003C appears to expose more interesting data compared to the USBC-TKEY for evaluation of the power and energy efficiency of bus-powered USB devices.

API Access on Windows Concluding Remarks
Comments Locked

20 Comments

View All Comments

  • ballsystemlord - Wednesday, July 5, 2023 - link

    It's unfortunate that the KM003C is windowz only closed source.
  • ganeshts - Wednesday, July 5, 2023 - link

    It is not a major problem, as I have demonstrated in a couple of sections. You can use libusb or any other serial port access program to communicate with the KM003C and create a wrapper suited for your particular use-case.

    That said, one aspect I should have mentioned in the conclusions is related to the ability to update the firmware independent of the closed-source Windows program. Coupled with better API documentation, that would basically make the device pretty functional without having to rely on the closed-source program.
  • ballsystemlord - Wednesday, July 5, 2023 - link

    Oh, I see.
  • QChronoD - Wednesday, July 12, 2023 - link

    Since you posted a screenshot of the code for connecting and pulling out the relevant power data, are you OK with people using it? Are you planning on posting it on github or somewhere?
  • ganeshts - Thursday, July 13, 2023 - link

    Absolutely! Code is free for anyone to start off with as the base point for their own programs.

    My github account has been idle for a few years now. I will probably upload a refined version of the code that appears in this review later this year when I get time. The only reason I didn't post the code as text is to avoid making the review appear like a StackOverflow post :)
  • TrevorH - Thursday, July 6, 2023 - link

    You could have saved me from going straight to the last page by putting the price at the top of the article. At $10 I would have snapped your hand off, at $110 it's a definite no.
  • ganeshts - Thursday, July 6, 2023 - link

    I think it would be impossible to hit $10 for this type of product. Even BOM cost for microcontroller + 5 ADCs would easily exceed that (even if they are bought in 1Ku quantities). Need to add software development and distribution costs. I would imagine break-even is itself around $40 - $50.
  • ads295 - Saturday, July 8, 2023 - link

    +1
    It's not for "hobbyists" as mentioned in the article.
  • Bp_968 - Thursday, August 3, 2023 - link

    Not sure I agree that 50$ puts it out of reach of "hobbyists". I'm a hobbyist and own a oscilloscope, and a number of other test tools more expensive then 50-100$. If all your doing is seeing what voltage your usb battery is negotiating with your switch or steamdeck then yes, this device is overkill. But if you building anything that's using PD or other usb-c features this could be extremely useful.

    I'm unlikely to build anything anytime soon that would require the features this thing supports but I still want one! ;)
  • DanNeely - Thursday, July 6, 2023 - link

    "The KM003C can support up to 50V / 6A (full USB-PD 3.1 specifications, with EPR up to 240W)."

    Unless this device is going significantly beyond USB-PD levels I believe this should read 5A not 6.

Log in

Don't have an account? Sign up now