433 AND 868 MHZ on one arduino, is this possible?

Added by woozer over 6 years ago

Just a question.

Is it possible to connect a 433 AND a 868 RFM12B to one arduino using SPI and a SS line to each radio module,
while being able to receive from both units?

Arduino documentation states that, when the SS pin is low, the device connected ignores it’s master.
But do the radio modules buffer received data?

can i do something like this?:

> select radio module one by setting ss1 to high and ss2 to low
> if radio has data, get data
> select radio module two by setting ss1 to low and ss2 to high
> if radio has data, get data

Thanks in advance,


Replies (1)

RE: 433 AND 868 MHZ on one arduino, is this possible? - Added by martynj over 6 years ago

You can certainly address and manipulate multiple RFM12’s as you describe. The SS line completely partitions the bus activity and the Slave is obedient - it never speaks unless selected.

There are some difficulties higher up the chain though. The RFM12 family has a single byte buffer for transmit and receive. That gives limited time to see a byte is ready and prepare for the next. The standard driver uses interrupts to grab attention and a short interrupt service routine dedicated to that module - dual modules would need dual interrupt lines and duplicated drivers (IMHO sharing the same IRQ would need a lot of driver rework) A different driver design could ignore interrupts and spin on status flags, but that would leave little time for anything else.

If there are enough processor cycles to handle dual drivers/dual traffic without buffer overflows, then some thought is needed on module interaction. The two can listen in parallel quite happily, but what happens if one is transmitting right ‘next-door’ to the other receiver? The strong signal - even in a different band - risks overwhelming the receiver of the other module. So without special precautions with layout, the active states are restricted to one/both RX, one/both TX, one TX/other RX off.