Review: Huawei R4850G2 Power Supply 53.5VDC, 3kW with CAN

The Huawei R4850G2 is a very capable 48V Telecommunications grade power supply available brand-new at cheap surplus prices (normally under $100 USD). Rated at 3000W, it can deliver a considerable 56.1A when powered from a suitable 200-240V rated AC source. The CAN2.0B interface allows for online monitoring and/or adjustment of the output voltage and current.

Given the power supply is a Telecoms spare part (most likely for a Huawei mobile phone Base Terminal Station), a surprisable amount of official documentation exists on the hardware from the manufacturer:

But when it comes to the CAN communications protocol and operation, the best source of information, although sketchy, comes from radio/electronics enthusiasts in Chinese forums.

We strive to demystify some of the details below and provide reference software to talk to the unit via CAN.

The Purchase

I was first made aware of the R4850G2 by YouTuber Schematix. He presented a 17 minute video on the power supply at Cheap 3Kw PSU for Induction Heater ll Huawei R4850G2 PSU

My PSU was purchased from a local Australian ebay merchant (link here) for $49 AUD plus $15.35 shipping (Approximately $50 USD). However, if shipping from Australia is cost prohibitive, Aliexpress and Alibaba appear to also be a good source.

While Schematix details modifying the supply to make good connection to the edge connector, you can pick up a suitable connector: i.e. For Huawei R4850G2 rectifier module communication power plug. This set me back $23.28 AUD, but allows for a more professional connection.


The power supply is designed to be inserted into a slot/backplane and hence all connections to the power supply is by means of a edge connector. Inclusion of Pre-charge pins allow multiple units to be paralleled and hot swapped.

Fig 4/Table 1 extracted from Huawei User Manual

Huawei go someway in documenting the connector in version 1.4 of their User Manual. However, they miss off two critical pins required to enable an output. Next to the CAN pins are what we call ‘slot detect 1’ and ‘slot detect 2’

Mating Connector

As indicated earlier, I had also purchased a mating connector for the PSU from ebay. Below are the pictures on arrival.

On the bottom of the connector is the part number. It appears to be a connector from Chinese manufacturer Jonhon. The part number is DP4SC0504-001.

The drawing doesn’t include the flying lead connectors for the CAN or Slot Detection, only making mention that there are five signal contacts with wires and termination when customised.

The connectors appear to be JST SM connectors. The female is the Slot Detection (‘on/off’) connection, while the male is the CAN Bus. You can choose to purchase some, or cut them off and add your own. For the time being, I have shoved a 0.1″ header into the Slot Detection.

To enable the power supply, connect both the slot detect 1 and slot detect 2 pins to OUTPUT- (negative).

While not mandatory to enable the output, you should also connect Pre-Charge to OUTPUT-. For those using the DP4SC0504-001, the Pre-Charge is wired internally to the OUTPUT-.

At this stage, you should have a dumb 53.5V, 56.1A power supply unit.

CAN Interface & Protocol

The CAN interface operates at 125kbps with extended 29 bit identifiers.

On power up, the unit will send out unsolicited packets and this can be useful in ensuring your hardware is working correctly.


To request statistics such as the Input Voltage/Frequency/Current, Output Voltage/Current, Efficiency etc. one can send a single eight byte zero padded frame to the CAN address/ID 0x108040FE. The device should respond with a series of frames with ID 0x1081407F conforming the following format:

The 2nd byte in the frame appears to indicate what parameter is being sent. The parameter’s value is contained in the last four bytes with byte 7 being the least significant byte.

For example, this is a output from candump:

  can0  1081407F   [8]  01 0E 00 00 00 00 00 0A  
  can0  1081407F   [8]  01 70 00 00 00 01 A6 84   (Input Power)
  can0  1081407F   [8]  01 71 00 00 00 00 C8 0A   (Input Freq)
  can0  1081407F   [8]  01 72 00 00 00 00 01 C2   (Input Current)
  can0  1081407F   [8]  01 73 00 00 00 01 80 8E   (Output Power)
  can0  1081407F   [8]  01 74 00 00 00 00 03 A4   (Efficiency)
  can0  1081407F   [8]  01 75 00 00 00 00 D5 C8   (Output Voltage)
  can0  1081407F   [8]  01 76 00 00 00 00 04 6A   (Maximum Output Current)
  can0  1081407F   [8]  01 78 00 00 00 03 C0 80   (Input Voltage)
  can0  1081407F   [8]  01 7F 00 00 00 00 64 00   (Output Stage Temperature)
  can0  1081407F   [8]  01 80 00 00 00 00 70 00   (Input Stage Temperature)
  can0  1081407F   [8]  01 81 00 00 00 00 07 B2   
  can0  1081407F   [8]  01 82 00 00 00 00 07 32   (Output Current)
  can0  1081407E   [8]  01 83 00 10 00 00 00 00

Note: It’s currently not known what the two different (0x81 & 0x82) current parameters are. I personally find 0x81 is more accurate compared to a bench meter in series with the output. If you know more, please leave a comment below.

Setting Values

To set either the output voltage or current limit, send a frame to 0x108180FE with the following format:

Again, the 2nd byte in the frame indicates what parameter is being set.

The power supply should acknowledge the command with a packet of ID 0x1081807E. The ack frame should have identical contents, except if an error has occurred, in which case the first byte contains 0x21.

If the set value is out of range, an error will be flagged. This is a useful way of determining the range of acceptable values.

Modes of Operation

The power supply can operate in two different modes – we call this on-line and off-line.

Off-line is when there is no CAN communications – i.e. the power supply is operating in standalone mode. Off-line values are non-volatile and also used as the default value when the power supply first powers up.

On-line is when there is valid CAN communications addressed to the power supply. This mode will time-out approximately 60 seconds after the last CAN message and will be indicated on the front panel via a flashing yellow alarm indicator.

On-line values are volatile and set to the default values upon entry into this mode.

Therefore, if you send a command to set the on-line output voltage (0x00), the output voltage should be reflected immediately. If no further messages are sent (to any valid CAN ID), the output voltage will return to the default off-line voltage after approximately 60 seconds. Provided a valid CAN message is sent within the timeout period, the output should remain equivalent to the on-line output voltage parameter.

To date, I’m unaware how to read the above parameters back. If you know more, please leave us a comment below.


While the data sheet indicates the output voltage is adjustable from 42~58VDC, different ranges exist between on-line and off-line:

  • Output Voltage – Online – 41.5 to 58.5 volts, 0.1A steps
  • Output Voltage – Offline – 48 to 58.5 volts, 0.1A steps
  • Current Limiting – 0 to 60A, 0.1A steps

Reference Software

To test the protocol, I have developed some reference software at

It takes advantage of the Linux SocketCAN interface meaning you can use it on a Linux Desktop with an appropriate SocketCAN CAN Interface Adapter, or on embedded platforms such as the Raspberry PI / Beaglebone with suitable controllers/transceivers.

Inno-Maker USB2CAN Interface ($39 USD) with a custom cable to JST SM Connector

The software can be used to set the output voltage and maximum current:

Huawei R4850G2 53.5VDC 3000W Rectifier Configuration Utility V1.1
Usage: r4850 [options] <CAN interface>
	-v <voltage>	(Set Power Supply Voltage)
	-c <current>	(Set Maximum Current)
	-s              (Save settings to non-volatile memory/off-line)

And report statistics:

Input Voltage 237.88V @ 50.03Hz
Input Current 0.41A
Input Power 98.18W

Output Voltage 47.98V
Output Current 1.97A of 37.70A Max, 0.002Ah
Output Power 89.36W

Input Temperature 27.0 DegC
Output Temperature 27.0 DegC
Efficiency 91.0%

Battery Charging

The current limiting on the R4850 makes it perfect for charging 48V battery packs.

Huawei R4850G2 Charging a 16S LiFePO4 Battery Pack @ 20A (Approx 1kW)
Huawei R4850G2 53.5VDC 3000W Rectifier Configuration Utility V1.1

Input Voltage 237.34V @ 49.98Hz
Input Current 4.86A
Input Power 1154.06W

Output Voltage 55.01V
Output Current 20.32A of 20.00A Max
Output Power 1110.10W, 5.230Ah

Input Temperature 22.0 DegC
Output Temperature 38.0 DegC
Efficiency 96%


  1. Thanks for posting this information. I’m considering buying several of these to use in series and parallel as a general purpose high-power system power supply. Did you have any luck figuring out how to parallel them and enable the “current sharing” feature? Do you know if there’s anything special that needs to be done to connect them in parallel?

    • Thank you for your sharing. I have a huawei monitor module. I will do some test to capture the communication between the power supply module and monitor module. Do you have any comments?

    • I know that this power supply has a control system based on Bluetooth app in China. I am trying to crack this system. If anyone is interested, please contact me and I also need some help

    • Erik, good pick-up. The CAN-L is on the top side, hence the table is correct. I’ll get the pictures fixed shortly.

Leave a Reply

Your email address will not be published.