If you find difficulties using Waspmote, first please make sure you read the documentation available on our website:
for general information, hardware and sensor boards, go to our Support Section
to get information about the programming process, functions and software, please visit the Development Section
You should also search in the forum
, as most of the possible questions have been answered there.
If the problem persists, and before writing in the forum, follow all the points of the next checklists. 2 Hardware
Check the next basic points about the hardware configuration:
h1 - you connected the battery to Waspmote, and it is charged. Remember you have to charge the batteries at least for 24h before start using Waspmote. "DO NOT TRY TO RECHARGE THE NON-RECHARGEABLE BATTERY. IT MAY EXPLODE AND CAUSE INJURIES AND DESTROY THE EQUIPMENT. DEVICES WITH NON-RECHARGEABLE BATTERIES MUST BE PROGRAMMED THROUGH THE USB CABLE WITHOUT THE BATTERIES CONNECTED. PLEASE DOUBLE CHECK THIS CONDITION BEFORE CONNECTING THE USB. DO NOT CONNECT EITHER UNDER ANY CIRCUMSTANCE THE SOLAR PANEL TO A DEVICE WITH A NON-RECHARGEABLE BATTERY AS IT MAY EXPLODE AND CAUSE INJURIES AND DESTROY THE EQUIPMENT."
h2 - you connected the auxiliar (coin cell) battery too, and it has charge
h3 - you put the jumpers in the right position (programming jumper set (view *), hibernate jumper set, RSSI jumper not set)
*Note: with the last version, the programming jumper is not necessary to enable the upload of code. That means that the code can be written in Waspmote regardless of if the jumper is set or not. 3 Software
Also check these points about software:
s1 - you have downloaded the latest version of the API (available at http://www.libelium.com/development/waspmote
s2 - you have selected Waspmote in the IDE (tool → board)
s3 - you have selected the correct USB port in the IDE (tools → serial port). If you are unable to see the proper USB port maybe you should install the latest FTDI drivers: http://www.ftdichip.com/Drivers/D2XX.htm
Note: the name of the USB ports depends on the OS and the particular PC you have. The best way to find the USB where Waspmote is connected is trial & error.
s4 - Check if you can upload basic codes (file → examples) to Waspmote. Before doing the upload:
- Important! The XBee module must be unplugged to let Waspmote be programmed
- the power switch must be ON
- the Sensor Board (if any) must be unplugged
Then check you can upload the “hello_world” program that Waspmote had initially; there are several versions, depending on the protocol: viewtopic.php?f=14&t=7741
Remember the appropriate way to upload any code to Waspmote (including the “hello_world”) in the next chapter. 4 Uploading Code
The following steps must be done each time we must upload code, always:
1. Switch Waspmote OFF (in the image, move switch to the right).
2. Unplug all the modules like XBee
, communication modules, Sensor Board, etc.
3. Make sure the battery is connected and charged.
4. Make sure the auxiliar battery is connected and has charge.
5. Make sure the jumpers are in the right position.
6. Switch Waspmote ON (in the image, move the switch to the left).
7. Connect Waspmote to your PC through the USB cable. Open the Waspmote's IDE and select the proper Board and Serial Port with in the “Tools” menu.
8. Prepare your code for Waspmote. In our case, go to the template of the “hello_world” or copy and paste the text in the sketch.
9. Save the sketch (the IDE has a button for that), for example with the name “hello_world”, and check the IDE states “Done Saving”.
10. Compile the code (the IDE has a button for that), and check there are no errors or warnings. The IDE should say “Done Compiling”.
11. Upload the code to Waspmote: click the “Upload” button and wait a few seconds until the process ends; check there are no error messages, just “Done uploading”.
12. Switch Waspmote OFF (move switch to the right).
13. Disconnect the USB cable from Waspmote and from the PC.
14. If the sketch is going to send wireless frames via XBee, connect the Gateway to your PC through a USB port. The antenna must be connected to the Gateway's XBee too.
Note: the Gateway is just a UART-USB bridge. This means that the Gateway cannot be programmed
and no code can not be uploaded. Its function is to pass data from the XBee to the USB, and vice-versa.
15. Select this new device in the “Tools/Serial Port” menu (if it was not detected).
16. Plug to Waspmote all the needed devices (XBee, communication modules, Sensor Board, etc). In the “hello_world” example, only the XBee is needed. In any cases, make sure the antenna is connected to the XBee.
Note that the XBee has NOT been connected from step 2, until now.
And if your project involves a Sensor Board, connect it to Waspmote now:
17. Switch Waspmote ON (move switch to the left).
18. Open the Serial Monitor in the IDE to see the packets that are being sent by the Waspmote's XBee. These packets are put in the PC's USB port by the Gateway.
In the “hello_world” example, Waspmote sends one frame per second. You can check the Waspmote's LEDs blink when a frame is transmitted. The frame is displayed as one line in the Serial Monitor. In the beginning of each line there are strange characters. This is normal: they are the headers of the WSN protocol. They are not intended to be read by the user, but by devices, this is why they seem to be rubbish.
After the headers we can see the real data, transported as payload: the MAC address of the sender Waspmote, the acceleration in 3 axis, the temperature and the battery level.
NOTE: In fact, the MAC of the sender Waspmote can be also read on the bottom of its XBee:
19. You can also open another graphical serial terminal application like CuteCom
to see the incoming wireless frames to the Gateway. Please note the correct configuration:
NOTE: if your sketch does not send data through XBee, but through USB, you can just skip steps 13, 14, 15 and 19, and monitor the frames in the Serial Monitor (step 18).
(*) for ZigBee and DigiMesh users: when the Gateway's red LED is not blinking, it means it is configuring the network. When the red LED blinks, the network is already configured and ready to be used. 5 Networking Problems
If you have networking problems, please check first this tips:
1. All XBees are in the same network that the Gateway (or Meshlium). In Waspmote's API, PANID parameter is set with “setPAN” function. You can also set this parameter for each XBee plugging it to the Gateway, and then connecting it to a PC: the Digi's X-CTU application
helps to check and set the XBee's configuration. In this case, you must use the ATID command.
2. All XBees are in the same channel. The CHANNEL parameter is set with “setChannel” function. If you want to do it in the X-CTU way, you must use the ATCH command.
3. All Waspmotes are transmitting towards the MAC of the Gateway (or Meshlium).
4. All XBees are configured to 38400 bps. In X-CTU, you can control data rates executing the ATBD command.
5. All XBees have the same encryption options. The ENCRYPTION MODE parameter is set with ”encryptionMode” function. In X-CTU, the related command is ATEE. And the ENCRYPTION KEY parameter is set with “setLinkKey” function. In this case, the X-CTU command is ATKY.
6. All Waspmotes' XBees are set in mode AP = 2 (API mode).
Details for the X-CTU operation (only use X-CTU if you are an advanced user, since you could damage your XBee modules because of your bad use):
1. Place in the Gateway the XBee you need to configure. Then connect the Gateway to a USB port in your PC.
2. Open the X-CTU application, select the appropriate communication port and configure it like that:
3. Perform the test (there is a button for that) and check the application delivers a message similar to this one:
It is possible that X-CTU asks you to do a reset of the XBee in this step (or in the next steps). To do that, just press the button "RST" in your Gateway for 1 or 2 seconds.
4. Then go to the Modem Configuration tab, and select the Read option. We must check each parameter first, and if we want to change it, we will go to the Write option.
5. Check the first parameter, CH:
6. The PAN ID:
7. The destination address (2 parts):
8. The KY parameter (if needed):
9. The data speed:
10. The API options:
(*) [just for ZigBee users] If you set to 1 the JV parameter (in ZigBee End Devices/Routers) and write it, the radio module will verify the Coordinator (if it has been configured) is on its operating channel when joining or coming up from a power cycle. If a coordinator is not detected, the router will leave its current channel and attempt to join a new PAN. This feature can be useful when several ZigBee End Device or Router have not been configured yet; this way you can get them connected to a existing network in a semi-automatic way.
If JV=0, the router will continue operating on its current channel even if a coordinator is not detected.
(*) If you needed to change your XBees configuration to the values by default set by Digi (NOT the same values by default that Libelium sets), you can do it in X-CTU. Note it is risky since you could let the XBee without communication. You can just press the button Read, then Restore and after that you will probably have to reset the XBee. You can Read again to check the change. Green values are OK, Blue values (if any) are those which could not be changed. 6 SD card problems
Only use 2 GB maximum micro SD cards. HC cards are not compatible.
There are many SD card models; any of them has defective blocks, which are ignored when using the Waspmote's SD library. However, when using OTA, those SD blocks cannot be avoided, so that the execution could crash. Libelium implements a special process to ensure the SD cards we provide will work fine with OTA. The only SD cards that Libelium can assure that work correctly with Waspmote are the SD cards we distribute officially.
Given an SD card, depending on the capacity of it, the user is able to know if it is compatible with OTA or not. To check the capacity of a SD card, please follow the next steps according to your OS:
* The following restrictions in SD capacities only apply for those Waspmotes with
* bootloader versions before bootloader "A#". Note that "A#" or newer bootloader
* accepts more types of SDs, with different capacities.
It is necessary to install a program like 'gparted' or similar. When checking the SD card you can see two possibilities. If the capacity is 1.87 GB, the SD card is correct:
On the other hand, if the size is 1.84 GB, that means there are bad sectors in the SD card, so that this card will not be able to implement the Waspmote OTA feature:
You can check the size of the SD card by clicking on the properties of the storage device. If the size of the device is 1.86 GB, the SD card is correct:
Otherwise, if the size is 1.83 GB, there are some defective sectors and the OTA operations will fail:
3. mac OS
You can check the size of the SD card by clicking on the properties of the storage device. If the size of the device is 2 GB, the SD card is correct:
Otherwise, if the size is 1.98 GB, there are some defective sectors and the OTA operations will fail: 7 Usage and storage recommendations for the batteries
The rechargeable, ion-lithium batteries, like the ones provided by Libelium (capacities of 1150, 2300 and 6600 mA·h), have certain characteristics which must be taken into account:
- Charge the batteries for 24 hours before a deployment. The aim is to have the charge of the batteries at 100% of their capacity before a long period in which they must supply current, but it is not necessary to improve the performance.
- It is not advised to let the charge of the batteries go below 20% of capacity, since they suffer stress. Thus, it is not advised to wait for the battery to be at 0% to charge it.
- Any battery self-discharges: connected to Waspmote or not, the battery loses charges by itself.
- Maximum capacity loss: as the charge and discharge cycles happen, the maximum charge capacity is reduced.
- Batteries work better in cool environments: their performance is better at 10 ºC than at 30 ºC.
- At temperatures below 0 ºC, batteries can supply current (discharge), but the charge process cannot be done. In particular:
o discharge range = [-20, 60] ºC
o charge range = [0, 45] ºC