Transmission works with wires but not always with wireless


Closed Thread
Results 1 to 40 of 43

Hybrid View

  1. #1
    Join Date
    Nov 2005
    Location
    Bombay, India
    Posts
    967


    Did you find this post helpful? Yes | No

    Default

    The module needs time to get above the noise floor before it can decode the $55 stream correctly. That is why I suggested to just look for the $55,$AA in your code; you still have to transmit the $55s before you send the $AA. Those should be considered as padding and ignored in the receiver. You may increase it beyond the 4 that you have now to improve performance if you will.

    Transmit $55,$55,$55,$55,$55,$AA,"data"
    Receive .................."ah there it is","data" You ignore the first 4x$55


    Jerson
    Last edited by Jerson; - 24th April 2007 at 06:56. Reason: <data> shows as blanks

  2. #2
    Join Date
    Apr 2007
    Posts
    9


    Did you find this post helpful? Yes | No

    Default

    So I should basically send a couple of $55 and then just wait for $55, $aa only?
    I'm thinking of coding it like: serin2 PORTB.0, 16780, [WAIT($55, $aa) ,encoded1], would this be good enough?

  3. #3
    Join Date
    Nov 2005
    Location
    Bombay, India
    Posts
    967


    Did you find this post helpful? Yes | No

    Default

    I think you got the point. Still, tell us your name. JYI1 sounds like a name from the new StarTrek series

    Jerson

  4. #4
    Join Date
    Apr 2007
    Posts
    9


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Jerson View Post
    I think you got the point. Still, tell us your name. JYI1 sounds like a name from the new StarTrek series

    Jerson
    I discover that even if I send $55 4, 6, 8, 10, 20 times but it still picks it up occasionally. On the other receiver end I am looking for $55, $aa.
    Last edited by jyi1; - 24th April 2007 at 19:04.

  5. #5
    Join Date
    Dec 2005
    Posts
    1,073


    Did you find this post helpful? Yes | No

    Default

    I have used these extensively (although I get mine direct from WenShing in Taiwan). These are superregenerative ASK receivers. They need a pronounced preamble in order to set the AGC and receive threshold. They work quite well at low data rates using a protocol like the NEC protocol (used by X10 for their wireless remotes) which I've detailed here...You might also benefit from reading this page...You need a fairly good balance between pulses and spaces (which Manchester encoding guarantees) but the fact that you need to send several copies in order to receive reliably indicates you need the initial copies to set the threshold and AGC.

    Which output pin are you using? Using the linear (analog) output can complicate things. It's usually best to use the digital output. A good receiving antenna is important. An eggbeater is easy to build and matches the 50-ohm input impedance of the receiver.You can capture the output(s) from the receiver using a soundcard as I show here...which can give you an idea of the quality of the signal as received.

    Bruce Reynolds sells the 433.92MHz version of this receiver. I believe he has some example projects with PBP code on his website.

    BTW, the fact that your code works with a hardwired connection is another indication that your problems are related to RF signal quality.

    Good luck.
    Last edited by dhouston; - 24th April 2007 at 20:36.

  6. #6
    Join Date
    Mar 2007
    Posts
    42


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by dhouston View Post
    I have used these extensively (although I get mine direct from WenShing in Taiwan). These are superregenerative ASK receivers. They need a pronounced preamble in order to set the AGC and receive threshold. They work quite well at low data rates using a protocol like the NEC protocol (used by X10 for their wireless remotes) which I've detailed here...You might also benefit from reading this page...You need a fairly good balance between pulses and spaces (which Manchester encoding guarantees) but the fact that you need to send several copies in order to receive reliably indicates you need the initial copies to set the threshold and AGC.

    Which output pin are you using? Using the linear (analog) output can complicate things. It's usually best to use the digital output. A good receiving antenna is important. An eggbeater is easy to build and matches the 50-ohm input impedance of the receiver.You can capture the output(s) from the receiver using a soundcard as I show here...which can give you an idea of the quality of the signal as received.

    Bruce Reynolds sells the 433.92MHz version of this receiver. I believe he has some example projects with PBP code on his website.

    BTW, the fact that your code works with a hardwired connection is another indication that your problems are related to RF signal quality.

    Good luck.
    I am using the digital data output pin. Also, since I need to send my data 5 times and with a pause of 5 does it mean that I should make my preamble longer?

  7. #7
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    Serial communication is a female thing, so bear in mind that preamble are needed and some of them may say the size don't make any difference
    ---------------------------------------------------------
    Usually 3-5 $AA as preamble is enough. Machester encoding have it's own advantage if you send long data packet. A checksum is also handy.

    I don't think the character pacing (pause x) is really needed if you're using a slow baudrate (2400 bauds or so)

    a single SEROUT/DEBUG/SEROUT2/HSEROUT line is all you need in many case.

    Always make sure your crystal are accurate.

    BTW which PIC are you using?
    Last edited by mister_e; - 24th April 2007 at 22:49.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  8. #8
    Join Date
    Dec 2005
    Posts
    1,073


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by oneohthree View Post
    I am using the digital data output pin. Also, since I need to send my data 5 times and with a pause of 5 does it mean that I should make my preamble longer?
    I would use a 5ms pulse as the preamble and a 20ms pause between data packets (it allows the AGC and threshold to reset).
    On the receiving end I would use PulsIn to wait for the 5ms pulse and then go into the normal receive routine once it's received. Using some type of error detection (e.g. checksum) is a necessity.

    What range do you need? How much data do you need to send?

    Looking at the digital data pin with a 'scope (or recording it with a soundcard as I suggested earlier) can eliminate a lot of guesswork by telling you whether your signal strength is adequate. I find it invaluable.

  9. #9
    Join Date
    Sep 2006
    Location
    Venezuela - Caracas
    Posts
    48


    Did you find this post helpful? Yes | No

    Default

    i had many bug with RF 433mhz
    try pause 5 to pause 50

    im my circuit pause 5 word perfect
    without pause not work for me

    my simple test

    Code:
       ...
    transmiter:
       for i =  1 to 30
          serout data_out, N2400, ["<", "A", "B", ">", i]
          PAUSE 5
       next i
    Code:
       ...
    receive:
       serin data_in, N2400, "<ABDC>", TIME_OUT, I
       if i=1 then .........
    
    TIME_OUT:
    goto receive
    Last edited by mpardinho; - 24th April 2007 at 20:47.

  10. #10
    Join Date
    Mar 2007
    Posts
    42


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by mpardinho View Post
    i had many bug with RF 433mhz
    try pause 5 to pause 50

    im my circuit pause 5 word perfect
    without pause not work for me

    my simple test

    Code:
       ...
    transmiter:
       for i =  1 to 30
          serout data_out, N2400, ["<", "A", "B", ">", i]
          PAUSE 5
       next i
    Code:
       ...
    receive:
       serin data_in, N2400, "<ABDC>", TIME_OUT, I
       if i=1 then .........
    
    TIME_OUT:
    goto receive
    The pause helps if I need to send the data more than once. But when I only send it once it doesn't help

Similar Threads

  1. Wireless Tachometer - Design Help
    By DanPBP in forum Off Topic
    Replies: 2
    Last Post: - 3rd May 2009, 09:06
  2. RS485 Vs Wireless (TWS-434A)
    By koossa in forum Off Topic
    Replies: 3
    Last Post: - 11th April 2009, 12:40
  3. Serial Wireless
    By mackrackit in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 29th May 2007, 16:06
  4. Serial comm - are 2 wires for TX only enough?
    By flotulopex in forum mel PIC BASIC Pro
    Replies: 9
    Last Post: - 30th August 2006, 03:23
  5. RS 485 wireless communication
    By Armadus in forum mel PIC BASIC Pro
    Replies: 22
    Last Post: - 26th January 2006, 19:30

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts