anikrooz / Emerson-Vertiv-R48

CAN bus control of Vertiv R48-3000e3 and possibly others
4 stars 0 forks source link

CAN docs #1

Open leodesigner opened 1 month ago

leodesigner commented 1 month ago

Hey,

Thanks for the project. I have one unit, and testing it now. Where did you get the CAN bus documentation?

anikrooz commented 1 month ago

Good to hear it's useful! Reverse engineered using the control unit to send changes and watching the dataOn 13 Sept 2024 08:57, leodesigner @.***> wrote: Hey, Thanks for the project. I have one unit, and testing it now. Where did you get the CAN bus documentation?

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

leodesigner commented 1 month ago

Got it, thanks

Jalle19 commented 2 weeks ago

I'm trying to use the code in another project, but I can't get to the point where the unit replies with 0x23 in byte 4:

https://github.com/anikrooz/Emerson-Vertiv-R48/blob/1ed7dca9a82f3e5e41e616a5ede076422c54a9a7/src/VertivPsu.cpp#L359

In fact, I can't get "sendCurrentPercentage" to work either, unless I send control and "gimme5" I don't ever get past the 0x58 0x46 messages.

Any pointers?

anikrooz commented 2 weeks ago

Hi,I presume you're calling charger.tick() in your loop? And that the loop is sufficiently quick to call this regularly?Otherwise I will have a look and see if I've made any changes that I might not have uploaded On 5 Oct 2024 20:14, Sam Stenvall @.***> wrote: I'm trying to use the code in another project, but I can't get to the point where the unit replies with 0x23 in byte 4: https://github.com/anikrooz/Emerson-Vertiv-R48/blob/1ed7dca9a82f3e5e41e616a5ede076422c54a9a7/src/VertivPsu.cpp#L359 In fact, I can't get "sendCurrentPercentage" to work either, unless I send control and "gimme5" I don't ever get past the 0x58 0x46 messages. Any pointers?

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

Jalle19 commented 2 weeks ago

I'll do some more testing!

Do you have more info on the "sendControl" function? I'm really most interested in being able to toggle the AC on or off so I don't need to control the charger using an external smart relay. I've tried toggling various bits with it but nothing seems to happen, can't get the fan to turn off etc. either. Is it supposed to work? Do the rectifier have to be put in "manual" mode somehow as opposed to "automatic" which seems to be the default?

anikrooz commented 2 weeks ago

Have a look at https://github.com/anikrooz/housebatt/blob/main/housebatt.ino where I use this library in my home battery set-up. Just search for " charger. " so no need to work out how the program works. You'll see egcharger.switchACpower(0);charger.setCAmps(1);Where it turns the PSU off which does stop the fan, and sets the output to its minimum 240W in case it comes back on again (due to CAN loss or power cycle). Note that unless .tick() is called regularly to process CAN frames and send the 6 secondly heartbeat, the PSU will decide it's lost connection and revert to 'on' at the last set ampageHope that helps!On 7 Oct 2024 07:27, Sam Stenvall @.***> wrote: I'll do some more testing! Do you have more info on the "sendControl" function? I'm really most interested in being able to toggle the AC on or off so I don't need to control the charger using an external smart relay. I've tried toggling various bits with it but nothing seems to happen, can't get the fan to turn off etc. either. Is it supposed to work? Do the rectifier have to be put in "manual" mode somehow as opposed to "automatic" which seems to be the default?

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

Jalle19 commented 2 weeks ago

Thanks for the pointers!

Jalle19 commented 1 week ago

"Found" some more data points but I don't know what they represent, any ideas?

0x6 unknown : 59.0
0x7 unknown : 36.1435546875
0x8 unknown : 400.0703125
0x9 unknown : 32.77734375
0xb unknown : 30.732421875
0x14 unknown : 1.0
0x32 unknown : 0.0
0x39 unknown : 0.0

0x7, 0x9 and 0xB could be some form of temperature readings (they increase slowly when charging). 0x8 I have no idea about (it varies a little bit) and 0x14, 0x32 and 0x39 are probably booleans.

Any ideas?

leodesigner commented 1 week ago

@Jalle19 check this project here:

https://github.com/PurpleAlien/R48_Rectifier/blob/main/rectifier.py

Jalle19 commented 1 week ago

I have