Skip to content
JazzMaverick edited this page Jun 3, 2020 · 8 revisions

BLHeli_M - Maverick version

Based on BLHeli_S, but many features are not accepted by BLHeli_S thread. So now it is a new project BLM and a new RCG thread.

BLM RCG

Rev16.9

a. Keep only PWM 96Khz for all small and large motors.

b. Add ESC Feedforward. Acceleration and brake can be tuned by "PPM Min Throttle" in flash memory.

Since motor response becomes fast, much lower BF FF is required.

Rev16.8, compares to 16.7

a. Add Reversed Dshot and telemetry 150/300/600

b. Rremove other protocols

c. Add PWM 48k/96k modes

d. Add delta-sigma DAC for 2048 PWM steps

e. Add PWM alignment (Sync-PWM)

f. Move dshot processes to main loop for better efficiency

g. Remove support for deadtime=0

Rev16.71

  1. Add Reversed Dshot 300/600
  2. Add Dshot tlm375/750, tlm always after a reversed dshot, no command to start/stop tlm
  3. Rremove other protocols
  4. Support only BB2/49Mhz

I added the dshot telemetry function to rev16.7 and revise it to 16.71. This is a tested but still preliminary version.

Thanks for Joelucid bringing us RPM filter in Betaflight.

The RPM telemetry uses different protocol.

  1. Normal Dshot does not support telemetry. Only reversed Dshot does.
  2. Reversed Dshot inverses logic levels and also the 4bit checksum.
  3. Telemetry bit rates are 400/800kbps for dshot 300/600.
  4. Telemetry data is one electrical commutation time (eCOMM) in us.
  5. Formate of the eCOMM time is 12bit fix-precision integer: eeem mmmm mmmm.
  6. Telemetry data add a 4bit XOR checksum (inversed) at the end and is then 16bit in total.
  7. Telemetry packet becomes 20bit further coded from 16bit data using GCR: (0,2) RLL.
  8. Use NRZM to send the packet with MSB first and one start bit.

Thanks Ian444 for the motor noise plots and also test flights with good results. https://www.rcgroups.com/forums/showpost.php?p=43275163&postcount=5269 https://www.rcgroups.com/forums/showpost.php?p=43321381&postcount=5338

Rev16.72

  1. Change timming to tlm375/750
  2. Modify delay between dshot/tlm to 30us to meet spec.
  3. Fix dshot decoder INT0 wrapped issue (dshot packet loss potentially).

a. Add 10us waiting to start tlm because FC needs more time than BB2 to switch lines.

b. Dshot is a RZ signal needs double bandwidth than a NRZ format. Timming is critical especially there is a '0' following '1'. We found that if a dshot packet is dropped because of bad bit time, then a tlm packet is missing. This version try to make response time of INT0 faster. Add addjust bit time tolerance. I found no packet loss but still very few checksum error. More error could be found by mass test data although bit time issus is improved. I think a hardware serial communication is preferred.

https://www.rcgroups.com/forums/showpost.php?p=43349291&postcount=5355

Clone this wiki locally