Sunday, April 27, 2014

Communication System

We included an Aerocomm AC4490 transceiver in our primary payload to transmit the payload's location as well as atmospheric conditions  during the flight of the weather balloon.  The Aerocomm AC4490, shown below, features the ability to transmit and receive data over long ranges with a low power requirement of 3.3 Volts.

The first step for testing a setup for the Aerocomm AC4490 was to find the software used to control it.  The Aerocomm requires a program called Laird Technologies Config, as well as drivers appropriate to the tester's operating system.  We found the program on Laird's website.

Next, we set up two Aerocomms on two development boards, ensuring that the switches on the boards were set to Power Conn (wall power), USB config, and 3.3V Radio.  The reason we used wall power rather than USB power was that when we attempted to use USB power, the "low power" indicator light would turn on. 

The next step was to connect both Aerocomms via USB to the computer, power each on, and then open the Laird Technologies Config utility.  We found that the Laird Technologies Config utility was rather unstable, and would crash if certain operations were done in the wrong order (or sometimes for no discernible reason).  With the Aerocomms plugged into the computer and Laird Technologies Config utility on, the next step was to get the Laird software to read the radio.  This took several attempts at first.  The trick that we found in getting the radio to read was to use the PC settings tab to set the baud rate of the connected radios to 57600, switch to the configure tab, press read radio (it would then fail), then change the baud rate to 9600 and try to read radio again (it would then succeed).  Additionally, we set Handshaking to none, Parity to none, Data Bits to 8, and Stop Bits to 1.  Lastly, under options in PC settings, "save settings on exit" was checked, "read/write with AT commands" was checked, and the product selected was the AC4490.  If additional persuading was required, we would start the process over (from unplugging the dev board), and try first finding ports, then selecting the appropriate one before setting the baud rate to 57600 then 9600.

On the configure page with a successful read, the radio would display the MAC address of the radio it was set to communicate with, and the channel it was set to transmit on.  We set the radios to each others' MAC addresses, and set the channel to the same one (but different than the other team's).  Clicking "write radio" then configured the radio with the appropriate settings.  Additionally, we set one of the AC4490s to "server mode" and the other to "client mode".

The next step in testing the AC4490s was to succeed in a range test.  By spacing the two setups sufficiently far apart, using wall power to avoid a low power light warnings, we achieved the proper setup for a successful range test.  Even with the correct setup, it took a few tries configuring different combinations of radios to get ones that would succeed in sending data back and forth.  Once we found two that worked well with each other, we found that the range test success rate climbed to near 100% after a few minutes of transmission.

 With a successful transmission test, we set out to use one of the AC4490s to transmit a message from an arduino to be displayed via the dev board on the laird config utilities software.  To accomplish this, we first looked up the pin definitions for the AC4490, which I have included below.
Not all of these pins needed to be used, however.  In order to send data from the arduino through the AC4490 to the ground station, pins 2, 3, 5, 10, 11 (for long range capability), and 17 needed to be connected to RX, TX, Ground, 3.3V, 3.3V, and pin D2 respectively.  We used a breakout to fit the AC4490 on a breadboard with the arduino, pictured below.
With the AC4490 connected correctly to the arduino, we uploaded code that would print out a message every few seconds.  After finding that the AC4490 connected to the dev board was not receiving data, we discovered that disconnecting pin 11 from its 3.3V power supply caused the radio to transmit properly.  Further investigation showed that the 3.3V power supply dropped in voltage considerably when in use.  By connecting pin 11 to a regulated power supply set to 3.3V, we successfully transmitted data from the arduino to ground station.  We overcame the regulation issue by using a voltage divider directly from the battery powering the arduino to pin 11, which maintained a stable 3.3V at pin 11.  Below, I have included a picture of a successful transmission from the arduino (connected to sensors) through the AC4490 to the ground station.
The last portion of testing required was a range test on the AC4490.  When we completed the payload, we set up the mobile ground station in my car, turned on the payload, and began walking it away from the ground station.  After a few hundred feet, the ground station stopped receiving data.  We assumed that the fact that the ground station and payload were both in a parking lot around potentially interfering cars played a role and the radio would perform significantly better during launch.  With more time, it would have been wise to explore this issue further before launch.

Written By: David Juenemann

No comments:

Post a Comment