RF Link problem

Hi, i just bought a pair of RF link from sparkfun ( RX433 TX433), now i'm testing a quite simple scatch :

on Arduino 1 (pro mini 5v) :

void setup(){
 Serial.begin(2400); 
}

void loop(){
 Serial.print("1");
}

on arduino 2 (MEGA)

void setup(){ 
   //2400 baud for the 434 model
   Serial1.begin(2400); 
   Serial.begin(9600);
   Serial.println("connesso");
} 
void loop(){ 

   if (Serial1.available() > 0) {
      Serial.println(Serial1.read());
     
   }
}

i'm expecting to have an output like this from mega

49 49 49 49 49

what i got ? 127 0 127 0 127 0 127 0 127 0 127

IDEA?HELP?EXPLANATION?

:D

even tested http://www.sparkfun.com/datasheets/RF/KLP_Walkthrough.pdf but they dont tell you what u have to read from the RX :D

Google for the VirtualWire library. Take on of the examples from that library and it will/should work instantly.

Good luck!

found the library, but i still got problems :S

i cant recive any message … i’m trying this with rx on duemilanove pin 11, tx on mega pin 40 :

#include <VirtualWire.h>

void setup()
{
    Serial.begin(9600);      // Debugging only
    Serial.println("setup");

    // Initialise the IO and ISR
    vw_set_ptt_inverted(true); // Required for DR3100
    vw_setup(2000);       // Bits per sec

    vw_rx_start();       // Start the receiver PLL running
}

void loop()
{
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;

    if (vw_get_message(buf, &buflen)) // Non-blocking
    {
      int i;

        digitalWrite(13, true); // Flash a light to show received good message
      // Message with a good checksum received, dump it.
      Serial.print("Got: ");
      
      for (i = 0; i < buflen; i++)
      {
          Serial.print(buf[i], HEX);
          Serial.print(" ");
      }
      Serial.println("");
        digitalWrite(13, false);
    }
}

and this on mega

#include <VirtualWire.h>

void setup()
{
    Serial.begin(9600);        // Debugging only
    Serial.println("setup");

    // Initialise the IO and ISR
    vw_set_tx_pin(40);
    vw_set_ptt_inverted(true); // Required for DR3100
    vw_setup(2000);       // Bits per sec
}

void loop()
{
    const char *msg = "hello";

    digitalWrite(13, true); // Flash a light to show transmitting
    vw_send((uint8_t *)msg, strlen(msg));
    vw_wait_tx(); // Wait until the whole message is gone
    digitalWrite(13, false);
    delay(200);
}

My thoughts:

  1. Have you tried NOT calling vw_set_ptt_inverted()? I have used that RF pair successfully and I did not call vw_set_ptt_inverted() on either my transmitter nor on my receiver.

  2. Have you tried NOT calling vw_set_tx_pin() on the transmitter and using the default pin 12? I don't have a Mega, but I believe PWM (needed by VirtualWire) is only supported on pins 0 thru 13.

See PWM under Input and Output on this page: http://arduino.cc/en/Main/ArduinoBoardMega

yes i tried not calling the inverted function and no luck, and for the tx pin i thought he need a digital pin as in doc it said :

4.1vw_set_tx_pin
extern void vw_set_tx_pin(uint8_t pin);
Set the digital IO pin to use for transmit data. Defaults to 12.

so i placed my connection on digital IO pin 40. i didnt know that he need a PWM out, i thought the library would make the correct frequency and interput.

ill give it a try in a few minutes and let you know :)