The RE-Mote (revision A) as default has an on-board RP-SMA connector, which allows to use either the sub-1GHz or the 2.4Ghz radio interface with an external antenna, without having to solder anything else. However this only allows to switch between one or another (with just a single command from within the application), but could I use BOTH radio interfaces at the same time?
Sure!
You can add a ceramic chip antenna for the 2.4GHz radio, or just add an extra U.Fl connector if you want to use yet another external antenna only for the 2.4Ghz radio, connected over a pigtail.
List of materials- In case you want to mount an U.Fl connector
- In case you prefer a ceramic chip antenna
- And you will need one 0Ohm resistor for the U.Fl, two for the chip antenna
A soldering iron and solder lead. Depending on your skill with the iron solder a tweezer will come handy.
The photo below shows the 2 x 0 Ohm resistors and the Ceramic chip antenna mounted in its proper location.
The photo below shows the location of the U.Fl connector and the 0 Ohm resistor to enable the via. Note that it is not possible to mount both the U.Fl connector and the ceramic chip antenna at the same time, as both share the same soldering pad.
Now that we have both interfaces enabled, there's one extra step: enabling support in the application.
The RE-Mote has an on-board radio switch in charge of enabling one or another radio to the mounted RP-SMA antenna connector.
In detail what it does is to power down the Sub-1GHz interface (the CC1200 radio transceiver) when the 2.4GHz radio is used, thus saving a bit of power. To enable both interfaces at the same time, just select the Sub-1GHz RF interface from within the application and... that's it! the CC1200 will be on, and the 2.4GHz radio will use the newly soldered antenna.
Enabling both radios in Contiki
The easiest way is to enable the REMOTE_DUAL_RF_ENABLED
flag (include in your applicationMakefile
or project-conf.h
file, this will enable the following block, selecting as default theANTENNA_SW_SELECT_SUBGHZ
at boot.
#if REMOTE_DUAL_RF_ENABLED#define ANTENNA_SW_SELECT_DEFAULT ANTENNA_SW_SELECT_SUBGHZ#else /* REMOTE_DUAL_RF_ENABLED */#ifndef ANTENNA_SW_SELECT_DEF_CONF#define ANTENNA_SW_SELECT_DEFAULT ANTENNA_SW_SELECT_2_4GHZ#else /* ANTENNA_SW_SELECT_DEF_CONF */#define ANTENNA_SW_SELECT_DEFAULT ANTENNA_SW_SELECT_DEF_CONF#endif /* ANTENNA_SW_SELECT_DEF_CONF */#endif /* REMOTE_DUAL_RF_ENABLED */
Or from your application just add the following:
#include "antenna-sw.h"
antenna_sw_select(ANTENNA_SW_SELECT_SUBGHZ);
Plenty of use cases! you can have for instance an interface for Thread-compatible devices like the Nest thermosthat (see Thread Group), while on the other side having a long-distance (in Kilometres even) link with other devices, like your gardening sensors outside at the garden, without the burden of obstacles and the short range of WiFi-like devices.
This is of course a simplification of the scenario, many other applications and services can be built on top of a dual radio device, tell me yours!
Comments