Teensy 4.1 and Foxeer ESC runnning BLHeli_32



I am not sure if this is the correct forum for this question, but I’ve tried lots of different things and am totally stuck.

I am using a Teensy 4.1 to try and control a FOXEER_Reaper_4IN1_65A_128_Multi_32_8 ESC, without any success.

I need to use Dshot protocol as part of my project, as I will need to read telemetry data at a later stage. I have used my code to run two other ESCs and the motor spins as I would expect. The motor also spins when connected to the Foxeer if I use PWM.

I use pin 2 to hold the Teensy in a wait state, and pin 8 as the Dshot signal to the ESC. On power-up I hear three beeps, then I set pin 2 low and hear another two beeps, which I understand to mean that the ESC is armed and ready to go.

I read a potentiometer in A1 and map the output to pin 8. The output is low at the start of the sequence but when I increase it the motor doesn’t spin.

The same initialisation code was used for a Chaos ESC and a Busy Bee ESC, the only difference being that they were running BLHeli_S code, whereas the Foxeer runs Blheli_32.

I have attached my code and would be extremely grateful if someone could point me in the direction that will get the motor to spin.

The code that sends the Dshot600 messages uses a bit bashing routine and the waveform looks okay on the scope, and drives the other two ESCs.

I have contacted Unmanned and Foxeer, but I believe that BLHeli32 isn’t open source, unlike BLHeli32_S, so they couldn’t give me any pointers.

I have tried various configurations, timeouts etc and have now run out of ideas, so any help would be appreciated!





  • DShot_ESC.h
    3 KB · Views: 32
  • Dshot_ESC.ino
    10.5 KB · Views: 32