Code cleanup
This commit is contained in:
parent
69cd055d7f
commit
91acffdc34
42
README.md
42
README.md
@ -5,7 +5,7 @@ RC(ELRS)/USB Joystick with 2 hall effect gimbals, 2 hat switches and 25 buttons
|
|||||||
## Layout
|
## Layout
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
Button index map:
|
HW Button index map:
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
| 0 L| 1 U| | 2 | | 3 L| 4 U|
|
| 0 L| 1 U| | 2 | | 3 L| 4 U|
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
@ -19,7 +19,7 @@ Button index map:
|
|||||||
| | 18 | | 23 | |
|
| | 18 | | 23 | |
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
|
|
||||||
USB HID joystick map:
|
USB HID joystick map (Enabled by pressing HW button 2+4):
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
| B1 L| B2 U| | B3 | | B4 L| B5 U|
|
| B1 L| B2 U| | B3 | | B4 L| B5 U|
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
@ -32,16 +32,16 @@ USB HID joystick map:
|
|||||||
| | H1L | B18 | H1R | | H2L | B19 | H2R | |
|
| | H1L | B18 | H1R | | H2L | B19 | H2R | |
|
||||||
| | H1D | | H2D | |
|
| | H1D | | H2D | |
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
Button (Switch) 7 changes following:
|
Press and hold HW button 0 (B1) changes following:
|
||||||
|
* B2 => B21
|
||||||
|
* B4 => B22
|
||||||
|
* B11 => B23
|
||||||
|
* B12 => B24
|
||||||
* hat1 => hat3 (button press B20).
|
* hat1 => hat3 (button press B20).
|
||||||
Button (switch) 12 changes following:
|
|
||||||
* B4 => B21
|
|
||||||
* B5 => B22
|
|
||||||
* B14 => B23
|
|
||||||
* B15 => B24
|
|
||||||
* hat2 => hat4 (button bpress B25)
|
* hat2 => hat4 (button bpress B25)
|
||||||
|
|
||||||
ELRS channel map (+ = ON, - = OFF, CHxP/M/Z = trim)
|
ELRS channel map (Enabled by pressing HW button 2+3):
|
||||||
|
(+ = ON, - = OFF, CHxP/M/Z = trim)
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
|CH7-L|CH7+U| | - | |CH8-L|CH8+U|
|
|CH7-L|CH7+U| | - | |CH8-L|CH8+U|
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
@ -84,13 +84,14 @@ Config Layer (holding CONFIG button)
|
|||||||
- 2x FrSky M7 or M10 gimbals [M7 datasheet](https://www.frsky-rc.com/product/m7/)
|
- 2x FrSky M7 or M10 gimbals [M7 datasheet](https://www.frsky-rc.com/product/m7/)
|
||||||
- 6x Kailh choc low profile switches [Brown](http://www.kailh.com/en/Products/Ks/CS/)
|
- 6x Kailh choc low profile switches [Brown](http://www.kailh.com/en/Products/Ks/CS/)
|
||||||
- 6x Cherry MX switches [Brown](https://www.cherrymx.de/en/cherry-mx/mx-original/mx-brown.html)
|
- 6x Cherry MX switches [Brown](https://www.cherrymx.de/en/cherry-mx/mx-original/mx-brown.html)
|
||||||
- 2x Miniature Toggle Switch (M6 shaft, 7-8mm wide body. Ex Apem 5636) [Apem 5000 series](https://www.farnell.com/datasheets/2626614.pdf?_ga=2.22934718.461231604.1570510103-1672862477.1542183430)
|
- 2x Miniature Toggle Switch (M6 shaft, 7-8mm wide body. Ex Apem 5636) [Apem 5000 series](https://www.farnell.com/datasheets/2626614.pdf?_ga=2.22934718.461231604.1570510103-1672862477.1542183430)
|
||||||
- 2x Alpine RKJXM1015004 hat switches [pdf](https://www.mouser.se/datasheet/2/15/RKJXM-1662398.pdf)
|
- 2x Alpine RKJXM1015004 hat switches [pdf](https://www.mouser.se/datasheet/2/15/RKJXM-1662398.pdf)
|
||||||
- 1x Bottom case (3D printed)
|
- 1x Bottom case (3D printed)
|
||||||
- 1x Top plate (3D printed)
|
- 1x Top plate (3D printed)
|
||||||
- 2x Hat swith top (3D printed) [stl](/mCAD/Hat_Castle_Short_scale_99_99_130.stl)
|
- 2x Hat swith top (3D printed) [stl](/mCAD/Hat_Castle_Short_scale_99_99_130.stl)
|
||||||
- 1x Custom PCB (CMDR Joystick 25 rev A)
|
- 1x Custom PCB (CMDR Joystick 25 rev A)
|
||||||
- 
|
|
||||||
|
- 
|
||||||
- 
|
- 
|
||||||
- Gerber files: [zip](/eCAD/cmdr-joystick/cmdr-joystick_rev_a_gerber.zip)
|
- Gerber files: [zip](/eCAD/cmdr-joystick/cmdr-joystick_rev_a_gerber.zip)
|
||||||
- Schematics: [pdf](/eCAD/cmdr-joystick/cmdr-joystick_rev_a_schematics.pdf)
|
- Schematics: [pdf](/eCAD/cmdr-joystick/cmdr-joystick_rev_a_schematics.pdf)
|
||||||
@ -100,26 +101,30 @@ Config Layer (holding CONFIG button)
|
|||||||
- P-Fet si2372eds: [pdf](https://www.vishay.com/docs/63924/si2371eds.pdf)
|
- P-Fet si2372eds: [pdf](https://www.vishay.com/docs/63924/si2371eds.pdf)
|
||||||
- N-Fet 2N7002: [pdf](https://www.mouser.se/datasheet/2/408/T2N7002AK_datasheet_en_20150401-1916411.pdf)
|
- N-Fet 2N7002: [pdf](https://www.mouser.se/datasheet/2/408/T2N7002AK_datasheet_en_20150401-1916411.pdf)
|
||||||
- Small signal diod 1N4148W: [pdf](https://www.diodes.com/assets/Datasheets/BAV16W_1N4148W.pdf)
|
- Small signal diod 1N4148W: [pdf](https://www.diodes.com/assets/Datasheets/BAV16W_1N4148W.pdf)
|
||||||
|
|
||||||
- 1x ELRS TX (using a EP1 TCXO Dual receiver reprogrammed as a tramsmitter)
|
- 1x ELRS TX (using a EP1 TCXO Dual receiver reprogrammed as a tramsmitter)
|
||||||
|
|
||||||
- [Link to EP1](https://www.happymodel.cn/index.php/2022/11/07/2-4g-elrs-ep1-ep2-ep1dual-tcxo-receiver/)
|
- [Link to EP1](https://www.happymodel.cn/index.php/2022/11/07/2-4g-elrs-ep1-ep2-ep1dual-tcxo-receiver/)
|
||||||
- Reprogramming instructions (using ExpressLRS Configurator):
|
- Reprogramming instructions (using ExpressLRS Configurator):
|
||||||
|
|
||||||
1. Select latest release
|
1. Select latest release
|
||||||
2. Device category = Generic target used as base 2.4Ghz
|
2. Device category = Generic target used as base 2.4Ghz
|
||||||
3. Device = Generic ESP32 2.4GHz Gemini TX
|
3. Device = Generic ESP32 2.4GHz Gemini TX
|
||||||
4. Flash to device
|
4. Flash to device
|
||||||
5. Use following custom settings in 10.0.0.1/hardware.html:
|
5. Use following custom settings in 10.0.0.1/hardware.html:
|
||||||
```
|
|
||||||
|
```
|
||||||
{"customised":"true","serial_rx":3,"serial_tx":1,"radio_busy":36,"radio_dio1":37,"radio_miso":33,"radio_mosi":32,"radio_nss":27,"radio_rst":26,"radio_sck":25,"radio_busy_2":39,"radio_dio1_2":34,"radio_nss_2":13,"power_rxen":10,"power_txen":14,"power_rxen_2":9,"power_txen_2":15,"power_min":0,"power_high":2,"power_max":2,"power_default":0,"power_control":0,"power_values":[-10,-6,-3],"button":0,"led_rgb":22,"led_rgb_isgrb":true,"screen_type":0}
|
{"customised":"true","serial_rx":3,"serial_tx":1,"radio_busy":36,"radio_dio1":37,"radio_miso":33,"radio_mosi":32,"radio_nss":27,"radio_rst":26,"radio_sck":25,"radio_busy_2":39,"radio_dio1_2":34,"radio_nss_2":13,"power_rxen":10,"power_txen":14,"power_rxen_2":9,"power_txen_2":15,"power_min":0,"power_high":2,"power_max":2,"power_default":0,"power_control":0,"power_values":[-10,-6,-3],"button":0,"led_rgb":22,"led_rgb_isgrb":true,"screen_type":0}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Software Build environment
|
## Software Build environment
|
||||||
|
|
||||||
##### Rust
|
##### Rust
|
||||||
|
|
||||||
- Cargo (rust embedded)
|
- Cargo (rust embedded)
|
||||||
- Flashing via Cargo
|
- Flashing via Cargo
|
||||||
- Press and hold boot button on rp2040zero board while perform a reset
|
- Press and hold boot button on rp2040zero board while perform a reset
|
||||||
- Press and hold CONF and press BOOT button.
|
- Press and hold CONF and press BOOT button.
|
||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
@ -132,4 +137,3 @@ Config Layer (holding CONFIG button)
|
|||||||
2. Press and hold CONF button and press CAL botton. Status led will start blinking green.
|
2. Press and hold CONF button and press CAL botton. Status led will start blinking green.
|
||||||
3. Move both gimbals to all corners.
|
3. Move both gimbals to all corners.
|
||||||
4. Press right hat switch to save calibration data to eeprom.
|
4. Press right hat switch to save calibration data to eeprom.
|
||||||
|
|
||||||
|
|||||||
@ -791,10 +791,10 @@ fn get_joystick_report(
|
|||||||
let rx: u16 = AXIS_CENTER;
|
let rx: u16 = AXIS_CENTER;
|
||||||
let ry: u16 = AXIS_CENTER;
|
let ry: u16 = AXIS_CENTER;
|
||||||
let rz: u16 = axis[GIMBAL_AXIS_LEFT_Y].value;
|
let rz: u16 = axis[GIMBAL_AXIS_LEFT_Y].value;
|
||||||
let (mut hat1, _hat_button1) = format_hat_value(0);
|
let mut hat1: u8 = 0xf;
|
||||||
let (mut hat2, _hat_button2) = format_hat_value(0);
|
let mut hat2: u8 = 0xf;
|
||||||
let (mut hat3, _hat_button3) = format_hat_value(0);
|
let mut hat3: u8 = 0xf;
|
||||||
let (mut hat4, _hat_button4) = format_hat_value(0);
|
let mut hat4: u8 = 0xf;
|
||||||
|
|
||||||
// Store hat bits
|
// Store hat bits
|
||||||
let mut hat_left: u8 = 0;
|
let mut hat_left: u8 = 0;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user