Welcome to our Community
Wanting to join the rest of our members? Feel free to sign up today.
Sign up

Issues with SkyController Remapping on Ubuntu 22.04 & ROS 2

lucasbmello

New member
Joined
Mar 1, 2025
Messages
3
Reaction score
0
Hi there,

I am not sure if this is the best forum for my question, but here we go.
I am conducting research with the Bebop 2 and encountering issues with the SkyController. My goal is to remap the controller and modify the drone's command inputs. While I could use another joystick, such as a PlayStation or Xbox controller, I still need the SkyController’s Wi-Fi antenna to extend the drone’s range.

I am attempting to achieve this using ROS 2 but have encountered two main problems:

  1. Ubuntu 22.04 does not recognize the SkyController as a joystick—it does not appear on any port. I've tried the "lsusb" command, but it doesn't show anything different. I've already tried via USB-C and Bluetooth.
  2. I need to intercept the direct commands from the controller to the drone so that they are processed only through the computer using ROS.
Note: I am not using the parrot app. I want to control everything on my computer with the SkyController via ROS.

In summary, what I want to do is use the SkyController as a Wi-Fi range extender, prevent it from sending packets to the drone, and remap its buttons so I can send commands using ROS.
Any help would be greatly appreciated!

Best regards,
Lucas
 
Hi there,

I am not sure if this is the best forum for my question, but here we go.
I am conducting research with the Bebop 2 and encountering issues with the SkyController. My goal is to remap the controller and modify the drone's command inputs. While I could use another joystick, such as a PlayStation or Xbox controller, I still need the SkyController’s Wi-Fi antenna to extend the drone’s range.

I am attempting to achieve this using ROS 2 but have encountered two main problems:

  1. Ubuntu 22.04 does not recognize the SkyController as a joystick—it does not appear on any port. I've tried the "lsusb" command, but it doesn't show anything different. I've already tried via USB-C and Bluetooth.
  2. I need to intercept the direct commands from the controller to the drone so that they are processed only through the computer using ROS.
Note: I am not using the parrot app. I want to control everything on my computer with the SkyController via ROS.

In summary, what I want to do is use the SkyController as a Wi-Fi range extender, prevent it from sending packets to the drone, and remap its buttons so I can send commands using ROS.
Any help would be greatly appreciated!

Best regards,
Lucas
Hey there! I have been doing technical research on the bb2 and skycontroller 2 as a uni student mainly to write custom executables on both and alter the firmware, I do not know how to specifically help you with your situation but I know how to help you go on a deep dive on both the drone's and the SCs shells, they both run busybox. For the drone do 4 short presses to enable telnet, after that install ADB on your computer (android debug bridge). Connect to the drone via telnet and connect the SC to the drone. After that, Find the controller's IP address, connect to it via ADB and launch the telnet daemon so you can connect direct to the controller's shell. Should be straightforward from there to write custom code and disable the stock mappings. Hope this helps! also enable telnet on startup on both to save the headache the next time :P. On that, I have made a firmware mod that greatly extends the SCs range. bumping up the stock power from 24mW to approx 240mW, => -20 dbm to 2dbm.
 
Hey there! I have been doing technical research on the bb2 and skycontroller 2 as a uni student mainly to write custom executables on both and alter the firmware, I do not know how to specifically help you with your situation but I know how to help you go on a deep dive on both the drone's and the SCs shells, they both run busybox. For the drone do 4 short presses to enable telnet, after that install ADB on your computer (android debug bridge). Connect to the drone via telnet and connect the SC to the drone. After that, Find the controller's IP address, connect to it via ADB and launch the telnet daemon so you can connect direct to the controller's shell. Should be straightforward from there to write custom code and disable the stock mappings. Hope this helps! also enable telnet on startup on both to save the headache the next time :P. On that, I have made a firmware mod that greatly extends the SCs range. bumping up the stock power from 24mW to approx 240mW, => -20 dbm to 2dbm.
Hi,
Thank you so much for your reply!

I've never heard of Telnet before. Basically, it's a protocol that allows me to directly connect to the drone and SC, right?
I thought modifying the firmware would be complex and unsafe. Does this method allow me to change the firmware, or does it just add some code that modifies the functionalities?
 
Hi,
Thank you so much for your reply!

I've never heard of Telnet before. Basically, it's a protocol that allows me to directly connect to the drone and SC, right?
I thought modifying the firmware would be complex and unsafe. Does this method allow me to change the firmware, or does it just add some code that modifies the functionalities?
Oh really? Telnet gives you direct shell access (kernel level) with root permissions, the filesystem is mainly read only but you can change it with running mount -o remount,rw / . Modifying the firmware is actually really easy and safe if you follow some basic rules: NEVER modify the script for starting the telnet daemon, if you do make a backup that can be run beforehand It is your primary method of access. Always make backups before modifying files.

Advice for busybox navigation:
Navigate using the normal ls and cd commands, you can edit configuration files with vi (bairbones, GUI-less text editor although powerful, read up on how to navigate files with that), of course you can use the cp command to copy files and make backups, say cp drone.cfg drone.cfg.bak makes a backup, the .bak does nothing other than differentiate the files. You can transfer and pull files to the drone via FTP but it has been unreliable to me so I often also use netcat. Happy tinkering! On the SC side I can easily recall that there were configuration files for the mappings.
 
That is pretty nice! It will help me so much.
Thanks again for your help!
Oh really? Telnet gives you direct shell access (kernel level) with root permissions, the filesystem is mainly read only but you can change it with running mount -o remount,rw / . Modifying the firmware is actually really easy and safe if you follow some basic rules: NEVER modify the script for starting the telnet daemon, if you do make a backup that can be run beforehand It is your primary method of access. Always make backups before modifying files.

Advice for busybox navigation:
Navigate using the normal ls and cd commands, you can edit configuration files with vi (bairbones, GUI-less text editor although powerful, read up on how to navigate files with that), of course you can use the cp command to copy files and make backups, say cp drone.cfg drone.cfg.bak makes a backup, the .bak does nothing other than differentiate the files. You can transfer and pull files to the drone via FTP but it has been unreliable to me so I often also use netcat. Happy tinkering! On the SC side I can easily recall that there were configuration files for the mappings.
That is pretty nice, it will help me so much!
Thanks again for your help!
 
That is pretty nice! It will help me so much.
Thanks again for your help!

That is pretty nice, it will help me so much!
Thanks again for your help!
no worries! if you find anything interesting or need help with anything feel free to post here!
 

New Posts

Members online

No members online now.

Forum statistics

Threads
5,391
Messages
45,344
Members
8,590
Latest member
angelo