Synthwave Build Log

Synthwave Build Log

This guide will walk you through each step of building Synthwave, the world’s first open-source Direct Ocean Capture device.

Please note that while I’ve tried to keep this document as up-to-date as possible, there may be gaps or inaccuracies due to underlying changes in the hardware. If you run into something, please feel free to reach out for help via this forum or the OpenAir Discord.

Prepare components

If you haven’t already, source all of your components via the official Bill of Materials.

Also, make sure you’ve finished 3D Printing the following parts:

  1. Base
  2. Pump brackets (you’ll need two of these)
  3. Top shelf
  4. Container cover

This tutorial also assumes that you’ve already populated your PCB. I haven’t produced any tutorials on how to do this yet, although experienced builders should have no problem simply matching the holes up to the various components.

If you’re interested in building a Synthwave, but aren’t experienced with PCBs or soldering, I would be happy to ship you a prepopulated board for the cost of materials*. This will likely save you many hours during the build process.

*If enough people take me up on this, I’ll need to also charge for labor. But for now, you get that for free :slight_smile:

Three-way Solenoids

If your solenoids came with JST connectors attached, cut them off and expose a bit of the leads.

A nice thing about these solenoids is that the fittings can be rotated around. You’ll need to rotate two of them 180 degrees so that they mirror each other. Carefully unscrew the four Philips head screws, turn the plastic bit around, and screw it back together.

Two-way Solenoids

These solenoids are referred to as the “flush valves” in Synthwave. You’ll need to solder a red and black wire to each of the leads on the solenoids. I like to twist them together for aesthetic reasons.

Micro Pumps

Again, you’ll need to solder red and black wires to the leads. While you’re at it, attach the 3d printed pump brackets, and place set M2 screws in each screw hole.

Vacuum Pumps

Yep, you’ll need to solder wires to these as well.

32oz Deli Containers

These are the same kinds of containers you get from takeout restaurants-- Chances are you have a couple of them sitting around your house.

The only difference is that they need a hole drilled in the bottom. This is actually harder than it sounds, because these containers tend to crack or shatter. I found that by drilling through a layer of painter’s tape, it’s much more likely to leave a clean hole.

You’ll notice that the shape of the bottom isn’t perfectly flat: There’s a ridge around the outside that’s a little lower than the rest. Because of this, you may want to use a 3" hole saw to cleanly cut through this ridge. If a 3" hole saw isn’t available, just use the biggest bit you can find and drill right through the middle.

Begin assembly

PRO TIP 1: Do not overtighten! We are screwing straight into plastic, so don’t expect it to hold as well as wood or metal.
PRO TIP 2: When working with tiny, fiddly screws, I recommend magnetizing the tip of your screwdriver. Just rub a strong magnet against it for a while, and it’ll hold onto screws.

Start by affixing the solenoids and micro pumps to the left and right sides of the 3d printed shell, like so. I actually used M3 screws here, as they fit a little better. Make sure to take note which direction each of the solenoids is facing before you screw them in.

Next, attach the micro pumps and brackets to the shell. Then, screw the flush valves into the bottom of the shell. You should end up with something like this.

Because of the flush valves sticking out of the bottom, Synthwave no longer sits flat on a table and is therefore much easier to work on while sitting on a five gallon bucket. From here on out, I recommend using the bucket to prop up your device for stablilty.

Start heating up your hot glue gun. While it’s heating, screw in the the Luer lock fittings to the membrane contactor. Then, route the tubing to the upper solenoid, as pictured.

Now put a blob of glue on each side of the lower shelf area, then press the membrane contactor into it. Hold it still for at least 45 seconds.

Next, route the rest of the tubing.

NOTE: You’ll notice that there are two holes leading to the bottom of each container. In order to achieve a watertight seal, you’ll want to put a blob of glue inside the hole, then push the end of the tube through it from the outside in.

In order to not clog the tube with glue, you can stick a screw or small nail in the end before you push it through, then remove it when it’s in position. Done correctly, this will ensure that the glue surrounds the tube and creates a perfect seal.

Now, glue the containers in place. Make sure to use a significant bead of glue: Again, you want this to be as watertight as possible. At this point, you should have something resembling this:

Attach the 3d printed upper shelf using M2 screws. You can now press-fit the vacuum pumps into place, or if you prefer, glue them. At this point, you may turn off your glue gun.

1 Like

Part 2

I’m going to gloss over how to populate the circuit board. In short, just go from this to this:

No problem, right?

Now you’re ready to flash the ESP32 with the official Synthwave firmware. Use the Arduino IDE to open the firmware file for your board. Edit the firmware with your home’s WiFi SSID and password.

Connect the board to your computer using a USB-C cable. Set the correct port in the Arduino IDE, and make sure to select the correct board: Heltec WiFi Kit 32 V3. Once it’s all working, click “upload”.

Once the upload finishes, the board will restart and connect to your home WiFi network. From here, you can connect to the web address that flashes on the device’s screen. It’ll be something like, although the actual IP address will depend on whatever your router decides.

The screen that appears will allow you to upload the filesystem for the device. Click on the “filesystem” tab, and select the file called spiffs.bin. It’s about 1.5MB, and should only take about 10 or 15 seconds to upload.

Congratulations, you now have a tiny web server that you can use to control Synthwave! Navigate to the same URL as before, but omit the /upload part. You should now see the control interface on your screen:

Part 3

Now, it’s time to hook up all of the various pumps and valves. First, note the position and number of each part:

(I do recommend writing the number on each individual device in order to help keep everything straight.)

It’s likely that some of the wires won’t be long enough to reach their connection points on the circuit board. If this is the case, you’ll need to splice extra length onto them.

Now, go ahead and connect each device to its respective connection point. In the photo above, I soldered all the wires to the underside of the board in an effort to keep it neat and tidy. It may make more sense to solder things to the top. When you’re done, mount the board to the shell using M2 screws.

(Note: In a future revision, it would be better to use JST connectors instead of soldering directly, but them’s the breaks for now.)

1 Like


As with any prototype design, I discovered a few helpful tricks along the way, as well as a handful of things that need to be changed in the next revision. This is my attempt to write them down, so that a future developer may someday implement them.

A note on connectors

Earlier I had said:

After building this out, I would highly recommend the use of right angle 2.54mm JST sockets for each of the 12v breakouts on the left side of the board. Not only do the three-way valves come with compatible connectors, but this would eliminate the need to solder things to the board after components are already mounted. Of course, some crimping would be necessary.

On the opposite side (where the boards and sensors hook up) I find it’s nice using this style of 2.54mm female pin socket headers. I’ve found that these hold both pin headers and regular solid-core wire quite well. For sensors and things that are liable to be switched around, this seems like a good option.

(In an earlier revision of the motherboard, I had soldered things directly and it became a big pain when I needed to swap out ESP32 daughterboards…)

A note on cost reduction

There are several redundant parts on this machine: The obvious one is the second vacuum pump, which could be replaced with a two-way solenoid rated for gas transfer. The main water pumps could be reimagined as a single pump, especially by using these neat manifolds.

There’s also a lot of room for improvement with the controller PCB. Surface-mount components could reduce both the material and labor cost. We could also pop an ESP32 chip right on the board itself-- Add a trace antenna, LEDs, etc., and eliminate the prebuilt board.

Ultimately, I think it’s not worth it to keep iterating on this design when we know that a flow cell is next. This reactor looks pretty cool, but it’s designed for experimentation over efficiency.

1 Like

Electrode Holders

Hot off the presses: New 3d printed electrode holders! These snap-fit parts cinch down on your carbon paper electrodes and hold them securely in place exactly 2cm apart.



The .stl file can be found via the Synthwave GitHub. This model is designed to be printed without supports. The parts are pretty fiddly, so I recommend printing with a low layer height and slow speeds.


The approach is to feed the wire into the holes at the top, then solder your 2cm nickel strips to them. There’s a bit of technique, here: Position the strip on the plastic, then use a big blob of solder right in the middle.

Next, reverse the strip so that the solder blob is facing the inside. I find that a good pair of tweezers is key! Use your soldering iron to melt the strip into place, like so:

Repeat for both sides.

You may now place your carbon paper electrodes into the two holders:

Snap each piece securely into place:

Congratulations! You’ve built the official Synthwave electrode holder. You can now slide it securely into the container cover, and it will lock into place.