During testing we have found that the PWM outputs (servo outputs) initialise to 100% (forward). This means if you use an external motor controller then it will run at full speed until your code tells it to stop. Also any servos will start at maximum position only returning to “idle” when programed with 0.
This bug essentially stops the use of external motor controllers and we have a fix for it but to apply the fix the brain box will need to be returned to Hills Road
You may be able to work around the bug by gating the PWM signal using one of the GPIO and some logic. The way the fix works is by inserting an AND gate in-between the PWM pins and the motor. The AND gates have many inputs and one output, only when each AND every input is high will the output be high. I.e we can have a control wire and the data wire and only when the control wire is high will the data signal be passed on to the servo.
|State of A||State of B||State of Q|
In the example bellow we have used a DM7408 Quad 2-Input AND Gates IC. For the datasheet on the 7408 see here. It is important to note that the control wire must be pulled low as the GPIO’s are initalised as inputs and so are floating and could be anything. So we attached the control wire to ground with a 150K Ohm resistor.