Ethan Sheehan
All work — 2024-25

AVDASI 2: BlueBird Avionics

Codename BlueBird

Avionics test lead on a six-person team: Hall-effect flap sensing, servo calibration, aircraft integration and three days in the wind tunnel.

RoleAvionics test lead, group design project
Flap angle accuracy
1 deg bench, 1-3 deg tunnel
Tunnel campaign
3 days at 20 m/s
Wing vs prediction
20-40% down
01

A company, not a group

AVDASI 2 is run as a company. Company B traded as BlueBird and was contracted to design, build and test a UAV that could loiter for a long time and land on a short floating airstrip. Wings, fuselage, pod and empennage each had their own team; Team 18 was avionics, six of us, responsible for every wire, sensor and line of ground-station code on the aircraft. I was the avionics test lead, which in practice meant I owned integration and calibration: making the other teams’ structures move, and proving they had moved by the angle we said. In the technical report I wrote the integration and aerodynamics sections and the executive summary.

Ethan in a maroon Bristol lab coat holding the blue film-covered wing upright in the workshop, grinning
Starboard wing, finished and instrumented.
The complete UAV on a bench trolley: full-span blue wing, silver instrument pod slung under the carbon fuselage spar, tail at the far end
The finished aircraft, 27 Feb 2025.
02

A magnet on the flap spar

The customer wanted flap position measured independently of the servos, so reading back the PWM you had just commanded was not good enough. Máté led a down-selection across rotary encoders, potentiometers, gyroscopes and Hall-effect sensors: criteria cut to six by vote, weighted by pairwise comparison, then scored in an MCDA matrix. Magnetic sensing won on accuracy, resolution and refresh rate, and the report claims it as the first time it had been made to work in this unit.

The board is 37 by 10 millimetres so it fits between rib and skin, ordered bare from JLCPCB and hand-soldered. It reads a magnet epoxied to the flap spar itself, which is the whole point: it measures what the flap actually did. The harness distributor is the other board we made. It feeds the Cube, both power modules and the servos from a single 7.4 V input, and it exists mainly so that nobody can plug the aircraft together in the wrong order.

Multi-criteria decision analysis matrix scoring potentiometer, incremental and absolute rotary encoders, gyroscope and magnetic angle sensor against weighted criteria, with the magnetic sensor scoring highest
The down-selection that picked magnetic sensing: weighted MCDA over five candidate technologies.Máté Kadas, Team 18
Dimensioned PCB layout of the angle sensor board, 37.45 millimetres long by 10 millimetres wide, with two mounting holes and the Hall-effect chip between them
The angle sensor board: 37.45 by 10 mm, so it fits between rib and skin.
Two blue angle-sensor circuit boards on a white surface, one face up with the BlueBird winged logo and a JST connector, one face down showing the Hall-effect chip and passives
Both faces of the finished sensor board. The BlueBird wings are on the silkscreen.
Annotated board layout of the harness distributor with callouts for servo PWM inputs and outputs, I2C input and outputs, 6 volt input power via BEC, resistors and a mounting hole
Harness distributor layout, annotated.
The blue harness distributor circuit board on the workbench beside the carbon fuselage spar, wired with heavy red, black, yellow and green cables
The harness distributor. One input in, the Cube, both power modules and the servos out — and no way to plug it up wrong.
A Cube Orange flight controller in its orange case with telemetry and Wi-Fi modules, power wiring and a yellow emergency-stop box on the bench
The core: Cube Orange+, the Wi-Fi telemetry module, power brick and BEC. E-stop in shot.
Grey CAD render of the sensor test rig: a baseplate with two uprights carrying a horizontal axle for the spinning magnet
The test rig in CAD before we cut it.
The rig we built to characterise the sensor: adjustable magnet-to-sensor distance, protractor on the axle.
A hand holding a foam wing-section mock-up with the angle sensor board and its brass arm bonded in place
The mock-up wing piece we proved the mount in before touching a real wing.
03

Three steps to one degree

Control surface deflections had to be accurate to a degree, and servos do not come that way. I built the calibration as three steps. First a servo tester, straight after the mechanisms were built, to prove each servo could reach the angles asked of it and to find the bad ones early. Then a custom calibration circuit that mapped deflection angle to PWM: find the maximum and minimum, record their pulse widths, take a few points in between and fit a line. Then the equations went into the telemetry code and got a final trim against an electronic level. The middle step was the useful one, because a mechanism team could change something and I could re-derive their equation the same afternoon rather than re-doing the whole chain.

A red 3D-printed tray holding a blue terminal board with many coloured wires, next to a radio transmitter on a red bench
The servo calibration circuit: map deflection angle to PWM, fit a line, put the equation in the code.
A sheet of lined paper taped under a control surface with deflection angles traced from a protractor and marked in degrees
Calibration by protractor: trace the angles, drive to each one, record the pulse width.
A bench with a laptop running the ground station, a servo on a black test stand, a Cube Orange flight controller, an ESP8266 Wi-Fi module and a radio transmitter, all wired together
Where it started, 23 Jan 2025: one servo, the Cube, the Wi-Fi link and the ground station talking to each other.
Flap sweep from the radio, driven through the flight controller.
Arming and moving surfaces from the ground station, with the radio as the fallback.
04

Integration was the hard part

Integration was the most difficult part of the project and the part where other teams’ slippage landed on us. The pressure system was designed as a self-contained box because that made it trivial to install; by the time the wings were real the boxes would not fit and could not be shrunk, so it became boards screwed to plywood floor panels, designed by us and then handed to the wing teams who knew how to get them inside. The pod team gave us two aluminium plates in the roof to mount to, which turned out to be almost impossible to work in, so we designed and printed a two-part avionics bay that bolts into the payload deck instead: Cube and radios in the lower half, harness distributor and power modules in the upper.

On the starboard wing the rib that should have carried the sensor was glued to the spar before the mounts were machined, so the mount was drilled by hand and some trailing-edge foam came out, supervised by the wing’s structures people. The sensor itself was the one thing that went in as planned — a rib, a magnet on the flap spar, and one trim with a Stanley knife.

Engineering diagram of the whole aircraft avionics: both wings, fuselage spar and tail drawn in plan with every harness run coloured by function and dimensions of 728 and 364 millimetres called out
The physical diagram: every wire on the aircraft, coloured by what it carries.
Legend for the avionics physical diagram, mapping colour swatches to harness distributor, angle sensor, pressure acquisition system, avionics bay, Cube, BEC, receiver and each servo cable
Its legend. Nineteen colours, because there were nineteen things to trace.
CAD render of a wing section cut away to show the pressure acquisition boards on their plywood floor panel, ribs, spars and the flap mechanism
Wing bay in CAD: pressure boards on the floor panel that replaced the self-contained box.
CAD render of a second wing section showing the green pressure sensor boards, manifold and harness routing between ribs
Sensor boards, manifold and harness routing, as designed.
Block diagram of the avionics bay drawn as coloured rectangles for the lower and upper bay, Cube, Cube connector, power connection, BEC, receiver and Wi-Fi chip
The avionics bay as blocks: Cube and radios below, harness distributor and power above.
A green Hall-effect sensor board bolted to a plywood rib inside the wing structure, wired out through the bay alongside the carbon spar
The sensor as it flies: bolted to a rib, reading a magnet epoxied to the flap spar itself.
Wing structure open on the workshop bench with green sensor boards mounted at the flap hinges and a laptop showing a telemetry plot
Sensors in the ribs on the bench, 12 Feb 2025, reading angle into the plot on the laptop.
A long workshop bench holding the wing sections with the pressure acquisition system, coloured manifolds and a laptop, blue pegboard behind
The wing set with the twelve-channel pressure system laid out before it went in.
Bench integration. Every green glow is a sensor board alive inside a wing bay.
05

Three days in the tunnel

Starboard wing on 21 February, fuselage on 24 February, port wing on 26 February. The wing goes into the tunnel on its own, vertically, tufted with red wool so you can see where the flow lets go; the green glow through the film is my sensor boards reporting flap angle while the tunnel runs. Nothing in the software needed intervention across the campaign, which is the sentence I am most pleased with in the whole report.

The two failures were ours and small. The user interface leaked memory and got laggy after a few minutes, so we refreshed the page when it did. On the last run all three processes were being run from one editor, and pressing run on the telemetry system silently killed the interface — a start-everything script would have cost half an hour and saved that.

The wing installed vertically in the wind tunnel, seen from above through the ceiling window, tufts and sensor LEDs visible
Installed for the starboard wing test, 21 Feb 2025.
Starboard wing, 21 Feb 2025. Red tufts for the flow, green LEDs are my flap sensors reporting.
Flap down, tunnel up. The supply in shot reads 7.40 V at roughly a third of an amp — that is the whole avionics load.
Changing angle of attack between points. The tufts show where the flow lets go.
The same wing from the tunnel ceiling window, tufts blown flat.
The FLAPS page reading the sensors live while the tunnel runs. The bars are flap angle, not servo command.
Two people inside the tunnel test section fitting the blue wing onto the mounting post
Getting it onto the balance post. Twenty minutes of this per configuration.
The wind tunnel test section from outside, the blue wing standing vertically inside behind yellow-tinted glass
The tunnel from the outside. The wing is the whole model — it is tested on its own.
The fuselage and instrument pod mounted on a sting in the tunnel test section, lit from below
Fuselage and pod on the sting, 24 Feb 2025.
Fuselage day, 24 Feb 2025. Ground station on the monitor, the telemetry system running next to it.
The tunnel rig logging while we stepped the flap. Each riser in the trace is a commanded deflection.
The port wing in the tunnel with the flap deflected, the boundary layer visible as a fuzzy band along the tunnel floor
Port wing, 26 Feb 2025 — the third and last tunnel day.
The tunnel test section with the fuselage inside, a monitor showing the ground station FLAPS page and a laptop showing the telemetry code running in an editor
The console on the last run: aircraft in the tunnel, ground station on the monitor, telemetry system in the editor.
A dark frame from the tunnel camera stream showing the model in the test section with a bright streak of illuminated flow
Off the tunnel camera stream during a run.
Four members of Team 18 crouched in front of the open wind tunnel test section, the tufted blue wing standing vertically inside it with the green sensor LEDs lit
Four of the six of us in front of the test section, wing still in and still lit.
06

Predicted against measured

The aerodynamics section is the comparison: predicted coefficients against what the tunnel actually gave, for flap deflections of 0, 8 and 15 degrees at 20 m/s on the NACA 2415 section. The lift curve does what it should — linear at low incidence, rolling over around 15 degrees, and stalling at almost exactly the angle predicted, which is the one clean win. Everything else is worse than predicted: peak lift coefficient near 0.95 against a predicted 1.5, zero-lift drag around 0.065 against roughly 0.015 predicted, and drag polars that cluster together instead of separating with flap angle.

Across most metrics the wing came in 20 to 40 per cent below prediction. Some of that is manufacture — surface finish, film folds on the underside of the leading edge, cavities that let flow into the skin. The largest single contributor is almost certainly the flap mechanism, which protruded further than it needed to and was bulky enough to interfere with the flow properly. Streamlining it would have cost rigidity, which is the trade nobody made because nobody had costed the drag.

Predicted lift coefficient against angle of attack from minus 5 to 15 degrees for flap deflections of 0, 8 and 15 degrees, three straight lines rising to about 1.5
Predicted lift: linear, and it never stalls because the model does not.
Measured lift coefficient against angle of attack for flap deflections of 0, 8 and 15 degrees, curves rising to about 0.95 and rolling over past 15 degrees
Measured lift. Peaks near 0.95 and stalls at almost exactly the angle predicted.
Predicted drag coefficient against angle of attack for three flap deflections, smooth curves rising from about 0.015 to 0.10
Predicted drag.
Measured drag coefficient against angle of attack for three flap deflections, points rising from about 0.065 to 0.35
Measured drag: zero-lift drag around 0.065 against roughly 0.015 predicted, and the flap mechanism is the prime suspect.
Predicted drag polars, lift coefficient against drag coefficient, three well-separated curves for 0, 8 and 15 degrees of flap
Predicted polars, cleanly separated by flap angle.
Measured drag polars for three flap deflections, the three curves clustered together and reaching lift coefficients near 0.95
Measured polars. The flap does much less than predicted, and everything sits further right.
07

One degree on the bench, one to three in the tunnel

On the bench and at the Gate 4 inspection the flap sensors held the degree they were designed to. In the tunnel they drifted to one to three degrees. Two reasons, both traceable. The wings vibrated hard enough to push the magnet off the sensor axis; damping in the wing would have helped, and so would a stronger magnet, because then being off-axis matters less. And the magnet was not the one we specified — the neodymium sensing magnets did not arrive in time, so ordinary ferrous button magnets went in against the deadline, which made the vibration sensitivity worse. It is a shipping-lead-time failure dressed up as a sensor failure, and it is the thing I would fix first.

The whole aircraft together for the first time, 27 Feb 2025. Blue wing, silver pod, avionics bay inside it.
The assembled aircraft from the nose, wing sweeping away to both sides above the red parts boxes
From the nose. Two metres of wing, and every bay of it wired.
Empennage on the spar in the workshop, 24 Feb 2025.
08

Paper trail

The thirty-seven page group technical report, and the architecture the software sub-team built underneath all of this: a Python and pymavlink telemetry system talking MAVLink over UDP to the CubePilot and WebSockets to a React and TypeScript interface, with Lua scripts onboard for the extra sensor and radio behaviour. I calibrated against it and tested with it rather than writing it.

Team 18 avionics technical reportThe group technical report. I wrote the integration and aerodynamics sections and the executive summary.37 pp
The ground station in a browser: artificial horizon and attitude panel at left, a FLAPS page with a custom flap position control and three flap gauges, manual servo controls for tailplane and ailerons at right, and a log panel
The ground station the team built. Flap gauges in the middle are fed by my sensors; servo controls at right are what I calibrated.Team 18 software sub-team
System block diagram with boxes for the user interface in React and TypeScript, the ground telemetry system in Python and pymavlink, the onboard telemetry system, the flight control unit on CubePilot and ArduPilot, and a Taranis radio control system, linked by MAVLink over UDP
How the systems talk: MAVLink over UDP to the Cube, WebSockets to the UI, radio as the parallel path.Team 18 software sub-team
Flowchart of the telemetry system and user interface code, listing the CubePilot messages checked and the UI messages sent, with the message-handling loops for each side
The telemetry and UI loops, and every MAVLink message the ground station listens for.Team 18 software sub-team