Contrariwise Servo Controller: Read RC signal with PC

Hi. For a project, I need a Serial Controller, which reads RC signals. I already have a Pololu Serial Servo Controller. Now I need a device, that reads RC signals (coming from a receiver or a Gyros) and forwards them to my PC through RS232. Is there such a device? Thanks for any hints!

I don’t know of any RS-232 devices, but there are certainly USB devices you can get. They’re meant to connect an RC receiver to a computer as a USB joystick, so you can practice on flight simulators with your actual RC transmitter. Here are a couple of quick examples I found online: 1, 2. I’m not recommending either of those in particular, those are just what I found searching. Specifically you want one intended to plug into the individual channels of an RC receiver, not the more common ones intended to plug into RC transmitter trainer ports.


P.S. I don’t have a helicopter gyro to test this with, but I wouldn’t be surprised if you needed to feed a PWM signal to the gain and rotor control inputs before it will output a rate-corrected signal. Also, the particular gyro you linked to is pretty fancy, and has an internal PID control algorithm. This means it will vary its output trying to eliminate unwanted rotation. If you’re looking for a simple sensing gyro with an output proportional to its rotational rate you probably want something much simpler/cheaper.

Hi Adam,
What you posted as “2” is probably what I’m looking for, using the searchword “trainer” brought me to the right direction:, thanks :slight_smile:
About the Gyro: I’m looking for a standard Gyroscope sensor, with only outputs and no inputs. Means I just want the radius difference from the Gyro sensor to the earth coordinate system, of the x- and y-Axis, fed to a computer (serial/rs232). The way I wanted to do this would been with a rc Gyros and a rc/usb converter as the above. Do you know an alternative solution to what I thought up? Thanks!

I’m not sure I understand what you mean by “the radius difference from the Gyro sensor to the earth coordinate system, of the x- and y-Axis”. It sounds like you’re talking about a tilt-sensor.

Rate gyroscopes (the kinds used in RC helicopters and commonly referred to as “Gyros” when talking abou tinertial navigation) measure the rotational speed (not orientation) about one axis. They could tell you how fast a merry-go-round was spinning, but nothing else about its orientation relative to the earth.

If you want to measure the roll and pitch angles (i.e. how tilted from vertical) something is what you need are accelerometers. When an accelerometer is stationary, or traveling at constant velocity (i.e. not accelerating), it senses the force of gravity as an apparent acceleration straight down. With a three-axis accelerometer you can measure the direction of the gravity vector (or a two-axis one if you can assume it will always be close to level). Is this what you wanted to do?


You are right :unamused:
What I’m looking for is probably this: and it’s even lots cheaper than what I’ve been previously looking about.
So how can I use these analog signals with a PC? Do I just need an ADC, Analog to Digital Converter for RS232? E.g.:

The adapter you link to doesn’t do any sort of analog conversion, it’s just a serial level shifter for connecting a low voltage serial device to a computer serial port. You would need either an analog data acquisition board or a microcontroller with analog inputs and a serial adapter to go with it.

SparkFun makes a nice little package called the Tri-Axis that looks like exactly what you want. It uses that same accelerometer as the Pololu board, housed together with a pre-programmed microcontroller and serial level shifter, and even draws its power from the serial port. Unfortunately they’re out of stock right now, but you can put yourself on their auto-notify list for when they build another batch. I imagine that if more people want to be notified about it, they might make up more a little sooner.


It looks like the rate of this device is too slow for my needs, 10 Hz, while the accelerometer itself (circuit as in the Pololu shop) has 50 Hz. Do you think an Arduino board (e.g. Arduino Duemilanove) can read this sensor values through its analog inputs and bring them to the computer? Or is it just for having programs running on itself like the Robot Controllers?

I don’t see where you’re getting 10Hz from. The microcontroller on the SparkFun Tri-Axis v5 runs at 10MHz, and the output frequency is configurable. The default is reporting at 100Hz, but you can increase that up to 595Hz if you’re using a raw output binary format.

You could certainly use an Arduino to read the Pololu accelerometer board (although I don’t see where you’re getting 50Hz either). You would want to connect the AREF pin on the Arduino to the 3.3V pin on the accelerometer board, and the X, Y, and Z accelerometer outputs to Arduino analog inputs. You could power the accelerometer board (VIN) from the Arduino’s 5V bus, and of course remember to connect the grounds.


Well 10 mhz is surely enough, I’ve read that incorrectly.
Thank you for all the advice, and excuse my nescience. I will go for an Arduino - simply because it will bring me closer to the understanding of electronic components and will also support more sensors as I probably want to add more later. And a Pololu accelerometer with 50 Hz along with it :sunglasses:

Hello luke,

Where are you getting the 50 Hz number from?

- Ryan

Mmh I don’t see it no more, maybe I was too tired to read right. At which rate is it communicating?

Hello Luke,

The accelerometer’s output is not a digital signal so it does not make sense to talk about it communicating at a certain rate. Instead, it is always outputting an analog voltage representing what acceleration it is measuring. This is why nexisnet is suggesting that you need something that can do analog to digital conversions.

The closest thing that an analog signal has to a rate of communication is its bandwidth response. The bandwidth response is kind of like the maximum frequency the accelerometer can sense. The output signal has an X and Y bandwidth response of 350 Hz, so changes in acceleration faster than that will not be reflected in the output as strongly. For example, if you shake the accelerometer back and forth in the X direction with a frequency much greater than 350 Hz, it will be hard to notice this shaking on the output signal. If you shake it at a frequency lower than 350 Hz you will be able to notice the shaking on the output signal. The bandwidth response in the Z direction is 150 Hz.

Does this answer your question?

- Ryan

Yes it did, and makes sense now :wink: