Go Down

Topic: 433mhz wireless problems (Read 5282 times) previous topic - next topic

Cheater

Also it chews cycles doing that which could otherwise be used to do productive things.

PlastBox

Of course both power consumption and data cycles are things one should try to save. So, what if the threadstarter did what I said, except that instead of continously sending "01", he gets the Arduino to send a preamble of.. say.. 4 bytes of "01" before each package? It might still solve the sync-issue, and he would have a fairly robust shell for implementing a higher level protocol with stuff like ID's and such..
Dreaming of extra senses through sensory substitution/agumentation since.. well, for ever.. =P
Going to automate my home, just gotta find the perfect DIY solution first!

mattt


Sending continuous bits will solve the sync issue, but I can't see how this would work for any situation where there's more than one transmitting device.
As it is, my tinkering has shown that sending '1234567890<cr>' before sending payload data, typically results in only seeing between 67890 and 0.  
Sometimes only a few chars of gibberish.
The payload is consistently error free.

I think I will have a crack as designing a simple but usable RF protocol, for multiple units on the same frequency.
I for one have a couple of project I'd like to be able to poke remotely.
http://en.wikipedia.org/wiki/Ethernet#CSMA.2FCD_shared_medium_Ethernet
http://en.wikipedia.org/wiki/Datagram


PlastBox

If you are going to have multiple devices communicating with your computer, you either need some ingenius timing-routine, a system where device 1 transmits to device 2, which appends it's data and transmits to device 3 and so on (not very efficient), or 2-way-communication so the computer can push/poll information to/from the device it wants.

Like I said, sending continous bits was a retarded suggestion on my side. Just send jibberish, followed by an identifier telling the computer that data is starting.

I'm not sure how you plan to link together several devices.. If you need any-to-any communication I'm pretty much lost, but if you need many-to-one type communication, getting a tranciever for your devices is the only good way I can imagine.. The computer says "Hey, unit 3, what is your analog input status?" and device 3 answers.
Dreaming of extra senses through sensory substitution/agumentation since.. well, for ever.. =P
Going to automate my home, just gotta find the perfect DIY solution first!

mattt


I'm thinking I'll give each device an address.
Each devices hears all traffic, much like old Ethernet hubs.

(yes, it will be insecure and vulnerable, but hopefully fun)

John_Ryan

Why not just use different ID sequences for each transmitter, the receiver can decide which unit it's talking to based on the comms start ID string, like "A" for unit 1, "B" for unit 2 .. etc.

John_Ryan

ah, we had a similar thought at the same time  :D

mattt


How might I detect a collision ?

Would a checksum failure be enough to detect a collision ?
So, I'd have to get the sender to listen to it's own data as it's sent ?

diverdale

Which txb1 / rxb1 chip did you use? This looks like it could do just what I'm after....


thanks,
Dale

mattt

#24
Oct 19, 2007, 02:48 am Last Edit: Oct 19, 2007, 02:49 am by mattt Reason: 1
I used ones from Jaycar.com.au

Something has changed though, my signal is almost 100% junk now, I'm not sure if it something with my setup, or some other interference.
It has made me quite grumpy.

diverdale

I just received my tx/rx from sparkfun http://www.sparkfun.com/commerce/product_info.php?products_id=7815 All I see is garbage on the serial console. Spec says 4800bps I've tried both 2400 and 4800 with no luck.  All I'm seeing is garbage.  Anyone had any luck??

Thanks,
Dale

mikem

I have a pair of these tx/rx modules from Jaycar too. The TX is ASK (amplitude shift keying), and when the modulation input is low, it does not transmit (that may be why you are receiving noise) with no signal, the reciver produces noise on its output.

This means that in order to use it successfully, you need to do as another poster said: either transmit a preamble of several characters that gives time for the receiver to sync to the data clock rate, or send a continuous sequence of idle characters until you are ready to send a real data.

mikem

I have now posted information about a new library that correctly implements short message transmission with these types of device, without using the UART. It sends a preamble, checksum, using proper DC balance etc.

http://www.open.com.au/mikem/arduino/VirtualWire.pdf

Cheers.

Shubs

I don't know if this might help or not, but we're using a RF frequency transmitter and receiver to send some data too.
We used a filter at our receiving end to prevent picking up random noise from the air. I hope that helps a little bit too.


Go Up