12/22/23-12/24/23: Serial Wombat 18AB, More Parts Printing

12/22/23: Serial Wombat Soldering

While the wings were finishing printing, I switched from the mechanical to the electrical engineering side of the project–the Serial Wombat. This is known as a Serial Wombat 18AB, and I have high hopes for it. Essentially it has its own intelligent timing circuit inside that can read several pulse widths intended for servos at a time, while outputting pulse widths for Servos, all through I2C communication. (It can do lots of other things, too, beyond the scope of this project.)

I think I’m finally getting the hang of soldering. It’s taken me a lot of practice. I need to remember to use my solder flux pen early and often, as well as the trick of using the soldering iron to heat up the pad and then just touching the solder to the pad. I did end up putting the header pins on this board later on after the picture was taken.

12/23/23: More parts printed

More parts have finished printing, including the four wing pieces and now the front nose piece! The next step is to print the main fuselage, a bit stronger to be load-bearing, and the tail section.


The above image demonstrates how the camera will go inside the nose section!

12/24/23: Serial Wombat 18AB

Most of the parts are printed now! Soon I will start hot-gluing everything together. I’m realizing now that there are a lot of design errors, specifically with printing and fitting everything together. I’m going to still glue everything together for an initial design to see if it will fly, and then return to the specific fixes for a second, fully re-printed revision later. I can already tell that the fuselage tail interface needs work, the wings need a better way of attaching together, and I may need to rethink several of the parts that have vertical prints, because one-layer-thick prints with no infill and vertical walls seem to have trouble with warping/”bubbles” that sag inward or outward but not necessarily near the bottom of the print.

Transcript of an email I sent to Mr. Broadwell, creator of Serial Wombat, about a tech error I encountered while testing the Serial Wombat. I’m impressed by the documentation he has created (far better than my documentation is here). I was also very impressed with his response time: after I sent him an email (on Christmas Eve, no less), he responded an hour later. Hopefully soon we’ll be able to iron out the errors and get one step closer.

Dear Mr. Broadwell,

Merry Christmas! I’ve hit a roadblock on my project involving the SW18AB due to a very peculiar bug. I was wondering if it was an issue specific to my usage of the SW18AB or if it is an issue general to SW18AB, and similarly what the best route of troubleshooting would be from here.

The project’s goal is to use the Serial Wombat 18AB to take 5 signal inputs from my RC receiver, and then simultaneously send out 5 pulse-width outputs to five servos, one of which is the signal line to the ESC for an airplane propeller. Essentially I am using the SW18AB as a middle-man for Servo signals before I also make an autopilot mode.

My code initializes five PulseTimers and then, in loop(), continually calls readHighCounts() on all the PulseTimers, and then prints the value of one of them to Serial and passes one on to control a Servo via another SW18AB pin. The pulse width value should be around 1500 consistently with no input, but it was jumping all over the place: 

I isolated the issue to the fact that readHighCounts() was giving incorrect numbers to what I was expecting. The problem does not seem to be on the RC receiver/servo breakout board side, because when I bypass the SW and connect straight from RC receiver to the servo signal line, the servo no longer jitters, indicating that it is giving a constant value.

I also noticed that this issue only occurs when 4 or more PulseTimers have been told to “begin”. With 3 or fewer PulseTimers running, everything works great, as seen in this graph:

I watched your video here Reading RC Servo Receiver Signals with Serial Wombat 4B chip’s PulseTimer pin mode. (youtube.com), and with my own past experimentation I know it’s possible to have > 3 PulseTimers running simultaneously when I used multiple SW4B’s instead of one SW18AB.

P.S. My wiring is a bit convoluted, but I will attach some pictures anyway along with an explanation if it helps.

Right now, the servo expansion board is powered by the model airplane ESC, which is plugged into the RC battery. The ESC output supplies 5V to power the servos. A set of 3 jumper wires connects VCC and GND (and a dummy signal line) to the RC receiver, powering it as well.

Jumper wires then steal the signals from the RC receiver and connect to the SW18AB. Ideally five lines would connect to the Serial Wombat, but for testing purposes only one of them is connected currently (to SW pin 14).

More jumper wires then go from pins on the SW18AB to the dedicated signal pins on the servo breakout board. Again for testing purposes only one line is fully connected (SW pin 15 to servo signal line 1). There is a test servo on servo line 1.

Finally, SDA/SCL are connected and 3.3V/GND are connected between the SW18AB and my Arduino Mega. I’ve double checked this works as intended already. A black wire also connects the SW18AB GND to the servo expansion board GND so everything has a common GND in parallel.

Leave a comment