Rock5 does not work on most PD power supplies

I have some spare laptop chargers with 19v output, if I just use DC to USB-C adapter will it work with rock5? The board can do 20V maximum, but 19V is not defined in USB PD so I’m not sure if it would damage the board.

no 1v down is no problem it runs also with 5v but i would highly recomend a active adaptor with a stepdown convertor

I just updated loader and it seems to help with PD negotiation, I was curious if they already shipped with right loader or not, so it’s old with those pd problems. Diff on console shows:
DDR Version V1.07 20220412
new one: DDR Version V1.08 20220617

Now it boots with nvme connected on same PD charger, but still no nvme drive detected on system.

You are correct about discord, I don’t like it too, but more and more people are using it. Some claim that it’s just new IRC. This may be true, but it’s still problematic and there should be some copy somewhere else.

please upload a picture of the m.2 ssd without the rock 5b

I already confirmed that some nvme is working on my rock5 (on pd), I’ll start new thread about this.

could you post a link to this new thread

But not all M.2 SSDs are NVME some M.2 SSD are SATA and some are even USB(rare).
So maybe the hint was into that direction… Though slot keying should usually prevent incompatible pairings, they can still occur.

thats why i asked for a photo

both are nvme, here it’s thread NVMe problems on rock5
I know that there are sata m.2 :slight_smile:

if this page is accurate… but well it is not that accurate, like the PMIC is RK806 but it says RK809, typo?

the charging IC is IP2315, which takes input up to 12V; searching online I saw it as capable of taking 12V4A, so it kinda explains why PD negotiation only stop at 12V?

Only stop at 12V is a pure software problem because Radxa hardcoded to only stop at 12V. A new kernel is released recently with support up to 20V.

interesting, when I check IP2315 datasheet it says 5-15V, but at the company website it says 5-30V :slight_smile:

it is often so wierd most of the times both are right but in a different way

So all of my PD charges are negotiating to a lower amperage than expected and nVME won’t boot. What’s the easiest way to provide clean 12v power to the usb-c port? Trying to figure out a way to use an atx PSU

here’s an example:

root@rock-5b:~# cat /sys/kernel/debug/usb/fusb302-4-0022 /sys/kernel/debug/usb/tcpm-4-0022 | sort
[    0.906057] sw reset
[    0.909791] fusb302 device ID: 0x91
[    0.909795] Setting usb_comm capable false
[    0.914412] pd := off
[    0.914414] vbus is already Off
[    0.914415] charge is already Off
[    0.914417] vconn is already Off
[    0.914418] Setting voltage/current limit 0 mV 0 mA
[    0.914423] polarity 0
[    0.914443] Requesting mux state 0, usb-role 0, orientation 0
[    0.915243] pd header := Sink, Device
[    0.915248] state change INVALID_STATE -> SNK_UNATTACHED [rev1 NONE_AMS]
[    0.915278] cc1=Open, cc2=Open
[    0.915280] CC1: 0 -> 0, CC2: 0 -> 0 [state SNK_UNATTACHED, polarity 0, disconnected]
[    0.915288] Start toggling
[    0.919984] start drp toggling
[    0.921931] IRQ: 0x80, a: 0x00, b: 0x00, status0: 0x83
[    0.921935] IRQ: VBUS_OK, vbus=On
[    0.927327] IRQ: 0x00, a: 0x40, b: 0x00, status0: 0x83
[    0.927330] IRQ: TOGDONE
[    0.936552] detected cc1=Rp-3.0, cc2=Open
[    0.936792] cc1=Rp-3.0, cc2=Open
[    0.936795] CC1: 0 -> 5, CC2: 0 -> 0 [state TOGGLING, polarity 0, connected]
[    0.936799] state change TOGGLING -> SNK_ATTACH_WAIT [rev1 NONE_AMS]
[    0.936803] pending state change SNK_ATTACH_WAIT -> SNK_DEBOUNCED @ 200 ms [rev1 NONE_AMS]
[    1.007277] IRQ: 0x41, a: 0x00, b: 0x00, status0: 0xd2
[    1.007292] IRQ: BC_LVL, handler pending
[    1.009494] IRQ: 0x51, a: 0x00, b: 0x00, status0: 0xc1
[    1.009508] IRQ: BC_LVL, handler pending
[    1.011863] IRQ: 0x51, a: 0x00, b: 0x00, status0: 0x83
[    1.011877] IRQ: BC_LVL, handler pending
[    1.013992] IRQ: 0x49, a: 0x00, b: 0x00, status0: 0x83
[    1.014006] IRQ: BC_LVL, handler pending
[    1.047149] BC_LVL handler, status0=0x83
[    1.136994] state change SNK_ATTACH_WAIT -> SNK_DEBOUNCED [delayed 200 ms]
[    1.137012] state change SNK_DEBOUNCED -> SNK_ATTACHED [rev1 NONE_AMS]
[    1.137021] polarity 0
[    1.137030] Requesting mux state 1, usb-role 2, orientation 1
[    1.138154] pd header := Sink, Device
[    1.138166] state change SNK_ATTACHED -> SNK_STARTUP [rev1 NONE_AMS]
[    1.138197] state change SNK_STARTUP -> SNK_DISCOVERY [rev3 NONE_AMS]
[    1.138204] Setting voltage/current limit 5000 mV 3000 mA
[    1.138215] vbus=0 charge:=1
[    1.138221] vbus is already Off
[    1.138231] state change SNK_DISCOVERY -> SNK_WAIT_CAPABILITIES [rev3 NONE_AMS]
[    1.144206] pd := on
[    1.144219] pending state change SNK_WAIT_CAPABILITIES -> SNK_SOFT_RESET @ 310 ms [rev3 NONE_AMS]
[    1.157962] IRQ: 0x41, a: 0x00, b: 0x01, status0: 0x93
[    1.157973] IRQ: BC_LVL, handler pending
[    1.157983] IRQ: PD sent good CRC
[    1.162858] PD message header: 51a1
[    1.162872] PD message len: 20
[    1.163054] PD RX, header: 0x51a1 [1]
[    1.163072]  PDO 0: type 0, 5000 mV, 3000 mA [E]
[    1.163077]  PDO 1: type 0, 9000 mV, 3000 mA []
[    1.163081]  PDO 2: type 0, 12000 mV, 3000 mA []
[    1.163085]  PDO 3: type 0, 15000 mV, 3000 mA []
[    1.163088]  PDO 4: type 0, 20000 mV, 3000 mA []
[    1.163093] state change SNK_WAIT_CAPABILITIES -> SNK_NEGOTIATE_CAPABILITIES [rev3 POWER_NEGOTIATION]
[    1.163103] Setting usb_comm capable false
[    1.163110] cc=0 cc1=5 cc2=0 vbus=0 vconn=sink polarity=0
[    1.163114] Requesting PDO 2: 12000 mV, 1500 mA
[    1.163117] PD TX, header: 0x1082
[    1.166557] sending PD message header: 1082
[    1.166576] sending PD message len: 4
[    1.169885] IRQ: 0x51, a: 0x04, b: 0x00, status0: 0x93
[    1.169905] IRQ: BC_LVL, handler pending
[    1.169914] IRQ: PD tx success
[    1.172774] PD message header: 121
[    1.172789] PD message len: 0
[    1.172794] PD TX complete, status: 0
[    1.173009] pending state change SNK_NEGOTIATE_CAPABILITIES -> HARD_RESET_SEND @ 60 ms [rev3 POWER_NEGOTIATION]
[    1.175925] IRQ: 0x51, a: 0x00, b: 0x01, status0: 0x93
[    1.175944] IRQ: BC_LVL, handler pending
[    1.175953] IRQ: PD sent good CRC
[    1.178501] PD message header: 3a3
[    1.178515] PD message len: 0
[    1.178744] PD RX, header: 0x3a3 [1]
[    1.178765] state change SNK_NEGOTIATE_CAPABILITIES -> SNK_TRANSITION_SINK [rev3 POWER_NEGOTIATION]
[    1.178778] Setting standby current 5000 mV @ 500 mA
[    1.178783] Setting voltage/current limit 5000 mV 500 mA
[    1.178807] pending state change SNK_TRANSITION_SINK -> HARD_RESET_SEND @ 500 ms [rev3 POWER_NEGOTIATION]
[    1.207499] BC_LVL handler, status0=0x93
[    1.306928] IRQ: 0x51, a: 0x00, b: 0x01, status0: 0x93
[    1.306944] IRQ: BC_LVL, handler pending
[    1.306953] IRQ: PD sent good CRC
[    1.309608] PD message header: 5a6
[    1.309624] PD message len: 0
[    1.309814] PD RX, header: 0x5a6 [1]
[    1.309836] Setting voltage/current limit 12000 mV 1500 mA
[    1.309850] state change SNK_TRANSITION_SINK -> SNK_READY [rev3 POWER_NEGOTIATION]
[    1.310039] AMS POWER_NEGOTIATION finished
[    1.312825] IRQ: 0x41, a: 0x00, b: 0x00, status0: 0x93
[    1.312842] IRQ: BC_LVL, handler pending
[    1.344121] BC_LVL handler, status0=0x93
[    1.351040] IRQ: 0x41, a: 0x00, b: 0x00, status0: 0xd1
[    1.351056] IRQ: BC_LVL, handler pending
[    1.352893] IRQ: 0x41, a: 0x00, b: 0x00, status0: 0x93
[    1.352928] IRQ: BC_LVL, handler pending
[    1.354773] IRQ: 0x41, a: 0x00, b: 0x00, status0: 0x93
[    1.354780] IRQ: BC_LVL, handler pending
[    1.371564] IRQ: 0x41, a: 0x00, b: 0x01, status0: 0x93
[    1.371580] IRQ: BC_LVL, handler pending
[    1.371590] IRQ: PD sent good CRC
[    1.375925] PD message header: 57a1
[    1.375934] PD message len: 20
[    1.376103] PD RX, header: 0x57a1 [1]
[    1.376126]  PDO 0: type 0, 5000 mV, 3000 mA [E]
[    1.376135]  PDO 1: type 0, 9000 mV, 3000 mA []
[    1.376144]  PDO 2: type 0, 12000 mV, 3000 mA []
[    1.376152]  PDO 3: type 0, 15000 mV, 3000 mA []
[    1.376160]  PDO 4: type 0, 20000 mV, 3250 mA []
[    1.376165] state change SNK_READY -> SNK_NEGOTIATE_CAPABILITIES [rev3 POWER_NEGOTIATION]
[    1.376181] Setting usb_comm capable false
[    1.376205] cc=0 cc1=5 cc2=0 vbus=0 vconn=sink polarity=0
[    1.376213] Requesting PDO 2: 12000 mV, 1500 mA
[    1.376219] PD TX, header: 0x1282
[    1.378510] IRQ: 0x51, a: 0x00, b: 0x00, status0: 0x93
[    1.378524] IRQ: BC_LVL, handler pending
[    1.381761] sending PD message header: 1282
[    1.381778] sending PD message len: 4
[    1.383964] IRQ: 0x41, a: 0x04, b: 0x00, status0: 0x93
[    1.383978] IRQ: BC_LVL, handler pending
[    1.383983] IRQ: PD tx success
[    1.385857] PD message header: 321
[    1.385865] PD message len: 0
[    1.385870] PD TX complete, status: 0
[    1.386040] pending state change SNK_NEGOTIATE_CAPABILITIES -> HARD_RESET_SEND @ 60 ms [rev3 POWER_NEGOTIATION]
[    1.388323] IRQ: 0x51, a: 0x00, b: 0x00, status0: 0x93
[    1.388333] IRQ: BC_LVL, handler pending
[    1.390659] IRQ: 0x51, a: 0x00, b: 0x01, status0: 0x93
[    1.390673] IRQ: BC_LVL, handler pending
[    1.390682] IRQ: PD sent good CRC
[    1.392728] PD message header: 9a3
[    1.392741] PD message len: 0
[    1.392937] PD RX, header: 0x9a3 [1]
[    1.392953] state change SNK_NEGOTIATE_CAPABILITIES -> SNK_TRANSITION_SINK [rev3 POWER_NEGOTIATION]
[    1.392968] pending state change SNK_TRANSITION_SINK -> HARD_RESET_SEND @ 500 ms [rev3 POWER_NEGOTIATION]
[    1.423799] BC_LVL handler, status0=0x93
[    1.521199] IRQ: 0x51, a: 0x00, b: 0x01, status0: 0x93
[    1.521202] IRQ: BC_LVL, handler pending
[    1.521204] IRQ: PD sent good CRC
[    1.522893] PD message header: ba6
[    1.522895] PD message len: 0
[    1.523030] PD RX, header: 0xba6 [1]
[    1.523042] Setting voltage/current limit 12000 mV 1500 mA
[    1.523059] state change SNK_TRANSITION_SINK -> SNK_READY [rev3 POWER_NEGOTIATION]
[    1.523071] AMS POWER_NEGOTIATION finished
[    1.524739] IRQ: 0x41, a: 0x00, b: 0x00, status0: 0x93
[    1.524740] IRQ: BC_LVL, handler pending
[    1.560286] BC_LVL handler, status0=0x93

i think you cannot come arround some soldering
and a link for nvme issues: NVMe problems on rock5

12v you just wire up to a usb-c connector and go. It has a buck that can cope with 20v but apparently ancillary components are much lower about 13v but its happy running on no pd 12v.

A few are using 12v barrel psu’s with a usb-c barrel adapter and even a usb-c breakout module from aliexpress with just vcc/gnd soldered to a molex or sata power 12v.
I had problems with PD with the v1.3v board and still not sure what happens but using a Pi5v usb-c works and after a couple of restarts plugging back in my PD magically works.

I didn’t seem to have a problem with a nvme Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961/SM963

Maybe old/budget is the way to go as its still only entry level desktop class.

I have a similar problem: most of my power supplies did not work and I am currently using a Framework laptop PD power supply, but when I install a desktop environment or connect it to HDMI, it will stop working and only power cycles. Same with a SSD (currently booting from µSD)

I already updated the OS (rock-5b-ubuntu-focal-server-arm64-20220919-0839) after installing, but the problem remains.
What can I do, and what (EU) power supply is guaranteed to work?
it looks like it is only negotiating 9000 mV, 3000 mA
can I fix this in software?

1 Like

that is plenty of power for the rock 5b if you dont hook up power hungry devices

one possibility, but I didn’t try myself on Rock 5, is to use a PD to DC cable, and they should not be expensive (around US$2 in China); you may get a 12V or 15V + DC2USBC adapter, and that would be sufficient. I use quite a few of these PD cables (mainly 9V and 12V) for a lot of my devices (routers etc)

yes that would be helpfull but put a big red label on it so no one plugs it in to a phone or a pi