Difference between revisions of "BlueGiga WF121 WiFi"

From RECESSIM, A Reverse Engineering Community
Jump to navigation Jump to search
m (link syntax typo fix)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
Used in [[Roti_making_robot_rotimatic|Rotimatic]] as implemented with [[Roti_making_robot_rotimatic/BlueGiga_WF121_PCB_ZEM0040-1]]
+
Used in [[Roti_making_robot_rotimatic|Rotimatic]] as implemented with [[Roti_making_robot_rotimatic/BlueGiga_WF121_PCB_ZEM0040-1|WF121-A Module & PCB]]
  
[https://www.mouser.com/datasheet/2/52/Leaflet_WF121_lowres-4334.pdf Brochure]
+
Main Project Page: [[Roti_making_robot_rotimatic|Rotimatic]]
  
[https://www.mouser.com/datasheet/2/368/Bluegiga_WF121_Datasheet-1203323.pdf Data Sheet v1.4.9 2013]
+
=WF121-A=
 +
'''Processor: PIC32MX695F512H'''
  
[https://www.silabs.com/documents/public/data-sheets/WF121-DataSheet.pdf Data Sheet v2.0.1 2024]
+
*[https://www.mouser.com/datasheet/2/52/Leaflet_WF121_lowres-4334.pdf Brochure]
 +
*[https://www.mouser.com/datasheet/2/368/Bluegiga_WF121_Datasheet-1203323.pdf Data Sheet v1.4.9 2013]
 +
*[https://www.silabs.com/documents/public/data-sheets/WF121-DataSheet.pdf Data Sheet v2.0.1 2024]
 +
*[https://www.silabs.com/documents/public/user-guides/UG221.pdf Developer Guide v3.0 2016]
 +
*[https://www.silabs.com/documents/public/application-notes/AN998.pdf Application Notes v1.1 2014]
 +
*[https://www.silabs.com/documents/public/user-guides/ug209-bgscript-scripting-language.pdf BGScript Developer Guide v4.3 2020]
 +
*[https://www.silabs.com/documents/public/reference-manuals/Bluetooth_Smart_Software-BLE-1.7-API-RM.PDF BlueGiga API (BGAPI) v3.12 2018]
 +
 
 +
==Images==
 +
 
 +
[[File:WF121-A top.png|800px]]
 +
 
 +
[[File:WF121-A internal.png|800px]]
 +
 
 +
 
 +
==UART==
 +
 
 +
===Developer Guide Notes/Examples===
 +
 
 +
====WF121 Factory Configuration====
 +
WF121 Modules are factory shipped with settings listed below.
 +
 
 +
UART2 This UART gives access to BGAPI protocol, which can be used to control the WF121 Module from a separate host.
 +
 
 +
*Pin 17: CTS
 +
*Pin 19: RTS
 +
*Pin 35: RX
 +
*Pin 36: TX
 +
*Baud rate 115200bps
 +
*Data bits 8
 +
*Parity bit none
 +
*Stop bit(s) 1
 +
*RTS/CTS enabled
 +
*RTS and CTS must be connected for the BGAPI communication to work properly.
 +
*UART1 is activated, but not accessed in the factory configuration.
 +
 
 +
The corresponding hardware configuration is shown below:
 +
<pre>
 +
<?xml version="1.0" encoding="UTF-8" ?>
 +
<hardware>
 +
<uart channel="0" baud="115200" api="false" />
 +
<uart channel="1" baud="115200" api="true" handshake="True" />
 +
</hardware>
 +
</pre>
 +
 
 +
====channel====
 +
 
 +
*0: UART channel 1
 +
*1: UART channel 2
 +
*Example:
 +
**channel="0"
 +
 
 +
====baud====
 +
 
 +
*Default: 57600
 +
*Range: 0-10000000
 +
*Some supported baud rates: 10000000, 5000000, 2500000, 2000000, 1000000, 115200, 57600
 +
*Example:
 +
**baud="115200"
 +
 
 +
Notice that not all baud rates are possible. BGBuild compiler tries to find best match with least amount of error and outputs the result.
 +
 
 +
====stopbits====
 +
 
 +
*Range: 1-2
 +
*Default: 1
 +
*Example:
 +
**stopbits="2"
 +
 
 +
====parity====
 +
 
 +
*Values:
 +
**odd: use odd parity bit
 +
**even: use even parity bit
 +
**none: no parity bit
 +
*Default: none
 +
*Example:
 +
**parity:"odd"
 +
 
 +
====handshake====
 +
handshake RTS/CTS for data flow control
 +
 
 +
*Values:
 +
**true: RTS/CTS flow control is used
 +
**false: RTS/CTS flow control is not used*
 +
*Default: false
 +
*Example:
 +
**handshake="true"
 +
 
 +
====api====
 +
 
 +
*Values:
 +
**true: UART is used for BGAPI protocol
 +
**false: UART is used for application data
 +
*Default: false
 +
*Example:
 +
**api="true"
 +
 
 +
When using UART in streaming mode, it is highly recommend to use RTS api="false" /CTS data flow control (handshake="true") to ensure reliable data transfer. api UART is used for BGAPI protocol
 +
 
 +
When there should be an application receiving the BGAPI responses and events true
 +
at the host, otherwise the module might get stuck.
 +
 
 +
====BGAPI / config====
 +
Using BGAPI over UART interface
 +
 
 +
The example below shows how to configure BGAPI to be used over UART2 interface with 115200 bps baud rate and hardware flow control.
 +
 
 +
<pre>
 +
<?xml version="1.0" encoding="UTF-8" ?>
 +
<hardware>
 +
<uart channel="1" baud="115200" api="true" handshake="True" />
 +
</hardware>
 +
</pre>
 +
 
 +
Using BGAPI over UART2 and enabling UART1 to BGScript application
 +
 
 +
The example below shows how to configure BGAPI to be used over UART2 interface and UART1 interface access is given to a BGScript application. This is used in multiple example applications delivered with the Bluegiga Wi-Fi Software. The purpose is for example to use UART1 for BGScript debugging and UART2 for DFU firmware updates.
 +
 
 +
<pre>
 +
<?xml version="1.0" encoding="UTF-8" ?>
 +
<hardware>
 +
<uart channel="0" baud="115200" api="false" handshake="false" />
 +
<uart channel="1" baud="115200" api="True" handshake="True" />
 +
</hardware>
 +
</pre>

Latest revision as of 03:34, 19 September 2024

Used in Rotimatic as implemented with WF121-A Module & PCB

Main Project Page: Rotimatic

WF121-A

Processor: PIC32MX695F512H

Images

WF121-A top.png

WF121-A internal.png


UART

Developer Guide Notes/Examples

WF121 Factory Configuration

WF121 Modules are factory shipped with settings listed below.

UART2 This UART gives access to BGAPI protocol, which can be used to control the WF121 Module from a separate host.

  • Pin 17: CTS
  • Pin 19: RTS
  • Pin 35: RX
  • Pin 36: TX
  • Baud rate 115200bps
  • Data bits 8
  • Parity bit none
  • Stop bit(s) 1
  • RTS/CTS enabled
  • RTS and CTS must be connected for the BGAPI communication to work properly.
  • UART1 is activated, but not accessed in the factory configuration.

The corresponding hardware configuration is shown below:

<?xml version="1.0" encoding="UTF-8" ?>
<hardware>
 <uart channel="0" baud="115200" api="false" />
 <uart channel="1" baud="115200" api="true" handshake="True" />
</hardware>

channel

  • 0: UART channel 1
  • 1: UART channel 2
  • Example:
    • channel="0"

baud

  • Default: 57600
  • Range: 0-10000000
  • Some supported baud rates: 10000000, 5000000, 2500000, 2000000, 1000000, 115200, 57600
  • Example:
    • baud="115200"

Notice that not all baud rates are possible. BGBuild compiler tries to find best match with least amount of error and outputs the result.

stopbits

  • Range: 1-2
  • Default: 1
  • Example:
    • stopbits="2"

parity

  • Values:
    • odd: use odd parity bit
    • even: use even parity bit
    • none: no parity bit
  • Default: none
  • Example:
    • parity:"odd"

handshake

handshake RTS/CTS for data flow control

  • Values:
    • true: RTS/CTS flow control is used
    • false: RTS/CTS flow control is not used*
  • Default: false
  • Example:
    • handshake="true"

api

  • Values:
    • true: UART is used for BGAPI protocol
    • false: UART is used for application data
  • Default: false
  • Example:
    • api="true"

When using UART in streaming mode, it is highly recommend to use RTS api="false" /CTS data flow control (handshake="true") to ensure reliable data transfer. api UART is used for BGAPI protocol

When there should be an application receiving the BGAPI responses and events true at the host, otherwise the module might get stuck.

BGAPI / config

Using BGAPI over UART interface

The example below shows how to configure BGAPI to be used over UART2 interface with 115200 bps baud rate and hardware flow control.

<?xml version="1.0" encoding="UTF-8" ?>
<hardware>
 <uart channel="1" baud="115200" api="true" handshake="True" />
</hardware>

Using BGAPI over UART2 and enabling UART1 to BGScript application

The example below shows how to configure BGAPI to be used over UART2 interface and UART1 interface access is given to a BGScript application. This is used in multiple example applications delivered with the Bluegiga Wi-Fi Software. The purpose is for example to use UART1 for BGScript debugging and UART2 for DFU firmware updates.

<?xml version="1.0" encoding="UTF-8" ?>
<hardware>
 <uart channel="0" baud="115200" api="false" handshake="false" />
 <uart channel="1" baud="115200" api="True" handshake="True" />
</hardware>