WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 WIFLY GSX 802.11 b/g wireless LAN Modules User Manual and Command Reference RN-131G, RN-131C, RN-134, RN-121, RN-123 & RN-125 Version 2.21 July 11th, 2010 Copyright © 2010 Roving Networks, Inc. All Rights Reserved. The contents of this document can be changed by Roving networks without prior notice and do not constitute any binding undertakings from Roving networks.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 1. 2. Overview ...................................................................................................................................................4 Hardware Interface ....................................................................................................................................5 2.1. Power .............................................................................................................................
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 12.5. Using DNS settings .........................................................................................................................38 12.6. Utilizing the Backup IP address/connect function ..........................................................................39 13. Sending and Receiving Data via Web Server .......................................................................................40 13.1.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 1. Overview The “WiFly” radio module is a complete stand alone embedded wireless LAN access device. The device has on board TCP/IP stack and applications. Requiring only 4 pins (POWER, TX, RX, GND) to design in. Once initial configuration is set, the radio can automatically access the WiFi network and send/receive serial data over UART. • • • • • • • • • • • • • • • Fully Qualified and Wi-Fi Certified 2.4GHz IEEE 802.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 2. Hardware Interface See the specific module data sheets on the Roving Networks website for hardware specifications, and layout information. 2.1. Power There are two options for powering the RN-131G module directly. DC SUPPLY: Apply 3.3 VDC power to VBATT (pin 20), and V3.3IN (pin 21). Tie 3.3VREG-IN (pin 18) to GROUND. Leave 3.3V-REG-OUT (Pin 17) floating/no connect. BATTERY: Apply battery = 2.0 to 3.3VDC to VBATT (pin 20). Leave V3.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 Factory default is hardware flow control disabled; CTS and RTS are not required. PIO’s are not 5.0 VDC tolerant. If using a 5.0 VDC circuit, input, PIO and UART input pins require a resistor divider. A suggestion is to use a 10K resistor in series with 20k resistor to ground. 2.4. Status Indictors PIO 4, 5 and 6 are active high and can be connected to external LEDs to provide network, connection and data status.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 NOTE: You can enter command mode locally over the UART interface at any time when not connected, and also when connected if the appropriate settings are enabled. Remote configuration using ADHOC mode Using adhoc mode to configure the device eliminates the need for the module to be associated with a network access point.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 4. WiFly Command Reference 4.1. Command Syntax Commands begin with a keyword, and have optional additional parameters, generally space delimited. Commands and options are case sensitive. Hex input data can be upper or lower case. String text data, such as SSID is also case sensitive. The first command is fully decoded and must be complete. Other command parameters can be shorted by using only the first character.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 When the system boots, all configuration data is loaded into RAM variables from the file called “config”. The set commands actually only modify the RAM copy of variables in the system. In general, the IP, WLAN and UART settings need a save and reboot to take effect, since they operate at boot up time. For example you only associate, set the channel and get your ip address once at power up.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 set broadcast interval sets the interval at which the hello/heartbeat UDP message is sent. Interval is specified in seconds. The value is a mask that is compared to a free running seconds counter. For example if interval = 0x7, a packet will be sent every 8 seconds. The minimum interval value is 1 (every 2 seconds) and max value is 0xff (every 256 seconds). Setting the interval value to zero disables sending UDP broadcast messages.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 possible setting to maximize TCP/IP performance. Maximum value = 1420 (at 9600) bytes. NOTE: This value is set automatically when the baudrate is set, in an attempt to optimize the link. It is assumed that higher baudrates equates to more data and hence the flush size is increased. Flush size is one of three ways to control TCP/IP packet forwarding. The others are match character and timer. For more information see section 10.4 on UART Receiver.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 5.6. IP Parameters set ip address sets the IP address of the WiFly GSX module. If DHCP is turned on, the IP address is assigned and overwritten during association with the access point. IP addresses are “.” delimited. Note this is different from the RN111b module which is space delimited! Example: “set ip a 10.20.20.1” set ip backup sets a secondary host IP address.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 NOTE: When the link to an associated to an access point is lost while a TCP connection is active, the TCP connection can be left in hung/ inconsistent state. In some cases, the TCP connection will not recover. In version 2.20 and later, if the link to the access point is regained within 60 seconds, the TCP connection will survive. With version 2.20 we have changed the operation of bit0 in the “ip flags” register.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 5.7. Optional Parameters set opt jointmr Join timer is the time in milliseconds (default=1000) the join function will wait for the an access point to complete the association process. This timer is also the timeout for the WPA handshaking process. set opt sensor Bitmask value that determines which sensor pins to sample when sending data using the UDP broadcast packet, or the HTTP auto sample function.
WiFly GSX www.rovingnetworks.com set sys autosleep WiFlyGSX-um 7/16/2010 Sets the auto-sleep timer. 0 disables. If the protocol is set to UDP ONLY, this timer is used as a quick sleep function. Device will sleep ms after transmission of the first UDP packet. set sys iofunc sets the IO port alternate functions. Bit-mapped value. For more details see section 10.5 set sys mask sets the IO port direction mask. Bit-mapped value. For more information see section 10.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 5.10. UART Parameters set uart baud set the UART baud rate. Valid settings are {2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600}. Example : “set u b 9600” sets the baud rate to 9600 baud. NOTE: the RS232 interface on the RN-134 does not work above 230400 set uart instant set uart raw This immediately changes the baudrate.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 NOTE: Due to an issue in the UART hardware, the UART does not support even or odd parity. 5.11. WLAN Parameters set wlan auth Sets the authentication mode. Not needed unless using auto join mode 2. i.e. set wlan join 2 Note: During association the WiFly module interrogates the Access Point and automatically selects the authentication mode.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 2 3 4 7/16/2010 Join ANY access point with security matching the stored authentication mode. This ignores the stored SSID and searches for the access point with the strongest signal. The channels searched can be limited by setting the channel mask. Reserved – Not used Create an Adhoc network, using stored SSID, IP address and netmask. Channel MUST be set. DHCP should be 0 (static IP) or set to Auto-IP with this policy.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 there is no way to detect an AP is no longer present until it becomes available again (if ever). set wlan mask sets the wlan channel mask used for scanning channels with the auto-join policy 1 or 2, used when the channel is set to 0. Value is a bit-map where bit 0 = channel 1. Input for this command can be entered in decimal or hex if prefixed with 0x.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 13 14 15 set wlan ssid 7/16/2010 36 Mbit/sec 48 Mbit/sec 54 Mbit/sec sets the wlan ssid to associate with. 1-32 chars. NOTE: If the passphrase or ssid contain the SPACE ( ‘ ‘) characterS, these can be entered using substitution via the “$” character. For example, if the ssid of the AP is “yellow brick road” You would enter “yellow$brick$road” Using the ‘get w” command will properly display the value: SSID=yellow brick road.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um get time display the time server UDP address and port number. get wlan display the ssid, chan, and other wlan settings. get uart display the UART settings. ver return the software release version 7/16/2010 7. Status Commands These commands begin with “show”, and they return the current values of variables in the system. In some cases, for example IP addresses, the current values are received from the network, and may not match the stored values.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 show q 0x1 Displays multiple analog interface values at once. The channels displayed is controlled by a bit mask which is proceeded by a 0x1xx where xx mask is the bit mask of the channels. For example, to read channels 0,1, and 7, send: show q 0x183 Which returns 8, 8, 8, \r\n 809 University Avenue • Los Gatos, CA 95032 • Tel (408) 395-6539 • info@RovingNetworks.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 8. Action Commands $$$ enter command mode Characters are PASSED until this exact sequence is seen. If any bytes are seen before these chars, or after these chars, in a 250ms window, command mode will not be entered and these bytes will be passed on to other side. close disconnect a TCP connection. exit exit command mode. Exit command mode. “EXIT” will be displayed. factory RESET Loads factory defaults into the RAM configuration.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 ping h pings the stored host IP address, the host IP address can be set with the set ip host command ping i pings a known Internet server at www.neelum.com by first resolving the URL (proves that DNS is working and proves the device has internet connectivity). ping 0 terminates a ping command reboot forces a reboot of the device (similar to power cycle) scan
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 10. Advanced features and Settings 10.1. System Timers and Auto Connect Timers There are 2 timers that can be used to put the module to sleep, and perform a wake up. If the sleep timer is enabled, the module will automatically go into deep sleep, low power mode once the timer counts down to 0. The sleep timer is disabled if the module has an IP connection, or the module is in COMMAND mode. The timer is reset when characters are received on the UART.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 In TCP-Client mode, the auto-conn timer is used as a connect out timer. If set, the device will automatically attempt a connection when the timer expires. set sys autoconn In TCP-Client AND TCP-Server mode, there is also a disconnect timer. set comm idle sets the idle disconnect timer. This causes a disconnect if no transmit or receive data is seen. 10.2.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 the sensor header. To wake on UART CTS place a jumper from pin 10 on the Evaluation board header to pin 3 on the sensor header. To enable wake on RXD, use set sys trig 1. It should be noted that the first (or possibly multiple) byte sent into the module will likely be lost, so the designer should take care to send a preamble byte to wake up the module before sending valid data bytes.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 However, given the uncertainty of packet delays in a TCP/IP network and the affects of interference and retries inherent in wireless networks, flow control is usually required whenever large, contiguous quantities of data are being written to the UART to guarantee no data is lost. 10.5.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 The table below shows the usage of the GPIO pins with their default state and functionality. 11 10 9 8 7 6 5 4 3 2 1 0 Signal Name GPIO-13 UART RTS GPIO-12 UART CTS GPIO-11 UARTRX GPIO-10 UARTTX GPIO9 GPIO8 GPIO7 GPIO6 GPIO5 GPIO4 N/A N/A N/A N/A Default State Output Input Input Output Input Output Output Output Output Output N/A N/A N/A N/A Default Function Goes HIGH on POWERUP, LOW once system is READY.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 NOTE. Bits 0-3 are mutually exclusive with the bits 4-6. i.e. 0x77 is an illegal value. If the LEDs are disabled using bits 0, 1, 2 above, you can then use the show i command to read these GPIO. <2.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 10.6. Setting Debug Print levels There are a number of print functions that can be enabled to assist in debugging the operation and status of the module. The following command is used to control these printouts. set sys printlvl sets additional print functions. Value is a bit-mapped register that controls which printout messages are sent to the UART.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 NOTE: the WiFly module must by successfully associated with a network for the module to contact the sNTP server. Alternatively, the module can be configured to get the time whenever it powers up by setting the time enable to 1. Any value greater than 1 gets time continuously every minutes. To configure the Wifly module to get time upon power up <2. 20> set time enable 1 AOK <2. 20> get time ENA=1 ADDR=129.6.15.
WiFly GSX www.rovingnetworks.com 11. WiFlyGSX-um 7/16/2010 Sending data using UDP 11.1. Overview UDP is a connectionless protocol. There is no initial handshaking between the hosts to set up the UDP connection. There are no acknowledgements sent by the receiver for UDP packets that it receives. This makes UDP an unreliable protocol, as there is no guarantee that the data will be correctly delivered.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 like a data-pipe, so the UART data will be sent over the Wi-Fi link via the UDP protocol (in this case) and the data coming over the Wi-Fi link (via UDP protocol in this case) will be sent to the UART. 11.2. UDP Auto Pairing UDP auto pairing feature temporarily stores the Host IP address of the first remote device that send a UDP packet into the module. This host IP address is stored in the RAM which will not survive a sleep or power cycle.
WiFly GSX www.rovingnetworks.com - WiFlyGSX-um 7/16/2010 The MAC address of the associated AP, channel, and RSSI value are available in this packet, thus enabling a simple location and tracking based function. By default the WiFly module now sends out a UDP broadcast to 255.255.255.255 on port 55555 at a programmable interval. The broadcast address, port and interval are set using the “set broadcast” commands.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 12. Joining Networks and Making Connections Configuring the module to make connections is a two set process. First you need to associate with a access point (AP) and second you need to open a connection. To configure the module over the WiFi link is a chicken and egg problem. The module must be associated to a network to connect to it and program the network settings.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 You could also have specified the roving1 access point by using the command join # 1 If the access point is security enabled you will need to set the pass phrase prior to issuing the join command. The RN-131G module will attempt to inquire and determine the security protocol of the access point so you do not have to set the authentication mode. To set the pass phrase for WPA use the command set wlan phrase .
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 In the following example assume the network SSID and security have been set correctly and autojoin is set to 1. This will also work in adhoc mode(autojoin 4), however there will be delay in connecting to the adhoc network from the remote computer so set the sleep timer large enough to allow the network to get set up and the autoconn establish a TCP connection.
WiFly GSX www.rovingnetworks.com set dns name WiFlyGSX-um 7/16/2010 sets the name of the host for TCP/IP connections. Once the address is resolved an automatic connection will be made. To manually lookup the IP address of a host, use this command: Lookup string is the hostname. 12.6. Utilizing the Backup IP address/connect function WiFly contains a feature for auto-retry and redundancy. If the first IP host address connection fails, the backup IP will be used (if set) .
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 13. Sending and Receiving Data via Web Server WiFly can be setup to easily pull or post data to a web server. Example: user wants to retrieve data from web server with this format: http://www.webserver.com/ob.php?obvar=WEATHER Settings: set dns name www.webserver.
WiFly GSX www.rovingnetworks.com 13.1.1. WiFlyGSX-um 7/16/2010 Reading a page: WiFly can be setup to automatically post with no HOST CPU: set com remote GET$/ob.php?obvar=WEATHER // setup the string. set sys auto 3 // auto connect every 3 seconds. set option format 1 // auto send the header once connection is open set ip proto 18 // turn on HTTP mode=0x10 + TCP mode = 0x2 NOTE1: when HTTP mode is set, the WiFly automatically appends the \n\n to the end of the packet.
WiFly GSX www.rovingnetworks.com 13.1.4. WiFlyGSX-um 7/16/2010 Auto posting sensor data: WiFly can send its own data which is comprised of the value on the GPIO pins plus the sampled data on the sensor pins: The data will come as 18 bytes of ASCII HEX: <2 bytes GPIO> set sys auto 3 set option format 7 // automatically make the connection // send the header plus the sampled binary data converted to ascii The Resulting string sent to the server will be GET /userprog.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 14. Firmware Upgrade over FTP WiFly module has a file system for storing firmware, web pages and config files. Use the ls command to view files. File size is displayed in sectors and the active boot image is identified in the final message. FL# 11 29 SIZ 18 1 FLAGS 3 10 WiFly_GSX-2.05 config 190 Free, Boot=11, Backup=0 Multiple firmware images and config files can be stored on the module file system.
WiFly GSX www.rovingnetworks.com 30 18 3 WiFlyGSX-um 7/16/2010 WiFly_GSX-2.10 208 Free, Boot=30, Backup=11 Note the module must be rebooted or power cycled to use the new firmware. To boot a different firmware use the following command: Boot image sets the current boot image For example to boot the previous image from above use <2.10> boot image 11 Set Boot Image 11, =OK To upload your own firmware or config file to the module, change the stored FTP settings: See section 5.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 15.2. Configuring adhoc mode The WiFly GSX module can be configured to setup an adhoc network. This mode is useful for point to point communications. The WiFly device is in Adhoc mode the device looks like access point for other WiFi devices to join. Note: currently the WiFly only supports OPEN mode for creating adhoc networks. Adhoc mode can be set via hardware or software commands. To enable adhoc mode via hardware: Set PIO9 high (3.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 set wlan ssid my_adhoc_network reboot or alternatively you can use the join command to associate with the adhoc network. Remember to disassociated using the leave command if you are previously associated to another network. join my_adhoc_network If you leave DHCP service enabled the WiFly device will get an IP address using auto IP when associating with the adhoc network. By definition auto IP fixes the first two bytes of subnet to 169.254.xxx.xxx.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 Note: Once associated with the adhoc network, Vista auto IP may take a couple minutes to allocate an IP address for your computer. To work around this you can assign a static IP address in the network settings / TCP/IP / Properties menu. Once associated with the adhoc network you can open a connection or telnet window as you would with an enterprise connection. NOTE: The module does not support adhoc and enterprise network modes simultaneously.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 16. Analog Sensor Capability The WiFly-GSX has 8 analog inputs that can be driven with 0 to 1.2VDC. Warning: over driving these inputs will cause permanent damage. The analog inputs are sampled and the digital value read by using the show q command. The hardware specifications on the analog input is: Input voltage range: 0 - 1.2V, however the A2D saturates at 400mV.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 Automatic sampling of sensor pins: The sensor pins can be automatically sampled and data forwarded in 2 modes: 1. the UDP broadcast packet will contain the value of the samples. 2. in HTTP mode, the pin sampled data can be forwarded to a remote server to enable the above modes, use the set option format command.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 17. Default Configuration Settings ADHOC PARAMETERS Beacon Probe 100 (milliseconds) 60 (seconds to look for beacons before declaring adhoc is lost ) BROADCAST PARAMETERS IP address 255.255.255.255 Port 55555 Interval 7 (seconds) COMM PARAMETERS Close string Open string Remote string Flush size Match byte Flush timer Idle timer Cmd char *OPEN* *CLOS* *HELLO* 64 0 10 (milliseconds ) 0 $ DNS PARAMETERS IP address Name Backup 0.0.0.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um Join timer/WPA timer Replacement char Format Password Sensor 1000 $ (0x24) 0x00 “” (no password enforced) 0x00 SYSTEM PARAMETERS Sleep timer Wake timer Trigger Auto connect IOfunc IOmask Print level 0 0 1 (SENS0 pin wakes up the device) 0 0 (no alternate functions ) 0x21F0 1 (prints enabled) TIME SERVER PARAMETERS Enable 0 (disabled) Server address 129.6.15.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 PIO9 is sampled at about 1 Hz, so if using a CPU to generate the signal, make sure that PIO9 transitions (H to L or L to H ) are at least 1 second long. User file option As of version 2.10 you can now specify a USER configuration as the factory reset settings. Prior to this release only the hardcoded factory defaults would be restored.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 19. Supported Access Points Access points that are set to MIXED mode (WPA1 and WPA2) may cause problems during association because some of these incorrectly report their security mode. We also currently do not support WPA2-Enterprise (radius server authentication, EAP-TLS) The WiFly GSX should work with any standard Access Point.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 20. Release Notes 20.1. Known problems • • The UART does not support odd or even parity, only no parity is supported. Flow control: RTS may fail to de-assert quickly enough for some high speed CPUs to correctly stop sending data bytes. For high speed transfers at baudrates > 460800, it is best to limit RX data to the maximum Ethernet frame (1460 bytes) and have a protocol to acknowledge data is received by the remote host. 20.2.
WiFly GSX www.rovingnetworks.com • WiFlyGSX-um 7/16/2010 Ability to add prefix to HTML client post, specifically the ability to append &id= and &rtc= in the HTML message. Please refer section 13 for more details. As of Version 2.19 3/05/2009 Fixes • Improved performance of the UART receiver. UART is now reliable at up to 460Kpbs with RTS flow control. Features • Created UART data trigger mode, which will automatically make a TCP/HTTP connection based on received UART data.
WiFly GSX www.rovingnetworks.com • WiFlyGSX-um 7/16/2010 timeout in ms for a join now also applies to the WPA timeout. The default is now 1000ms or 1 second. Note: some APs require up to 1500ms to respond. When connected over TCP and the AP disappears or WiFly loses association the WiFly will now closes the connection. The *CLOS* response will now appear when the connection is terminated by the WIFly.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 commands to the module. NOTE: For consistency, the command prompt response <2.xx> now also contains \r\n appended string when in this mode. As of Version 2.12 9/17/2009 • • • • • Fixed problem with some newer 802.11n - association attempts cause module to crash/reboot. (Such as Linksys WRT160NL) Fixed problem with send on match character i.e. set comm match char. Match char is now operational.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 User specified default configuration - You can now specified a USER configuration as the factory reset settings. The function of PIO9 has been changed slightly. See section 17.1 Configurable Device ID – There is now an additional user programmable device ID that can be used for storing serial numbers, product name, device type or other information.
WiFly GSX www.rovingnetworks.com WiFlyGSX-um 7/16/2010 Fixed the alternate I/O functions to allow connection based on PIO5. The manual has been updated to include a much better description of this functionality. See section 10.5 As of firmware version 2.08 6/08/2009 • • • • • Connecting out an IP address does not use the DNS and backup DNS if the connection to the primary IP address fails. Connecting using DNS if the IP address if 0. UART hardware flow control not yet functional.
WiFly GSX www.rovingnetworks.com • WiFlyGSX-um 7/16/2010 The fast- auto sleep timer for UDP mode is not implemented. Fixes since firmware version 2.05 • • Configuration over Telnet not functional Error checking the correct number of parameters Copyright © 2010 Roving Networks. All rights reserved. The Bluetooth trademark and logo are registered trademarks and are owned by the Bluetooth SIG, Inc. All other trademarks are property of their respective owners.