Powering ROCK 5B?

While testing with the dev sample I tried 3 different USB-C chargers. Asking the PMIC using sensors tcpm_source_psy_4_0022-i2c-4-22 I got the following:

With a ‘dumb’ 15W RPi USB-C power brick (not USB PD compliant) obviously we’re ending up with 15W:

in0:           5.00 V  (min =  +5.00 V, max =  +5.00 V)
curr1:         3.00 A  (max =  +3.00 A)

With some 24W USB-C charger 18W get negotiated:

in0:          12.00 V  (min = +12.00 V, max = +12.00 V)
curr1:         1.50 A  (max =  +1.50 A)

And with an Apple ‘96W USB-C Power Adapter’ we’re at 27W:

in0:           9.00 V  (min =  +9.00 V, max =  +9.00 V)
curr1:         3.00 A  (max =  +3.00 A)

Is there already an advice how we can convince PMIC or USB PD chip to negotiate different settings?

And any chance to power the board differently e.g. 5V via GPIO header?

PD config is defined in device tree: https://github.com/radxa/kernel/blob/stable-5.10-rock5/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts#L679.
You can modify it. I’ve changed the 1.5A current for 12V to 3A.

Ok, so we’re talking about an I2C attached FUSB302 that should theoretically allow to dynamically adjust parameters.

Dealing with dtc ends up with rather inconvenient data:

sink-pdos = <0x401912c 0x402d12c 0x403c096>;

Are you able to provide a linux-dtb-legacy-rk3588-radxa-rock5b package containing the following adjustment?

<PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
 PDO_FIXED(9000, 3000, PDO_FIXED_USB_COMM)
 PDO_FIXED(12000, 3000, PDO_FIXED_USB_COMM)
 PDO_FIXED(15000, 3000, PDO_FIXED_USB_COMM)
 PDO_FIXED(20000, 1500, PDO_FIXED_USB_COMM)>;

That would allow us to quickly check for maximum negotiated voltages in preparation to search for ways to dynamically adjust negotiation…

Hello, I’ve compiled this version of dtb:

sink-pdos =
               <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
                 PDO_FIXED(9000, 3000, PDO_FIXED_USB_COMM)
                 PDO_FIXED(12000, 3000, PDO_FIXED_USB_COMM)
                 PDO_FIXED(15000, 3000, PDO_FIXED_USB_COMM)
                 PDO_FIXED(20000, 2250, PDO_FIXED_USB_COMM)>;

You can use this devicetree overlay:

/dts-v1/;
/plugin/;
/ {
        fragment@0 {
                target = <&i2c4>;
                __overlay__ {
                        usbc0: fusb302@22 {
                                usb_con: connector {
                                        sink-pdos = <0x401912c 0x402d12c 0x403c12c 0x404b12c 0x40640e1>;
                                };
                        };
                };
        };
};

Use command sudo armbian-add-overlay rk3588-pd-definations.dts to install this overlay.
I can get 20V2.25A power now:

tcpm_source_psy_4_0022-i2c-4-22
Adapter: rk3x-i2c
in0:          20.00 V  (min = +20.00 V, max = +20.00 V)
curr1:         2.25 A  (max =  +2.25 A)
1 Like

And any chance to power the board differently e.g. 5V via GPIO header?

Yes, powering from 5V GPIO is possible on 5B.

I just created a wiki page to gather different power supply support status:

https://wiki.radxa.com/Rock5/5b/power_supply

1 Like

Thank you! My results are mixed. My cheap 24W charger is obviously 15V capable since it negotiates now this (24W instead of 18W):

in0:          15.00 V  (min = +15.00 V, max = +15.00 V)
curr1:         1.60 A  (max =  +1.60 A)

But both my Apple USB-C chargers show problems now (boot loop). Even after restoring rk3588-rock-5b.dtb and removing the overlay. Need to further investigate…

Great, so I need to grab my old 5V PSUs with Dupont wiring to check out USB-C capabilities…

but i think it will need then arround 3A or with a nvme ssd 4A at 5v

Is it safe to use any 5V supply for GPIO (E.G one used for led strips)?

if its 5v it should be safe but it will need with nvme drive arround 4A or without nvme 3A
so look out for the label on the psu (warning most led strip powersupplies are 12V)

1 Like

Hello, i want to use a PD power supply for a rockpi5 nas build and I need 12V for hdds.
ATM i use a 12V PD decoy module for powering the hdds - it works so far.
I don´t want a second usb cable for rockpi5 power supply.

I thought about welding a usb c male connector on the 12V ye/bk cable pair and plug it directly in the rockpi 5. Is this possible?

What do you think. Is there a better solution to directly negotiate 12V 3A that there is no need for a external decoy module. Greetings, happy new year and thank you in advance :slight_smile:

1 Like

Also stuck on this,

I can get the rockpi 5b to boot up using nvme but soon as I try and install a few things it goes into bootloop.

Any way of a know list of chargers that will work properly even on high load?

Get any charger, but get a USB-C to coaxial, fixed voltage 12 V plug. Those plugs have processors inside and handle the PD negotiation on their own.

Then plug that coaxial cable into a coaxial to USB-C cable, and the USB-C end into the Rock 5B.

1 Like

I ended up using a different power supply one that shows voltage, when plugged into qc3 port and the other on it stays at 5v and fails on high load but if I use the usb-c to usb-s port one that says pd-5 it starts on 5v then switches to 12v after a minute and stays there. only certain images work though will run some more tests.