More than 1 433mhx TX

ZOR

Senior Member
I want to adopt more than 1 433mhz transmitter module in a system. I know I cannot have both TX boards transmitting without lockup/freeze.

Is there a way to use the enable pins of the encoders so that an accompaning receiver with each transmitter can listen to hear if the other is transmitting.

I attach a circuit being used using encoder. I wiil be using Picaxe to hold simple on/off commands to when the transmitter is free to send it.

A third receiver will be common to both transmitters. I could put something together but would rather ask if it's feaseable before possibly wasting time. Thanks

PICFORUM.jpg
 

rossko57

Senior Member
Is there a way to use the enable pins of the encoders so that an accompaning receiver with each transmitter can listen to hear if the other is transmitting.
Probably, but that's not a complete solution. Both TX could start up at the same time.
If you must guarantee the data is delivered, there are many techniques to do it using two-way comms for handshaking.
 

hippy

Technical Support
Staff member
What you are proposing is probably not possible just by adding a receiver to the fob encoder.

It's like a group of people; two or more people will eventually start talking simultaneously if they only rely on no one else speaking.
 

ZOR

Senior Member
Many thanks both, I thought that might be the case but wanted some confirmation first.
 

Buzby

Senior Member
If your 'third receiver' can transmit as well, then you can build a simple 'Collision Detection and Retransmission' system.

A transmitter sends a message, then waits for a reply from the 'third' station.
If the 'third' recognises a valid message it transmits an 'Acknowledge'. If it sees a garbled message then it does nothing.

The transmitter waits for the Ack, and if not seen, it waits a further random time, then sends again.
If two stations tx at the same time, the receiver sees garbage, so no Ack is sent.

Because each station waits a random time before re-txing there is little chance of the next tx's occuring at exactly the same time.

Your proposed solution of adding a reciever to each transmitter, without a transmitter at the 'third' receiver, can work.

It's a bit more difficult though.

As a transmitter is txing, it simultaneously listens. If the rxed data matches the txed data, then the station assumes the message was sent OK.
If the tx <> rx then the transmitter assumes it was garbled by a different station txing at the same time, so waits a random delay, and re-txs again.
In fact, both transmitters send again, but the random delay ensures they don't clash.

This is very tricky solution to get working with normal radio gear, as the local tx tends to swamp the local rx, so the station thinks every message was sent OK, or every message was scrambled. It depends on just how the swamping is.

Your final solution really depends on your specific application.
It maybe that you don't need any extra receivers at all !.

Cheers,

Buzby
 

ZOR

Senior Member
Many thanks Buzby. Something to think about.

My idea was as the transmitter is 4 channels, if the receiver of TX2 had a low coming out of Channel 1 it knew TX1 was transmitting and would hold sending it's high/low data to the 3rd receiver until Channel 1 went low.
The same thing would be applied to the other pair, where Channel 2 would be used to send a low output which TX1 would know TX2 was transmitting, and again the high/low instruction would get held until it knew TX2 had ceased.

If it worked it's a shame as 2 channels are getting used just to steer/control, and if I wanted to expand further then I would run out of channels. Problem is things often work in my head but fail in practice. Maybe the wife's voice in the background doesn't help!
 

eggdweather

Senior Member
All those receiver types are not channelised and so receive all Tx frequencies so it may help to have a single Rx. If you sent a key with each Tx and relied on a simple collision/statistical approach then eventually a valid signal will get through, but what latency do you want? Nearly every product on the 433Mhz band uses that technique in combination with a good device ID coding mechanism and they all work fine. In my property I count 9 devices all working on the same principal.
 

ZOR

Senior Member
Thanks. Regarding channelised, the circuits I am using are remote 4 channel.
PICFORUM.jpgPICFORUM2.jpg

With external circuitry yet to be devised, both transmitters would be disabled. When a switched high/low is wanted to be sent (ie Picaxe output) to the third receiver, providing all outputs on the receiver were low, it would know it's okay to enable the applicable transmitter to send to the third receiver and then disable itself. As I said TX/RX pair 1 would look for Channel 2 to be high to know the other was not transmitting vice versa.

I think it would work, just wonder if anyone has done something similar. If it would work it would be good, only down side is using 2 of the 4 ...
 

hippy

Technical Support
Staff member
I think it would work, just wonder if anyone has done something similar.
It won't work and we demonstrate the problem every time we start to talk at the same time someone else does, when we try to walk through a doorway with someone else coming the other way, or do the left-right dance with another person approaching us.
 

rossko57

Senior Member
Listening before transmitting does not eliminate the possibility of collision, it just improves your chances a bit. Sending multiple repeat packets can improve your chances a bit more, at the cost of delay. Depending on the application, you may need to manage events at the receiver to avoid multiple actions.

It can sort-of work, it is your decision if possible failure is acceptable - application dependant. Might be acceptable for changing channels on the TV, where the operator provides an intelligent feedback-based retry workaround. Not acceptable for a security system.

Sounds like a model vehicle here? Actual chances of two operators etc.?
 

ZOR

Senior Member
Thanks rossko57. I was thinking of initiating the TX enable pin on th HT12E with a timer to allow it freedom of 3 seconds to transmit. Then thinking if I did this to other TX devices then they would all get a turn to send a low output. But then how do I syncronise an enabling polling order to 1-3 TX devices, a master TX sending out a clock pulse or whatever.
I really should listen to hippy and drop it!
 

hippy

Technical Support
Staff member
I really should listen to hippy and drop it!
If you are prepared to add additional circuitry then it could work. Each can be made to transmit in turn by watching other or master activity and applying time delays, but it probably makes more sense to use something which is smarter and can share bandwidth, handle collisions and automatic retries.

It is possible to knock a round peg through the square hole but it's usually better and more appropriate to have the right peg to start with.
 

techElder

Well-known member
It is possible to knock a round peg through the square hole
A friend of mine from east Texas once said about his little brother, "He can %*R&-up a crowbar in a sand pile!" :rolleyes:
 

rossko57

Senior Member
Still haven't told us the actual requirement here. Must a transmission get through? (consequences of missing one, or missing two conflicting transmissions from two sources?) Be clear on the requirement before the mechanism.

If you find it does include words like "must" you are certain to have to use a two-way scheme, with handshaking, so that'll force a decision!
 

ZOR

Senior Member
Thanks, it's just switches making 1 of the 4 channels of the receiver go low output.
Instead of a PIR making the TX enabled it will be a switch

FORUM1.jpg

Making the TX enabled in the TX allows any one of the four switches to be used to transmit lows to the receiver.
A Picaxe will be used to hold the fact a switch was closed in the event another TX stopping it's transmission. It's all a very simple requirement providing more than 1 TX is not transmitting at the same time. I think that woul happen as a rare occasion, example being a gate at the front and rear of a house.
 
Last edited:

ZOR

Senior Member
Thanks. Unless there are all police surrounding my house coming through gates front and back at the same time not a problem. However I can see where your coming from (not a pun on the fog) I am still looking into ways the TX's are disabled but take turns to get transmission. I am looking into how each module with 08M2'S can all start at the same time and work out duty delays. I think I will get there in the end, just hoped somebody may have gone down this road with an easy solution. Just hope I don't get put in the funny farms white van collection in trying to do it.
 

ZOR

Senior Member
Maybe I am physic but I thought your message was behind my last one! Maybe the funny farms getting closer to me?
 

hippy

Technical Support
Staff member
I think your scheme is going to have problems using keyfob encoders and decoders. Each sends the complete set of states for its inputs so, even if you can stop collisions, one transmission may signal an activation but the next from some other will clear that activation.

Also the keyfob encoders are designed for momentary activation. Using switches to activate them will cause continuous transmission. Used as gate status indicators the batteries may run flat in a short time if someone simply leaves the gate open. Have you considered the power drain if you are going to keep a receiver for a transmitter encoder permanently powered ?

Then there's the issue of interference caused by the near continuous transmission, when activated or being used to tell the keyfobs when they can transmit or not. That could prevent people's vehicle keyfobs working near the property.

There are also Ofcom regulations governing the amount of time you can transmit for and I believe, for 433MHz over 1mW, that is currently just 10% of the time. If that's the case then, if you have a 100ms transmission, you could only send one transmission every second.
 

ZOR

Senior Member
Thanks hippy. Most of the time the transmitters will be disabled. I am going to work on starting all units at the same time and have staggered delays in all.
Unless a switch has been activated and a "has been activated" value is logged by the Picaxe, when it comes to it's turn if nothing logged it will not enable the individual transmitter. As said in the beginning it's not a high security application. Transmission when on need only last a couple of seconds, maybe done twice to ensure chances of getting out and received.
Regarding powering, I was given some solar panels a while back and will try that for powering.

I think I can only go on with trials, at least with a Picaxe makes life easier.
 

hippy

Technical Support
Staff member
Unless a switch has been activated and a "has been activated" value is logged by the Picaxe, when it comes to it's turn if nothing logged it will not enable the individual transmitter.
It looks like there's a big chunk of how this is all going to work which has not been explained. There seems to be a bit of a catch-22 in having the transmitter not enabled until it has transmitted an activation.
 

ZOR

Senior Member
I cannot add any more to what I want to do. Basically I was looking how more than one transmitter could be used to transmit a low logic pulse into a master receiver, a way in which could gaurd in some way collision transmission which would be rare but could happen.
I pasted my TX and RX circuits. It shows there is a TX enable pin in the TX encoder. I was looking at how I could use these pins in a way to avoid collisions.

As nobody has shown a way to overcome this so I will try my way. Each location having a Picaxe will hold a value if a switch gets closed. Each Picaxe will have looped code involving a time delay staggered in time to other units. All units must power up together in the beginning to ensure all delays are ordered.

All TX modules will be disabled, so dead. When the timer for an individual unit comes round it will look to see if a Picaxe pin is low, meaning an input switch got closed. If this is the case the transmitter will enable and send out a low to the master receiver, disable the TX module, and reset the Picaxe pin holding the value.

I cannot explain things any more, I am using the circuits put up, they have not failed so far in test.

I am still interested to hear from anyone that has done this or another way.
 

hippy

Technical Support
Staff member
I guess what's losing me is the matter of what PICAXE's. There haven't been any in the circuit diagrams and all the transmitters seem to be controlled by switches.
 

ZOR

Senior Member
Thanks hippy. There are no circuits yet for the Picaxe, probably will use 08M2 as said earlier. I am just working with the Transmit and Receive circuits posted. I was only dicussing this on the forum to find how/if anyone else had looked into the problems when trying to use more than 1 433mhz TX in a project. Possible ways of how I can disable/enable during events to overcome collisions, freezing of modules. I have tried to be definitive in what i was asking
Nothing related has come up, just warnings of collisions which I knew and was trying to find suggestions of how I could reduce or avoid. Yes the units/locations only tell the master receiver if a switch got momentarily closed, nothing more. That's it, no mysteries.
 

rossko57

Senior Member
We've told you, for foolproof transmission you need two-way communications. There isn't much to add to that.

We don't know if you actually need foolproof, but it appears not?
Get all your Tx to just lie silent when inactive. When activated, get your Tx to repeat their transmission in bursts a half-dozen times, with random radio-silence gaps between. This will mostly work. No synchronising needed.

Maybe the inability to tell if there is a problem with any Tx or jamming is a problem; you haven't said. Maybe the likely repetition will be a problem; you haven't said. Maybe the few mS potential time delay will be a problem; you haven't said. Maybe you need to tell one Tx from another; you haven't said.
 

Buzby

Senior Member
Hi Zor,

I'm sorry you don't feel that you have been given any help, but it's been a bit of a struggle to determine exactly what your requirements were.
It is impossible to avoid collisions without either 'polling' or 'co-operating', and neither of these is possible with just two TX's and one RX.

However, you last post clarifies the situation, and also seems to show that you have already got the answer.

You just need the tx units, no extra rx needed.

Whenever a transmitter detects a switch event, it sends a number (N) of identical messages, with a (Y) gap between each message.

N is fixed, say 20, Y is different for each transmitter, say gap 3 for one and gap 5 for the other.

The result of two transmitting at the same time is that at least one of each message will get through, due to the gap timing being different on on each transmitter.

You do not need to 'power up' all the units at the same tiime, any differences will be invalid after a few tens of mS

It's a bit difficult to visualise, but I'm sure one of those nice ASCII art drawings of hippy's will make it perfectly clear.

Cheers,

Buzby
 

ZOR

Senior Member
Thanks Buzby. I think I am going to get 2 transmitters working this way, will try to explain clearly. Each TX devices will have an RX device with it. Each TX device has 4 buttons which when pressed make lows to selected channels on the RX devices.

TX1 will have it's channel 1 button fixed to ground so when it's enabled it sets channel 1 low on both RX units. TX2 will have channel 2 fixed to ground so when it's enabled it will set channel 2 low on both the RX units. Therefore before each transmitter is enabled ie TX1 circuitry Picaxe will look to see if channel 2 is low, meaning TX2 is already transmitting. The syatem then waits for channel 2 to go back high before allowing TX1 to be enabled.
If in the event the external circuitry finds channel 1 and channel 2 low, it knows there is a collision, so some form of timing circuit will kick in to allow resuming before resends.

Both TX1 and TX2 lows can go out on channel 3 and channel 4. These lows being picked up in a third master receiver for active use.

Hope that makes sense. I was greatful for previous answers, don't get me wrong. It's always difficult describing a concept when nothings built.

I have now found a circuit/ic that will accept 8 inputs, which could allow more capacity units to be made.
 

hippy

Technical Support
Staff member
TX1 will have it's channel 1 button fixed to ground so when it's enabled it sets channel 1 low on both RX units. TX2 will have channel 2 fixed to ground so when it's enabled it will set channel 2 low on both the RX units.
That doesn't look like it will work because the TX units you have do not have their own channels. They send all their switch data on one channel. TX for one will send "1 pressed, 2 not pressed" and TX for the other will send "1 not pressed, 2 pressed". But it's not clear what you mean by "channels" and it may be something other than I and others would call "channels".

But there is a continuing disconnect between what you currently have and what will be implemented to achieve what you want. Perhaps provide a diagram of how you think things will be when you have implemented what you believe will work including all components.
 

ZOR

Senior Member
Thanks hippy. I don't know a suitable name for the 4.

VEROTXRX.jpg

I have 2 boards like this. If each TX is enabled, then closing any of the TX 1-4 inputs causes the relevent output of both boards receiver outputs to go low. So I can elect for the first tranmitter to have input 1 grounded causing all receivers to see output 1 has gone low. Therefore the other transmitter/receiver board can be interrogated to see the first transmitter is transmitting, vice versa using input 2 to show TX2 is transmitting. It does not stop collisions but thats next

RXTXPIC.JPG

Not done anything on the Picaxe part until I see ways to control this.
 

ZOR

Senior Member
Yes. Thats correct. Described earlier

LOGICRXTX.jpg

2 BOARDS 2 LOCATIONS

TX1 initiates ice cream 1, so when it's transmitting the other receiver RX2 sees ice cream 1 is low and knows it must wait if it wants to transmit only when ice cream 1 goes high.

The same works the other way round.

"ice cream" is used until hippy tells me a name other than channel

Regards
 
Last edited:

rossko57

Senior Member
Note that listening for button1 / icecream1 does not avoid possible problems with external interference, the RX only outputs when VALID data has been recieved (multiple times). It is not a reliable detector of jamming, fragmented tx, etc. because these cases are indistinguishable from clear air, by this means.
So far as I can see, lookin at "button 1" is useless for the purpose - the TX has to send its sequence three times before the RX accepts it, plenty of time for a "listener" to decide it too is free to start TX (and so trashing both efforts).

I can't follow why you are homing in on listen-before-speak. We know that this in itself will not avoid collisions. So you must either accept or deal with collisions, how much effort you want to put into that depends on the magnitude of the problem versus the inconvenience of failure.

How often are transmissions actually taking place? If it is say once every ten minutes, is occasional failure acceptable? If not, just devise a simple collision-circumventing technique (like repeating at intervals). Listen-before-speak doesn't measurably improve the chances of success here. Plus , not using "button 1" etc. in this way leaves you all four "data bits" to play with in the real application, or to use in some handshaking solution if desired.

How many stations are involved? What happens if a central RX can hear two TX which are far enough apart not to hear each other? Is there a fundamental objection to every station being two-way?
 

ZOR

Senior Member
Hello rossko57, and thanks. However so far I am getting it together without any hitch other than not having two identicle Receivers, one was marked XY-MK-5V the other marked RF-5V. when I matched them together with XY-MK-5V it started coming together. I am working on half the system at the moment, ie TX1 on first board and RX2 on second board. A Picaxe 08M2 holds a momentary switch closure, looks to see if the RX output on channel one is high or low, if low it waits until channel 1 is high (free) telling me the other units not busy and sends a low into channel 1. After a short delay it returns channel 1 high, and resets waiting for anything else.

There are just two pairs of boards plus a common receiver board.

The switches closing to cause transmission are as frequent as a garden gate. So far I have had no interference issues with devices in other things I have, having DIP switches so I can set up address codes for pairs has never given me any problems.

Really there is only one thing thats caught me out so far and that is when power is applied the 4 receiver outputs seem not to be high or low until I give the transmitter an enable pulse followed by a pause to clear it, from then on it's awake. Won't be any solar power breaks in power, even if it did it's not a high security system more of an alert.

Anyhow thanks again, and I am happy at the moment how it's going.
 

ZOR

Senior Member
Still doing okay, although have not sorted out collisions (may not happen because of now known spaces between events).
In early play still but this works happIly in two Picaxes (1 with each unit)

Code:
#Picaxe 08M2
#TERMINAL off

Symbol Switch1 = Pinc.3
Symbol BusyCheck4 = Pinc.4
Symbol EnableTX = C.2
Symbol Icecream4 = C.1

' power up start (code only in one Picaxe)
low c.2
pause 500
high c.2

Do
If Switch1=1 then

 do    
 if BusyCheck4 = 1 then exit ' Other TX is now off
 loop while BusyCheck4 = 0   ' Other TX is still on
  
 low EnableTX  'Enable local TX
 low Icecream4 'Make cream 4 go low
 pause 500
 high Icecream4'Make cream 4 go high
 pause 500
 high EnableTX 'Disable local TX
 end if
 Loop
I did find after powering up, the encoder 4 outputs were not high or low, so in one side I had to put a kick start line in
 
Last edited:
Top