Networking
When using communication modules some tips might be useful:
General advice
  • The deployment of transmitters and receivers should be planned carefully. The ideal situation would be to have line-of-sight between antennas, and a good clearance from obstacles like buildings, trees, etc (1st radius of Fresnel zone should be respected). There are free web-applications that allow to plot the RF path in each link.
  • Obviously, outdoors performance is better than indoors since there are fewer obstacles.
  • You should always prefer elevated locations (specially for repeaters or central nodes). Mounts or high rooftops are good options. If installing in a lamppost, 4 metres is better than 3.. and 5 is better than 4. In any case, a pole is a good investment to gain some height.
  • Always experiment the placement in each deployment spot. Moving the node few cm can lead to a 5 or 10 dB improvement. To do so, a special mode with frequent transmissions can be done for checking the RSSI in real time before installing the node.
  • The deployment should avoid places with interference sources, like cellular base stations, high-voltage cables, etc. Also avoid buildings where jamming systems may be working (police stations).
  • A rule of thumb in telecommunications is to keep a 10 dB margin in every link between the mean RSSI and the receiver sensitivity. This will protect the link from unwanted, unpredictable fading effects, interference, moving obstacles, weather effects, etc.
  • Networking can be the most complicated part of Waspmote, we suggest to read the Guides thoroughly and experiment with the examples.
XBee modules
  • XBee ZigBee modules need to join the network when they are powered on. So it is needed to check the association indication before try sending for better performances.
  • XBee DigiMesh needs a short period of time to create the routing tables when it is powered on. So it is recommended to wait for a couple of seconds before sending.
  • Generally, it is really useful to include retries in your Waspmote codes to ensure the correct transmissions.
Sigfox module
  • The user must keep in mind the ETSI limitation: For example, for Europe it is 140 packets of 12 bytes, per object per day.
  • The sending process of a single packet takes several seconds so this has implications about power consumption. If ACK is used this process takes much longer.
LoRa module
  • As explained in the LoRa Guide, the time to transmit one packet depends on the selected mode, and can be as long as 6 seconds. This has huge implications about power consumption, channel availability, maximum number of nodes in the network, etc. The user should explore what mode can be used, in a good balance range VS time of transmission.
LoRaWAN module
  • Similarly to the LoRa module, the time to transmit one packet depends on the data rate used. This will vary depending on the conditions. For larger distances more transmission time applies. This has huge implications about power consumption, channel availability, maximum number of nodes in the network, etc. The user should explore the number of nodes to be used.
4G, 3G, GPRS+GPS and GPRS modules
  • The 4G, 3G, GPRS+GPS and GPRS modules need a lot of current (in comparison with Waspmote or XBee modules) to work. It is very important to do an efficient code to save the maximum of battery. Limit the connection time. If the module cannot connect to the network, power off the module and wait to the next send cycle.
  • Reduce the use of the module. For example, upload a file a day instead of uploading a file every hour.
  • If is possible, install the Waspmote with 4G, 3G or GPRS with an external power source (for example, the solar panel) to recharge the battery of the system. This increases the life of the mote before substituting the empty battery for another one with charge.
  • Contact with your mobile network provider to know the APN of your connection, user name and password.
WIFI PRO module
  • The WIFI PRO module requires that the battery is connected. Do not let the battery discharge completely.
  • This module has a great power consumption. Try to minimize the time it is in use in order to optimize battery usage.
  • When using encrypted access points, be careful with the length of the keys (WEP = 13 characters) and in the case of passphrases (WPA1, WPA2) set them in plain text (not hexadecimal).
Bluetooth Pro
  • Bluetooth inquiries need some time to be performed. If you are planning to discover a large number of Bluetooth devices, it is recommended to set inquiry time above 10 seconds.
  • The "friendly name" of each Bluetooth device requires a lot of time to be read. If you want to speed up your inquiries, avoid asking this parameter with the corresponding function.
Bluetooth Low Energy
  • Last scan is saved on the EEPROM by default. When a new scan is performed, previous scan data is overwritten. It is recommendable to save the scanning data in other way, like SD card or send it through a radio module, to avoid missing the data.
  • If you are sending your custom commands to the BLE module, remember to parse the command answer and the possible events. The command answer should arrive in less than 100 ms, but the events can take more time.
NFC/RFID
  • Introduce a little delay after read-write operations (a few milliseconds). This will avoid the hang of the module.
  • Do not try to read or write unless the authentication operation was passed. You can use several if's to control the code flow.
  • Do not write address 0, 3, 7, 11, 15, ... if you are not an advanced user. You could leave your tag unaccessible.
Copy link