Serial interface board help

Looking for a little direction for a beginner. Just a point in the right direction.

We have a camera that responds to serial commands.

We want to construct an interface so that when buttons are pushed or knobs rotated specific serial commands are sent to the camera.

This is a portable application so smallest size and lowest power consumption are important.

Can someone point me in the right direction? Is this something that can be accomplished with one of the Arduino boards? Is there a more appropriate solution?

Thanks in advance for helping a beginner.

How complex are the serial instructions? One or two characters, or long strings with checksums?

How many controls do you envision?

What is the mix and number of analog (knobs) and digital controls (switches)?

Is the camera true RS-232 or is it simply CMOS or logic level serial?

If you want real small size and long battery life and your interface is not overly complicated an MSP430 solution might be just the thing. If the interface is more complex than an Arduino might be the thing. If the interface is very complex, you might need even more than an Arduino.

Thanks for the quick response.

We envision up to 5 switches and maybe 2-3 knobs.

As an advanced version an onscreen menu system with to select commands would be awesome.

I looked up the MSP430 part number and there are a lot of choices.

Here is technical I have on how the serial interface works. Let me know what you think.

THANK YOU.

"The camera is compatible with most RS232 drivers/receivers but does not implement signaling levels compliant with the RS232 standard voltage levels.

The camera is capable of being controlled remotely through an asynchronous serial interface consisting of the signals named RX, TX, and GND using 3.3 volt signal levels.

The camera does not generate an outgoing message except in reply to an incoming message.

• The camera generates an outgoing reply to each incoming message.

• All messages, both incoming and outgoing, adhere to the packet protocol defined in Table B-2 and the subparagraphs that follow. The first byte i.e., the Process byte is transmitted first followed by the rest of the bytes in the order specified.

• All multi-byte arguments defined herein uses big-endian ordering (MSB first).

• The serial inter-byte timeout is factory set to 100ms

Example Process Code

Transmission is LSB first (for each byte) and most significant byte first on multi-byte messages. All bytes are preceded by a zero start bit and followed by a one stop bit.

The camera core is designed to talk to a PC serial port directly and may seem inverted if direct communication to a logic device is desired.

6E = 0 0111 0110 1 = Start bit, E with LSB first, 6 with LSB first, Stop bit

On an oscilloscope the observation is, Idle low but, zero high. Starting at idle, when the signal goes high, that is the first 0; then two 0’s high, three 1’s low, one 0 high, two 1’s low, one 0 high, one 1 low, (6E complete).

On all incoming and outgoing messages, the Byte-Count Bytes are used to specify the total number of data bytes in the packet.

• The Byte Count must be an even number from 0 to 0x1F4 (500 decimal).

The number of data bytes in the packet is not equal to the total number of bytes in the packet. For example, a No-Op serial command contains zero data bytes.)

CRC Bytes

• On all incoming and outgoing messages, two cyclical redundancy checks (CRCs) are calculated using CCITT-16 initialized to 0.

• CRC1 is calculated using only the first 6 bytes of the packet. • CRC2 is calculated using all previous bytes in the packet (i.e. bytes 0 through N).