Code cleanup

This commit is contained in:
Christoffer Martinsson 2025-01-16 13:13:22 +01:00
parent 69cd055d7f
commit 91acffdc34
2 changed files with 27 additions and 23 deletions

View File

@ -5,7 +5,7 @@ RC(ELRS)/USB Joystick with 2 hall effect gimbals, 2 hat switches and 25 buttons
## Layout
```cpp
Button index map:
HW Button index map:
---------------------------------------------------------------
| 0 L| 1 U| | 2 | | 3 L| 4 U|
---------------------------------------------------------------
@ -19,7 +19,7 @@ Button index map:
| | 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|
---------------------------------------------------------------
@ -32,16 +32,16 @@ USB HID joystick map:
| | H1L | B18 | H1R | | H2L | B19 | H2R | |
| | 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).
Button (switch) 12 changes following:
* B4 => B21
* B5 => B22
* B14 => B23
* B15 => B24
* 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|
---------------------------------------------------------------
@ -84,13 +84,14 @@ Config Layer (holding CONFIG button)
- 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 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)
- 1x Bottom case (3D printed)
- 1x Top plate (3D printed)
- 2x Hat swith top (3D printed) [stl](/mCAD/Hat_Castle_Short_scale_99_99_130.stl)
- 1x Custom PCB (CMDR Joystick 25 rev A)
- ![pcb_top](/eCAD/cmdr-joystick/cmdr-joystick_rev_a_board_top.png)
- ![pcb_top](/eCAD/cmdr-joystick/cmdr-joystick_rev_a_board_top.png)
- ![pcb_bottom](/eCAD/cmdr-joystick/cmdr-joystick_rev_a_board_bottom.png)
- Gerber files: [zip](/eCAD/cmdr-joystick/cmdr-joystick_rev_a_gerber.zip)
- 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)
- 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)
- 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/)
- Reprogramming instructions (using ExpressLRS Configurator):
1. Select latest release
2. Device category = Generic target used as base 2.4Ghz
3. Device = Generic ESP32 2.4GHz Gemini TX
4. Flash to device
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}
```
```
## Software Build environment
##### Rust
- Cargo (rust embedded)
- Flashing via Cargo
- Press and hold boot button on rp2040zero board while perform a reset
- Press and hold CONF and press BOOT button.
- Cargo (rust embedded)
- Flashing via Cargo
- Press and hold boot button on rp2040zero board while perform a reset
- Press and hold CONF and press BOOT button.
## 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.
3. Move both gimbals to all corners.
4. Press right hat switch to save calibration data to eeprom.

View File

@ -791,10 +791,10 @@ fn get_joystick_report(
let rx: u16 = AXIS_CENTER;
let ry: u16 = AXIS_CENTER;
let rz: u16 = axis[GIMBAL_AXIS_LEFT_Y].value;
let (mut hat1, _hat_button1) = format_hat_value(0);
let (mut hat2, _hat_button2) = format_hat_value(0);
let (mut hat3, _hat_button3) = format_hat_value(0);
let (mut hat4, _hat_button4) = format_hat_value(0);
let mut hat1: u8 = 0xf;
let mut hat2: u8 = 0xf;
let mut hat3: u8 = 0xf;
let mut hat4: u8 = 0xf;
// Store hat bits
let mut hat_left: u8 = 0;