ArduPilot / ArduPilot/MAVProxy
Joystick module will not load on macOS
- Dominant language
- Python
- Stars
- 595
- Forks
- 773
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 18
Description
The joystick module does not load correctly on macOS, raising an error if there is a matching joystick found.
### System
- Mac Pro 2019 x86_64 (also MacBook Pro aarch64)
- macOS Ventura 13.5
- Python 3.11.5
### Details
Install additional dependencies
```bash
python -m pip install pygame
```
Add joystick definition to `~/.mavproxy/joysticks/frsky_x10.yaml`
```yaml
description: FrSky X10 Joystick definition
match:
- FrSky X10 Joystick
controls:
# map axis id 2 to rc channel 1 (AILERON)
- channel: 1
type: axis
id: 2
# map axis id 3 to rc channel 2 (ELEVATOR)
- channel: 2
type: axis
id: 3
# map axis id 1 to rc channel 3 (THROTTLE)
- channel: 3
type: axis
id: 1
invert: true
# map axis id 0 to rc channel 4 (YAW)
- channel: 4
type: axis
id: 0
# map switch SA id 6 to rc channel 5
- channel: 5
type: axis
id: 6
# map switch SA and SB id 7 to rc channel 5 (RC5_OPTION=0 Default Flight Mode)
- channel: 5
type: axis
id: 7
# map switch id 6 to rc channel 7 (RC7_OPTION=153 Arm/Disarm)
- channel: 7
type: axis
id: 6
# map toggle switch id 0 to rc channel 9 (RC9_OPTION=31 Motor Emergency Stop)
- channel: 9
type: button
id: 0
```
Run SITL and load joystick module:
```console
$ sim_vehicle.py -D -v ArduCopter -f quad --console --map
STABILIZE> module load joystick
STABILIZE> pygame 2.5.2 (SDL 2.28.3, Python 3.11.5)
Hello from the pygame community. https://www.pygame.org/contribute.html
MAVProxy.modules.mavproxy_joystick: Found joystick (FrSky X10 Joystick)
MAVProxy.modules.mavproxy_joystick: Using /Users/rhys/.mavproxy/joysticks/frsky_x10.yaml ("FrSky X10 Joystick" matches pattern "FrSky X10 Joystick")
Loaded module joystick
2023-12-01 12:44:04.754 Python[12468:57426665] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'nextEventMatchingMask should only be called from the Main Thread!'
*** First throw call stack:
(
0 CoreFoundation 0x00007ff81275318a __exceptionPreprocess + 242
1 libobjc.A.dylib 0x00007ff81227942b objc_exception_throw + 48
2 AppKit 0x00007ff815775b50 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3848
3 libSDL2-2.0.0.dylib 0x00000002324bc3f7 Cocoa_PumpEventsUntilDate + 103
4 libSDL2-2.0.0.dylib 0x00000002324bc6db Cocoa_PumpEvents + 59
5 libSDL2-2.0.0.dylib 0x00000002323e7c51 SDL_PumpEvents_REAL + 33
6 event.cpython-311-darwin.so 0x00000002302cff70 pg_event_get + 160
7 Python 0x000000010ffea067 cfunction_call + 50
8 Python 0x000000010ffa6e28 _PyObject_MakeTpCall + 126
9 Python 0x000000011007aa7d _PyEval_EvalFrameDefault + 45620
10 Python 0x000000011007f553 _PyEval_Vector + 92
11 Python 0x000000011007cd2b _PyEval_EvalFrameDefault + 54498
12 Python 0x000000011007f553 _PyEval_Vector + 92
13 Python 0x000000010ffaa33e method_vectorcall + 439
14 Python 0x000000011012c5b6 thread_run + 148
15 Python 0x00000001100d18b6 pythread_wrapper + 36
16 libsystem_pthread.dylib 0x00007ff8126001d3 _pthread_start + 125
17 libsystem_pthread.dylib 0x00007ff8125fbbd3 thread_start + 15
)
libc++abi: terminating due to uncaught exception of type NSException
SIM_VEHICLE: MAVProxy exited
SIM_VEHICLE: Killing tasks
```
Looks like it may be similar to previous issues observed on macOS concerning GUI / threading.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.