For my senior design project I'm working on a simple phone ground station for an ArduCopter. Our project sponsors want us to use an RN-XV wifly module but we're not sure how to connect it to the telemetry port of our APM 2.5. We've tried using a regular 2.4 GHZ Xbee but we are having problems with that.
We are currently using a sparkfun Xbee explorer for the Xbee but its not working properly and we're not sure why. In order to connect the RN-XV, will the xbee explorer work or the xtreambee adapter? I am a computer science major so the electrical stuff is a little over my head. Any help would be appreciated.
last time I checked this module does not work with the APM directly. code modification would be requierd. the work around was to use an Xbee or bluetooth module as a brig from the tlemety port to the RN-XV module.
What would you have to modify? How would the APM know the difference between serial communication from an RN-XV vs serial communication from a Xbee? If you have the correct baud rate set what would be the difference?
Also, I searched the forums and I saw a post from you earlier this year about connecting the RN-XV to the APM then connecting it to a phone with a mobile hot spot. Have you discovered something wrong with that since you posted that?
You must not have worked with an RN-XV before. My particular use for it will be in access point mode so my PC will connect to it as if it were connecting to a wireless router. The APM will be connected to it via serial and will not have to do anything to initialize the module. The RN-XV is very handy, everything it receives via serial is automatically put into packets and sent via wi-fi. Everything that it receives via wi-fi is unpacked from the packets and sent out via the serial. It does all that work for you. So it essentially is a simple serial stream. Am i mistaken?
I have not worked with it before, but I am not sure what you say is right.
Together they have a problem, described in the comments on the sparkfun WiFly product page. Comments by user "M-Short" in particular. XBee has a pull-up resistor on the uart rx but WiFly does not. The result is Wifly not receiving serial input when used with Xbee explorer regulated. Does this sound like your problem? The solution is to add a pull-up resistor to XBee explorer regulated. Attached picture shows where I put mine.
looks like you need to do some testing from your questions your asking. Have you even looked at the demo code for the RN-XV? Have you hooked up RN-XV to a serial interface & received data over wifi from putty with on code running on serial device for communicating with RN-XV? simple test will answer your questions.
I have used an RN-XV to create a remote controlled car from an Android phone. My phone connects to the module which is set in Access Point mode and uses UDP as the protocol. My phone app creates a string of characters which are sent to the RN-XV from the phone. The RN-XV is then attached to an Arduino Uno via serial which then parses out the string of characters and interprets the characters as motor commands.
Does this sound like something that would work with the APM?
Thanks a lot Zach. This is exactly what I was wondering. I'm curious, are you using the RN-XV with the APM?
No, its got to be the other way around I guess. The RN-XV will probably NOT convert the serial stream into UDP packets automatically. Some code will be needed to do that (there is a WiFly library) with APM.
I think you are mistaken. I have read through the entire RN-171 manual which is used by the RN-XV. Here is a snippet about sending and receiving UDP.
"The module acts like a data pipe: the UART data is sent over the Wi-Fi link via the UDP protocol (in this case) and the data coming from the Wi-Fi link (via UDP protocol in this case) is sent to the UART."
I have seen the WiFly library. It looks to me like a way to simplify configuration. If configured properly, serial data sent to the UART of the RN-XV will be sent via UDP from the module to the IP and port specified when it was configured. I am 99.9% sure that it handles conversion to and from UDP packets for you.