MKIII : BeagleBoard to BS2SX interface (S/W)

Posted: 2010/12/28 in Software

I wanted a simple yet robust mechanism to have the master controller send low-level commands to the slave controller.  From the previous post I mentioned that I had to use a USB i/f between the 2 controllers.  On the BS2SX side of things this was achieved by using a couple of I/O pins and connecting them to the USB controller on the SparkFun USB controller.  From there the s/w looks at each end as if they are standard serial port lines.  The low-level device drivers and hardware handle the conversion.

Eventually with a lot of fussing about with serial port configurations on the Linux side (BeagleBoard), I got the 2 controllers to chat consistently.  I used a very simple “send/ACK” protocol between the two.  It works for what I need at this point.  I decoupled the sending/receiving stuff from the applications to allow for future changes.  On the BS2SX side things got a bit more complex than anticipated.  Due to the length of the program, I had to use more than one memory slot for the firmware.  This was an interesting learning exercise on its own.

Here’s a screen snapshot of the various windows on my Linux desktop while monitoring the master and slave controllers.

The screen shot shows on the left the BS2SX debug console messages (blue on white) and on the right the remote console session on the BeagleBoard running the RCI (rover command interface) that I used to test/debug the application.  In this shot, a START command is issued from the BB to the BS2SX, this launches an initialization sequence on the BS2SX and sub-systems.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s