HPM48-5000 Motor Overview

The 5.7's motor was manufactured in China by Golden Motor.  It is their part number HPM48-5000, rated 48 volts and 5000 watts.  As of 2022, it has a retail price of $446 if purchased directly from the manufacturer (versus over $1000 from EM). 

The motor is a brushless DC (BLDC) using an axial-flux permanent-magnet rotor.  It has an IP (Ingress Protection) rating of 54.  In the IP rating system, the first digit means protection from limited dust ingress and the second digit means protection from water spray from any direction.

The stator coils are attached to the fan-side end plate.  The rotor has magnets on a disk connected to the shaft.

According to its specification sheet, the motor weighs 11 kg (24.2 pounds).  Combined with the battery and the approximately 4-pound controller, the “power plant” thus weighs under 54 pounds.


Axial Flux Motors

In addition to being BLDC, it's also an axial flux motor.  Prior to the EM, I had not even heard of an axial flux motor, much less worked with one.  I guess that should not be surprising since 99% of all motor applications today are radial flux.  

By definition, BLDC motors use permanent magnets.  Adjacent is a screenshot I grabbed from  It shows the arrangement of the magnets in both the conventional (radial) and an axial flux configuration.

These are two fundamentally different ways of making a motor.  In practice, axial flux motors tend to be more “pancake-shaped” and are often called pancake motors because of it.

Inside the HPM48-5000

I was lucky to find this next photo on the forum and am grateful to whomever posted it!   It shows everything I was curious about.  I no longer felt compelled to open the motor (which is not a simple task).

Credit: forum

 Reconciling HPM48-5000 Data

The motor has 8 magnets and 24 stator coils.  Hall sensors are located 30 mechanical degrees apart (with the green Hall sensor between blue and yellow).  This is different than how the phase wires are arranged outside the motor (yellow is in the middle).  This initially caused me quite a bit of confusion, and I  wanted to make sense of the following information gathered from a variety of sources:

I used a Wayne-Kerr 3245 Precision Inductance Analyzer and a degree wheel to take measurements at all rotor positions where the motor would “cog” into a stable mechanical position.  The spreadsheets are mostly as expected and clearly show three things:

The measured inductance and resistance are smaller by a factor of 2 could be explained because the motor is “wye” connected.  There is no external access to the “neutral” or common point.  Thus, the inductance and resistance measured externally are that of two winding in series.  Note that all of the measurements were made at the end of the approximately 10 cm long wires EM used to connect the motor to the Kelly controller.

Degree wheel mounted to motor shaft

Wye phase connections

The spreadsheet on the left tabulates the motor inductance at each of the 24 stable rotor positions.  The spreadsheet on the right tabulates motor inductance and impedance at frequencies varying from 20 Hz to 300 kHz.  It also shows the salience effect at two different stable rotor positions.  The choice of the word “Axis” in the spreadsheet is poor - “Stable Position” would be better.

HPM48-5000 phase inductance vs. rotation step.ods
HPM48-5000 L & Z vs Frequency.ods

Hall sensors' transitions observed while turning rotor by hand. Note glitching.

With the degree wheel attached, I tried to make sense of the three Hall sensor outputs.  I tried turning the motor over exactly one revolution with a breaker bar driving a hex key on the pulley retaining screw.  This proved to be extremely difficult to get accurate results as the adjacent photo shows.  Previously, I had determined that each Hall sensor makes 4 complete cycles per mechanical revolution.  And, that multiplying the frequency output of any Hall sensor by 15 would yield the mechanical rotation rate in RPM.  But the “cogging” of the motor makes smooth rotation by hand impossible due to the non-uniform motion imparted during a full 360 degrees of rotation.  Notice the glitches (multiple transitions) on many of the edges in the 'scope photo.

HPM48-5000 Test Curves

Golden Motor provides freely-available test curves via its website.  To the uninitiated, the curves look pretty cryptic but they are in a standard format for characterizing electric motors.  The Y-axis shows speed, efficiency, power output, and current.  The X-axis is torque.  The units for torque are milliNewton-meters (starting at 102.5 mN-m and ending at 24020.5 mN-m).

To further complicate things, values for voltage, power input, and power factor are also scaled along the Y-axis (but are not graphed).  I suspect it's just a very generic presentation format they use for all their motors.  At best, it's confusing.

The minimum speed that's plotted is 2388 rpm.  I have no idea what is meant by the corresponding description “Upload point.” Maybe it's where they began recording data?

The torque plot starts at 102.5 mN-m (that's just 0.1 Nm and not much torque, by the way).  The associated current required to produce the torque is 8.177 amps.  That value correlates with my measurement showing the motor required about 10 battery amps before it began to turn.  This was simply the current required to overcome viscous friction - zero shaft work was being performed.

It's straightforward to determine the average torque constant (Kt) of 0.14 Nm/A from the graph.  Working with endpoints on the current line, we can determine its slope as:

(24.1Nm - 0.1Nm) / (176.4A - 8.1A) = 0.14 Nm /A

Credit: Golden Motor

Hall Sensors (for Motor Position Feedback)

The photo below shows the “pickoff” connector I fabricated to observe the motor's feedback signals without butchering the wiring harness.  As a side note, I bought an assortment of Chinese Superseal clones via eBay.  These connectors are not as nice as the genuine article but are nearly free and adequate for this purpose.

The next photo shows an oscilloscope capture of two Hall sensor outputs.  Oscilloscope Channel 1 is Phase B and Channel 2 is Phase C.  These Hall sensors are located 30 (mechanical) degrees apart (which is also 120 electrical degrees apart).

Each Hall signal is a square wave.  At this particular motor speed, they exhibit a period of about 38 ms (roughly 26 Hz).

The Hall sensors are powered by +5VDC, but their outputs swing between GND and about +12VDC due to pullup resistors in the controller.

I guessed that each phase signal occurs at 4x the motor rotation rate.  At about the minimum motor speed, a 4.8 Hz square wave is produced. (4.8 Hz / 4) * 60 = 72 rpm.  There is a 13.93:1 speed reduction in the toothed belt and chain/sprockets.  This would indicate a rear wheel speed of about 5.1 rpm.

I then used a stopwatch to measure how long it took the rear wheel to make a single revolution at this slowest motor speed.  It took about 11.5 seconds. 60 / 11.5 = 5.3 rpm.  So, a pretty good agreement.

AMP Superseal pickoffto observe the Hall sensors

Hall sensor signals for two phases showing a period of about 38 ms. 

24 Hall Transitions per Revolution

Along with the 3 Hall sensors, a once-per-revolution index pulse was obtained by a temporary external sensor I added (pictured in the photo below).  There are 24 Hall transitions (edges) per motor revolution.  These edges are needed by the controller so it knows when to commutate the motor's phase windings. 

Channels 1, 2, and 3 are the Hall outputs.  Channel 4 is the index pulse that occurs once per revolution.  You can clearly see there are exactly four complete Hall cycles per revolution for each of the 3 phases.  I annotated the screenshot in MS Paint to count the number of edges and show the sequence in which they occur.  As there should be, 24 edges can be seen (21 and 24 are obscured by an onscreen display).

A Hall edge (alternating rising/falling) occurs every 15 mechanical degrees of rotation (24 * 15 = 360).

The time between index pulses is measured by the oscilloscope cursors at approximately 200 ms (or a repetition rate of 5 Hz).  In other words, 5 pulses per second equate to 300 mechanical rpm.  (I was driving the motor with a handheld drill and its battery was pretty depleted by the time I got this shot.)

Annotated Hall signals showing 24 edge transitions.   Index pulse once per revolution.  Running at 300 RPM (200 ms per revolution). 

One Phase Voltage & Hall Signal

This next photo shows the output of a single Hall sensor (yellow trace) with the corresponding phase-to-phase voltage (purple trace) that was generated by spinning the motor via the handheld drill.  Since the motor is a BLDC, the waveform is pretty far from being a sine – but exactly as it should be.

The edges of the Hall signals are coincident with the zero-crossing of the phase-to-phase voltage.  This verifies that the phase windings and Hall sensor are correctly paired.  That is, the phases would be excited in the correct sequence by the motor controller.

All 3 Phases Overlapped

The photo below shows all 3 phases overlapped.  Three of the scope's input channels are connected to phase windings and the motor was spun with a handheld drill motor.  Because there is no access to the neutral connection for the motor's wye, there is no common ground reference for the oscilloscope.  (Although, all of the scope's input channels' grounds are connected together inside the scope.)

The “fuzziness” of the trace is due to ambient AC line frequency noise (60 Hz).  Here again, the green trace (channel 4) is the once-per-mechanical-revolution index pulse.  It is occurring every 161 ms (6.2 Hz) for a rotation rate of 372 rpm.  You can see 4 complete cycles (4 positive peaks and 4 negative peaks) for each of the 3 phases.

This results in a total of 12 positive peaks and 12 negative peaks over 1 complete mechanical revolution.  The zero line for the phase waveforms is indicated by the blue triangle (marked 3) at the leftmost edge of the screen.  In fact, the zero reference line for traces 1, 2, and 3 are all on top of one another there.

Similarly, there are a total of 24 “zero crossings” for the 3 phase voltages.  These represent the 24 stable positions of the rotor.


This next photo is mostly just for fun because it's so pretty!  But it does give a closer look at the shape of the 3 phase voltages.

Golden Motor HPM48-5000's wiring location

Bad Wiring Location

I included this photo to show the location of the motor's power and sensor wires.  Blue, yellow, and green are phase windings.  Black is for the sensors.  The ePure's Dana TM4 motor is much better in terms of wiring location. 

You can also see the space Golden Motor provided for a cooling fan, but EM did not use one.  The shiny tape on the shaft is a reflector for an optical tachometer I used to measure peak unloaded speed.

Maximum Motor Speed

Motor speed was measured with an optical tachometer on the right-side motor shaft under no load.  A maximum of only 3980 rpm was observed.  This is only 2/3 of the 6000 rpm required to achieve the claimed 34 mph top speed - so 2/3 of 34 mph, or only about 22 mph (which feels about right).  Golden Motor rates their 5kW motors at 3000 to 5000 rpm.  A frequency counter was attached to one Hall sensor while the optical tachometer was being used.  This reinforced my original belief that each Hall signal occurs at 4 times the motor rotation rate.  So, we can multiply any Hall signal by 15 to get motor revolutions per minute.  

I also monitored the BMS status while running at max rpm unloaded.  The current draw was about 9 amps from the battery.  Thus it takes roughly 450 watts to do “nothing” at max rpm.

I learned that Apico makes a 13T front sprocket.  The front sprocket as received is 9T.   So, 13/9 * 22 mph = 31.7 mph.  But that still comes up short of the maximum speed from the specs.  I had intended to fit a bicycle speedometer to measure top speed but did not get around to it.  I'll use the Cycle Analyst instead - it will provide a wealth of data.