Go Down

Topic: "Tools > Serial Port" greyed-out... (Read 20226 times) previous topic - next topic

kevinchannon

Hi,

 I'm new to all this physical computing fun, so this might be a simple question.

  I have a Freeduino SB board from Solarbotics, which is basically a copy of the Arduino Diecimila.  I am running Ubuntu 8.10 (Intrepid).  I have Sun Java 6 installed and am using the 0012 alpha version of the Arduino software.

  I have assembled the board and when I plug the USB cable into it, and turn it on, the power LED is illuminated and the blue LED on pin 13 flashes once per second.  I assume that this means that a) the board is working and b) the Freeduino people have pre-loaded the micro-controller with the beep program in the examples.  However, nothing is registered in dmesg or lsusb.

  The Tools > Serial Port menu is grayed-out and the port is set to COM1, which fails every time (since I have no serial ports on my laptop).  So I guess I have two questions:
1.  How can I get access to the Serial Port menu?
2.  Why isn't the board registered by the USB port?

Any help will be appreciated, as I'm totally stuck at the moment.

Cheers,
       Kevin

Anachrocomputer

You need to access the Arduino via the FTDI chip's drivers, which you may need to install.  I think there's another thread here with some info (near the end): http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1230895424/0

Anyway, you should get a TTY device node in /dev, something like /dev/ttyUSB0 if it's set up anything like Slackware (which works for me, BTW).

You may need to edit the text file that contains the name of the serial port -- COM1 is definitely not right!  Did you download a Linux version of Arduino 0012 or a Windows version?

kevinchannon

Quote
You need to access the Arduino via the FTDI chip's drivers, which you may need to install.  I think there's another thread here with some info (near the end): http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1230895424/0


Thanks for that link.  I had a look in /lib/modules/<kernel version>/kernel/drivers/usb/serial and I can see both usbserial.ko and ftdi_sio.ko in there.  I did lsmod and could see usbserial was loaded, but not ftdi_sio, so I did modprobe -v ftdi_sio and lsmod showed that it was now loaded.

Quote
Anyway, you should get a TTY device node in /dev, something like /dev/ttyUSB0 if it's set up anything like Slackware (which works for me, BTW).


Unfortunately, still no event registering the board has been connected  :(  So now I'm still stuck.  dmesg showed

[ 1776.034970] usbcore: registered new interface driver usbserial
[ 1776.037218] usbserial: USB Serial support registered for generic
[ 1776.038816] usbcore: registered new interface driver usbserial_generic
[ 1776.038829] usbserial: USB Serial Driver core
[ 1925.760139] usbserial: USB Serial support registered for FTDI USB Serial Device
[ 1925.760478] usbcore: registered new interface driver ftdi_sio
[ 1925.760485] ftdi_sio: v1.4.3:USB FTDI Serial Converters Driver


which appears to be the ftdi driver being loaded, but there should be some information about the board being detected.  Right?

Quote
Did you download a Linux version of Arduino 0012 or a Windows version?


I have the linux 32-bit version

Anachrocomputer

Quote
which appears to be the ftdi driver being loaded, but there should be some information about the board being detected.  Right?


Well, the lines you've quoted from 'dmesg' are about all you get for confirmation that the board has been detected.  Remember that, to the Linux host, the Arduino simply appears to be a serial port.  The host doesn't "know" what's on the other end of that serial port.

Do you get  a node like /dev/ttyUSB0 ?  If so, all is well.  If not, then the FTDI drivers still aren't working right.  Or else there's something wrong with 'udev', if your Linux system uses it.

kevinchannon

OK, I've figured out what the problem was.

It was nothing to do with software, I'd accidentally short circuited the USB +5 V pin to one of the data pins with a tiny piece of solder when I was making the board.  D'oh!

The board that I have has a mini USB connector so these connections are very small and closely spaced, so it's easy to screw the soldering up.  It wasn't completely obvious, because it looks like the pad in question was not used, but it appears to be for a B-type USB connector and is connected to the equivalent one for the mini USB connector.   A quick test with a multimeter showed the problem up though and everything works fine now :)

Live and learn!

Anachrocomputer

#5
Jan 15, 2009, 01:26 am Last Edit: Jan 15, 2009, 01:26 am by anachrocomputer Reason: 1
Those mini-USB connectors are problematic.  I've seen two cases now where they've broken and rendered the device unusable.  One was a Smartphone where the USB connection was simply for charging (which meant that the battery ran down to zero), and the other was a disk enclosure (which made the disk inaccessible).  In both cases, I was able to get a new part and solder it in, but I'm now very wary of those tiny connectors.

Glad to hear that your problem is solved, though!

cdmiller

I had exactly the same problem.  Following are my specs and the fix (for me).

  • Freeduino SB from Solarobotics.
    Ubuntu Intrepid 8.10
    Latest software installed from source and running:
    binutils 2.20
    gcc 4.4.3
    avr-libc 1.6.8
    avrdude 5.10
    arduino 0018

  • Ubuntu packages:
    sun-java6-jdk
    sun-java6-jre
    sun-java6-fonts
    librxtx-java
    brltty Uninstalled


Board looked OK, blue blinky at pin 13 on power up and red pwr led.
dmesg reporting ftdi_sio: v1.4.3:USB FTDI Serial Converters Driver
lsmod showing usbserial ftdi_sio and ftd_sio on the usbcore line

Serial option was greyed out in the Arduino interface.  Looked around and guess what?  The ttyUSB0 device was only read write to root and the dialout group:

Code: [Select]
ls -l /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 28 10:59 /dev/ttyUSB0


Added my account to the dialout group:

Code: [Select]
grep dialout  /etc/group
dialout:x:20
sudo usermod -G dialout -a cdmiller
grep dialout /etc/group
dialout:x:20:cdmiller


logged out and back in and presto.  Arduino now allowed selecting the /dev/ttyUSB0 device, and example sketches upload and work.

Hope that is helpful to folks running linux and Arduino.

Go Up