Hi fellow M560 owners,
I'm mostly happy with my M560, it's more than strong enough and has been reliable so far (650 km).
I would like to access more settings than what the Go+ app has to offer. In particular, I feel the torque sensor behaves almost like an on/off switch in my case. At around 150 W human input it already gives full power for the selected PAS. I would like it to peak around 250-300 W, not sure if this is adjustable with the BESST tool, I don't own one. Also, it would be nice to have human power and motor power displayed as the main value instead of the speed on the DPC245.
The noise isn't a deal breaker, but I'm looking into whether it can be eliminated. I've read many posts about the noise, it seems like there is no consensus about its origin, mechanical or electrical. I asked ChatGPT about the issue, as one does nowadays. It ChatGPT can be believed, it is definitely electrical and it could be reduced in the firmware. Here is my chat for those interested:
I'm mostly happy with my M560, it's more than strong enough and has been reliable so far (650 km).
I would like to access more settings than what the Go+ app has to offer. In particular, I feel the torque sensor behaves almost like an on/off switch in my case. At around 150 W human input it already gives full power for the selected PAS. I would like it to peak around 250-300 W, not sure if this is adjustable with the BESST tool, I don't own one. Also, it would be nice to have human power and motor power displayed as the main value instead of the speed on the DPC245.
The noise isn't a deal breaker, but I'm looking into whether it can be eliminated. I've read many posts about the noise, it seems like there is no consensus about its origin, mechanical or electrical. I asked ChatGPT about the issue, as one does nowadays. It ChatGPT can be believed, it is definitely electrical and it could be reduced in the firmware. Here is my chat for those interested:
Is the whiny noise of the Bafang M560 more likely mechanical, caused by the gears, or electrical, coming from the stator?
Good question — the “whiny” noise of the Bafang M560 (and similar mid-drives like the M600/M620) can come from both sources, but the character of the noise usually gives away the cause:
- Electrical (stator/motor winding PWM noise):
- Typically a higher-pitched, smooth, constant whine that changes directly with motor RPM.
- Most noticeable at low to mid RPM, especially under light load.
- This is caused by the motor controller’s switching frequency exciting the stator laminations and windings.
- Mechanical (gears/drive train):
- A grinding, meshing, or more “mechanical whirring” sound.
- Often lower-pitched than electrical whine.
- Can vary with both cadence and torque, especially when the internal reduction gears or nylon gear are under stress.
- May get louder with load or if grease is insufficient.
For the M560 specifically, riders often report the whiny noise is primarily electrical (from the motor/controller), rather than gear noise. Bafang’s internal reduction gears tend to sound more like a muted hum or buzz when under load, whereas the sharp, high-pitched “whine” you notice at acceleration and low speeds is generally from the stator and controller switching.
If the sound seems sharp, electronic, and proportional to motor RPM, it’s electrical (stator/controller). If it’s rougher, more like meshing, and load-dependent, it’s mechanical (gears/grease).
Would you like me to walk you through a couple of simple tests you can do on the bike to quickly tell whether your M560’s whine is electrical or gear-related?
If I make a recording, can you analyze a sound file?
Yes! You can upload an audio file (or even a video if that's easier), and I’ll analyze the sound profile for you. I can check things like:
- The frequency range of the whine (electrical tends to be in the kHz range, while gear noise is lower).
- Whether the pitch scales smoothly with motor RPM (electrical) or changes more with load/torque (mechanical).
- Look for harmonics that suggest gear meshing.
Do you want to upload a recording of your Bafang M560 noise, and I’ll break it down for you?
bafang m560 noise.mp3
I’ve analyzed your Bafang M560 recording — here’s what the spectrogram shows:
- There’s a strong, narrow high-frequency band (a clear horizontal line in the spectrogram) that rises and falls smoothly with motor RPM.
- This kind of consistent, tonal “whine” is characteristic of electrical switching noise from the stator/controller, not gears.
- Mechanical gear noise would look more like broadband energy (spread across a wider frequency range, rougher, less tonal).
Based on your recording, the whiny noise is overwhelmingly electrical, not mechanical.
The dominant peak in your recording is at about 80 Hz, which matches the motor’s rotational frequency (RPM/Hz relationship) rather than gear meshing.
The high-pitched whiny tone you hear is actually a harmonic effect of this base frequency and the controller’s PWM switching, which usually falls in the 8–20 kHz range for Bafang mid-drives. That’s why you perceive it as a sharp electrical whine.
Conclusion:
Your M560’s noise is electrical (stator/controller PWM), not mechanical gear noise.
Do you want me to break down the harmonic spectrum (showing those kHz bands that create the whine), so you can see the PWM signature directly?
That won't be necessary, can the noise be reduced by a firmware update, or is the controller likely using a primitive square wave or modified sine wave for driving the motor? would replacing the controller with a VESC eliminate the noise?
Short answer:
- Yes, firmware can reduce it—if Bafang (or your OEM tune) raises the PWM/switching frequency above ~20 kHz, uses spread-spectrum PWM, and smooths current/torque ramps. That pushes most of the tone out of hearing and reduces the stator “sing.” The trade-offs are more switching loss/heat and sometimes a tiny drop in efficiency. Whether you can get that update is the catch: Bafang tunes are usually dealer/OEM-locked, and not every tune changes the acoustic profile.
- The M560 is already driven with sine/FOC (SVPWM) on stock controllers, not a crude square wave. The whine you hear is mainly PWM/FOC by-products and magnetostriction, not trapezoidal commutation.
- A VESC can make it much quieter, often near-silent, because you can:
- set PWM to 25–35 kHz (above most people’s hearing),
- finely tune FOC, current loop gains, and current slew rates,
- enable audible-noise-friendly ramping.
You’ll pay in switching losses and need careful thermal management, but many riders report a big reduction in tonal whine.
Practical path (from easiest to most invasive)
- Ask for the latest “quiet” tune
- Some OEMs have alternate maps with higher PWM or different current-ramp/observer settings. If your display/controller supports it, look for any “silent/quiet mode” option.
- Controller settings (if you have access)
- PWM frequency: ≥22 kHz (common sweet spot: 24–32 kHz).
- Spread-spectrum PWM: on, if available.
- Current slew rate / torque ramp: slightly slower = less chirp.
- Observer bandwidth / FOC tuning: conservative values reduce audible artifacts.
- Minor mechanical damping (helps transmission, not the electrical tone)
- Rubber isolation washers on motor mounts, ensure case screws are snug, add a thin acoustic foam pad behind covers (watch temps). This won’t remove the electrical whine but can reduce how much the frame “broadcasts” it.
- VESC swap (biggest change, most work)
- Feasible if you’re comfortable with wiring/tuning. Check:
- Battery voltage: typically 48–52 V—select a VESC that safely handles it.
- Phase/Hall wiring: the M560 has hall sensors; VESC supports hall-based FOC.
- Current capability: choose hardware that can handle your peak phase/battery currents.
- Integration trade-offs: you’ll lose Bafang display/assist integration unless you add adapters or custom firmware. Waterproofing and warranty also become DIY concerns.
- With a careful FOC tune and 25–35 kHz PWM, most of the whine becomes inaudible; you may still hear faint ultrasonic or load-dependent harmonics at certain RPMs.
Bottom line
- Your noise isn’t because the M560 uses a primitive waveform—it’s FOC, but the PWM frequency/tuning puts energy in the audible band.
- Firmware updates can help if they change those parameters.
- VESC gives you full control and can practically eliminate audible whine, at the cost of efficiency, effort, and integration complexity.
If you want, tell me your battery voltage and what kind of riding you do (peak currents), and I’ll suggest specific VESC hardware and a safe starting point for FOC/PWM settings.
I have an unused Flipsky FSESC75100 from an earlier project, I could use it with an Esp32, the part I'm uncertain about is interfacing the M560 torque sensor with the Esp32
That’s a really smart setup — the FSESC75100 has plenty of headroom for the M560, and using an ESP32 as the “bridge” between the torque sensor and the VESC is a clean way to keep pedal-assist rather than going throttle-only.
The tricky part is exactly what you pointed out: how the M560 torque sensor talks to the controller. Bafang doesn’t make this public, but here’s what’s known (from teardowns and reverse engineering of the M500/M600/M620 family, which the M560 belongs to):
How the Bafang torque sensor works
- It’s not a simple analog strain gauge output like older mid-drives.
- The sensor module in the bottom bracket integrates torque + cadence, and sends data digitally.
- Communication is usually via a UART or CAN-like protocol to the controller (varies by model).
- For the M560, reports so far suggest it uses a UART-based digital packet, not an analog voltage. That’s why you can’t just wire it to the VESC ADC.
Options for you
- Bypass the Bafang sensor, add your own PAS/torque sensor
- The simplest hack: replace with a 3rd-party bottom-bracket torque sensor (e.g. TDCM, Sempu, NCTE) that gives analog voltage or I²C output.
- The ESP32 reads torque/cadence, then sends a throttle signal to the VESC (via UART or CAN).
- Much easier than reverse-engineering Bafang’s closed sensor protocol.
- Reverse-engineer the M560’s sensor protocol
- You’d need to sniff the UART lines between the torque sensor and stock controller.
- Likely 5V TTL serial at ~9600–115200 baud.
- Packets will include torque, cadence, maybe temperature.
- Once decoded, the ESP32 could parse and forward torque → virtual throttle to the VESC.
- This is feasible (people have done it with M500/M600), but takes some work with a logic analyzer or oscilloscope.
- Run throttle-only, add cadence sensor
- If you’re okay without true torque sensing, you can wire a simple PAS disc + hall sensor to the ESP32 and simulate “assist” levels by mapping cadence → throttle command.
- Dead simple, and still rideable.
Implementation with ESP32 + VESC
- ESP32 reads torque/cadence (from Bafang sensor if decoded, or external sensor).
- ESP32 calculates desired assist power.
- ESP32 sends command to VESC via:
- UART (VESC Tool protocol) or
- CAN (if you want more robustness, since the 75100 supports CAN).
The VESC then just thinks it’s getting a throttle input.
So: Your FSESC75100 + ESP32 is totally viable.
The big decision is: do you want to invest time in reverse-engineering the M560 torque sensor packets, or just drop in a simpler third-party torque sensor that speaks analog/I²C?
Would you like me to dig into the known M500/M560 sensor protocol details (baud rate, packet structure, etc.) so you can decide if reverse-engineering is realistic, or would you prefer a parts list for plug-and-play external torque sensors that work with VESC?

