How to find /dev path of Piksi Multi for ROS launch file

254 views
Skip to first unread message

Daniel Genova

unread,
Dec 21, 2017, 7:00:02 PM12/21/17
to swiftnav-discuss
I am trying to integrate the Piksi Multi to a DJI manifold, a 32 bit linux 14.04 computer, using ROS.   However, I can not find the path for the Piksi in the /dev directory.  It is not automatically going to /dev/ttyUSB0 as per usual.  I can find the usb bus port number, using lsusb, and its location in the /sys/ directory, using dmesg, but I cannot find its location in the /dev/ folder.  I have tried editing the launch and node files to access /dev/bus/usb/001/00# instead.  But when I go to run the launch file, I am getting the error that the device cannot be found.

Does anyone know a good way to find the /dev/ path of the Piksi multi?  Or how to edit the ROS launch/node files to incorporate a different path?

Thanks!

Matthias Füller

unread,
Jan 4, 2018, 3:32:21 AM1/4/18
to swiftnav-discuss
Hi!

I'm using udev rules to generate an alias for the piksi multi device.
In my case, I create a udev file (e.g. 99-piksi-multi.rules) under /etc/udev/rules.d
with the following content:

SUBSYSTEMS=="usb", ATTRS{idProduct}=="a4a7", ATTRS{idVendor}=="0525", GROUP="wheels", SYMLINK+="piksi"


the values for idProduct and idVendor need to fit the values of the target usb-device (can be checked with lsusb). It might fit to your device already.
After restarting the udev deamon, the piksi device should be available under /dev/piksi

Regards,
Matthias
Message has been deleted

Daniel Genova

unread,
Jan 10, 2018, 5:19:16 PM1/10/18
to swiftnav-discuss


On Wednesday, January 10, 2018 at 2:16:46 PM UTC-8, Daniel Genova wrote:


Thanks for the response.  I'm a grad student and just got back to my lab, so I apologize for not responding sooner.

I made the changes you suggested; however, I still can't get it to work. Below is my udev rules, my product ID number was different then yours so I had to make a few changes.

This finally allowed my the USB to show up in the /dev folder as shown.


Here is a screenshot of the permissions and the place where the symbolic link is referencing.  The final number in the path (the 010) in this case changes numbers every time the usb chord is plugged in.


Now when I try to run the launch file, the usb can no longer be found, also if I use the bus/usb/001/010 location, I get a similar failure.  



Am I missing something?  I also have attached a screenshot of my launch file, does the line referencing the port need to be a different syntax in order to reference a symbolic link?

Thanks!
Message has been deleted

Matthias Füller

unread,
Jan 16, 2018, 9:27:33 AM1/16/18
to swiftnav-discuss
Just some ideas:

- are you in the plugdev group? Usually, tty devices are in group dialout, tty or wheels or something...
- can you connect to piksi using the swift console?

If these ideas are not working please post the relevant lsusb and dmesg lines

Regards,
Matthias

Daniel Genova

unread,
Jan 25, 2018, 5:19:31 PM1/25/18
to swiftnav-discuss
I have changed the the launch file to be from the tty, dialout, and wheels group.   I still could not recognize it.

I have been able to connect the piksi using console on other machines.  But, this is a 32 bit machine, and I couldn't find a console distribution that works on it.

I have attached lsusb -v, dmesg | grep -i tty, dmesg | grep -i usb lines.  To me, it looks likes the machine never recognizes new tty devices. 
grep tty .png
grep usb.png
lsusb-v.png

Dennis Zollo

unread,
Feb 15, 2018, 4:26:19 PM2/15/18
to swiftnav-discuss
Daniel,

The community would very much appreciate the resolution you found after a little bit of help from Swift at support.swiftnav.com and your own hard work.

I believe the underlying problem was that the linux distribution in use did not have the required FTDI driver to expose a serial device but I'm sure you know more.  

Thanks in advance for sharing with others!

Best,
Dennis
Message has been deleted

Daniel Genova

unread,
Mar 23, 2018, 6:52:54 PM3/23/18
to swiftnav-discuss

Sorry for the late response for anyone lurking on this thread.


Essentially, what ended up happening to me on this scenario is that I did not have the FTDI driver/module installed on my Linux machine.

I knew this as seen through this screenshot 



What I had to do was recompile the kernel on my machine, and then use the command "make menuconfig"


The following screen showed up.  Then I found the driver following the path Device Drivers/USB Support/USB Serial Converter Support.  Then I turned it into a module by pressing M.


After I exited I did the command "make_modules installed" and it worked.


The module now shows up in the correct location in /lib/modules/<kernel version>/drivers/usb/serial


Reply all
Reply to author
Forward
0 new messages