Schematic: here
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.