Everything that can be tested on a table has been tested on a table. It's finally time to start working on the actual sub!
Here's what's working.
Both compasses are green
The RM3100 is the good magnetometer, the one that doesn't get confused by thruster motors running a few inches away. It's calibrated, sitting at Priority 1, and the Pixhawk is happy with it.
It took three of them to get there. The first didn't show up on any bus at all, and after a lot of continuity checking it turned out I'd been soldering at over 800F when you want about 600. Cooked it . . . turned the iron down and the replacements went in fine.
Sixteen cells, and a math problem I didn't expect
The battery is 4S16P: sixteen cells in a circle, four of those stacked, three times over. 192 cells, about 14kg, roughly half the weight of the finished sub.
So I needed a plate to hold sixteen 21mm cells inside a 103mm tube. Turns out "how do you pack 16 circles into a circle" is a solved problem with a known best answer, and it isn't a tidy ring. It's two irregular rings, and it's been proven optimal to about fifteen decimal places by people who care considerably more about this than I do :) I pulled the coordinates from Packomania.
3D Printed the plate. All sixteen cells dropped straight in. That was a good moment.
Then a mid-span collar so the stack doesn't lean, and a top plate with small crush ribs around the outside so the pack can't rattle inside the tube. To find the right rib size I printed a test gauge with four different diameters stacked on one part, so one print told me the answer instead of four (sort of ... I still ended up printing a few more test plates to hone it in a bit).
103.75mm. Slides the whole length of the tube, touches all the way round, doesn't need forcing.
The deadman can tell one dead computer from two
The supervisor is a small STM32 whose entire job is to notice if the sub has stopped thinking and, if it has, drop the weight and float it home. It listens for a heartbeat from the flight controller and one from the AI computer.
The rule is that it only fires if *both* go quiet. One dead computer isn't an emergency. Two is.
That now works in both directions. Cut the flight controller's heartbeat and nothing happens. Cut the AI computer's and nothing happens. Cut both and it counts down and fires into a test load, exactly as it should.
Getting there meant giving each brain its own wire. They'd been sharing one, which sounds fine right up until you notice that a single broken connector silences both at once, and that looks identical to both computers dying. Two wires, and now the test actually proves something.
Danu is on the internet
Cellular near shore, satellite everywhere else. The LTE half is up: registered on T-Mobile, 160ms round trip, pulling an address.
Two things stood in the way. The SIM had never been activated, which is a five-minute fix once you're confident the problem isn't your antenna or your wiring. And the modem defaults to a USB mode that needs a driver NVIDIA doesn't ship in the Jetson's kernel, so nothing bound to it and the system spent ten attempts insisting the modem didn't exist while it sat right there in the device list. One setting changed, worked instantly.
The antenna side came out better than I expected. Four networks visible at -73dBm through a flexible antenna the size of a stick of gum.
The best part
Cell carriers don't hand out real internet addresses anymore. You get one shared behind their NAT, which means nothing on the internet can reach your device.
So I put Tailscale (VPN) on it. The sub dials out, and from then on I can SSH in from anywhere as if it were sitting on my desk.
Tested it properly too. Turned the WiFi off and tried to reach it. danu.local didn't resolve, which is exactly right, the local network was genuinely gone. Then ssh danu connected over cellular.
I can log into my submarine from anywhere in the world. It's in my basement sitting right next to me. But still.
Next
Bench work is over. Now it's the real thing: three battery packs to weld, trays to build, tubes to fill, and about 25 litres of foam to shape by hand so the whole thing floats.
More soon.