OpenThread admite diseños de coprocesadores. Cuando se compilan ejemplos de OpenThread, se crea automáticamente una imagen de firmware para cada diseño de coprocesador. Para obtener más información, consulta Binarios.
Coprocesador de radio (RCP)

En un diseño de RCP, el núcleo de OpenThread reside en el procesador host con solo un "controlador" de capa MAC mínimo en el dispositivo con la radio de Thread. Por lo general, el procesador host no entra en modo de suspensión en este diseño, en parte para garantizar la confiabilidad de la red de Thread.
La comunicación entre el RCP y el procesador host se administra con OpenThread Daemon a través de una interfaz SPI sobre el protocolo Spinel.
La ventaja aquí es que OpenThread puede utilizar los recursos del procesador más potente.
Este diseño es útil para los dispositivos que son menos sensibles a las restricciones de energía. Por ejemplo, el procesador host de una cámara de video siempre está encendido para procesar el video.
El router de borde de OpenThread admite un diseño de RCP. Para obtener más información, consulta OpenThread Border Router.
Para compilar un RCP, consulta los siguientes codelabs:
Cómo crear una red de Thread con nRF52840 Router de borde Thread
Procesador secundario de red (NCP)

El diseño estándar de NCP tiene funciones de Thread en el SoC y ejecuta la capa de aplicación en un procesador host, que suele ser más capaz (pero tiene mayores demandas de energía) que el dispositivo OpenThread.
El beneficio de este diseño es que el host de mayor potencia puede entrar en suspensión mientras el dispositivo OpenThread de menor potencia permanece activo para mantener su lugar en la red de Thread. Además, dado que el SoC no está vinculado a la capa de aplicación, el desarrollo y las pruebas de las aplicaciones son independientes de la compilación de OpenThread.
Este diseño es útil para dispositivos de puerta de enlace o dispositivos que tienen otras demandas de procesamiento, como cámaras IP y bocinas.
Protocolo Spinel
Spinel es un protocolo de administración general que permite que un dispositivo host se comunique con un coprocesador y lo administre. Si bien Spinel se diseñó inicialmente para admitir NCP basados en Thread, se creó con un enfoque en capas que permite adaptarlo fácilmente a otras tecnologías de red en el futuro. Se usa con los diseños de RCP y NCP.
Este protocolo se incluye con OpenThread en /src/lib/spinel
. Para realizar pruebas, está disponible una herramienta de CLI de Python llamada Pyspinel.
Para obtener más información, consulta el Borrador de Internet para el protocolo de host y controlador de Spinel.