A Beaglebone Black além do ARM Cortex-A8 de 1GHz, contém 2 processadores de tempo real (PRU).
As duas PRUs rodam a 200 MHz, executam uma instrução por ciclo de clock. Portanto executam uma instrução a cada 5 nanosegundos de maneira determinística. 

Cada PRU pode ter até 16 pinos de entrada e 16 pinos de saída. A comunicação entre as PRUs e o ARM Cortex-A8 é feita por uma janela de memória compartilhada. É possível usar os GPIOs e ADCs a uma frequência de 192 MHz. E implementar software UART com velocidade de 24 Megabytes por segundo.

Também dá para implementar PWM com precisão de 5 ns, o que é ótimo para controlar motores e servos com extrema precisão.  

Seguindo o código de:
Com mais alguns ajustes é possível gerar o PWM de 490Hz para controlar os motores do UAV.
Também foi preciso mexer na placa mãe do UAV para direcionar os PWMs para o pinos de saída da PRU0. Com a nova configuração 4 motores pode ser acionados pelo PWM do PRU ou do ARM,  e mais 4 motores são somente ativados pelo PWM do ARM.

Usando o Buspirate (http://dangerousprototypes.com/docs/Bus_Pirate) com o Piratescope é fácil verificar que a geração do PWM pelo PRU0 está funcionando como deveria. 

Os próximos testes serão verificar se todos os motores estão sincronizados e testar os efeitos do ajuste fino do PWM na escala de 5ns na velocidade do motor. Como o motor aceita comandos entre 1000 e 2000 milisegundos, o intervalo de 1ms por ser dividido em 200 mil pedaços, é como se fosse um carro de 200 mil marchas ou praticamente marchas infinitas.


Piratescope: PWM gerado pelo PRU0

Buspirate conectado na placa mãe do UAV

Com o novo PWM também foi preciso recalibrar os ESCs para reconhecer os novos níveis de PWM para armar os motores, rotação mínima e máxima. Após a calibragem os motores ficaram sincronizados com um precisão de 1 microsegundo.

Tentando subir com hélices 6x4

Tentando subir com hélices 10x6, mas estavam trocadas CW com CCW.

Subindo com hélices 10x6, mas a bateria já estava descarregando.

Mesmo assim dá para perceber que o desempenho é agressivo.