<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Wireless MCU中的主题 Re: KW41Z controlled from another MCU Host Device</title>
    <link>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716140#M3740</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/flaminatakam@gmail.com"&gt;flaminatakam@gmail.com&lt;/A&gt;‌,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you provide more details on your project?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you look on our SDK, are two possibilities to communicate via serial line:&lt;/P&gt;&lt;P&gt;1. Shell;&lt;/P&gt;&lt;P&gt;2. THCI (Thread Host controller interface); For more details, please check the documentation folder from the SDK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Usually, THCI is used for communicating with an external application processor. In the SDK, we have implemented the host SDK in the :. ..\sdk\SDK_2.2.1_FRDM-KW41Z\tools\wireless\host_sdk. There is a python and C language implementation for this protocol, mainly defined for the Linux environment.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What I tried to explain in&amp;nbsp;&lt;A _jive_internal="true" class="link-titled" href="https://community.nxp.com/thread/464273#comment-963478" title="https://community.nxp.com/thread/464273#comment-963478"&gt;https://community.nxp.com/thread/464273#comment-963478&lt;/A&gt;&amp;nbsp; is a simple example of how to validate a THCI packet&amp;nbsp;reception and how to transmit. As required pins are only the UART_TX/UART_RX pins are required.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;P&gt;Ovidiu&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: bold;"&gt;&lt;EM style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 04 May 2020 15:48:33 GMT</pubDate>
    <dc:creator>ovidiu_usturoi</dc:creator>
    <dc:date>2020-05-04T15:48:33Z</dc:date>
    <item>
      <title>KW41Z controlled from another MCU Host Device</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716133#M3733</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/jcpacheco"&gt;jcpacheco&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;maybe you or someone else could help me with my little project. I want to control the KW41Z Chip, which is on the FRDM-KW41Z board, from a host system via the UART0 on the PinHeaders.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After some research i found some documentation in the SDK doc-folder, like the &lt;STRONG&gt;&lt;EM&gt;Kinetis FSCI Host Application Programming Interface.pdf &lt;/EM&gt;&lt;/STRONG&gt;or the&lt;STRONG&gt;&lt;EM&gt; Kinetis Thread Host Control Interface Reference Manual.pdf. &lt;/EM&gt;&lt;/STRONG&gt;But all&amp;nbsp; these examples using host sytems, which are operating systems like Linux, Windows or OpenWRT. What i want to do is to control the KW41Z from another MCU like an STM32 via the UART lines. There could also running a FreeRTOS on the STM32.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is this not possible right now? Are there plans to do this in the future? Or did i research badly?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Steffen&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Nov 2017 07:14:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716133#M3733</guid>
      <dc:creator>steffenjahnkepa</dc:creator>
      <dc:date>2017-11-17T07:14:38Z</dc:date>
    </item>
    <item>
      <title>Re: KW41Z controlled from another MCU Host Device</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716134#M3734</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Steffen,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm not aware for an existing example of using a host uC to control kw41, other than linux examples, but this could be easily build it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The fist step is to set the UART FRDM header pins:&lt;/P&gt;&lt;P&gt;-&amp;nbsp; in function BOARD_InitLPUART you should enable the following:&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_SetPinMux(PORTC, PIN17_IDX, kPORT_MuxAlt4);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PORTC17 is configured as UART0_RX */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_SetPinMux(PORTC, PIN18_IDX, kPORT_MuxAlt4);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PORTC18 is configured as UART0_TX */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;SIM-&amp;gt;SOPT5 = ((SIM-&amp;gt;SOPT5 &amp;amp;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (~(SIM_SOPT5_LPUART0RXSRC_MASK)))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Mask bits to zero which are setting */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | SIM_SOPT5_LPUART0RXSRC(SOPT5_LPUART0RXSRC_LPUART_RX) /* LPUART0 Receive Data Source &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Select: LPUART_RX pin */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; - this is used to forward the UART messages from USB to FRDM - UART header (J1 header - pins 6 - UART0_TX, 7 - UART0_RX). Please consider that based on the board Revision, you will need to solder SH12 and SH11 connections.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/34079iC99CCD01E22437FE/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_2.png" alt="pastedImage_2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The next step is to decide what do you want to use: Shell or THCI and implement the same on the Host uC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For THCI you will need to consider the data transfer format, as below:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/34124i33EBAFDD8E7590E7/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_3.png" alt="pastedImage_3.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;where the STX&amp;nbsp; is the synchronization byte, and by default is set to 0x02. The possible values for Opcode and Message type are detailed in the following document: Kinetis Thread Host Control Interface Reference Manual. &lt;/P&gt;&lt;P&gt;Please consider that the delivered sdk items contains also a C implementation for the THCI protocol, that could help you on the host app implementation. This is usually located in sdk at the following location:&lt;/P&gt;&lt;P&gt;...\SDK_2.2_FRDM-KW41Z\tools\wireless\host_sdk\hsdk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For shell, please consider the Kinetis Thread Stack Shell Interface User's Guide for a complete list of supported commands.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Other considerations are:&amp;nbsp; default UART baud rate = 115200 with no flow control.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let us know about your progress.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Ovidiu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Nov 2017 07:21:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716134#M3734</guid>
      <dc:creator>ovidiu_usturoi</dc:creator>
      <dc:date>2017-11-21T07:21:19Z</dc:date>
    </item>
    <item>
      <title>Re: KW41Z controlled from another MCU Host Device</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716135#M3735</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/ovidiu-alexandruusturoi"&gt;ovidiu-alexandruusturoi&lt;/A&gt;‌,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for this Information! I will try this!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Steffen&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Nov 2017 06:47:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716135#M3735</guid>
      <dc:creator>steffenjahnkepa</dc:creator>
      <dc:date>2017-11-22T06:47:07Z</dc:date>
    </item>
    <item>
      <title>Re: KW41Z controlled from another MCU Host Device</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716136#M3736</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Steffen,&lt;/P&gt;&lt;P&gt;Let us know about your progress. I will be happy to assist you with any further questions. &lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Ovidiu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Nov 2017 10:58:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716136#M3736</guid>
      <dc:creator>ovidiu_usturoi</dc:creator>
      <dc:date>2017-11-22T10:58:44Z</dc:date>
    </item>
    <item>
      <title>Re: KW41Z controlled from another MCU Host Device</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716137#M3737</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Steffen,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Consider also the following steps in building your host application using THCI:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;1.&amp;nbsp; Start from generic function for UART communcation :&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;- serial_send_data (uint8_t *pBuffer, uint16_t bufferLen) - to send data via UART interface&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;- serial_receive_data(uint8_t *pBuffer, uint16_t bufferLen) - to receive data via UART interface&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&lt;STRONG&gt;2. define some internal structures:&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;EM&gt; /* Format of packets exchanged between the external client and THCI. */&lt;/EM&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;EM&gt;&amp;nbsp;typedef struct clientPacketHdr_tag&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t&amp;nbsp; startMarker;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t&amp;nbsp; opGroup;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t&amp;nbsp; opCode;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t&amp;nbsp; len[2];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Actual length of payload[] */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;} clientPacketHdr_t;&lt;/EM&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;EM&gt;&amp;nbsp;typedef struct clientPacketStructured_tag&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;clientPacketHdr_t header;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t payload[gTHCIMaxPayload_c];&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t checksum;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;} clientPacketStructured_t;&lt;/EM&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* defines the working packet type */&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;typedef union clientPacket_tag&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t raw[sizeof(clientPacketStructured_t)];&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* The entire packet as unformatted data. */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;clientPacketStructured_t structured;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* The packet as header + payload. */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;} clientPacket_t;&lt;/EM&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; /* define command status */&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;typedef enum{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eFsciSuccess_c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00,&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eFsciTooBig_c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xFE,&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eFsciError_c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0xFF&amp;nbsp;&amp;nbsp;&amp;nbsp; /* General catch all error. */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;} fsci_Status_t;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;#define gTHCIMaxPayload_c &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;512&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;3. define THCI handlers:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* function used to check if the received packet is valid or not */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;STRONG&gt;&lt;EM&gt;fsci_packetStatus_t&amp;nbsp; THCI_CheckPacket( clientPacket_t *pData, uint16_t bytes )&lt;/EM&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t checksum = 0;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint16_t len;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if((!pData) ||&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(pData-&amp;gt;raw[0] !=&amp;nbsp; gFsciStartMarker_c))&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return ePacketInvalid_c;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ( bytes &amp;lt; sizeof(clientPacketHdr_t) )&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return ePacketToShort_c;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Too short to be valid. */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ( bytes &amp;gt;= sizeof(clientPacket_t) )&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return eFramingError_c;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* The packet's len field does not count the STX, the opcode group, the */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* opcode, the len field, or the checksum. */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;len = pData-&amp;gt;structured.header.len[0] + (pData-&amp;gt;structured.header.len[1]&amp;lt;&amp;lt;8);&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* If the length appears to be too long, it might be because the external */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* client is sending a packet that is too long, or it might be that we're */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* out of sync with the external client. Assume we're out of sync. */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ( len &amp;gt; sizeof(pData-&amp;gt;structured.payload) )&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return eFramingError_c;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ( bytes &amp;lt; len + sizeof(clientPacketHdr_t) + sizeof(checksum) )&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return ePacketToShort_c;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* If the length looks right, make sure that the checksum is correct. */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if( bytes == len + sizeof(clientPacketHdr_t) + sizeof(checksum) )&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;checksum = THCI_ComputeChecksum(pData-&amp;gt;raw+1, len + sizeof(clientPacketHdr_t)-1);&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if( checksum == pData-&amp;gt;structured.payload[len] )&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return ePacketValid_c;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return eFramingError_c;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/EM&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* function used to manage request/response commands */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;STRONG&gt;void THCI_ProcessRxPkt (clientPacket_t* pPacket)&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;fsci_Status_t status;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if(!pPacket){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Process only FSCI confirms */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if( pPacket-&amp;gt;structured.header.opGroup == gFSCI_CnfOpcodeGroup_c )&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* receive a confirm for a request.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * At this moment the requests are send from RadioUpgrade module */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//TBD add your handler here &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;switch(pPacket-&amp;gt;structured.header.opCode)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;case ...&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;default:&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;else if(pPacket-&amp;gt;structured.header.opGroup == gFSCI_ReqOpcodeGroup_c)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* receive a request */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//TBD - add your handler here&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;switch(pPacket-&amp;gt;structured.header.opCode)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;case ...&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;default:&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* function used to send formatted packets */&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;void THCI_TransmitFormatedPacket( clientPacket_t *pPacket )&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint32_t size;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t&amp;nbsp; checksum;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint16_t packetLen = pPacket-&amp;gt;structured.header.len[0] + (pPacket-&amp;gt;structured.header.len[1]&amp;lt;&amp;lt;8);&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;pPacket-&amp;gt;structured.header.startMarker = gFsciStartMarker_c;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;size = sizeof(clientPacketHdr_t) + packetLen + 1 /* CRC */;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Compute Checksum */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;checksum = THCI_ComputeChecksum( pPacket-&amp;gt;raw+1, size - 2);&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;pPacket-&amp;gt;structured.payload[packetLen] = checksum;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* send message to the serial interface */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;serial_send_data(pPacket-&amp;gt;raw, size);&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/EM&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* compute checksum */&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;static uint8_t THCI_ComputeChecksum( uint8_t *pBuffer, uint16_t size )&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint16_t index;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t&amp;nbsp; checksum = 0;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for ( index = 0; index &amp;lt; size; index++ )&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;checksum ^= pBuffer[index];&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return checksum;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/EM&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;4. Update serial receive function to handle THCI packets&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;&amp;nbsp;void serial_receive_data(uint8_t *pBuffer, uint16_t bufferLen)&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;...&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if(THCI_CheckPacket((clientPacket_t *)buffer, bufferLen) == ePacketValid_c)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* THCI Packet received */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;THCI_ProcessRxPkt((clientPacket_t *)rx_buf-&amp;gt;buf);&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;...&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let me know if you need more details,&lt;/P&gt;&lt;P&gt;Ovidiu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Nov 2017 11:55:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716137#M3737</guid>
      <dc:creator>ovidiu_usturoi</dc:creator>
      <dc:date>2017-11-22T11:55:38Z</dc:date>
    </item>
    <item>
      <title>Re: KW41Z controlled from another MCU Host Device</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716138#M3738</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is this also available for&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;KW40Z? If so, where can I find the implementation?&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Jun 2018 20:26:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716138#M3738</guid>
      <dc:creator>amwilhite</dc:creator>
      <dc:date>2018-06-07T20:26:48Z</dc:date>
    </item>
    <item>
      <title>Re: KW41Z controlled from another MCU Host Device</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716139#M3739</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hello,&lt;/P&gt;&lt;P&gt;please can i have more details on this host application that you proposed? &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/ovidiu-alexandruusturoi"&gt;ovidiu-alexandruusturoi&lt;/A&gt;‌&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 May 2020 08:47:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716139#M3739</guid>
      <dc:creator>flaminatakam</dc:creator>
      <dc:date>2020-05-04T08:47:05Z</dc:date>
    </item>
    <item>
      <title>Re: KW41Z controlled from another MCU Host Device</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716140#M3740</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/flaminatakam@gmail.com"&gt;flaminatakam@gmail.com&lt;/A&gt;‌,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you provide more details on your project?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you look on our SDK, are two possibilities to communicate via serial line:&lt;/P&gt;&lt;P&gt;1. Shell;&lt;/P&gt;&lt;P&gt;2. THCI (Thread Host controller interface); For more details, please check the documentation folder from the SDK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Usually, THCI is used for communicating with an external application processor. In the SDK, we have implemented the host SDK in the :. ..\sdk\SDK_2.2.1_FRDM-KW41Z\tools\wireless\host_sdk. There is a python and C language implementation for this protocol, mainly defined for the Linux environment.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What I tried to explain in&amp;nbsp;&lt;A _jive_internal="true" class="link-titled" href="https://community.nxp.com/thread/464273#comment-963478" title="https://community.nxp.com/thread/464273#comment-963478"&gt;https://community.nxp.com/thread/464273#comment-963478&lt;/A&gt;&amp;nbsp; is a simple example of how to validate a THCI packet&amp;nbsp;reception and how to transmit. As required pins are only the UART_TX/UART_RX pins are required.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;P&gt;Ovidiu&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: bold;"&gt;&lt;EM style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 May 2020 15:48:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716140#M3740</guid>
      <dc:creator>ovidiu_usturoi</dc:creator>
      <dc:date>2020-05-04T15:48:33Z</dc:date>
    </item>
    <item>
      <title>Re: KW41Z controlled from another MCU Host Device</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716141#M3741</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For the need of our project, we want to send all the commands for creating, joining and sending tcp messages from the stm32 acting as a host processor to the KW41Z.&lt;/P&gt;&lt;P&gt;KW41Z will be just like a black box flashed with kinetis thread stack.&lt;/P&gt;&lt;P&gt;stm32 runs freertos.&lt;/P&gt;&lt;P&gt;We have written a program but we are not able to communicate with FRDM-KW41 via UART in order to send our commands.&lt;/P&gt;&lt;P&gt;What can be the problem?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 May 2020 12:59:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716141#M3741</guid>
      <dc:creator>flaminatakam</dc:creator>
      <dc:date>2020-05-06T12:59:43Z</dc:date>
    </item>
    <item>
      <title>Re: KW41Z controlled from another MCU Host Device</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716142#M3742</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;if we want to use THCI, can we use the requests seen in test tool application? like THR_FactoryReset.Request or should we use THCI_FactoryResetReq?&amp;nbsp;&lt;/P&gt;&lt;P&gt;i can't see which one will be suitable for my project between shell and thci.&lt;/P&gt;&lt;P&gt;please can you help me?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 May 2020 09:14:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716142#M3742</guid>
      <dc:creator>flaminatakam</dc:creator>
      <dc:date>2020-05-07T09:14:43Z</dc:date>
    </item>
    <item>
      <title>Re: KW41Z controlled from another MCU Host Device</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716143#M3743</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/flaminatakam@gmail.com"&gt;flaminatakam@gmail.com&lt;/A&gt;‌,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As you noted, in our SDK are 2 possibilities for serial communication:&lt;/P&gt;&lt;P&gt;- shell&lt;/P&gt;&lt;P&gt;- THCI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Shell is let say human-readable format. All the commands are listed using the help command&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/86342i758B7FCD134A1D4F/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_2.png" alt="pastedImage_2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;THCI has been designed for communication with a host processor. The format of the command is containing an opgroup, messageType, CRC... This is what I specified in this comment:&amp;nbsp;&lt;A _jive_internal="true" href="https://community.nxp.com/thread/464273#comment-962988" title="https://community.nxp.com/thread/464273#comment-962988"&gt;https://community.nxp.com/thread/464273#comment-962988&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you want to use THCI, in the project you should enable the following:&lt;/P&gt;&lt;P&gt;#define THREAD_USE_SHELL&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;#define THREAD_USE_THCI&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;All of the THCI commands can be sent from TestTool (&lt;A href="https://www.nxp.com/webapp/sps/download/license.jsp?colCode=TESTTOOL_SETUP&amp;amp;appType=file1&amp;amp;location=null&amp;amp;DOWNLOAD_ID=null"&gt;https://www.nxp.com/webapp/sps/download/license.jsp?colCode=TESTTOOL_SETUP&amp;amp;appType=file1&amp;amp;location=null&amp;amp;DOWNLOAD_ID=null&lt;/A&gt;).&lt;/P&gt;&lt;P&gt;In this case, the TestTool is used to simulate an application processor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example, the THCI Factory Reset Command:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/86430i7029A126ADE7084B/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_3.png" alt="pastedImage_3.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As you can see, the format of the command is: 0x02, 0xCE, 0x1F, 0x00, 0x00, 0xD1&lt;/P&gt;&lt;P&gt;where you should map this command to:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/86432i1B1DC774BB3100B7/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_3.png" alt="pastedImage_3.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;STX = 0x02&lt;/P&gt;&lt;P&gt;Opcode Group = 0xCE - used to identify a Thread IP Stack command&lt;/P&gt;&lt;P&gt;Message Type = 0x1F - used to identify the&amp;nbsp;gTHCI_ThrFactoryReset_c command&lt;/P&gt;&lt;P&gt;Lenght = 0x0000;&lt;/P&gt;&lt;P&gt;No Payload&lt;/P&gt;&lt;P&gt;CRC = 0xD1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Considering the implementation from this comment:&lt;A _jive_internal="true" class="link-titled" href="https://community.nxp.com/thread/464273#comment-963478" title="https://community.nxp.com/thread/464273#comment-963478"&gt;https://community.nxp.com/thread/464273#comment-963478&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;you should use something like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint8_t APP_SendResetToFactoryDefault(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; clientPacketHdrr_t header = {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.startMarker = 0x02,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.opGroup = 0xCE,&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .opCode = 0x1f,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.len = {0x00, 0x00}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clientPacket_t resetToFactoryDefaultCmd;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* copy the header */&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy(&amp;amp;resetToFactoryDefaultCmd.structured.header, &amp;amp;header, sizeof(header));&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* copy the payload if required */&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//&lt;SPAN&gt;memcpy(&amp;amp;resetToFactoryDefaultCmd.structured.&lt;EM style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;payload&lt;/EM&gt;, &amp;amp;payload, payloadLen);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* call the function to send data via the serial&amp;nbsp; - this function will add the CRC and use the right format for the command*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;EM style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;THCI_TransmitFormatedPacket(&amp;amp;&lt;STRONG style="border: 0px; font-weight: bold;"&gt;&lt;SPAN style="color: #3d3d3d; font-weight: 400;"&gt;resetToFactoryDefaultCmd&lt;/SPAN&gt;);&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let me know if you need more details,&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Ovidiu&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 May 2020 14:53:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/KW41Z-controlled-from-another-MCU-Host-Device/m-p/716143#M3743</guid>
      <dc:creator>ovidiu_usturoi</dc:creator>
      <dc:date>2020-05-07T14:53:30Z</dc:date>
    </item>
  </channel>
</rss>

