MiWi click
MiWi click

Description of product

MiWi click is a subgigahertz radio transceiver click board™, which offers a reliable FSK or OOK communication solution, with the maximum data rates of 40kbps and 16kbps, respectively. The radio transceiver module used on this click board™ has plenty of features that make it a perfect choice for compact designs: It has very good reception sensitivity, an onboard PCB antenna, high level of components integration, built in packet handling routines with automatic CRC generation, 64 bytes of transmit/receive FIFO buffer, built in Sync Word recognition, clock/data synchronisation and recovery and many more.

Armed with such a powerful, compact and fully configurable radio transceiver module, MiWi click offers highly reliable radio communication over a short distance, which can be utilized in many applications. It can be used for developing home/industrial/building automation applications, data loggers, applications for remote keyless access, alarms, wireless remote control and a wide variety of similar short-range radio applications.

Note: This click board complies with European (ETSI EN 300-220) regulatory standards. For the United States (FCC Part 15.247 and 15.249) regulatory standards compliant click board, please visit the product page of the MiWi 2 click.

How does it work?

MiWi click features the MRF89XAM8A, a compact low-power sub-gigahertz radio transceiver module from Microchip, that operates at a frequency range between 863MHz and 870MHz. This module has all the necessary components onboard, including a small trace PCB antenna and matching electronics, allowing compact design, while maintaining the flexibility. It supports OOK and FSK signal modulation with data rates limited to 16kbps and 40kbps respectively, in order to be compliant with the ETSI standards. The MRF89XAM8A module is based upon a base architecture of the generic MRF89XA module, with a few modifications, applied in order to make this module ETSI compliant.

The module uses the SPI communication protocol. However, it uses two chips select lines, #CSCON - config block select and #CSDATA - data block select, used to access a different group of internal registers. These two lines are routed to the mikroBUS™ AN and CS pins, respectively. It should be noted that the device only supports SPI mode 0, 0 - which means that the serial clock signal (SCK) is idle LOW. Pulling the #CSCON line to a LOW logic level will enable communication with the configuration registers. Pulling the #CSDATA will enable host communication with the FIFO buffer. If both chip select lines are pulled to a LOW logic level, the #CSCON will have a priority over the #CSDATA.

The data processing section is used to interface the data from the MODEM (modulator/demodulator) section, with the host MCU access point sections (SPI and IRQ sections). The data processing section contains several control blocks that manage the data traffic. The data processing section supports 2 modes of operation of which are available on the MiWi click:

  • Buffered mode - the transmitting or received data is stored in the FIFO buffer and available via the SPI
  • Packet mode - packets of certain structure are stored in the FIFO buffer, max 64 bytes

These modes affect the host MCU processing overhead. In the Buffered mode, the host MCU has to manage sending or receiving of the preamble, Sync Word, and the actual payload, relying on the IRQs to get the FIFO buffer status and manually managing the number of sent/received bytes.

The FIFO (First In First Out) register performs parallel operations and it is 8 bits wide. However, the RF demodulator section works only with serial data, sending and receiving the information bit by bit, with the programmed rate. To interface FIFO buffer with the demodulator section, a shift register has to be employed. The FIFO register serves as a buffer for both data transmission and reception.

Two interrupt request lines (IRQ0 and IRQ1) of the MRF89XAM8A module are routed to the mikroBUS™ pins INT and PWM, respectively. These pins can be configured to generate an interrupt request to the host MCU, depending on the selected events. There are many interrupt sources that can be selected to trigger an interrupt. Before using interrupts, they have to be unmasked and enabled. All the interrupt sources and flags are configured through the Interrupt Configuration registers.

RESET line from the module is routed to the mikroBUS™ RST pin and it is used to reset the device. After the reset, the device is unavailable for about 5ms. To reset the device, this pin has to be pulled to a HIGH logic level for at least 100 µs. It is pulled to a LOW logic level by the pull-down resistor.

The OOK and FSK modulation protocols are commonly used subgigahertz protocols and each has its own benefits. In OOK mode (On-Off Keying), the carrier signal is amplitude modulated by switching between no carrier signal for the logical 0 and full carrier amplitude signal for the logical 1. The FSK (Frequency Shift Keying) modulation is basically frequency modulation with two different frequency values for the logical 0s and 1s. The MiWi click is able to modulate and demodulate signals by using both of these protocols.

The provided libraries contain functions for an easy and simplified configuration of the MiWi click. The included demo application can be used as a reference for future design and it demonstrates usage of the provided functions.


TypeRF Sub 1GHz
ApplicationsMiWi click can be used for developing home/industrial/building automation applications, data loggers, applications for remote keyless access, alarms, wireless remote control and a wide variety of similar short-range radio applications.
On-board modulesMRF89XAM8A, a compact low-power sub-gigahertz radio transceiver module from Microchip
Key FeaturesMiWi click is a compact low power subgigahertz transceiver, loaded with functions such as automatic packet handling, CRC generation, 64 bytes long FIFO buffer, great reception, clock/data recovery, clock signal synchronization...
Input Voltage3.3V
Click board sizeL (57.15 x 25.4 mm)

Pinout diagram

This table shows how the pinout on MiWi click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).

NotesPinMikrobus logo.png             PinNotes
Config Block CSCSC         1ANPWM16IN1IRQ pin 1
Data Block CSCS3CSRX14NC
Power supply+3.3V73.3V5V10NC

MiWi click specifications

 Frequency Range863870MHz
 Bit Rate (FSK)1.5640kbps
 Bit Rate (OOK)1.5616kbps
SPI Configure Clock Frequency6MHz
SPI Configure Data Frequency1MHz
FSK reception sensitivity at 25kbps-107dBm
OOK reception sensitivity at 2 kbps-113dBm
Typical output power+10dBm

Onboard settings and indicators

LabelNameDefault Description
LD1PWR-Power LED indicator

Software support

We provide a library for MiWi click on our Libstock page, as well as a demo application (example), developed using MikroElektronika compilers and mikroSDK. The provided click library is mikroSDK standard compliant. The demo application can run on all the main MikroElektronika development boards.

Library Description

Library carries generic functions which are enough to have complete control over MiWi click.

Key functions

void miwi_writeReg(uint8_t address, uint8_t value)- Writes data to register

uint8_t miwi_readReg(uint8_t address)- Reads data from register

void miwi_writeFIFO(uint8_t Data)- Writes data to FIFO buffer

uint8_t miwi_readFIFO()- Reads data from FIFO buffer

Examples Description

Demo application is modified version of Microchip's application for MRF89XA devices. Application is in the form of a console app with simple UI which allows operations such as register_read or write but also TX and RX routines.

This function (code snippet) continuously transmits predefined packet with delay of 100 ms between each transaction.

void RadioApp_txPredefinedPacket()
    uint8_t input;
    uint8_t tmpPacket[ 6 ] = { 80, 65, 67, 75, 69, 84 };

    ConsolePut_constString("Transmitting predefined packet at");
    ConsolePut_constString("Press (Ctrl+z) to exit");

    while (1)
        if (ConsoleGet_ready())
            input = ConsoleGet();

            if (input == 26)

        miwi_sendPacket(&tmpPacket[0], 6);
        _miwi_rfMode = _MIWI_RF_STANDBY;
        Delay_ms( 100 );

The full application code, and ready to use projects can be found on our Libstock page.

Other MikroElektronika libraries used in the example:

  • SPI
  • UART

Additional notes and information

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.


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.