I followed these directions to a T and ended up with a bunch of gibberish on my console screen. I am using purchased serial cables: USB to RS232 Converter - 6ft - CAB-11304 - SparkFun Electronics
Any ideas why I wouldn't see readable characters on the screen? I've tried two computers with the same results. It seems to be seeing things, because when I reboot the Galileo I see lots of output, but just in gibberish characters.
Thanks for any help!
Well, that's obnoxious. I purchased this stuff per Sparkfun's recommendation (https://learn.sparkfun.com/tutorials/galileo-getting-started-guide/all)
How would I be able to tell? Would I hook a multi-meter up to the serial end? What would I look for?
The serial console jack is connected to a max3232 (http://pdfserv.maximintegrated.com/en/ds/MAX3222-MAX3241.pdf).
It requires signals over 2V to distinguish 1s from 0s.
My usb adapters generates lower levels and the resulting data is misinterpreted and shown as garbage.
You could check with a multimeter your usb adapter voltage levels. Some adapters allow the selection of 3.3V, 5V as output level.
The voltage when hooking the ground to pin 5 (GND) and the lead to pin 3 (TX) is -06.41V. I measured the frequency of the pin as well and when I use putty to hookup to the serial port I can see the frequency jump around when I press keys, so it seems like everything is hooked up properly.
I used this as my diagram: Tech Stuff - RS232 Cables and Wiring
So if my voltage is 6+, what am I missing?
I've made my own cable with a Sparkfun FTDI Basic, a MAX232 and a headphone cable, and it's working perfectly for me. During my personal struggle to communicate over that silly headphone jack, I learned that gibberish characters mean I've got mt TX/RX right and level translation is working, but the grounds aren't connected.
If you've got some jumpers and a breadboard, you can connect the USB -> RS232 section to the breadboard, stick some pins in to measure the voltages, and then connect the DB9-3.5mm cable to the other side, like this:
Computer - - - - - USB - >RS232 - - - breadboard w/ headers for testing - - - - DB9 -3.5mm -- - - - Galileo
My suspicion is that you've either got a faulty cable, or it's poorly made. Check the ground pins for continuity all the way through, and then if they're not connected, strap the RS232 ground to any of the ground pins on the Galileo. This should fix your problem!
Or, if this doesn't work out, you can get yourself a Bus Pirate or FTDI Basic and a MAX232 and roll your own cable that will actually work. It may even be cheaper than SF's cables.
If this doesn't make sense, please ask me to clarify! It's one AM here and I'm tired.
@jonte I believe your cable is generating non-inverted TTL signals (RS-232 vs. TTL Serial Communication - SparkFun Electronics).
The Galileo serial port can deal with 5V instead of 12V levels, but will not work with non-inverted signals.
It is not just a matter of inverting data bits, but also to invert stop bits otherwise you will get frame errors and garbage output.
If you are familiar with simple electronic circuit building you could try adding the transistor stuff in the previous link, or some simpler circuit without signal level boosting (Simple RS232C level Converter using Transistors).
In my case I bought another cable and also a pci rs232 adapter.
If you use GNU screen (for things like multiple terminals in a single window) you can also use it as a serial terminal. A command like this will attach to the serial port (USB converter in this example):
# screen /dev/ttyUSB0 115200
If you get errors, you may need to either use sudo or add your user to the group that owns the serial device (e.g. dialout group on Debian).
# sudo usermod -a -G dialout $USER
Yea, in the end I went down the "If you want it done right, you gotta do it yourself" route. Following Sergey's instructions on how to make a console cable here: http://www.malinov.com/Home/sergey-s-blog
I spliced a 3.5mm cable and a serial cable to get this:
(heat shrink near the serial end will go over the spliced area once I'm done testing)
I then hooked it up to a Prolific-based USB to serial cable my co-worker had.
...aaand wouldn't you know it, it works! I can boot my Galileo and see everything in the console now.
I have one remaining issue when I boot. In the console, I see the following message over and over continuously:
/etc/init.d/clloader.sh: line 3: /dev/ttyGS0: No such file or directory
Here's a screenshot of my serial console:
I understand that /dev/ttyGS0 is the Client USB port. I plugged in the cable to my machine, rebooted and I still get the same thing. How do you get this to stop?
I have built my own DB9 cable, because the one that I bought was faulty. Finally, I receive everything in the console with no errors. But I cannot send anything through the uart (e.g. characters). I have tried minicom, coolterm, cu, screen (all with hardware flow control off) nothing works.
Host OS: Mac OSX Mavericks
UART Cable: Custom