VelociDrone needs write permissions to the flight control to recognise it.
The issue can be fixed by adding file with udev rule:


1. Verify that the joystick device is visible in the system:


$ ls -l /dev/input/js* crw-rw-r--. 1 root input 13, 0 Jan 10 17:37 /dev/input/js0

2. Find the USB vendor and device IDs. What you're looking for in the output from lsusb is the pair of hex numbers after "ID". In my case they were 0483 and 3256. For your controller the numbers may be different. If you can't find the device, try to compare outputs from lsusb with controller connected and disconnected. The device you're looking for is the one which appears after the board is connected.


$ lsusb
...

Bus 001 Device 033: ID 0483:3256 STMicroelectronics 

...

3. Using a text editor create text file /etc/udev/rules.d/99-BetaflightSim.rules with rule(s) setting permissions on the device. Here's how mine looks:


#Micro LUX v2 F4 OSD ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3256", MODE="0666"

idVendor is the first of the two numbers you found in lsusb output, and idProduct is the second one. You can append another line for your controller, or modify the first one. You can have multiple rules in the file.


4. Reload the rules:


sudo udevadm control --reload-rules

5. Unplug the board and plug again.


6. Check permissions:


$ ls -l /dev/input/js* crw-rw-rw-. 1 root input 13, 0 Jan 10 17:37 /dev/input/js0

Now your controller should be visible to Velocidrone.