Baldanos/rd6006

[SUPPORT] RuiDeng Riden RD6012

Closed this issue · 8 comments

There is a new device from the same manufacturer:

RuiDeng Riden RD6012

https://de.aliexpress.com/item/4001053200176.html

Not sure if works, will try to find time to verify that and maybe try to find the registers if possible.

I tried this module with my new RD6012 today and the most basic of tests indicates that this seems mostly compatible.
I get good output from r.status(), apart from the current values. Output current limit and overcurrent proection appear scaled by 0.1 (device shows 1A, r.current shows 0.1). Probably because the 6012 has a larger possible current range than the 6006, so they had to rescale to fit within the register width.

Here's the output from status with basically out-of-the box settings:

>>> r.status()
== Device
Model   : 6012.1
SN      : <redacted>
Firmware: 1.31
Input   : 54.52V
Temp    : 24°C
TempProb: -191°C
== Output
Voltage : 0.0V
Current : 0.0A
Energy  : 0.0Ah
Power   : 0.0W
== Settings
Voltage : 5.0V
Current : 0.1A
== Protection
Voltage : 62.0V
Current : 1.22A
== Battery
Capacity: 0.0Ah
Energy  : 0.0Wh
== Memories
M0:  5.0V, 0.100A, OVP:62.0V, OCP:1.220A
M1:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M2:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M3:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M4:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M5:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M6:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M7:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M8:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M9:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A

Thanks for the feedback @profmaad !

I could add some model-specific tweaks in order to correctly support the RD6012. Could you please do some more tests and update this issue with the differences you find ?

@profmaad Can you check with this script if the RD6012 uses different registers.
Note the registers 1 and 2 contain the serial number.

from rd6006 import RD6006

device = RD6006("COM10")

device.status()

for x in range(150):
    if x == 1 or x == 2:
        pass
    else:
        print(f"{x} {device._read_register(x)}")

Ran the script twice, once with output off and once with output on on the RD6012. Results below. Note that I had the following set on the device:
Input voltage: 54.52V
V-Set: 12.34V
I-Set: 01.23A
OVP: 62.00V
OCP: 12.20A

With output OFF:

== Device
Model   : 6012.1
SN      : <redacted>
Firmware: 1.31
Input   : 54.52V
Temp    : 23°C
TempProb: -191°C
== Output
Voltage : 0.0V
Current : 0.0A
Energy  : 0.0Ah
Power   : 0.0W
== Settings
Voltage : 12.34V
Current : 0.123A
== Protection
Voltage : 62.0V
Current : 1.22A
== Battery
Capacity: 0.0Ah
Energy  : 0.0Wh
== Memories
M0: 12.3V, 0.123A, OVP:62.0V, OCP:1.220A
M1:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M2:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M3:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M4:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M5:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M6:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M7:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M8:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M9:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
0 60121
3 131
4 0
5 23
6 0
7 74
8 1234
9 123
10 0
11 0
12 0
13 0
14 5452
15 1
16 0
17 0
18 0
19 0
20 0
21 0
22 0
23 0
24 0
25 0
26 0
27 0
28 0
29 0
30 0
31 0
32 0
33 5
34 1
35 191
36 1
37 312
38 0
39 0
40 0
41 0
42 0
43 0
44 0
45 0
46 0
47 0
48 2019
49 1
50 1
51 12
52 3
53 12
54 0
55 25
56 23167
57 24
58 17315
59 390
60 8978
61 61
62 4523
63 0
64 0
65 0
66 1
67 0
68 0
69 0
70 1
71 0
72 4
73 0
74 0
75 0
76 0
77 0
78 0
79 0
80 1234
81 123
82 6200
83 1220
84 500
85 1210
86 6200
87 1220
88 500
89 1210
90 6200
91 1220
92 500
93 1210
94 6200
95 1220
96 500
97 1210
98 6200
99 1220
100 500
101 1210
102 6200
103 1220
104 500
105 1210
106 6200
107 1220
108 500
109 1210
110 6200
111 1220
112 500
113 1210
114 6200
115 1220
116 500
117 1210
118 6200
119 1220
120 0
121 0
122 0
123 0
124 0
125 0
126 0
127 0
128 0
129 0
130 0
131 0
132 0
133 0
134 0
135 0
136 0
137 0
138 0
139 0
140 0
141 0
142 0
143 0
144 0
145 0
146 0
147 0
148 0
149 0

With output ON:

== Device
Model   : 6012.1
SN      : <redacted>
Firmware: 1.31
Input   : 54.51V
Temp    : 24°C
TempProb: -89°C
== Output
Voltage : 12.34V
Current : 0.0A
Energy  : 0.0Ah
Power   : 0.0W
== Settings
Voltage : 12.34V
Current : 0.123A
== Protection
Voltage : 62.0V
Current : 1.22A
== Battery
Capacity: 0.0Ah
Energy  : 0.0Wh
== Memories
M0: 12.3V, 0.123A, OVP:62.0V, OCP:1.220A
M1:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M2:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M3:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M4:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M5:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M6:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M7:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M8:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M9:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
0 60121
3 131
4 0
5 24
6 0
7 75
8 1234
9 123
10 1233
11 0
12 0
13 0
14 5452
15 1
16 0
17 0
18 1
19 0
20 0
21 0
22 0
23 0
24 0
25 0
26 0
27 0
28 0
29 0
30 0
31 0
32 0
33 5
34 1
35 191
36 1
37 129
38 0
39 0
40 0
41 0
42 0
43 0
44 0
45 0
46 0
47 0
48 2019
49 1
50 1
51 12
52 5
53 4
54 0
55 25
56 23167
57 24
58 17315
59 390
60 8978
61 61
62 4523
63 0
64 0
65 0
66 1
67 0
68 0
69 0
70 1
71 0
72 4
73 0
74 0
75 0
76 0
77 0
78 0
79 0
80 1234
81 123
82 6200
83 1220
84 500
85 1210
86 6200
87 1220
88 500
89 1210
90 6200
91 1220
92 500
93 1210
94 6200
95 1220
96 500
97 1210
98 6200
99 1220
100 500
101 1210
102 6200
103 1220
104 500
105 1210
106 6200
107 1220
108 500
109 1210
110 6200
111 1220
112 500
113 1210
114 6200
115 1220
116 500
117 1210
118 6200
119 1220
120 0
121 0
122 0
123 0
124 0
125 0
126 0
127 0
128 0
129 0
130 0
131 0
132 0
133 0
134 0
135 0
136 0
137 0
138 0
139 0
140 0
141 0
142 0
143 0
144 0
145 0
146 0
147 0
148 0
149 0

One more thing: I attached the external temperature probe to test that value as well, results below.
The device showed temperature at 24 degrees C at the time.

== Device
Model   : 6012.1
SN      : <redacted>
Firmware: 1.31
Input   : 54.51V
Temp    : 24°C
TempProb: 24°C
== Output
Voltage : 0.0V
Current : 0.0A
Energy  : 0.0Ah
Power   : 0.0W
== Settings
Voltage : 12.34V
Current : 0.123A
== Protection
Voltage : 62.0V
Current : 1.22A
== Battery
Capacity: 0.0Ah
Energy  : 0.0Wh
== Memories
M0: 12.3V, 0.123A, OVP:62.0V, OCP:1.220A
M1:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M2:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M3:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M4:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M5:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M6:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M7:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M8:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
M9:  5.0V, 1.210A, OVP:62.0V, OCP:1.220A
0 60121
3 131
4 0
5 24
6 0
7 76
8 1234
9 123
10 0
11 0
12 0
13 0
14 5451
15 1
16 0
17 0
18 0
19 0
20 0
21 0
22 0
23 0
24 0
25 0
26 0
27 0
28 0
29 0
30 0
31 0
32 0
33 4
34 0
35 24
36 0
37 76
38 0
39 0
40 0
41 0
42 0
43 0
44 0
45 0
46 0
47 0
48 2019
49 1
50 1
51 12
52 0
53 59
54 0
55 25
56 23167
57 24
58 17315
59 390
60 8978
61 61
62 4523
63 0
64 0
65 0
66 1
67 0
68 0
69 0
70 1
71 0
72 4
73 0
74 0
75 0
76 0
77 0
78 0
79 0
80 1234
81 123
82 6200
83 1220
84 500
85 1210
86 6200
87 1220
88 500
89 1210
90 6200
91 1220
92 500
93 1210
94 6200
95 1220
96 500
97 1210
98 6200
99 1220
100 500
101 1210
102 6200
103 1220
104 500
105 1210
106 6200
107 1220
108 500
109 1210
110 6200
111 1220
112 500
113 1210
114 6200
115 1220
116 500
117 1210
118 6200
119 1220
120 0
121 0
122 0
123 0
124 0
125 0
126 0
127 0
128 0
129 0
130 0
131 0
132 0
133 0
134 0
135 0
136 0
137 0
138 0
139 0
140 0
141 0
142 0
143 0
144 0
145 0
146 0
147 0
148 0
149 0

Thanks for the info. 👍

According to this data, no new registers are used.
Pictures from the device RD6012 and RD6018 do not show the milliamps on the LCD screen.
I am assuming the device can not measure the milliamp range because it is a high current device.

Could you test my change in https://github.com/scheric/rd6006/blob/Add-6012-functionality/rd6006/rd6006.py

That seems to work as expected. Note that the port detection doesn't work as implemented on Linux.
What does work is checking port[2] for the USB vid and pid of the device instead:
if "VID:PID=1A86:7523" in p[2]:
Also, it appears that the serial device is now ch341, not CH340: ch341-uart converter detected

I merged the PR #9 so that issue should be fixed.
I opened a dedicated issue for the USB problem : #10