[Solved]APC220 cannot communicate between each other

userHead xinan 2014-01-07 02:21:37 6451 Views5 Replies
Hello arduino-er, I recently am taking interest in making my code mobile, and so I purchased APC220 (that's all i could purchase, xbee was too expensive for me).
I've finished setting up all the wiring needed after following a limited resource I found on the net.
and many others, but I have stumbled upon a problem.

1. Arduino detect COM3(my com port) but i cant seem to send any command to arduino.
2. I tried uploading the code using apc220, also failed (i noticed the 256bytes capabilities, but just trying).
3. My code runs fine when using usb-powered at computer, but it wont run if i used adapter(the adapter is also using usb-cable to power the arduino). How i know? I set the code to blink once every loop.
4. I have no way of knowing if arduino is transferring data to my pc, since i cant even send from pc to arduino, much less test the reverse. Is there any way i can test if the arduino is transferring any data using COM3?
5. I heard you cannot used usb-powered if i want to use APC220. Is that true? Do i need a battery then?

Below is the images i can gather. I'll post my code if it's needed later, since i dont think the problem is my code.


Btw, this project is about getting real time data from a man-made pond for my university (biotechnology research). I've been assigned it as my final year project.
2014-01-09 10:01:51 Congratulations!
Good job!
EN pin will connect with a capacitance.
But if haven't, just don't connect any one, that is OK.
userHeadPic Grey.CC
2014-01-08 00:50:16 I just noticed something, my code works only once, when i unplugged it, only led runs, Serial.println wont run, however, it still loops infinitely. Based on google search, i think it's bootloader but this is a different matter for different topic. or does it have any effect on apc220 too?

1. yes, the light on usb converter, it seems to blink only when i open the serial port com.

2. nope, no expansion field.

Based on what I understand from the pic you gave me (except en,i dont know that, im sorry im not a person of this field, my knowledge is very limited)
This is what i came up with.
GND to gnd, vss to 5v on the board, TX apc to RX board, RX apc to TX board.

the usb cable is connected to an adapter(my tab's charger, 5v). I tried using the Lipo battery 7.4v, also the same result.

I tried several more things.
I make some simple code where the code only starts looping if there's any input in it (Serial.available() > 0)
Well, no luck. It wont send data to the board to start the coding at all. (or else i'd see the RX led appear).

Edit : It works now, thanks to your advice. Thanks Grey :D
userHeadPic xinan
2014-01-07 16:07:32 Hello xinan,

Hum, I remember apc220 have not any led. The light is the power led on the usb converter?

Do you have an expansion shield? If you have, you could plug apc220 on it directly. and test whether they will work together. it is the fastest.
If you haven't, don't worry, you could make a receiver by yourself. this is connect to the arduino board.(check the pic "apc220")

Does your code work? And it will display the data in the serial port correct?

userHeadPic Grey.CC
2014-01-07 15:21:33 Hello Grey, thanks for replying.

1. I can't even know if I am sending the data or not. The light will be on if i try to send anything, otherwise it's off. So i'm just assuming,no let's scratch that. How do i test if data is sent or not? Any idea on how to do it the easiest way? (Dont suggest a second arduino board though. No expense as of now.)

2. Yeah i noticed that and unplugged it, and uploaded the code just fine.

3. I bought a LIPO today, it has 7.4v . I will try to use that and post the result later.

Below is the code. What the code is trying to do is just simple. It sends data from the sensor (ultrasonic, heat) to serial port every second.

const int trigPin = 2;
const int echoPin = 4;
float temp;
int tempPin = 0;

void setup() {

void loop()


void room_heat_sensor()
  temp = analogRead(tempPin);
  temp = temp * 0.48828125;

void ultrasonic_sensor()
  long duration, inches, cm;

  pinMode(trigPin, OUTPUT);
  digitalWrite(trigPin, LOW);
  digitalWrite(trigPin, HIGH);
  digitalWrite(trigPin, LOW);

  pinMode(echoPin, INPUT);
  duration = pulseIn(echoPin, HIGH);

  inches = microsecondsToInches(duration);
  cm = microsecondsToCentimeters(duration);
  Serial.print("in, ");

long microsecondsToInches(long microseconds)
  return microseconds / 74 / 2;

long microsecondsToCentimeters(long microseconds)
  return microseconds / 29 / 2;
userHeadPic xinan
2014-01-07 13:24:09 Hello xinan,

I think it is important to make sure whether two APC220 module can communicate with each other.

If you set them as same parameter(like the last picture) it should be O.K.

1 What is your mean of can't send any command? They can't receive/send any date?

2 APC220 module will occupy the serial port, so when you want to upload the sketch, you need to unplug it first.

3 If you want to use a extra power to support the power, it need 6V at least.(The usb cable only have 5V; 7V is better). The power port have a Voltage chip, so it must be higher. The usb port connects to chip directly, it will work well.

By the way, the code is very important to debugging. 

userHeadPic Grey.CC