Realbasic Serial Communication Protocols

/ Comments off

Yes, there is. The USB specification includes the USB protocol which defines the way the bus is used on a bit level. This would be the low-level protocol that underlies the higher level protocols (i.e. Mass-storage, HID, etc.). For specifics on how the USB protocol works, this OSDev wiki is helpful.

  1. Serial Communication Arduino
Rs232
Active1 year, 2 months ago

What programs can act as a terminal and access serial ports?

This is not for terminal access on an IP connection, this is so I can access a hardware device plugged into a USB/serial converter running at 9600/8/N/1.

daviesgeek
22.1k48 gold badges142 silver badges188 bronze badges
Mark HarrisonMark Harrison
6751 gold badge6 silver badges12 bronze badges

12 Answers

There's a new Mac app called Serial, available in the app store. Full disclosure- I wrote it. The main advantage over other apps is it can work with most USB to serial devices without having to install any drivers, as it has its own drivers built-in. It also does full terminal emulation so you can use it to work with Linux or other devices that require it. You can try it for free, too.

Also, Apple began including their own driver for FTDI-based devices in Mavericks (10.9). So, if you're on 10.9 or later and your device has an FTDI chip inside, you can use the built-in screen command in the terminal to access your device without worrying about drivers.

Chris KChris K

You can use the terminal command screen to do this!!!

As seen on ServerFault:

I love using [screen] for connecting to serial consoles, i.e.

Or, if you prefer Mac OS X hints...

Example of serial communication protocol

I often have to do router configuration via a console port, so I use a Keyspan Serial Adapter to get access. Two problems then present themselves: ZTerm is a horrible Mac OS X app. It hasn't been updated in five years or so, and isn't a Universal Binary. The developer doesn't seem in any hurry to rectify the situation. It is not worth the shareware fee in its current form. Minicom requires installation of Fink or MacPorts and is overly complex. Solution: Use screen, Terminal, and a little AppleScripting.

Serial Communication Arduino

First, launch Script Editor and type/paste in the following code:

Compile and save as an app from within Script Editor, and you have a double-clickable application to launch a serial Terminal session. You may want to customize this slightly -- you can change the screen colors or number of columns or rows. You may also need to customize the screen command with a different device name if you are using something other than the Keyspan Serial Adapter (do an ls tty* of the /dev/ directory to get the right name).

screen uses Control-A to take commands directed to it. So type Control-A followed by Control- to exit your screen session. If you fail to do this and exit a Terminal session, you'll leave the screen session alive and the serial resource unavailable until you kill the screen session manually. man screen will show you further commands to send to a screen session.

If anyone can reply with a link to a tutorial on how to wrap an interactive Unix App in Cocoa, that would be the next step -- it would be nice to do this without involving Terminal. If you prefer to use Minicom, you could still use the AppleScript to wrap it into a nice launchable app -- use this older hint to find the right command line commands.

Many USB-Serial adapters use the chip from FTDI. Install the 'Virtual COM Port' driver and look for the proper TTY name in /dev. For example, on a PowerBook G4 it came up as /dev/tty.usbserial-FTALKY8I.

Community
JoshJosh
5,12011 gold badges32 silver badges56 bronze badges

The best program I know of for this is minicom, available from Homebrew, fink, and macports.

Minicom is a serial communication program. It is a Unix clone of the well-known MS-DOS Telix program. It has ANSI color, a dialing directory, dial-a-list, and a scripting language.

nohillside
56.2k14 gold badges118 silver badges166 bronze badges
user588

My preference is cu. I use it for Arduino or Bus Pirate related fun. It's installed by default and supports parity settings among other options (type man cu for more info).

To bail out when you're done, type ~. as you would with SSH

RandomInsanoRandomInsano

If you prefer not to work in Terminal, you might mant to try CoolTerm (free). Scroll down a bit for description and download. Don’t let the fact it‘s written in RealBasic turn you away... I have used it to connect to plotters, Arduino boards and receipt printers via a Keyspan USB<->Serial Adaptor.

myhdmyhd
2,5165 gold badges24 silver badges56 bronze badges

You should have a look at ZOC, what I think to be the best terminal emulation program available for the Mac. I use it everyday for my job. It has the ability to do direct communication with a serial port. Of course it does way more than just serial communication.

ZOC is a professional SSH/telnet client and terminal emulator. With its impressive list of emulations it lets you easily connect to hosts and mainframes, using communication methods like secure shell, telnet, serial cable or modem/isdn.

Its sleek user interface has many ways of making your life easier. In its own way, this is the swiss army knife of thin clients: versatile, robust, proven.

Key features:
- Tabbed sessions with thumbnails
- Customizable to meet your preferences and needs
- Scripting and automation features
- Compatible with Windows 7 and OS X Lion
- Administrator friendly (deployment, configuration)
- Now $79.99 with attractive bulk discounts

nohillside
56.2k14 gold badges118 silver badges166 bronze badges
CarterCarter

C-Kermit is alive and well in Brew, and can be installed with:

Naturally you would require Brew to be installed first. You can find information on how to do this here: http://brew.sh

Alternatively use Macports

This would too require you to have Macports installed

Danijel-James W
4,0085 gold badges25 silver badges52 bronze badges
ZachZach

And then there still is the old ZTerm which is just as old as it's looks suggest yet it gets the job done just fine and it is available for free. Works fine with Prolific (PL 2303) and FTDI based USB serial adapters.

MacLemonMacLemon

I have had success with cutecom on Ubuntu 16.04

Supported on OSX: http://cutecom.sourceforge.net/

gatorbackgatorback
5342 gold badges7 silver badges20 bronze badges

Another serial terminal for Mac OS X is Cornflake!

It features Device Selection with a Refresh Button, Baud Rate & Packet Type & Flow Control Selection, Port Control and a View Filter to view incoming data as ASCII, ASCII+, Integer or HEX.

maccidmaccid

After trying other approaches (incl. screen) unsuccessfully, I started using goSerial from this list of serial port apps for mac. Seems to be working fine. It's a free (donation based) program.

Javad SadeqzadehJavad Sadeqzadeh
grg
144k25 gold badges229 silver badges339 bronze badges
Trieu Tu LongTrieu Tu Long

You must log in to answer this question.

protected by nohillsideJun 17 '18 at 6:33

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged terminal .

(Asynchronious) data handling wihtout any protocol is by no means easy.
I understand your problem is, that you want to 'chain' request without being
willing to wait all the time for the answers.

Try: In your activate botton collect all your request (in an global array e.g.)
and send the first request only. When DataAvailable receives data it knows that
they belong to the first request in that array and can process them accordingly.
After that DataAvailable will send the next request from that array und return.

That goes on until all requsts from that array are handled.

Mike
----------------


> I'm using RB 2.0.1 to communicate with a scientific device via its
> RS-232 serial port. I can send commands and receive data alright. But my
> problem is trying to interpret the returned data. Since everything is
> asynchronous, I'm having trouble matching the output with my input
> because everything gets handled in the DataAvailable method.

> So, for example, I have a button that connects to the device and asks
> for the software version of the device and then asks for the device
> status. I want to put the 2 results into 2 variables. So in my button's
> Activate method, I send the first command and do a 'serial1.XmitWait'.
> Then I send the second command. But the output gets picked up by the
> DataAvailable method of the serial control. How does it know what to do
> with the data? I put it all into a large text field like the Dev. Guide
> suggests. But how do I 'parse' it into separate variables?

> Thanks in advance for tips,
> Frank

> --
> -Frank Schima

> Sent via Deja.com http://www.deja.com/
> Share what you know. Learn what you don't.