- Order number: MIKROE-3666
- Manufacturer product ID: 3666
WiFi 9 Click is fully embedded stand-alone Wi-Fi module, equipped with the PAN9420 a 2.4 GHz ISM band Wi-Fi-embedded module which includes a wireless radio and an MCU for easy integration of Wi-Fi connectivity into various electronic devices. This module combines a high-performance CPU with Wireless radio and integrated memory, which offers many features like webpage storing of HTML or image data, possibility to work in access point or infrastructure mode, and dual UART interface for communication with the host controllers.
WiFi 9 click is supported by a mikroSDK compliant library, which includes functions that simplify software development. This Click board™ comes as a fully tested product, ready to be used on a system equipped with the mikroBUS™ socket.
This board is featuring PAN9420 a 2.4 GHz 802.11 b/g/n embedded Wi-Fi module with integrated stack and API that minimizes firmware development and includes a full security suite. The module is specifically designed for highly integrated and cost-effective applications. The module includes a fully shielded case, integrated crystal oscillators, and a chip antenna.
HOW DOES IT WORK?
The WiFi 9 click comes equipped with the PAN9420, a full embedded Wi-FI module from Panasonic. The module combines a high-performance CPU, high-sensitivity wireless radio, baseband processor, medium access controller, encryption unit, boot ROM with patching capability, internal SRAM, and in-system programmable flash memory. The module’s integrated QSPI flash memory is available to the application for storing web content such as HTML pages or image data.
Parallel support of access point and infrastructure mode allows easy setup of simultaneous Wi‑Fi connections from the module to smart devices and home network routers. The pre‑programmed Wi-Fi SoC firmware enables client (STA), micro access point (µAP), and Ad‑hoc mode (Wi-Fi Direct) applications. With the transparent mode, raw data can be sent from the UART to the air interface to smart devices, web servers, or PC applications.
For working with PAN9420 module at your disposal are two data UART interfaces, one for command and another for transparent data. In order to enable simultaneous communication between the module and host MCU through one UART on mikroBUS™ socket we have added 74HC4052 multiplexer from Nexperia USA Inc.
For selecting between UART0/UART1 you may use ADR pin (ADDRES):
ADR pin state | Module pins | Selected Interface |
---|---|---|
LOW | TXD0/RXD0 | UART0 |
HIGH | TXD/RXD | UART1 |
On the WiFi 9 click board several status LED’s are implemented for easiest visual monitoring of the module states like MCU heartbeat, IP connectivity, Errors, WiFi connection and Booting.
The PAN9420 supports Over-the-Air firmware updates. In order to make use of this feature, the customer needs to ensure that the appropriate preconditions are fulfilled and that a suitable environment is provided, particularly with regard to:
- Module configuration
- Utilization of the related module interface commands
- Server infrastructure and application
The PAN9420 module is operated at 3.3V. Having in mind its absolute maximum ratings, it is not advisable to use the Click board™ with MCUs that use logic voltage levels up to 5V.
SPECIFICATIONS
Type | WiFi |
Applications | Contains all necessary IoT functionality perfectly suited for IoT applications which require simultaneous support of Access-Point- and Infrastructure mode |
On-board modules | Full featured standalone WiFi module PAN9420 from Panasonic, a 2.4 GHz ISM module which includes a wireless radio and an MCU |
Key Features | Full-featured embedded network stack, integrated webserver, over-the-air firmware updates, integrated QSPI flash memory for customer web contents or configuration file storing |
Interface | GPIO,UART |
Click board size | L (57.15 x 25.4 mm) |
Input Voltage | 3.3V |
PINOUT DIAGRAM
This table shows how the pinout on WiFi 9 click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
ONBOARD SETTINGS AND INDICATORS
Label | Name | Default | Description |
---|---|---|---|
T1 | RESET | - | Reset button for firmware rebooting |
LD1 | MCU | - | MCU status (heartbeat) LED |
LD2 | IP | - | IP connectivity (allocated IP) status LED |
LD3 | ERROR | - | Error (active during booting) status LED |
LD4 | STAT | - | Wireless (Wi-Fi) status LED |
LD5 | READY | - | MCU ready (booting ready) status LED |
LED GREEN | PWR | - | Power LED Indicator |
WIFI 9 CLICK LED STATUS LEGEND
LED | Application | LED Function |
---|---|---|
MCU | OFF: Shut-off BLINK (1sec): Firmware active | MCU status (heartbeat) |
IP | OFF: no IP assigned ON: IP assigned | IP connectivity in Infrastructure mode |
ERROR | OFF: no error ON: error appeared | MCU Firmware Error |
STAT | OFF: no AP connection BLINK (0.2 s): Scanning for AP BLINK (0.4 s): trying to connect to AP BLINK (1.2 s): WLAN Error ON: Associated with AP | WLAN connectivity in Infrastructure mode |
READY | OFF: Shut-off ON: Firmware ready | Firmware application is ready |
PWR | ON: Click board is powered on OFF: Click boards is missing power | Power LED Indicator |
SOFTWARE SUPPORT
We provide a library for the WiFi 9 click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
Library carries generic command parser adopted for WiFi 9 command based modules.
Generic parser
Key functions:
wifi9_cmdSingle
- Sends provided command to the module.wifi9_setHandler
- Handler assignation to the provied command.wifi9_modulePower
- Turn on module.
Examples description
The application is composed of three sections :
- System Initialization - Initializes all necessary GPIO pins, UART used for the communcation with WIFI module and UART used for infromation logging.
- Application Initialization - Initializes driver, power on module and a procedure has been created with commands where the module connects to the WIFI router and opens the Netcat server.
- Application Task - running in parallel core state machine.
void applicationInit() { // TIMER INIT wifi9_configTimer(); // DRIVER INIT wifi9_uartDriverInit((T_WIFI9_P)&_MIKROBUS1_GPIO, (T_WIFI9_P)&_MIKROBUS1_UART); wifi9_coreInit( wifi9_default_handler, 1500 ); // MODULE POWER ON wifi9_hfcEnable( 0 ); wifi9_modulePower( 1 ); wifi9_selectUart(_WIFI9_SELECT_CMD_UART); Delay_ms( 4000 ); mikrobus_logWrite( "---------------------", _LOG_LINE ); mikrobus_logWrite( "---- System Info ----", _LOG_LINE ); mikrobus_logWrite( "---------------------", _LOG_LINE ); wifi9_cmdSingle(&_WIFI9_CMD_GET_SYSTEM_FIRMWARE[0]); Delay_ms( 500 ); wifi9_cmdSingle(&_WIFI9_CMD_GET_SYSTEM_MAC_ADDR[0]); Delay_ms( 500 ); wifi9_cmdSingle(&_WIFI9_CMD_GET_SYSTEM_SERIAL_NUM[0]); Delay_ms( 500 ); wifi9_cmdSingle(&_WIFI9_CMD_GET_SYSTEM_RADIO_VER[0]); Delay_ms( 500 ); wifi9_cmdSingle(&_WIFI9_CMD_GET_SYSTEM_BOOTL_VER[0]); Delay_ms( 500 ); wifi9_cmdSingle(&_WIFI9_CMD_GET_SYSTEM_HW_REV[0]); Delay_ms( 5000 ); mikrobus_logWrite( "--------------------------", _LOG_LINE ); mikrobus_logWrite( "---- Start NETCAT app ----", _LOG_LINE ); mikrobus_logWrite( "--------------------------", _LOG_LINE ); mikrobus_logWrite( "> Reads the current Station status", _LOG_LINE ); wifi9_cmdSingle(&_WIFI9_CMD_GET_WLAN_STATE_STA[0]); Delay_ms( 2000 ); mikrobus_logWrite( "> Set Station to ON status", _LOG_LINE ); wifi9_cmdSingle(&_WIFI9_CMD_SET_WLAN_STATE_STA_ON[0]); Delay_ms( 2000 ); mikrobus_logWrite( "> Sets Station SSID and PASSWORD", _LOG_LINE ); wifi9_cmdSingle(&_WIFI9_CMD_SET_WLAN_CFG_STA[0]); Delay_ms( 4000 ); mikrobus_logWrite( "> Turn OFF - Netcat module", _LOG_LINE ); wifi9_cmdSingle(&_WIFI9_CMD_SET_NETCAT_STATE_OFF[0]); Delay_ms( 2000 ); mikrobus_logWrite( "> Turn ON - Netcat module", _LOG_LINE ); wifi9_cmdSingle(&_WIFI9_CMD_SET_NETCAT_STATE_ON[0]); Delay_ms( 2000 ); mikrobus_logWrite( "> Sets the Netcat module as a server with port 1234", _LOG_LINE ); wifi9_cmdSingle(&_WIFI9_CMD_SET_NETCAT_CFG_SERVER[0]); Delay_ms( 2000 ); mikrobus_logWrite( "> Excludes Netcat authentication", _LOG_LINE ); wifi9_cmdSingle(&_WIFI9_CMD_SET_NETCAT_AUTH_OFF[0]); Delay_ms( 2000 ); mikrobus_logWrite( "> Gets the current received IP address", _LOG_LINE ); wifi9_cmdSingle(&_WIFI9_CMD_GET_NET_CFG_STA[0]); Delay_ms( 2000 ); mikrobus_logWrite( "> At the moment, a netcat server at port 1234 has been built", _LOG_LINE ); mikrobus_logWrite( "> The module is transferred to BIN-UART - for data collection", _LOG_LINE ); wifi9_selectUart(_WIFI9_SELECT_BIN_UART); Delay_ms( 5000 ); }
Additional Functions :
All additional functions such as timer initialization and default handler.
Notes :
- First hold the reset button on the click board for about 5 seconds so that the module would perform a factory reset.
- When the module turns on and writes "factory reset" on the terminal.
- it's ready to be configured.
- In the example we've created a procedure that connects your module to WiFi network and sends commands for creating Netcat server with port (1234).
- After all commands are finished executing, it is necessary to create a Netcat client on a terminal (we used Cygwin64 terminal).
- In the example only some of the supported commands were used.
- the rest you can find in the technical documentation.
- Keep in mind that the click board uses two UART modules.
- CMD-UART(for sending commands) and BIN-UART(for sending the data)..
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- String
- Conversion
- UART
Additional notes and informations
Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
MIKROSDK
This Click board™ is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant Click board™ demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.