Layout: top bottom both
|Unpopulated board. Top side.|
|Unpopulated board. Bottom side.|
|Fully populated board. Top side.|
|Fully populated board. Bottom side.|
The design is now single board, and it still is smaller in all dimensions compared to receiver v2. The one big change in the electronics is now the inclusion of a multiplexer IC, which allows me to use a single hardware PWM channel on the microcontroller to control up to 8 servo channels.
|Timing diagram of the new hardware servo updating.|
Surprisingly many things needed changes to port the code from receiver v2 to v3, so in addition to having the new servo update code, I now also have new general purpose timing code, new navigation data request code and new multilevel fail-safe code to name a few.
To keep things simple, I decided the servo pulses do not need to be synchronized with the incoming radio control packets as they were before. This introduces a 20ms worst case latency to all channels. Since typically the servos are not updated faster than that anyway, I'm not very concerned.
|Receiver v3 as it currently resides in my Graupner Elektro Rookie.|
At the time of writing, I've gone flying twice using the new receiver, for a total of slightly more than 10 flights. The receiver has performed very well so far. Up next is to 3D print a nice enclosure for it.