In this post I will attempt to describe how I built a simple carrier board for AC4790 and then interfaced that with my Propeller chip (that is mounted on a Propstick). To get an introduction to what and why of AC4790, please see my earlier post here.
So, as stated in my last posting, AC4790 has 20 pins. Of course, for my application in ALIBE, I will only need for the communication module to be “reactive” vs “proactive” – meaning, the Command Center in homebase will issue a command to ALIBE’s communication module (AC4790) and then will expect ALIBE to either return data back to it or take an action onboard ALIBE. This is what I define as “reactive”. Proactive would be when the communication module would proactively send data to the homebase – ie., without being “asked” for.
In this scenario, I only need to tap into a few pins off the 20 pin lot. Here’s the description of these pins (as I said in my earlier posting).
1 (Session Indicator),
2 (Tx – from Propeller to AC4790 device),
3 (Rx – from AC4790 device to Propeller),
5 (GND),
9 (Rx Indicator),
10 and 11 (both need to be 3.3v VDD). and that’s it.
I needed pins 1 and 9 for my LEDs (pic below).
My carrier board (very simple one BTW), has soldered LEDs and also exposes the pin 1 and 9 (as pin 1 and 4 carrier board) – if in case I need to further use those pins for future work. I am happy w/ the way it turned out.
Read thru the AC4790 manual especially the Pin characteristics and their meanings. Understanding this will be very helpful – it is only 2 pages long.
I used one of those PCB’s from radioshack and soldered in 7 pin SIP into the board as seen here underside of the PCB: There’s some additional soldering outside of just the 7 SIP pin. We’ll get to that soon.
I found some old connectors from my parts treasure chest and repurposed them to connect the AC4790 with the PCB. The wires are soldered on the underside (above picture) . You can see that here. Take a note of the pin numbers and ensure you are using the right pins and connecting the right pins to the SIP pins. Incorrectly hooking them up WILL for sure fry your AC4790. And, you don’t want that!
I have highlighted the pin layout on AC4790. Pay close attention to the numbering.
This is probably a good time to look at this wiring diagram – it will give you an idea of how simple this is. Also, note that I hooked up my 2 LEDs to the pins 3 and 9 for the Session and Rx indication. They can be very useful to visually see what’s going on onboard ALIBE during communication. Note how pin 10 and 11 are together hooked up to 3.3v Vdd. This is important to know that AC4790 is a 3.3v device and NOT a 5v device.
The completed PCB looks as here. I also added a small piece of foam btwn the AC4790 and the PCB.
I then took my “finished” product to my breadboard and hooked up the AC4790 Carrier Board (CB) to my Propeller pins. As you can tell from this picture, I only need 3 pins on Propeller to make my communication module working. Pretty cool ah!
The best part about this CB design is that I can always unplug the connectors to the AC4790, unscrew the standoffs, and take the AC4790 to my devboard if in case I need to edit its EEPROM settings or do a “dev board to dev board” testing. Very flexible – works well for my project.
Look for the following posting on how I tested this setup.
ciao
Nagi
December 12, 2006 at 6:12 pm |
Hi Nagi,
While I was just thinking the purchase of the AC4790-1000M SDK was useless, I discovered your site! It is such a wonderful site! The PCB making article for example is very appropriate.
May I get your help to make an interface with AC4790 using VB language? I am not yet in VB .net but I can definitely read the examples. C example will also. I want to read the Radio-Tables to relay my data from one transmitter to another. Secondly, I am testing the SDKs in open outdoor space like one Traffic Intersection to another Traffic intersection on the same main road but I cannot go beyond 1 to 1.5 miles. Aerocomm says the -1000M can go even 20 miles with antenna, so I bought this higher model to reach just 4 miles! Well, the two intersections are not exactly in a straight ‘Line-of-Sight’ but they are like straight open roads as found in any regular US cities! Is there anyway I can improve the range? Do I need to use any antenna even within 3 to 4 miles?
An example program with AC4790 command mode and knowing how to increase the range will be a very big help in my project.
Best Regards
Tapan Sarkar
Baton Rouge, LA
225-921-0739
December 12, 2006 at 6:51 pm |
Tapan, thanks for the comments. It was a good learning experience for me in making this interface work for my robot project.
It is farily straight forward to interface w/ any programming language – more so w/ VB. you can simply drop in the RS232 commn control on the form and plug in code to respond to events. To send data to the module, simply send packet. In my other posting, I have included my vb.net app for sample. Please take a look at it for some ideas.
I have had good luck w/ ac4790 for up to 4 mile radius w/ the sdk supplied antenna. I have heard people using coiled antennas for better reception – I do not have experience w/ that – so can’t comment either way.
hope that was helpful – good luck!
January 24, 2007 at 10:42 pm |
I am trying to interface the AC4790 with a current-sensor.
1. I will be highly obliged if you can send me a layout of your AC4790 connection with the 3.3 V circuit. I could not really follow it. I am using a uC board which has 5V supply. I guess I have to convert that to a 3.3V which I need to know how. But I also see that the AC4790 accpets 5V. So what I am missing here? I have purchased a AC4790-1000M
2. can I connect uC serial output directly to AC4790 pins? Is it a TTL-TTL connection so no conversion to RS232 is necessary?
3. Is there any battery backup circuit available which can be hooked to power circuit for the AC4790? The idea is if the power line fails, the transmission will contionue from the battery. I guess a 9V battery will go for quite some time but proper conversion is required to 3.3V etc.
4. I could not open your .net program is it special .doc file?
I am sure everyday lots of people gets benefited and encouragement from your site. I myself have referred to few of my friends.
Best Regards
Tapan Sarkar
225-921-0739
February 4, 2007 at 8:25 pm |
Hi Nagi,
I cannot open the .NET file What am I doing wrong?
Regards
Tapan
February 5, 2007 at 10:33 pm |
Tapan,
You might be refering to the VB.Net app in the other article. Please save this https://aliben.wordpress.com/files/2006/10/control-panel.doc content as a “zip” file, unzip and open.
Let me know what the error desc is.
February 5, 2007 at 11:06 pm |
I could extract with PKZIP. Thanks. Let me go through.
Regards
Tapan
May 18, 2007 at 5:26 pm |
Hi
I am currently working on a project for the space lab at my university. We are also using the ac4790-200 unit for a similar purpose. I was wondering if the development software provided by aerocomm could be used at one end instead of using my own software(this is the end with my laptop). And have a microcontroller talking to the transceiver unit at the other end. I guess what i am trying to say is that will i need my own home-brewed software similar to your home-base CC or can i make do with the development software provided with the kit.
Your help will be greatly appreciated.
Thank You
Dheeraj Sanka
June 13, 2007 at 10:24 am |
Hi,
I cannot seem to get my simple setup to send/receive data from the other dev board.
Here is a pic of my connections.
Black/Red = GND / 3.3v
Green = Pulled high with 10K resistos
Yellow / Orange = RX/TX (tried both ways)
Any ideas?? Am I missing something obvious??
September 9, 2007 at 2:03 pm |
The project ALIBE is really cool. I’m trying to build a system similar to ALIBE. In my case, the type of feedback control isn’t only reactive. I want to measure the velocity of a remote control airplane using Parallax´s GPS. This information takes a BS2 px and transmits the information through the AeroComm Link (RS232) to a propeller on the ground through another AeroComm Link (RS232). The propeller compares this speed with one manually put depending on the situation (landing) and sends a code to increase or decrease the speed of the propeller that is in the airplane through a Parallax servo. If for some reason the velocity of the airplane is outside of a range pre-established, the BS2px puts the velocity of the airplane back in the range. My comment in respect to your program Spin
is that I don´t see the pin 17 in the CL4790 manual. I see the pin(Pin_CMD_or_Data) but it is for the AC4490. What type of antena do you use?
March 15, 2008 at 11:34 pm |
Hello Nagi,
I am using the AC4790-1000 for a school project and the problem consists on sending and receiving from one transceiver to the other. I need to connect the AC4790 to a microcontroller (ATMEGA16), i cant understand completely how you are connecting the ac4790 to the micro using only 3 pins. Could you send me a little more information?
Thanks for all the info already posted! very useful.
JL
October 2, 2009 at 1:31 pm |
Hi, I am interested in how you made use of the spin propellor software and you made it work with your visual basic program.
Thanks
Derek