USB-C Power Delivery Sink (BCR)

A USB-C PD Sink up to 20V 5A based on the Cypress CYPD3177 USB PD Controller

Similar projects worth following
Starting from
Wolfi has 77 orders / 5 reviews
Ships from Canada
NEW! Rev 4 now available with 2 switches for voltage and current.

USB-C PD offers the option to negotiate power delivery from a compatible power supply. This board plays the role of a sink device, enabling any device to be powered from a USB power supply. Any type of power connector can be attached through a 2-pin screw terminal or directly soldered into the PCB for a lower profile.
The voltage can be set to 5V, 9V, 12V, or 20V and maximum negotiable current can be set to 1A, 2A, 3A, or 5A. Other voltage or current settings are possible by changing resistors. No programming needed.
BCR stands for Barrel Connector Replacement, the term is invented by Cypress, the manufacturer of the controller chip in use here.
Rev 4 design is operational. The new FETs have a Rds_on of only 7.2 mOhm (measured), which cuts the dissipation in half and keeps the board cooler, even with 5 A current draw..

This board has the goal to replace random power adapters with a standardized way to use a USB-C power delivery (USB PD) adapter instead. For regular operation, no programming or software configuration is involved with this design. All options are set through the switches or resistor values. If needed an I2C interface to a microcontroller is available, to access status and control registers. This part of the board is separated through a break-off tab (mouse bites) and can be snapped off. I made the conscious design decision to not add a USB-A connector option at the output end. I did not want to build a device, that is capable of putting more than 5V on the VBUS pin of a regular USB cable and potentially destroy the device that is plugged in. A heatshrink tube can protect the board in a permanent installation.

This is a set and forget device. Set your current and voltage needs before plugging the device to your USB-PD source and enjoy the power at the output. This is not a power supply to change voltage and current during operation.

All Features:

  • USB-C PD Power Delivery Sink
  • Selector switch S1 for 5V, 9V, 12V, or 20V
  • Selector switch S2 for 1A, 2A, 3A, or 5A
  • Max current 5A, settable in 250mA steps through resistor options
  • Red LED to indicate failed power request
  • I2C telemetry interface to controller chip
  • Snap off option for telemetry interface
  • For fixed voltage, the switch can be replaced by wire jumper
  • Small form factor to be heat shrinked as part of the power cable
  • Size 53mm x 15.4mm (without telemetry interface)
  • Height 12mm with screw terminal and switch, 6mm without.
  • 3" (7.5cm) heatshrink tube for protected installation
  • 2oz copper to safely handle 5A
  • Lead free RoHS compliant

SC USBC-Sink_ver4.pdf

Schematic Rev4

Adobe Portable Document Format - 75.89 kB - 08/13/2020 at 02:02


SC USBC-Sink_ver3.pdf

Schematic Rev3

Adobe Portable Document Format - 72.18 kB - 08/13/2020 at 02:03


SC USBC-Sink_ver2.pdf

Schematic Rev2

Adobe Portable Document Format - 73.67 kB - 02/17/2020 at 20:15


BOM USBC-Sink_ver2.pdf

Bill of Materials Rev2

application/pdf - 34.69 kB - 02/17/2020 at 20:15


AD USBC-Sink_ver2.pdf

Assembly Drawing Front Rev2

Adobe Portable Document Format - 34.83 kB - 02/17/2020 at 20:15


View all 7 files

  • 1 × Cypress CYPD3177 USB-C Pwer delivery Controller QFN-24
  • 1 × Nidec Copal SS-10-15SPE 5 pos rotary switch TH
  • 1 × METZ CONNECT 31060102 2pin screw terminal 2.54mm LCSC PN C123214
  • 1 × Jing Extension C168688 USB-C plug mid mount LCSC PN C168688
  • 2 × Alpha & Omega Semi AON7407 Single P-FET DFN-8

View all 10 components

  • Power FET Diodes DMP3013

    MagicWolfi4 days ago 0 comments

    And then I found an even better FETs that has a Rds_on of only 9.5 mOhm (at Vsg = 10V), which is just as good as the previous one as Vsg >10 V at the output setting of 12V or more.

    This FET is the Diodes DMP3013SFV. same 3.3mm x 3.3mm footprint.

    And I did a measurement with 19 boards, which showed to real Rds_on to be 7.3 mOhm onaverage, because the Vsg is ~15V at the 20V setting. Also the calculated junction temperature is quite low and much more manageable now.

    Results (still fixed width font anybody?):

    Vfet*2    Vload    I load    P load    P fet    Tjunc    Rds on
    70.5       19.47       4.87      94.77      0.343    46.4    0.0072
    71.04      19.61       4.90      96.14       0.348    46.8    0.0072
    70.7        19.62      4.91       96.24     0.347    46.7    0.0072
    72.8       19.59      4.90      95.94     0.357    47.3    0.0074
    70.6       19.64      4.91       96.43      0.347    46.7    0.0072
    72.4       19.64      4.91       96.43      0.355    47.2    0.0074
    71           19.66      4.92      96.63      0.349    46.8    0.0072
    69.4       19.67      4.92      96.73      0.341     46.3    0.0071
    72.8       19.63      4.91       96.33      0.357    47.3    0.0074
    73.1        19.62      4.91       96.24      0.359    47.4    0.0075
    71.4        19.61       4.90      96.14       0.350    46.9    0.0073
    69.9       19.63      4.91       96.33      0.343    46.4    0.0071
    72.9       19.64      4.91       96.43      0.358    47.4    0.0074
    70.8       19.62      4.91       96.24      0.347    46.7    0.0072
    71.3        19.64      4.91       96.43      0.350    46.9    0.0073
    73.6       19.6        4.90      96.04      0.361     47.5    0.0075
    72.3       19.61       4.90      96.14       0.354    47.2    0.0074
    71.9        19.61       4.90      96.14       0.352    47.0    0.0073
    74.7        19.64      4.91       96.43      0.367    47.9    0.0076

    Read more »

  • New FETs with lower Rds_on

    MagicWolfi08/17/2020 at 02:18 0 comments

     Time passes...

    I finished the design of Rev4 (and Rev3 in between). Most important improvement is a 2nd switch to select the current and new switching FETs . The new FETs have a Rds_on of only 9.5 mOhm (at Vsg = 4.5V), which cuts the dissipation almost in half and keeps the board cooler, even with 5 A current draw.

    This FET is the AON7407.

    And I did a measurement with 24 boards, which showed to real Rds_on to be 7.1mOhm onaverage, because the Vsg is ~15V at the 20V setting. Also the calculated junction temperature is quite low and much more manageable now.

    Results (fixed width font anybody?):

    Vfet*2    Vload    I load    P load    P fet    Tjunc    Rds on
    73.3        19.55    4.89    95.55    0.358    47.4    0.0075
    72.5        19.58    4.90    95.84    0.355    47.2    0.0074
    70.2        19.6      4.90    96.04    0.344    46.5    0.0072
    69.3       19.6      4.90    96.04    0.340    46.2    0.0071
    71.2         19.55    4.89    95.55    0.348    46.7    0.0073
    68.6        19.65    4.91     96.53    0.337    46.1     0.0070
    71.2         19.59    4.90    95.94    0.349    46.8    0.0073
    68.1         19.68    4.92    96.83    0.335    45.9    0.0069
    69.7        19.67    4.92     96.73    0.343    46.4     0.0071
    68.5        19.67    4.92    96.73    0.337    46.1      0.0070
    68.4       19.7      4.93     97.02    0.337    46.1      0.0069
    68.7        19.7       4.93    97.02    0.338    46.1      0.0070
    72.8        19.69    4.92    96.92    0.358    47.4    0.0074
    69.5       19.71     4.93     97.12     0.342    46.4    0.0071
    70.6       19.71     4.93     97.12     0.348    46.7     0.0072
    68.3       19.72    4.93     97.22    0.337    46.0    0.0069
    68.4       19.71     4.93     97.12     0.337    46.1      0.0069
    70.7        19.71     4.93     97.12      0.348    46.8    0.0072
    71.1          19.7      4.93     97.02     0.350    46.9    0.0072
    68.4       19.7      4.93     97.02     0.337    ...

    Read more »

  • Production

    MagicWolfi02/17/2020 at 12:31 1 comment

    Production at home for the next batch went very well but slow. How I have to set up a larger supply chain.

    OCD anybody :)

  • Break off tabs

    MagicWolfi02/02/2020 at 01:06 0 comments

    The break-off tab for the telemetry connector seems to be working as planned. I tested it with a bare board and it snapped right off. For a populated board I would recommend to score a line along the holes on both sides first to put a little less stress on the components nearby.

  • The heat is on.

    MagicWolfi12/18/2019 at 02:03 0 comments

    I have built a load to test the power draw of the board. It is 2x 2Ohm 50W resistors in series. This gives me a current draw of 5A at 20V. Cooling is not adequate yet, with 3.66A @ 14.6V the heatsink gets up to 92degC, with 3A @ 12V I am measuring 72degC. The fan cannot keep up with 5A @ 20V, the temperature rises to over 100degC in less than 2 minutes.

    I need a bigger heat sink.

  • HPI telemetry

    MagicWolfi12/15/2019 at 18:05 0 comments

    I managed to talk to the BCR over the I2C interface, which is not quite straight forward, as the chip adds a mandatory 3 to5 cycle clock stretch. My solution so far is a bus pirate set to I2C 5 kHz clock speed. With those commands I am able to read out ID and status registers, even though the response does not match the datasheet for the IDs.

    [0x10 0x00 0x00[0x11r]
    [0x10 0x02 0x00[0x11rr]
    [0x10 0x0D 0x10[0x11r]
    [0x10 0x08 0x10[0x11r:4]

    No luck using an Arduino Due ( which has 3.3V IOs) so far. :(

  • FET power dissipation

    MagicWolfi12/13/2019 at 18:38 0 comments

    The switching FET in this circuit has to carry up to 5A, which is significant. Thus the drain source resistance Rds-on is important to be minimized and power dissipation through the package needs to be calculated. Here are some test results, in the form of voltage drop over the dual DS junctions.

    U load [V] I load [A]V drain-source x2 [mV]Tjunction [degC]P diss [mW]Rdson [mOhm]

  • Voltage and Current settings

    MagicWolfi12/11/2019 at 20:19 0 comments

    As a leaflet, I am copying the resistor values for the voltage and current settings here:

  • Reminder to self: it works better when you do it right!

    MagicWolfi12/10/2019 at 23:12 0 comments

    Here is the USB-C PD spec for maximum power:


    I had the maximum current set to 5A and testing with my power bank failed, because it can only deliver 5V or 9V with 2A max. Reducing the max current to 2A made everything work. Of course if I request higher voltages, negotiation still comes up with a disabled power switch, which makes sense now. I received a USB-C PD wall power supply in the meantime and it can and does deliver 20V at 5A and everything in between. Testing is done in very short cycles because my 100W 4 Ohm test load heats up really fast. I need a bigger heat sink. Also thinking about using light bulbs as load, what a bright idea.

  • Assembly

    MagicWolfi12/08/2019 at 20:54 0 comments


    Assembly of the QFN-24 parts were as simple as possible. A tiny bit of solder on the center pad on the PCB. Then hit it with hot air until the solder melts. Place the part, that all other pins line up. Once cooled, the part will not move any more and the external pins can be soldered by applying a liberal amount of flux, then dragging the iron tip with some solder on it, across the pins until all pin accepted some solder. Done!

    All other components are easy to solder.

    And then there was the 5-postion rotary switch. Unfortunately, the datasheet showed the pinout in bottom view. Luckily it is a through hole switch, so I can just solder it from the bottom and it is going to work but a revision 2 will happen very soon.

    The mid mount USB-C connector is a thing of beauty. Through hole tabs make it really sturdy and the VBUS and GND pins are grouped together, which makes it easy to fan out a thick trace for the high current. And the profile height is very low.

View all 11 project logs

Enjoy this project?



Pal-Kristian Engstad wrote 09/10/2020 at 18:19 point


According to the data sheet, D+ and D- should be left unconnected. 


  Are you sure? yes | no

MagicWolfi wrote 09/11/2020 at 01:08 point

Hi Pal-Kristian, I was in contact with Cypress about that. Their answer was: "D+/D- connection is for Apple charging 2.4A, USB BC 1.2. If you do not want these legacy charge features, you can left it unconnected." 

 - W.

  Are you sure? yes | no

Jim Taylor wrote 09/09/2020 at 20:30 point


  I am working on making some Power Supplies for my desk, I would like to have one with three USB-C PD ports, and am planning to use a 24V Meanwell power supply to accomplish this.  I know I can tune it down to 20V +/- for the output of the power supply.

  This device looks like what I am aiming for in plugging that 20V into the back and then allowing whatever I plug in to handshake and request it's appropriate voltage (be it a laptop or my TS-80 and it will receive the correct voltage.  Am I reading this correctly?

  Sorry for the newb sort of question but I am still learning and extremely interested in USB-C and the possibilities it opens up for power and data transfer.

  Thank you!


  Are you sure? yes | no

MagicWolfi wrote 09/11/2020 at 00:57 point

Hello James, my device does the opposite from what you need. It is a USB-C PD sink. It can only negotiate a certain voltage/current from a PD source. You can only connect a load to what you are referring to as the back of my device and not feed power into it from this side. Hope that helps. - Wolfgang.

  Are you sure? yes | no

Aidan Chandra wrote 07/20/2020 at 01:20 point

Hi! I'm planning on using this in a project needing simple USB C Charging. I've just got a few questions.

1. On the datasheet, page 8 Table 4, the fine adjust resistors adjust +250A, is this a typo and is it for mA?

2. What does the FAULT pin do if it cannot negotiate the desired current?

3. The FAULT pin is only active when there is no voltage within the given range? What if the device can source 9V2A and 12V1.5A and I set the min current to 2A - will it give me 9V2A and not throw a fault?

Thank you so much in advance. This chip, and specifically, your schematic, have saved me WEEKS of dev time.

  Are you sure? yes | no

MagicWolfi wrote 07/27/2020 at 17:01 point

Hello Aidan,

Sorry for the late reply, somehow I did not get a reminder note of new comments. :( I am glad my work is helpful for you. 

1. Yes, mA is correct. 

2. The fault pin goes to logic HIGH if the requested current cannot be supplied by the power source. 

3. I would guess, it would negotiate 9V 2A because that setting can satisfy the request, but I am going to try to test that later today. 


 - W.

  Are you sure? yes | no

Aidan Chandra wrote 07/27/2020 at 21:44 point

No Worries!

Thanks so much for the help. I'll be ordering my own PCBs soon with this chip in conjunction with a MAX 3S Lipo Charging IC. I will keep you abreast to how it works out.

  Are you sure? yes | no

MagicWolfi wrote 08/06/2020 at 02:01 point

To your question 3: I would negotiate 9V2A. As an example I have a power bank that can do 12V/1.5A or 9V/2A or 5V/3A. I have set my PD Sink to request Vmax=20V Vmin=5V and I=2A. The set voltage is 9V and I could draw up to 2A and not set fault pin.

  Are you sure? yes | no

Charles Yarnold wrote 07/01/2020 at 12:00 point

Just to check, if you set it to say 12v and the controller can only supply up to 9v, will you get 9v or nothing out of the screw terminals?

I'm hoping the answer is nothing as the draw back to the similar tools on Ali is that the setting will mean "up to and including but not over the set voltage", but that's not useful if you want to power something that needs _only_ 12v!

  Are you sure? yes | no

MagicWolfi wrote 07/03/2020 at 00:57 point

The controller has a min and max voltage. If the power supply can support anything in the requested range, it will output its max available.

If you set the min and max to 12V on the controller, it will not output 9V if this is the maximum, but turn on the fault LED. It is a very flexible device, it does what you tell it to do. The boards I am selling on Tindie have a minimum setting of 5V, but can be changed with a single resistor.

  Are you sure? yes | no

Charles Yarnold wrote 07/03/2020 at 10:20 point

Wonderful, thanks for clarifying!

  Are you sure? yes | no

patrick wrote 01/22/2020 at 10:24 point


I just came across these. though they don't provide all voltages, they are a lot smaller. I can't say anything about the quality though. do you have any insight in where your solution trumps this?


  Are you sure? yes | no

MagicWolfi wrote 01/22/2020 at 17:49 point

Hi Patrick,

the risk tip list is very interesting in this regard.

My board does not output any other voltage than the requested one. The Ali board sounds very random here. 

The Ali board cannot request a specific current. So if the power supply cannot supply enough current for your load what is going to happen?

My board does have a telemetry interface for control and status.

How about a polarity marked connector for your back end cable. 

I am using 2oz copper thickness for better current capacity.

My board comes with support.

You have to know very well what you are doing or feel very lucky with the Ali board :). I don't know how they do it, but I can barely source the chip for that price. My board will be an order of magnitude more expensive :(

 - W (sigh). 

  Are you sure? yes | no

patrick wrote 01/22/2020 at 18:19 point

Fully understood and clear answer! Obviously this can not be compared, but it's interesting developments. For testing and safe working I am still awaiting the next steps in this project 😉

  Are you sure? yes | no

Peter Senna Tschudin wrote 01/12/2020 at 20:16 point

Are you planning to sell it too? I'm definitively interested in buying a few.

  Are you sure? yes | no

MagicWolfi wrote 01/22/2020 at 17:50 point

Hello Peter,

Sorry I just saw your post. 

Yes, I am planning to sell them very soon. I have PCBs at home, just need some time for assembly and documentation before I put them up on Tindie. Stay tuned.

 - W.

  Are you sure? yes | no

MagicWolfi wrote 02/01/2020 at 02:12 point

Hello again Peter,

The board is up for sale on Tindie now.

  Are you sure? yes | no

patrick wrote 12/10/2019 at 14:56 point


If it is resistor value based and the voltages are set, that also means no programming need to set it up?

Looking forwards to it! what is you expected planning?

  Are you sure? yes | no

MagicWolfi wrote 12/11/2019 at 00:53 point

Exactly, this is what I love about this chipset. No programming involved. AWESOME.

And now the pressure is on, to commit to a schedule. If all testing goes well and I don't do any stupid mistakes on the next rev of the layout, I might have hand-assembled units end of January.

  Are you sure? yes | no

MagicWolfi wrote 01/31/2020 at 19:36 point

Hi Patrick,

Just wanted to let you know that the board is now up for sale on Tindie (and it is still end of Jan, YAY). I like the whooshing sound of deadlines rushing by. 

  Are you sure? yes | no

patrick wrote 02/17/2020 at 18:06 point


  Are you sure? yes | no

patrick wrote 12/09/2019 at 22:45 point

Hi very interesting project and definitely following this! would be interested to buy a couple if they are as affordable as they look ;-)

would it be possible to re-program the voltages to different V/A combinations?


  Are you sure? yes | no

MagicWolfi wrote 12/09/2019 at 23:57 point

Hello Patrick,

Thanks for your interest. Yes, the plan is to sell them once everything is working, pricing is not fixed yet.

The voltage settings are limited to 5V, 9V, 12V, 15V or 20V. Current settings are very flexible in steps of 250mA from 0 to 5A, but it depends also on the source, if it can limit the current in those small steps. All settings are through resistor values on the board.

 - W.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates