D-Drive 25amp ESC Downloads & Info (ESCape32)

Introducing the newest 32bit opensource technology with ESCape32! We're putting 32bit technology in the palm of your hand, with multi-platform access. Whether you're at your desktop, laptop, tablet, or cell phone using the ESCape32 Wifi-Link! Cross-platform compatibility is a snap, with no special downloads required, everything you need is accessed thru the Wifi-Link.
Simply connect thru Wifi, and experience even more tuning parameters than other popular 32bit firmware in the palm of your hand. We've added even more tuning parameters to ESCape32 that will provide more precise motor control and resolution. Featuring "bare-metal" based programming, most folks reporting a much more "connected" feel than they've experienced before! All while adding easier access to tuning then the competition!  Including custom programmable startup tones that allow you to play your favorite tune, or write your own, by using the native ESCape32 music format. Or by simply uploading your favorite RTTTL ring tone file, that is converted to the native music format.

Features:
• Cross-platform Wifi access on all devices
• Simple "Plug n' Play" access thru Wifi-Link
• Custom programmable startup tones
• Future-proof Wifi-Link programmer (sold separately)
• Sensorless brushless & brushed modes
• Advanced brushed mode settings
• Sinusoidal brushless mode for slow speed crawler control
• Programmable Low-Voltage Cutoff & Drag Brake
• Current limiter, telemetry, & frequency tuning

_______________________




_______________________

Latest Firmware version of ESCape32 for 25amp D-Drive Micro Sport:
ESCape32 firmware Rev. 11


Latest Firmware version of ESCape32 for 45amp D-Drive:
ESCape32 firmware Rev. 11


Latest Firmware version of ESCape32 for 25amp D-Drive Micro Pro:
ESCape32 firmware Rev. 11

_______________________

Latest Wifi-Link Update for our ESP32-S2 based Wifi-Link
EScape32 Wifi-Link Update 1.2
Please follow the link for directions on updating your Dinky R/C Wifi-Link
https://github.com/neoxic/ESCape32-WiFi-Link?tab=readme-ov-file

Basic instructions for updating your Wifi-Link
1) Plug in the wifi link to the computer using a USB cable;
2) Run the ESP32 Flash Tool (the latest is 3.9.6);
3) Select "ESP32-S2" as ChipType and "USB" as LoadMode;
4) Select "ESCape32-WiFi-Link-1.2-ESP32-S2.bin" as image (1) and set offset to "0x0" (2);
5) Make sure the wifi link's COM-port is selected (3);
6) Click "Start" (4).

_______________________

Latest Bootloader Installer for Migration from AM32 to ESCape32 for 25amp Micro Sport:
INSTALL_BOOT1_PA2-rev2.bin

For all information about ESCape32, 
please go to escape32.org


Settings

arm: 1
Wait for 250ms zero throttle on startup:

0: off
1: on
damp: 1
Damped mode (complementary PWM, active freewheeling):

0: off
1: on
revdir: 0
Reversed motor direction:

0: off
1: on
brushed: 0
Brushed mode:

0: off
1: on
In this mode, the ESC can be used with brushed motors connected to phases A and B (or C and B). The following settings have no effect: timing, sine_range, sine_power, freq_max, duty_spup, prot_stall.

timing: 16
Motor timing (15˚/16) [1..31].

sine_range: 0
Sine startup range (%) [0 - off, 5..25]. This value sets the portion of throttle range dedicated to sine startup mode (crawler mode). Damped mode must be enabled (the default) before sine startup mode can be activated.

sine_power: 8
Sine startup power (%) [1..15]. Use caution because higher values may lead to overheating.

freq_min: 24
Minimum PWM frequency (kHz) [16..48].

freq_max: 48
Maximum PWM frequency (kHz) [16..96]. Smooth transition from minimum to maximum PWM frequency happens across [30..60] kERPM range.

duty_min: 1
Minimum duty cycle (%) [1..100]. This value sets power level at minimum throttle.

duty_max: 100
Maximum duty cycle (%) [1..100]. This value sets power level at maximum throttle.

duty_spup: 10
Maximum duty cycle during spin-up (%) [1..50]. Higher values give more power to the motor until the first sync'ed revolution, yet may increase the risk of overheating should the motor get jammed during a full throttle punch. Do not exceed the default value unless you know what you are doing.

duty_ramp: 0
Maximum duty cycle ramp (kERPM) [0..100]. This value enables maximum power limiting between duty_spup and 100% based on RPM. It is most useful for taming a throttle punch at lower RPM.

duty_rate: 25
Acceleration slew rate (0.1%/ms) [1..100]. This value controls the speed of power increase during acceleration. Should the motor stutter on a full throttle punch, try decreasing this value. Alternatively, you can try increasing timing albeit at the cost of efficiency and torque.

duty_drag: 0
Drag brake amount when the motor is stopped (%) [0..100]. This value is also a starting brake amount in proportional brake mode (RC car mode).

throt_mode: 0
Throttle mode:

0: forward
1: forward/reverse
2: forward/brake/reverse (proportional brake mode)

throt_set: 0
Preset throttle (%) [0..100]. This value also serves as minimum throttle in analog mode. Arming must be disabled before a non-zero value can be set. For example:

set arm 0
set volume 0
set throt_set 10

throt_cal: 1
Automatic throttle calibration for standard servo PWM frequencies, e.g. 50Hz, 100Hz, 125Hz, 200Hz, 250Hz, 333Hz:

0: off
1: on
This mode works by aligning the internal clock with servo PWM period that is a multiple of 1000µs, i.e. for servo PWM frequency F=1000/n where n=3..20. It must be disabled should a non-standard servo PWM signal be used.

throt_min: 1000
Minimum throttle setpoint (µs).

throt_mid: 1500
Middle throttle setpoint (µs).

throt_max: 2000
Maximum throttle setpoint (µs).

input_mode: 0
Input mode:

0: servo/Oneshot125/DSHOT
1: analog
2: serial
3: iBUS
4: SBUS/SBUS2
5: CRSF
Analog mode:

Available on ESCs with PA2/PA6 input pin.
Throttle is unidirectional.
Minimum throttle is 0.1V (anything below is zero throttle).
Maximum throttle is 3.2V and above.
Serial mode:

Available on ESCs with PA2 input pin.
460800 baud, 8 data bits, no parity, 1 stop bit.
Update rate is 40Hz or higher.
Inbound frame format:
Byte0: descriptor
Low nibble: value type
0x0: none
0x1: throttle [-2000..2000]
0x2: reversed motor direction [0..1]
0x3: drag brake amount [0..100]
0x4: LED on/off bits [0..15]
High nibble: request type
0x0: none
0x8: combined telemetry
0x9: electrical revolution time (µs)
0xA: temperature (˚C)
0xB: voltage (V/100)
0xC: current (A/100)
0xD: consumption (mAh)
Byte1: value (low byte)
Byte2: value (high byte)
Byte3: CRC8 (byte0..byte2)
Outbound frame format:
Combined telemetry (0x8):
Byte0: temperature
Byte1: voltage (low byte)
Byte2: voltage (high byte)
Byte3: current (low byte)
Byte4: current (high byte)
Byte5: consumption (low byte)
Byte6: consumption (high byte)
Byte7: electrical revolution time (low byte)
Byte8: electrical revolution time (high byte)
Byte9: CRC8 (byte0..byte8)
Individual telemetry values (0x9..0xD):
Byte0: value (low byte)
Byte1: value (high byte)
Byte2: CRC8 (byte0..byte1)
SBUS/SBUS2 is uninverted on AT32F421 MCU. To enable SBUS2 telemetry, telem_mode must be set to 0 (KISS), and a non-zero physical ID must be assigned using telem_phid to determine telemetry slot range:

ID Slots
1 3..7
2 11..15
3 19..23
4 27..31
Three sensors are exposed on the bus by the firmware (ID=1 as an example):

SBS-01T - slot 3 (temperature)
SBS-01R - slot 4 (RPM)
SBS-01C - slot 5 (current), slot 6 (voltage), slot 7 (consumption)
input_chid: 0
Serial channel ID [0 - off, 1..14 - iBUS, 1..16 - SBUS/SBUS2/CRSF].

telem_mode: 0
Telemetry mode:

0: KISS
1: KISS auto
2: iBUS
3: S.Port
4: CRSF
In KISS auto and CRSF mode, telemetry data is sent every 32ms.

S.Port is uninverted on AT32F421 MCU.

telem_phid: 0
Telemetry physical ID [0 - off, 1..3 - iBUS, 1..28 - S.Port, 1..4 - SBUS2].

telem_poles: 14
Number of motor poles for RPM telemetry [2..100].

prot_stall: 0
Stall protection (ERPM) [0 - off, 1800..3200]. If enabled, up to 8% power boost is applied to prevent the motor from slowing down below the threshold. This value also overrides the default maximum RPM in sine startup mode (2300 ERPM).

prot_temp: 0
Temperature threshold (˚C) [0 - off, 60..140]. If enabled, maximum power is reduced when the MCU becomes hotter than this temperature. The maximum power reduction is 75% (50% during sine startup) at 15˚C above the theshold.

prot_volt: 0
Low voltage cutoff per battery cell (V/10) [0 - off, 28..38].

prot_cells: 0
Number of battery cells [0 - auto, 1..16].

prot_curr: 0
Maximum current (A) [0..255].

music
Startup music. A sequence of characters is translated into music in the following way:

An optional number in the beginning defines tempo (BPM);
_ (underscore) is a pause;
cdefgab are low notes;
CDEFGAB are high notes;
# (pound) after a note makes it a sharp note;
n (number) after a note or pause is a duration: 1 - 1/16 (default), 2 - 1/8, 3 - 3/16, 4 - 1/4, etc.
+ (plus) enables octave shift;
- (minus) disables octave shift;
volume: 25
Sound volume (%) [0..100].

beacon: 50
Beacon volume (%) [0..100].

bec: 0
BEC voltage control (if equipped):

0: 5.5V
1: 6.5V
2: 7.4V
3: 8.4V

led: 0
LED on/off bits [0..15].

 


_______________________




Music

Here's some tunes to play with!
By using the "Music" tab in your ESCape32 Wifi-Link!
Copy & Paste your favorite to the music tab, and it should play the tune as your startup song, followed by the battery count chimes. 

Looney Tunes

//char *song = "Looney:d=4,o=5,b=140:32p,c6,8f6,8e6,8d6,8c6,a.,8c6,8f6,8e6,8d6,8d#6,e.6,8e6,8e6,8c6,8d6,8c6,8e6,8c6,8d6,8a,8c6,8g,8a#,8a,8f";



20th Century Fox

//char *song = "20thCenFox:d=16,o=5,b=140:b,8p,b,b,2b,p,c6,32p,b,32p,c6,32p,b,32p,c6,32p,b,8p,b,b,b,32p,b,32p,b,32p,b,32p,b,32p,b,32p,b,32p,g#,32p,a,32p,b,8p,b,b,2b,4p,8e,8g#,8b,1c#6,8f#,8a,8c#6,1e6,8a,8c#6,8e6,1e6,8b,8g#,8a,2b";



Star Wars Theme

//char *song = "StarWars:d=4,o=5,b=45:32p,32f#,32f#,32f#,8b.,8f#.6,32e6,32d#6,32c#6,8b.6,16f#.6,32e6,32d#6,32c#6,8b.6,16f#.6,32e6,32d#6,32e6,8c#.6,32f#,32f#,32f#,8b.,8f#.6,32e6,32d#6,32c#6,8b.6,16f#.6,32e6,32d#6,32c#6,8b.6,16f#.6,32e6,32d#6,32e6,8c#6";



Good, Bad, and the Ugly

//char *song = "GoodBad:d=4,o=5,b=56:32p,32a#,32d#6,32a#,32d#6,8a#.,16f#.,16g#.,d#,32a#,32d#6,32a#,32d#6,8a#.,16f#.,16g#.,c#6,32a#,32d#6,32a#,32d#6,8a#.,16f#.,32f.,32d#.,c#,32a#,32d#6,32a#,32d#6,8a#.,16g#.,d#";



Top Gun

//char *song = "TopGun:d=4,o=4,b=31:32p,16c#,16g#,16g#,32f#,32f,32f#,32f,16d#,16d#,32c#,32d#,16f,32d#,32f,16f#,32f,32c#,16f,d#,16c#,16g#,16g#,32f#,32f,32f#,32f,16d#,16d#,32c#,32d#,16f,32d#,32f,16f#,32f,32c#,g#";



Super Mario Bros

Super Mario Bros Intro:b=115,o=5,d=4:16e6,32p, 16e6,16p,16e6,16p,16c6,16e6,16p,16g6,8p,16p,16g5,2p



Peter Gunn

pgunn1:d=4,o=3,b=260:8f.,16p,f,g,f,8g#,8a,f,a#,a,8f.,16p,f,g,f,8g#,8a,f,a#,a,8f.,16p,f,g,f,8g#,8a,f,a#,a,8f.,16p,f,g,f,8g#,8a,f,a#,a


Dukes of Hazard

DixieHorn:b=300,o=5,d=32:8g.,p,8e.,p,4c,p,4c,p,8c.,p,8d.,p,8e.,p,8f.,p,4g,p,4g,p,4g,p,4e



A-Team

//char *song = "A-Team:d=8,o=5,b=125:4d#6,a#,2d#6,16p,g#,4a#,4d#.,p,16g,16a#,d#6,a#,f6,2d#6,16p,c#.6,16c6,16a#,g#.,2a#";



Flintstones

//char *song = "Flinstones:d=4,o=5,b=40:32p,16f6,16a#,16a#6,32g6,16f6,16a#.,16f6,32d#6,32d6,32d6,32d#6,32f6,16a#,16c6,d6,16f6,16a#.,16a#6,32g6,16f6,16a#.,32f6,32f6,32d#6,32d6,32d6,32d#6,32f6,16a#,16c6,a#,16a6,16d.6,16a#6,32a6,32a6,32g6,32f#6,32a6,8g6,16g6,16c.6,32a6,32a6,32g6,32g6,32f6,32e6,32g6,8f6,16f6,16a#.,16a#6,32g6,16f6,16a#.,16f6,32d#6,32d6,32d6,32d#6,32f6,16a#,16c.6,32d6,32d#6,32f6,16a#,16c.6,32d6,32d#6,32f6,16a#6,16c7,8a#.6";



Jeopardy

//char *song = "Jeopardy:d=4,o=6,b=125:c,f,c,f5,c,f,2c,c,f,c,f,a.,8g,8f,8e,8d,8c#,c,f,c,f5,c,f,2c,f.,8d,c,a#5,a5,g5,f5,p,d#,g#,d#,g#5,d#,g#,2d#,d#,g#,d#,g#,c.7,8a#,8g#,8g,8f,8e,d#,g#,d#,g#5,d#,g#,2d#,g#.,8f,d#,c#,c,p,a#5,p,g#.5,d#,g#";



Inspector Gadget

//char *song = "Gadget:d=16,o=5,b=50:32d#,32f,32f#,32g#,a#,f#,a,f,g#,f#,32d#,32f,32f#,32g#,a#,d#6,4d6,32d#,32f,32f#,32g#,a#,f#,a,f,g#,f#,8d#";



Smurfs

//char *song = "Smurfs:d=32,o=5,b=200:4c#6,16p,4f#6,p,16c#6,p,8d#6,p,8b,p,4g#,16p,4c#6,p,16a#,p,8f#,p,8a#,p,4g#,4p,g#,p,a#,p,b,p,c6,p,4c#6,16p,4f#6,p,16c#6,p,8d#6,p,8b,p,4g#,16p,4c#6,p,16a#,p,8b,p,8f,p,4f#";



Mission Impossible

*song = "MissionImp:d=16,o=6,b=95:32d,32d#,32d,32d#,32d,32d#,32d,32d#,32d,32d,32d#,32e,32f,32f#,32g,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f,p,f#,p,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f,p,f#,p,a#,g,2d,32p,a#,g,2c#,32p,a#,g,2c,a#5,8c,2p,32p,a#5,g5,2f#,32p,a#5,g5,2f,32p,a#5,g5,2e,d#,8d";




YMCA

//char *song = "YMCA:d=4,o=5,b=160:8c#6,8a#,2p,8a#,8g#,8f#,8g#,8a#,c#6,8a#,c#6,8d#6,8a#,2p,8a#,8g#,8f#,8g#,8a#,c#6,8a#,c#6,8d#6,8b,2p,8b,8a#,8g#,8a#,8b,d#6,8f#6,d#6,f.6,d#.6,c#.6,b.,a#,g#";


Indiana Jones

Indy:d=4,o=5,b=250:e,8p,8f,8g,8p,1c6,8p.,d,8p,8e,1f,p.,g,8p,8a,8b,8p,1f6,p,a,8p,8b,2c6,2d6,2e6,e,8p,8f,8g,8p,1c6,p,d6,8p,8e6,1f.6,g,8p,8g,e.6,8p,d6,8p,8g,e.6,8p,d6,8p,8g,f.6,8p,e6,8p,8d6,2c6


Galaga

Galaga:d=4,o=5,b=125:8g4,32c,32p,8d,32f,32p,8e,32c,32p,8d,32a,32p,8g,32c,32p,8d,32f,32p,8e,32c,32p,8g,32b,32p,8c6,32a#,32p,8g#,32g,32p,8f,32d#,32p,8d,32a#4,32p,8a#,32c6,32p,8a#,32g,32p,16a,16f,16d,16g,16e,16d



Techy Electrical Startup

aburner:d=4,o=5,b=180:16a,32p,16g6,16p,16a6,16p,16a,16p,16e6,16p,16g6,16p,16a,16p,16d6,16p,16e6,16p,16a,16p,16c6,16p,16d6,16p,16a,16p,16c6,16p,16b,16p,16g,16p,16a,16p,16g6,16p,16a6,16p,16a,16p,16e6,16p,16g6,16p,16a,16p,16d6,16p,16e6,16p,16a,16p,16c6,16p,16d6,16p,16a,16p,16c6,16p,16b,16p,16g