TM-02 · Rev EJ. O. Jackson · 2026-09-12
Technical Memorandum

PERRY: Design and Open-Water Verification of a LoRa-Activated Vertical Profiling Float

Pressure Equipped Robot for Research and Yield
J. O. JacksonCrush Depth float team, MATE ROV international competition

Abstract. PERRY is a vertical profiling float: on a LoRa activation signal it runs three profiles to a set depth, logging temperature, pressure, and depth, and transmits the record on resurfacing. The hull is acetone-vapor-smoothed ABS closed by static o-rings; field testing showed marine grease admitting water at the seals, and the switch to silicone grease fixed it. A 50 mL buoyancy engine moves the craft, which has a mass of about 10 lb (4.5 kg); depth is held by a PID controller on Bar02 depth with hand-set gains. In open water it profiled to 4 m, resurfaced, and returned its data. On a team build, I did the programming, the electronics, and the buoyancy design.

1Pressure Sealing

The hull is a sealed pressure vessel, and the sealing strategy is the core mechanical problem of the craft. Static o-ring seals close the hull. The seal design covered o-ring groove sizing, seal-stack layout, and selection of a grease for assembly.

The grease selection was decided by test. The first field tests were run with marine grease, and the hull took on water at the seals. Switching to silicone grease stopped the ingress, and the open-water mission was run on silicone.

The hull is FDM-printed in ABS on a Bambu Lab printer, which leaves a layered, porous surface unsuited to sealing. The printed hull was acetone-vapor smoothed in a chamber, using the solvent pass as a conformal surface treatment to close layer lines. The print was set up for the treatment: extra perimeter walls were added so the smoothing pass could not open the surface into the infill.

PERRY float, assembled: blue printed hull, red cap, orange handle, yellow base. PERRY on a pool deck in front of other teams' profiling floats.
Figure 1. Left: PERRY as assembled for the open-water mission. Right: on the deck at the test site, other teams' floats behind.

2Buoyancy Engine

Depth is driven by a buoyancy engine rather than thrusters. A NEMA17 stepper motor, running through a TMC2209 driver under UART control, changes the craft's displacement by 50 mL to move it between the surface and the target depth. The craft has a mass of about 10 lb (4.5 kg). The 50 mL allowance was set by estimate against that mass and confirmed by trial rather than by a formal buoyancy calculation; that is recorded as a limitation in Section 6.

3Depth Control

Depth is closed-loop. The ESP32 reads depth from the Bar02 and runs a PID controller against the target depth; the controller output commands the buoyancy engine's displacement through the stepper. The gains were set by hand. The schedule did not leave time for a tuning campaign, so the loop was run with guessed gains adjusted by trial until the craft reached and held the 4 m target well enough to complete the mission. Overshoot, settling time, and steady-state error were not recorded. This loop is the only feedback control on the craft; profile sequencing and the transmit step run open-loop on mission logic.

4Electronics and Firmware

An ESP32 runs the mission logic: arming over LoRa, profile sequencing, sensor logging, and data return. Depth and pressure are read from a Blue Robotics Bar02 pressure sensor on the I²C bus. The LoRa link is a REYAX RYLR896 module on a 115200-baud UART. The stepper driver is commanded over a second UART. All electronics were assembled and soldered on protoboard.

Table 1. System summary.
SubsystemComponentInterface / process
ControllerESP32mission logic, logging, radio
Pressure and depthBlue Robotics Bar02I²C
Depth driveNEMA17 stepper, TMC2209 driverUART; 50 mL displacement change
Depth controlPID on Bar02 depthgains set by hand, not tuned
RadioREYAX RYLR896 LoRaUART, 115200 baud
HullFDM ABS, Bambu Lab printerchamber vapor smoothed; static o-rings; silicone grease
Massabout 10 lb (4.5 kg)
Assemblyprotoboard, hand soldered

5Open-Water Verification

The craft completed its mission profile in open water: it profiled to 4 m, resurfaced, and delivered its logged data over the radio link. Figure 2 shows the commanded mission profile.

0 2 4 Depth (m) Time from LoRa activation (durations not to scale) profile 1 profile 2 profile 3 transmit
Figure 2. Commanded mission profile: three descents to the 4 m target and return, then data transmission at the surface. This is the commanded sequence, not a plot of logged data; durations are schematic.

6Known Limitations

7Role and Attribution

Team project, Crush Depth float team. I did the programming, the electronics, and the physics and buoyancy side of the craft, and previously served as Float Team Technical Lead, taking the subteam through LoRa communications, ESP32 development, stepper motors and drivers, and board assembly.