Rock5 does not work on most PD power supplies

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

well the original power supply does not cut it. powercycling all the time. updated SPI and Loader as mentioned in the PD thread. Still cycling. When i attach it with the usbc2usbc cable to my laptop as supply it works like a charm. I would have guessed it that the original ps and cable was tested and working well …

bummer …

My SBC was posted on 20th of October from Allnet China and already arrived with the latest firmware (v1.08.111 @ 2022-09-29 … checked on UART).
The ordered 65W power supply worked for me out of the box but I also had problem with other PD sources (dock stations, Lenovo 65W PSU). Nevertheless it also worked with Mi Power Bank 3 Pro. This was with the stock Debian image.

Then I installed Armbian and it works with (almost) everything including an LG 27UD69P monitor.

BTW, the fixed 12V input also works see my other post.

Thank you, for what it’s worth Armbian negotiates PD at the highest available for the power supply

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

However booting to nVME with armbian doesn’t appear to be possible without an sd card right now.