Os designs de coprocessadores são compatíveis com o OpenThread. Ao criar exemplos do OpenThread, uma imagem de firmware para cada design de coprocessador é criada automaticamente. Para mais informações, consulte Binários.
Coprocessador de rádio (RCP)

Em um design de RCP, o núcleo do OpenThread fica no processador host com apenas um "controlador" de camada MAC mínimo no dispositivo com o rádio Thread. Normalmente, o processador host não entra em modo de espera nesse design, em parte para garantir a confiabilidade da rede Thread.
A comunicação entre o RCP e o processador host é gerenciada pelo daemon OpenThread (link em inglês) por uma interface SPI no protocolo Spinel.
A vantagem aqui é que o OpenThread pode usar os recursos do processador mais potente.
Esse design é útil para dispositivos menos sensíveis a restrições de energia. Por exemplo, o processador host em uma câmera de vídeo está sempre ativado para processar vídeo.
O roteador de borda OpenThread é compatível com um design RCP. Para mais informações, consulte Roteador de borda OpenThread.
Para criar um RCP, consulte os seguintes codelabs:
Criar uma rede Thread com nRF52840 Roteador de borda do Thread
Coprocessador de rede (NCP)

O design padrão do NCP tem recursos do Thread no SoC e executa a camada de aplicativo em um processador host, que geralmente é mais capaz (mas tem maiores demandas de energia) do que o dispositivo OpenThread.
A vantagem desse design é que o host de maior potência pode entrar em modo de suspensão enquanto o dispositivo OpenThread de menor potência permanece ativo para manter seu lugar na rede Thread. Como o SoC não está vinculado à camada de aplicativo, o desenvolvimento e o teste de aplicativos são independentes do build do OpenThread.
Esse design é útil para dispositivos de gateway ou que têm outras demandas de processamento, como câmeras IP e alto-falantes.
Protocolo de espinélio
O Spinel é um protocolo de gerenciamento geral que permite que um dispositivo host se comunique com um coprocessador e o gerencie. Inicialmente projetado para oferecer suporte a NCPs baseados em linhas de execução, o Spinel foi criado com uma abordagem em camadas que permite adaptá-lo facilmente a outras tecnologias de rede no futuro. Ele é usado com os designs RCP e NCP.
Esse protocolo está incluído no OpenThread em
/src/lib/spinel
. Uma ferramenta de CLI Python chamada
Pyspinel está disponível para fins de teste.
Para mais informações, consulte o Internet-Draft para o protocolo Host-Controller do Spinel.