A. USB-TTL modules, such as CP210x, FTDI
1. Wiring
- TX2 — USB-TTL module RX
- RX2 — USB-TTL module TX
- 4v5 — USB-TTL module 5V
- G — USB-TTL module GND
2. Connect USB-TTL module to PC
3. CRSF-PWM board CLI mode will active after powering on for 10 seconds
4. Open Matek configurator, Select COM port of USB-TTL, Baud rate 115200, Click “Connect”
5. Type command “help”
B. INAV/BF serial passthrough
1. Wiring
- TX2 — FC any spare UART_RX
- RX2 — FC any spare UART_TX
- 4v5 — FC 5V or 4V5
- G — FC GND
2. Connect FC USB to PC
3. CRSF-PWM board CLI mode will active after powering on for 10 seconds
4. open INAV/BF configurator, connect FC to configurator
5. click INAV/BF configurator “CLI” tab, type “serialpassthrough x 115200”, x = UART number -1, e.g. CRSF-PWM board connect to FC UART4, type “serialpassthrough 3 115200”.
6. Type command “help”
************************************************************
*************** Type all command with lowercase ***************
************************************************************
help
List all commands
- help
- version
- reboot
- get failsafe
- get channel
- get tim
- get scale
- get battery
- get baro (fw 2.0.0 or newer)
- set tim[n] = [x](n:1,2,3,16; freq:50,100,160,330,400)
- set vbat_scale = [x](60 – 210)
- set current_scale = [x](50 – 500)
- set output_5 = ch[x](11 or 12)
version
list CRSF-PWM firmware version
- CRSF_PWM App v0.9.5(Sep 25 2021)
reboot
restart CRSF-PWM board
- If receiver is connected and bound to transmitter, Failsafe value will be reset according to the transmitter joystick position.
get failsafe
list failsafe value saved
- PWM CH1_failsafe = 1500;
- PWM CH2_failsafe = 1500;
- PWM CH3_failsafe = 988;
- PWM CH4_failsafe = 1500;
- PWM CH5_failsafe = 1000;
- PWM CH6_failsafe = 1000;
- PWM CH7_failsafe = 1000;
- PWM CH8_failsafe = 1000;
- PWM CH9_failsafe = 2000;
- PWM CH10_failsafe = 2000;
get channel
list all channels PWM value according to joystick position if receiver is connected and bound to transmitter
If receiver is not connected or not bound to transmitter, the CH PWM value = failsafe value saved
- CH1 = 1502;
- CH2 = 1500;
- CH3 = 1007;
- CH4 = 1498;
- CH5 = 1000;
- CH6 = 1000;
- CH7 = 1000;
- CH8 = 1000;
- CH9 = 2000;
- CH10 = 2000;
get tim
list PWM frequency on all TIM
- TIM2 = 50Hz (CH1,2,4);
- TIM16 = 50Hz (CH3);
- TIM3 = 50Hz (CH5,6,7,8);
- TIM1 = 50Hz (CH9,10);
set tim[n] = [x](n:1,2,3,16; freq:50,100,160,330,400)
set PWM frequency on each TIM/CH
- “n” range: 1, 2, 3, 16
- “[x]” range: 50, 100, 160, 300, 400
- TIM2: CH1, CH2, CH4
- TIM16: CH3
- TIM3: CH5, CH6, CH7, CH8
- TIM1: CH9, CH10
- 50Hz by default. Compatible with both old school and modern PWM ESC/servos
- Check ESC and servos datasheet to make sure the ESC and servos can work stably at that PWM frequency you will set.
- Usually Analog servos work at 50Hz only, some digital servos can work at 400Hz. ESC supported by oneshot/DShot can work at 400Hz PWM
- e.g. type “set tim16 = 400”, PWM output on CH3 will run at 400Hz
- e.g. type “set tim2 = 100”, PWM output on CH1, CH2,CH4 will run at 100Hz
get scale
- vbat_scale = 110;
- current_scale = 150;
get battery
list Battery voltage and current, Even if there is no current through the shunt resistor, there may be a certain current reading due to the offset and tolerance of current sensor.
- voltage = 0(mV);
- current = 0(mA);
get baro (fw 2.0.0 or newer)
list barometer altitude and temperature, support MS5611 (I2C address 0x77) and SPL06-001 (I2C address 0x76)
- SPL06: alti = 10(cm), temp = 20(C);
set vbat_scale = [x](60 – 210)
- 1K:10K resistor: 110 by default
- Because of components tolerance you can adjust this to match with multimeter readout.
set current_scale = [x](50 – 500)
- current_scale = 150 by default
- If current readout 10A on telemetry, 10.8A on current meter, you can set the scale to (10.8/10)*150=162
- For using external current sensor on CRSF-PWM-6, You can adjust this value to match with the scale of external current sensor.
set output_5 = ch[x](5/11/12)
- output_5 pin is defined as CH5(AUX1) by default, ELRS AUX1(CH5) is 1-bit / 2-position channel.
- In ELRS 2.0 Wide switch mode, AUX2-AUX8(CH6~CH12) are 7-bit (128 position) for telemetry ratios 1:128 through 1:8, or 6-bit (64 position) for 1:4 and 1:2.
- with this CLI command, You can remap AUX7(ch11) or AUX8(ch12) signal to output_5 pin of CRSF-PWM board. then you will get 128-position channel instead of 2-position on “output 5” pin
Receiver Firmware update
- Receiver has ExpressLRS 2.2.0 preloaded with binding phrase “123456”, the Receiver will never enter binding mode if using the traditional binding procedure.
- It must be flashed without a binding phrase to do traditional binding OR flashed with your binding phrase.
Flashing via Wifi
- Disconnect ESC and servos from receiver first.
- Power on receiver by 5V source. Receiver’s LED(Red) will blink slow at first, and after 20s, it should blink fast indicating it’s on Wifi Hotspot Mode.
- More detailed steps, pls refer this page.
- configurator, Target: Generic ESP8285 2.4Ghz RX, or RadioMaster RP1 2.4GHz RX , or HappyModel EP1/EP2 2.4GHz RX
Flashing via UART
- Disconnect ESC and servos from receiver first.
- Wire the receiver into the USB-TTL adapter, with TX on receiver(top board) connected to the Rx on the USB-TTL, and RX on receiver(top board) connected to the Tx of the USB-TTL. Wire 5V and GND of the USB-TTL to 5V and GND of the Receiver.
- Press the boot button while powering on the receiver and CRSF-PWM board, (either button on reeciver board or button on CRSF-PWM-V board). and release – the Red LED on receiver should now be solid. and Blue LED on CRSF-PWM-V should now be fast blink
- configurator, Select the target Generic ESP8285 2.4Ghz RX, (or RadioMaster RP1 2.4GHz RX, or HappyModel EP1/EP2 2.4GHz RX) and “UART” for Flashing Method, set your bind phrase and Firmware Options , Check “erase before flash” and “Force FLash “.
Tips
- Tx/Rx on the top ELRS receiver is for flashing ELRS firmware
- TX2/RX2 for GPS connection or flashing firmware of bottom CRSF-PWM board