diff --git a/platforms/digi-xbee-hive.png b/platforms/digi-xbee-hive.png new file mode 100644 index 0000000..c21d17f Binary files /dev/null and b/platforms/digi-xbee-hive.png differ diff --git a/platforms/platforms.xml b/platforms/platforms.xml index b75bb39..2a10656 100644 --- a/platforms/platforms.xml +++ b/platforms/platforms.xml @@ -139,4 +139,11 @@ Digi TX64-Rail-Single-Cellular ?\[[0-9a-fA-F]{12}\] ?\(ssh\) https://www.digi.com/resources/documentation/digidocs/90002450/default.htm + + digi-xbee-hive.png + Digi XBee Hive Wi-SUN + xbee_gateway + Digi XBee Hive Wi-SUN(?: W)?(?: (?:EU|IN|JP|NA))? ?\[(.*)\] ?\(ssh\) + https://docs.digi.com/resources/documentation/digidocs/rf-docs/wisun/index.html + \ No newline at end of file diff --git a/samples/cloud/AWS-basicPubSub/README.md b/samples/cloud/AWS-basicPubSub/README.md index e417ad8..7eccf4b 100644 --- a/samples/cloud/AWS-basicPubSub/README.md +++ b/samples/cloud/AWS-basicPubSub/README.md @@ -58,6 +58,7 @@ Supported platforms * Digi TX54 * Digi TX64 * Digi TX64 Rail +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/cloud/AZURE-receiveMessage/README.md b/samples/cloud/AZURE-receiveMessage/README.md index 6227e17..aa630f3 100644 --- a/samples/cloud/AZURE-receiveMessage/README.md +++ b/samples/cloud/AZURE-receiveMessage/README.md @@ -51,6 +51,7 @@ Supported platforms * Digi TX54 * Digi TX64 * Digi TX64 Rail +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/cloud/AZURE-sendMessage/README.md b/samples/cloud/AZURE-sendMessage/README.md index 97b4ca7..45aa390 100644 --- a/samples/cloud/AZURE-sendMessage/README.md +++ b/samples/cloud/AZURE-sendMessage/README.md @@ -51,6 +51,7 @@ Supported platforms * Digi TX54 * Digi TX64 * Digi TX64 Rail +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/cloud/drm/HandleSCIRequests/README.md b/samples/cloud/drm/HandleSCIRequests/README.md index 8ed0fb1..d66db4d 100644 --- a/samples/cloud/drm/HandleSCIRequests/README.md +++ b/samples/cloud/drm/HandleSCIRequests/README.md @@ -108,6 +108,7 @@ Supported platforms * Digi TX54 * Digi TX64 * Digi TX64 Rail +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/cloud/drm/SendMultipleDatapoints/README.md b/samples/cloud/drm/SendMultipleDatapoints/README.md index 2f72971..ad2f462 100644 --- a/samples/cloud/drm/SendMultipleDatapoints/README.md +++ b/samples/cloud/drm/SendMultipleDatapoints/README.md @@ -59,6 +59,7 @@ Supported platforms * Digi TX54 * Digi TX64 * Digi TX64 Rail +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/cloud/drm/SendSingleDatapoint/README.md b/samples/cloud/drm/SendSingleDatapoint/README.md index c3d8a53..1e16dc7 100644 --- a/samples/cloud/drm/SendSingleDatapoint/README.md +++ b/samples/cloud/drm/SendSingleDatapoint/README.md @@ -58,6 +58,7 @@ Supported platforms * Digi TX54 * Digi TX64 * Digi TX64 Rail +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/cloud/drm/UploadDeviceName/README.md b/samples/cloud/drm/UploadDeviceName/README.md index f759580..995d275 100644 --- a/samples/cloud/drm/UploadDeviceName/README.md +++ b/samples/cloud/drm/UploadDeviceName/README.md @@ -81,6 +81,7 @@ Supported platforms * Digi TX54 * Digi TX64 * Digi TX64 Rail +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/configuration/ConfigureDevice/README.md b/samples/configuration/ConfigureDevice/README.md index 63e0815..755ddc1 100644 --- a/samples/configuration/ConfigureDevice/README.md +++ b/samples/configuration/ConfigureDevice/README.md @@ -87,6 +87,7 @@ Supported platforms * Digi TX54 * Digi TX64 * Digi TX64 Rail +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/configuration/ExecuteCLICommands/README.md b/samples/configuration/ExecuteCLICommands/README.md index fe3ef97..85e6c10 100644 --- a/samples/configuration/ExecuteCLICommands/README.md +++ b/samples/configuration/ExecuteCLICommands/README.md @@ -87,6 +87,7 @@ Supported platforms * Digi TX54 * Digi TX64 * Digi TX64 Rail +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/configuration/ManageLEDs/README.md b/samples/configuration/ManageLEDs/README.md index d6c433a..46a06dc 100644 --- a/samples/configuration/ManageLEDs/README.md +++ b/samples/configuration/ManageLEDs/README.md @@ -47,6 +47,7 @@ Supported platforms * Digi TX54 * Digi TX64 * Digi TX64 Rail +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/configuration/ManageRuntimeDatabase/README.md b/samples/configuration/ManageRuntimeDatabase/README.md index 7c3f01e..6ef301a 100644 --- a/samples/configuration/ManageRuntimeDatabase/README.md +++ b/samples/configuration/ManageRuntimeDatabase/README.md @@ -90,6 +90,7 @@ Supported platforms * Digi TX54 * Digi TX64 * Digi TX64 Rail +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/monitoring/AppMonitor/README.md b/samples/monitoring/AppMonitor/README.md index 1cb154e..8f7b3a4 100644 --- a/samples/monitoring/AppMonitor/README.md +++ b/samples/monitoring/AppMonitor/README.md @@ -32,6 +32,7 @@ Run Supported platforms ------------------- * Digi IX15 XBee Gateway +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/serial/RS232/ReceiveData/README.md b/samples/serial/RS232/ReceiveData/README.md index 1d8999e..94cff4c 100644 --- a/samples/serial/RS232/ReceiveData/README.md +++ b/samples/serial/RS232/ReceiveData/README.md @@ -63,6 +63,7 @@ Supported platforms * Digi TX54 * Digi TX64 * Digi TX64 Rail +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/serial/RS232/SendData/README.md b/samples/serial/RS232/SendData/README.md index 29ea115..a760551 100644 --- a/samples/serial/RS232/SendData/README.md +++ b/samples/serial/RS232/SendData/README.md @@ -63,6 +63,7 @@ Supported platforms * Digi TX54 * Digi TX64 * Digi TX64 Rail +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/serial/RS485/ReceiveData/README.md b/samples/serial/RS485/ReceiveData/README.md index 2296885..ec23d63 100644 --- a/samples/serial/RS485/ReceiveData/README.md +++ b/samples/serial/RS485/ReceiveData/README.md @@ -63,6 +63,7 @@ Supported platforms * Digi TX54 * Digi TX64 * Digi TX64 Rail +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/serial/RS485/SendData/README.md b/samples/serial/RS485/SendData/README.md index b56a27c..a7afe8d 100644 --- a/samples/serial/RS485/SendData/README.md +++ b/samples/serial/RS485/SendData/README.md @@ -63,6 +63,7 @@ Supported platforms * Digi TX54 * Digi TX64 * Digi TX64 Rail +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/sms/ReceiveSMS/README.md b/samples/sms/ReceiveSMS/README.md index 9a8261d..f217712 100644 --- a/samples/sms/ReceiveSMS/README.md +++ b/samples/sms/ReceiveSMS/README.md @@ -68,6 +68,7 @@ Supported platforms * Digi TX54 * Digi TX64 * Digi TX64 Rail +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/sms/SendSMS/README.md b/samples/sms/SendSMS/README.md index 62a149f..e753114 100644 --- a/samples/sms/SendSMS/README.md +++ b/samples/sms/SendSMS/README.md @@ -65,6 +65,7 @@ Supported platforms * Digi TX54 * Digi TX64 * Digi TX64 Rail +* Digi XBee Hive Wi-SUN License ------- diff --git a/samples/xbee/communication/ws_get_started/README.md b/samples/xbee/communication/ws_get_started/README.md new file mode 100644 index 0000000..9b84d50 --- /dev/null +++ b/samples/xbee/communication/ws_get_started/README.md @@ -0,0 +1,88 @@ +Wi-SUN Get Started Sample Application +===================================== + +This example is part of the Digi's Wi-SUN Get Started. It demonstrates +how to use the XBee Hive Wi-SUN and the XBee Wi-SUN modules to exchange +data using the socket IPv6 API. + +This application is executed in the XBee Hive Wi-SUN and performs the +following actions: + * Allows the user to input messages to send to the target XBee. + * Listens for incoming IPv6 messages from the XBee network. + +Read the [demo documentation][doc] for more information. + + +Requirements +------------ + +To run this example you need: + +* An XBee Hive Wi-SUN device. +* An XBee Wi-SUN radio module running the corresponding MicroPython + application of the Get Started and its corresponding carrier board + (XBIB-C board). +* XBee Studio v1.3.0 or higher (available at www.digi.com/digi-xbee-studio) + + +Setup +----- + +1. Ensure the XBee Wi-SUN module is in the same network as the Digi XBee Hive Wi-SUN device. + +Run +--- + +The example expects the IPv6 address of the remote XBee device as a parameter to +launch. To obtain that value: + +1. Launch the XBee Studio application. +2. Plug the remote XBee device to the PC. XBee Studio automatically discovers it. +3. Open the device tab associated to the XBee module by clicking on it. +4. Click **Settings** in the left sidebar to open the settings page. This reads + all the settings automatically. +5. Search the **MY** setting. This is the value you have to pass as parameter + to the Python application of the Digi XBee Hive Wi-SUN device. + +Ensure to pass the XBee Device's IPv6 address as parameter to the example application. To do so from PyCharm: + +1. Click on the **Run/debug Configurations** button in the toolbar of your IDE. + It is a combo-box with the name of your project. +2. On the contextual menu that appears, click on **Edit Configurations**. +3. In the new window, there is a **Parameters** field. It allows to input the + parameters of the application. Input **-a ** where + is the IPv6 address of the device that you copied + in the previous section. + +At this point you only need to build and launch the project. Then, read the Get +started section of the documentation for more information about the exercise. + +Supported platforms +------------------- + +* Digi XBee Hive Wi-SUN - minimum firmware version: 25.8.138.60 + +License +------- + +Copyright (c) 2025, Digi International, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +[doc]: https://docs.digi.com/resources/documentation/digidocs/rf-docs/wisun/wisun-gs_c.html \ No newline at end of file diff --git a/samples/xbee/communication/ws_get_started/main.py b/samples/xbee/communication/ws_get_started/main.py new file mode 100644 index 0000000..6b44b84 --- /dev/null +++ b/samples/xbee/communication/ws_get_started/main.py @@ -0,0 +1,82 @@ +# Copyright (c) 2025, Digi International, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +import socket +import argparse +import threading + + +PORT = 9750 + + +def receiver(sock): + """ + Background thread: receive and print incoming UDP datagrams. + """ + while True: + try: + data, address = sock.recvfrom(1024) + print("Received from [%s]:%s >> %s\n> " % ( + address[0], address[1], data.decode().rstrip()), + end='', flush=True) + except OSError as e: + print("Receive error: %s" % e) + +def main(): + print("---------------------------------------+") + print(" | XBee Hive Wi-SUN Get Started Sample |") + print(" +-------------------------------------+\n") + + parser = argparse.ArgumentParser( + description='Simple IPv6 UDP socket client') + parser.add_argument('-a', '--address', required=True, + help='IPv6 address of the server') + args = parser.parse_args() + + # Create an IPv6 UDP socket. + server = (args.address, PORT) + s = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM) + s.bind(('::', PORT)) + + # Start receiver thread. + thread = threading.Thread(target=receiver, args=(s,), daemon=True) + thread.start() + + print("\nType a message and hit Enter to send it to [%s]:%s." % ( + args.address, PORT)) + try: + while True: + # Read a line from stdin and send it as a UDP datagram. + line = input("> ") + if not line: + print("Please, enter some data to send to [%s]:%s." % ( + args.address, PORT)) + continue + + try: + s.sendto(line.encode(), server) + except OSError as e: + print("Error sending data: %s" % e) + except KeyboardInterrupt: + print('\nInterrupted by user, closing...') + finally: + s.close() + +if __name__ == '__main__': + main()