Updates

Cradle and Foam

  • 3D drawings now show per-part colors
  • The cold core got a poured-foam plan
    • A mouth-down bottom cap that clamps the foam pour against the shell
    • A doubled pour hole through the lid
    • An assembly that verifies the screws clear the cap and lid
  • The CO2 cylinder got a weighing platform
    • A grounded base on three feet
    • A floating well the cylinder drops into
    • A single-point load cell (a scale sensor) bridging the two, so the appliance reads grams remaining

CO2 cradle — grounded base, floating well, single-point load cell between them

Shroud and Lite

  • The compressor shroud became a manufacturable part
    • A 5-sided open-bottom shape with bend-relief notches at the four corners
    • An earth-bond hole and two enclosure mounting holes
    • A SendCutSend quote of $27.83 per part at qty 10
  • The Lite Edition got its enclosure
    • Four valve trays packed around the reservoir on its front face
    • Two flavor pumps and a hopper funnel filling the remaining corners
    • A six-walled transparent shell with a square lid hole for the funnel

Lite Edition enclosure assembly — contents inside the transparent shell

Reference and Costs

  • The reference-parts area got tightened up
    • Before today, parts were split across two folders, with redundant geometry docs and reverse-engineering images alongside
    • After today, the nine parts share one folder, the docs describe just the part, and the orphaned process images are gone
  • We finally know what the project costs
    • Before today the totals were hand-tallied and had drifted from the line items
    • After today, it has:
      • $27,996.80 cash outlay across every order, recomputed from the ledger
      • $13,745.60 in tools across 60 items, computed from the same ledger
      • $1,539.45 per consumer unit in the bill of materials, recomputed per section

Actuator Mock and Comments

  • 1,400 lines of prose left the part scripts
  • The servo-actuated ball valve got a packaging mock
    • Before today the manifold trays held the wetted fluid path but no actuators
    • After today, it has:
      • A 44 x 16 x 53 mm cell envelope — valve body, micro servo, and coupler stacked on one stem axis
      • A printed coupler taking the servo horn to the valve stem, with the molded lever pried off
      • An exploded view of that coupling, parts spaced along the stem

servo-actuated ball valve packaging mock — micro servo coupled to a plastic ball valve on the stem axis

Shell and Manifold

  • The foam shell came off the printer clean
    • Attempt 2, with rounded outer corners and bosses webbed into them
    • 14 hours on stock PETG defaults, no warp, the part came off whole
    • The corner gussets fell short of the pocket wall and were dropped
  • The valve manifold took its first shape
    • A reference model of the solenoid valve we buy 12× per unit
    • Four trays — source select, bag circuit, BiB (bag-in-box) gates, nozzle gates — each carrying a slice of the fluid topology
    • A diagram mapping every valve and junction onto its physical tray

Watertight and Lite

  • The printed reservoir held water
    • Attempt 3, full bulkhead with TPU gaskets, sitting in the printed foam shell
    • Several hours, no weep, the first reservoir to pass the leak gate
    • The slanted-floor supports released clean, no tear-out
  • The foam shell came off the printer
    • Attempt 1, stock 0.8 mm nozzle PETG defaults
    • Floor corners warped up around layer 50-100
    • Anti-warp corner gussets ready for attempt 2
  • The Lite Edition is taking shape
    • A forked plumbing diagram that drops chilling and pulls cold carbonated water from a Lillium
    • A first 3D drawing — a box holding two collapsing 1 L flavor bags
    • A hidden Kitchen/Lite toggle on the dev viewer so each edition browses its own parts

Test Cup and Food Gate

  • A printed cup is holding water
    • 4 oz cylinder, 3 mm walls, PETG
    • The settings that got it watertight are recorded
    • First proof an FDM print can be the reservoir's wetted surface
  • The site refreshes on deploy
    • Before today only the dev viewer reacted to a deploy push
    • After today, every page checks the live build commit on focus and reloads itself if the build changed
  • Three reservoir paths share one food-contact test
    • Before today food safety was a hand-wave around a planned epoxy coating
    • After today, it has:
      • A shared acceptance test — 3% acetic acid food simulant, 10 days at 40°C, sensory taint check
      • Three candidate wetted surfaces — bare printed PETG, cast food-grade silicone, off-the-shelf collapsible PE bag
      • An epoxy coating step removed from the bill of materials

4 oz watertightness test cup — 3 mm PETG walls, the first attempt holding water

Reservoir and Water

  • The faucet lined up with the machine
    • Before today the faucet had its own frame, the water tube 90° off its port
    • After today, the whole faucet faces the user like the rest of the machine, and the water tube meets its port
  • The reservoir got its floor and outlet
    • A V-shaped floor that drains the whole cavity to one center port
    • A quick-connect fitting at the trough, picked and bought
    • Eight posts in the foam shell holding the floor up
  • The enclosure got its incoming-water inlet
    • A quick-connect water fitting on the back panel, where the tap line comes in
    • A blue marking so it reads at a glance — the gas inlet is red

enclosure iso line-art with the water inlet marked in blue on the back panel

Faucet and CO2

  • The faucet shell switched to a new filament
    • A first run on the new carbon-fiber PET that failed two ways — a collapsed support and patchy outer walls
    • A diagnosis of wet filament plus weak layer-to-layer bonding
    • A re-slice with dried filament, a hotter nozzle, the fan off, and a wider nozzle
  • Every printed part now shares one orientation
    • Each part rebuilt native to one shared up-direction, the conversion steps between them gone
    • A check confirming the rebuild changed no part's actual geometry
    • The 3D viewer flipped to match
  • The enclosure got its CO2 inlet
    • A port on the right side face, where the gas cylinder sits beside the machine
    • The quick-connect coupling that plugs into it, now its own part in the 3D viewer
    • The engineering drawing marking the port in red so it reads at a glance

enclosure iso line-art with the CO2 port marked in red on the side face

Drawings and Quickstart

  • A printable quick-start sheet
    • An 11×17 landscape PDF for the customer
    • Four drawings in a 2×2: connect the CO2, tee the water, open the valves, pour in a flavor
    • Arrows color-coded by what's flowing — blue for carbonated water, red for CO2, gray for plain water
  • The drawings switched to real CAD
    • Before today every drawing was a 2D wireframe sketched in a custom Python tool
    • After today, the site has:
      • A new Engineering Drawings section rendered with hidden-line removal — visible edges solid, hidden edges dashed
      • Iso views of the cold core, the faucet, and the assembled enclosure
      • The existing enclosure line art rebuilt the same way — the dispense tip now correctly hides the push button behind it

printable quick-start sheet — four setup drawings in a 2×2 grid

Drawings and Docs

  • The front face got its dispense controls
    • A 19 mm rotary knob aligned with the hopper lid
    • A dispense tip protruding 16 mm forward from the face
    • A push button at glass-rim height below the tip
  • The enclosure isometric added a back view
    • Three Ø17 mm umbilical bulkheads in a tangent triangle
    • A C14 AC inlet cutout
    • A nameplate plaque
  • Doc numbers stopped drifting from the CAD source
    • Before today every printed-part README had hand-typed dimensions that quietly diverged from the generator
    • After today, the project has:
      • A markdown substitution syntax — value — that rewrites prose from live source on every run
      • A cross-file linter that flags the same name resolving to different values across parts
      • Byte-stable STEP outputs so identical source produces identical files

front face line-art with the new knob, dispense tip, and push button

Front Face and Drawings

  • The enclosure's front face cleared off
    • Before today the front had two chips, an air switch, a pump door, and a GFCI cutout
    • After today, it has:
      • One screen and the front-dispense spout with its lever
      • The pump cartridge on a top-access door alongside the hopper
      • The GFCI on the electronics shelf inside; the second chip and the air switch gone
  • The site got a Drawings surface
    • Before today the site surfaced two file types: 3D parts (STEP) and flowcharts (Mermaid)
    • After today, it has:
      • A drawing tool in Python that builds isometric line-art from named-face boxes
      • A Drawings page parallel to Parts and Charts, with thumbnails, deep links, live swap, and push notifications when a drawing updates
      • An enclosure isometric as the first drawing — the appliance at 269 × 280 × 280 mm with its front-face features called out

enclosure isometric — the first drawing on the new Drawings page

Faucet and Framing

  • The faucet plate dropped its screws
    • Before today the plate fastened to the shell with two M3 screws and heat-set inserts
    • After today, it has:
      • Two integral 4 mm dowel bosses on the plate, press-fitting into matching pockets in the shell
      • 24 inserts per build instead of 26, and no McMaster screws
      • A v1 printed TPU bushing replacing the factory rubber o-rings inside the valve body
  • The project's framing pivoted to the appliance
    • Before today the project's front page introduced it as "Soda Flavor Injector," a maker-electronics build
    • After today, it has:
      • A short orientation page pointing at the prototype, the appliance under development, and the public site
      • The prototype's parts list, cost breakdown, and photos retired (preserved via git tags), since the working prototype is in the kitchen
      • A new biography series with a founding chapter plus a second "Vision Into Work" chapter on welding, marketing as catalyst, and parallel subsystem engineering

faucet plate with integral dowel bosses

Faucet and Water Inlet

  • The reservoir got its first PETG slice
    • The left body and cap on a single plate
    • A food-contact PETG filament (SunTop, rated for water contact)
    • Attempt 1 logged
  • The faucet shell tightened toward print
    • Before today the heat-set insert pockets were 5 mm deep and the tube bores were tight
    • After today, it has:
      • Insert pockets deepened from 5 to 7 mm with the counterbore widened to 6.2 mm
      • All three tube bores 0.2 mm wider and the M3 screws shortened from 8 to 6 mm
      • Attempt 15 sliced with the mounting plate added to the print plate
  • The water inlet path closed end-to-end
    • Before today the customer-facing rear-panel fitting was named inconsistently across docs and several install-kit parts were unsourced
    • After today, it has:
      • A 1/4-inch push-to-connect rear-panel fitting pinned as the customer-side connection
      • A brass add-a-tee, stainless reducing coupling, and NSF CO2 quick-disconnect pair acquired
      • The Waterdrop inline water filter added to the bill of materials

faucet shell tightened for attempt 15

Don't Let Go

The sixth video is on the channel. Five minutes of laser welding stainless on the Xlaserlab X1 Pro — three clean pull-aways using a technique pulled from two Chinese welding shorts (one, two): keep the trigger held, let the safety clip's conductance break on the lift, and the welder treats it as a normal release with the laser stopping and the wire retracting, no stick. Different welder brands across the two shorts, neither the X1 Pro — the repetition across brands is what made it sink in as a cultural thing. With conductance dropped entirely, the same trigger button feeds the wire — the wire-feed button the X1 Pro doesn't officially have.

Don't Let Go — Wire Stick Solved on the Xlaserlab X1 Pro

Faucet Shell and Pump Case

  • The 3-piece faucet shell's joint clearances landed
    • Before today the wall thicknesses and clearances were still being tuned
    • After today, both slip-fit joints sit at matched 1.95/2.0 mm walls with ~0.05 mm radial clearance
  • The pump case got simpler for PET-CF
    • Before today the tower overhung, the base had screw holes, and snap-fits held the halves
    • After today, it has:
      • A single thick-walled tower cylinder in place of the 45° overhang the printer was roughening past about layer 30
      • No mounting holes — the screws were sized to thread into the motor, but the motor's holes turned out to be smooth
      • No snap-fit locks — PET-CF (a stiff carbon-fiber plastic) cracks at the snap arm's notch when it flexes

3-piece faucet shell with tuned joint clearances

simplified pump case base for PET-CF

Leak Sensor and GFCI

  • The refrigerant leak sensor moved to the cabinet floor
    • Before today it sat inside the compressor enclosure
    • After today, it sits low on the back interior wall — R-600a refrigerant (the cooling gas) is denser than air and pools at the floor first
  • The appliance got built-in GFCI (ground-fault) protection
    • A small protection module inside the case, on the AC mains side
    • An off-the-shelf Legrand Radiant unit behind the front panel — only its test and reset buttons and status light show through
    • A generic NEMA plug cord, so any standard cord can replace it because the protection lives in the appliance, not the cord

CO2 Inlet and Faucet Shell

  • The CO2 inlet moves to the front
    • Before today it entered through the rear panel on a ~2 ft hose
    • After today, it has:
      • A new front-panel face with a cradle and strap for the cylinder beside the appliance
      • A ~12-inch tether from the cylinder regulator to the inlet
      • A 2 mm-wider doorway through the carbonator's foam shell so the elbow fitting passes through
  • First test fits on the 3-piece faucet shell
    • Before today we had split the shell into three pieces but had not printed it yet
    • After today, it has:
      • A first print at zero clearance, 2 mm short at the straight joint and 13 mm short at the curved one
      • A re-slice with looser joints that went too far, both sliding right through
      • A tightened third pass that holds in hand at ~10 lbf

carbonator foam shell with the CO2 inlet doorway widened 2 mm for the JG elbow fit

3-piece faucet shell, tightened on the third pass to hold at ~10 lbf

Faucet Plate and Procedures

  • The under-counter plate is one piece now
    • Before today it was a split two-halves design clipped around the faucet shank from below
    • After today, it has:
      • A single Ø 54.35 mm disc with two open-edge channels cut into the rim
      • A round shank pocket and a flat pill pocket for the tube bundle
      • A slide-on-laterally install so the customer can thread the nut one-handed
  • The factory build sequence is now fully written
    • Before today only the cold-side procedures existed
    • After today, it has:
      • Two off-appliance bench builds — the faucet kit and the electronics shelf
      • On-appliance procedures for the chassis, plumbing, wiring, and firmware
      • An 8-hour burn-in and a finish-pack-ship handoff to the carrier

under-counter plate — single-piece cut profile

One Out of Three

The fifth video is on the channel. Five minutes of laser welding stainless on the Xlaserlab X1 Pro — three attempts at the same bead, two stuck, one clean break. The bushing delay on the trigger-release cycle is cranked from the factory default of 400 ms to 5000 ms, so the wire's retract / push-forward cycle gives the puddle enough time to solidify before re-fusing.

One Out of Three — Stainless Welds on the Xlaserlab X1 Pro

Viewer, Faucet, and Refrigeration

  • The 3D drawing viewer got more usable

    • Free tumble past the top and bottom poles, no more stopping points
    • A Reset view button in the corner of the viewer
    • World-axis rulers off by default, with the toggle still on screen
  • The faucet shell split into three printable pieces

    • A slip-fit joint between the angled spout and the upper bend
    • A second slip-fit joint between the upper bend and the dispense tip
    • PET-CF (carbon-fiber) committed as the print material — low moisture pickup, low long-term creep
  • The refrigeration procedure converged on one argon rig

    • Before today the loop-rebuild walk-through called for a fresh filter-drier and a per-braze argon sweep
    • After today, it has:
      • Reuse of the donor's factory filter-drier as a sealed upstream subassembly
      • Continuous low-pressure argon through the loop the whole time it is open
      • Confirmed factory R-600a charge masses from each donor's manual (15 g and 23 g)

faucet shell, now split into three printable pieces with slip-fit joints

Volume and First Build

  • The flavor reservoir grew to hold two SodaStream syrup bottles
  • The flavor reservoir got printed and assembled
    • A stainless-steel float-guide rod, after the PETG version printed unreliably and would have collected syrup residue over a decade of use
    • More clearance above the syrup-exit fitting so a wrench can reach in to torque it during install
    • A solid boss anchoring the bottom of the rod, keeping the syrup-side floor an unbroken slope of PETG

flavor reservoir sized to two SodaStream syrup bottles

Rulers, Channels, and CO2

  • The 3D drawing viewer got world-axis rulers

    • Three colored axes — X red, Y green, Z blue — through whatever point you orbit around
    • Tick spacing that auto-scales as you zoom in and out
    • A toggle in the bottom-left of the viewer, default on, preference remembered
  • The foam shell got level-sensing channels

    • A vertical pocket for the wired magnetic-switch stack, open at the top so the column drops in before the cap goes on
    • A horizontal channel routing the cable out to the side of the shell
    • A strain-relief bushing sized for the 18 AWG cable
  • The CO2 line moved to an in-cavity elbow

    • Before today CO2 came in through a hole in the back wall of the cold core
    • After today, it has:
      • An elbow inside the cavity, fed from a port in the cap top
      • A doorway through the foam shell's support arch so a hand can reach in to fit the elbow
      • Printed TPU face seals on both sides of the bulkhead-tube fitting

3D viewer with world-axis rulers turned on

foam shell with level-sensing channels

Reservoir and Lineup

  • Pie-in-the-sky now sketches a numbered product line

    • A Lite Edition — flavor injection only, pairs with a customer-supplied carbonator
    • A Shop Edition — countertop variant for garages, basements, and bars
    • A Flavor Module — external satellite adding a second faucet with four flavors
  • The flavor reservoir got level sensing

    • A magnetic float sliding on a strut, anchored at the body floor and captured by the cap
    • A column of 4 reed switches slipping into a channel in the foam shell — no wires through the reservoir
    • A 5-state fuel gauge for the display (empty, quarter, half, three-quarter, full)

flavor reservoir with float guide rod

Plugs and Pressure

  • The copper-plug stack now fills its slot

    • Before today the printed plug stack fell 20–40 mm short of filling its slot
    • After today, the plug ends meet at the centers of the copper tubes they straddle, with the tubes filling the gaps between plugs
  • The build got three new procedure docs

    • A pressure-vessel doc (tap, weld, hydro test, passivate, fit ports)
    • A refrigerant-loop doc (vent, cut, coil, braze under argon, vacuum, charge)
    • A cold-core doc (foam pours, install components, cap and gasket)
  • The pressure vessel committed to 90 PSI

    • Before today the working pressure was 70 PSI with an SV-100 relief valve
    • After today, it has:
      • A WR1110 inline regulator that locks the appliance side at 90 PSI
      • An SV-125 pressure relief valve giving a 35 PSI safety margin
      • Stainless steel elbows on all four vessel ports

middle plug from the 3-piece copper plug stack

Safety and Shell

  • A fire-safety subsystem landed for the flammable refrigerant
    • A 77 °C thermal cutoff in series with the compressor's AC primary
    • An MQ-6 isobutane gas sensor inside the compressor shroud
    • A piezo buzzer for the audible alarm
  • The carbonator's foam shell got reworked end-to-end
    • Open top and bottom on the cylindrical wall, bridged by curved end-cap walls
    • A 3-piece printed plug stack for a shared copper-and-water-inlet port
    • Walls thickened from 1 to 2 mm, with the cap interior bumped to 16 mm of foam

carbonator foam shell — reworked end-to-end

Reservoir and Shroud

  • The compressor got a metal safety shroud
    • Before today the only metal in the design was the carbonator tank
    • After today, a 0.059" galvanized steel shroud encloses the compressor's terminal block and start relay, since the refrigerant is flammable
  • The reservoir got plumbing, a vent, a gasket
    • Before today it was a flat-floored open tank with a screwed-on cap
    • After today, it has:
      • A sloped floor that drains into a recessed bulkhead fitting for the outlet tube
      • A vent on the cap with a PTFE filter, TPU retaining ring, and splash baffle
      • A TPU gasket sealing the body-to-cap joint, with thicker pads under every screw

flavor reservoir with plumbing, vent, and gasket

Reservoir and Mandrel

  • The chiller coil got its first winding mandrel
    • A 123 mm round form with 5 mm walls
    • A shallow helical groove that guides each wrap of 1/4" copper into the next
    • Sized for the coil to spring back onto the tank with a 3 mm interference fit
  • The flavor reservoir got its first printable parts
    • An open-top tank body
    • A cap that fastens to it with six stainless M3 screws
    • Filleted exterior corners and cap bosses that enclose each screw head

chiller coil winding mandrel

flavor reservoir first printable parts

Faucet Shell

The fourth video is on the channel. Just over a minute of timelapse and stills from the ninth attempt to print the Touch-Flo faucet shell — the soda machine's faucet body — in carbon-fiber PET, after eight attempts that clogged the hotend, damaged the right Induction Heating Assembly, and once joined the support tower into the peak of the faucet.

PET-CF Beat Me 8 Times — Touch-Flo Faucet Shell On Bambu Lab H2C

Faucet and Sensor

  • The carbon-fiber faucet body printed cleanly
    • Before today, six carbon-fiber print attempts had failed in various ways
    • After today, attempt seven came out clean — a new tungsten carbide nozzle, and supports printed in the same plastic as the part
  • The flavor tube got a liquid sensor
    • A printed clamshell that wraps the 1/4" tube
    • Two copper foil ring electrodes inside
    • A capacitive chip on the existing electronics bus that reads liquid versus air

cap-sense sleeve clamshell half

Second Weld

The third video is on the channel. Seven and a half minutes of laser welding a 304L stainless test vessel — naming the wire-sticks-when-I-let-off-the-trigger problem in session one, fumbling a patch in session two ("forgot to turn the uh wire feed on obviously"), and committing to a trim-the-wire-every-time method on the other endcap in session three. It stuck less that time.

Stuck Less That Time — Laser Welding A 304L Pressure Vessel

Faucet and Pipeline

  • The faucet got bigger tubes
    • Before today the water tube was 1/4" and the flavor tubes were 1/8"
    • After today, the water tube is 3/8", the flavor tubes are 1/4", and the shell grew to keep its 3 mm wall
  • The video edit pipeline is now scripted
    • Before today every cut and caption was an iMovie click
    • After today, it has:
      • A lapel mic synced to the camera footage
      • Captions and scene cuts from speech transcription
      • Title cards, dissolves, and tool-name overlays

faucet shell sized up for bigger tubes

First Tap

The second video is on the channel. Six and a half minutes of cutting the first of forty NPT threads by hand into the stainless end caps for the carbonation tank — figuring out that c-clamps don't resist torque, then figuring out a clamp orientation that does.

I've Never Tapped — First NPT Threads in 316L Stainless

Inbox and Faucet

  • The faucet shell's tube halves self-align now
    • Before today the two halves were aligned by a separate dowel pin part
    • After today, the dowels print as part of one tube half and slot into matching holes in the other
  • Push notifications got a full inbox
    • Before today a tap opened the most recent post and that was the only target
    • After today, it has:
      • An inbox page listing every notification with an unread dot
      • A bell in the nav with an unread indicator
      • An in-app toast when a notification arrives while the app is open

tube half with dowels printed in

Notifications and Faucet

  • Push notifications now open the latest post
  • The faucet shell is now three printable pieces
    • Before today it was a single piece whose gooseneck overhangs kept failing in carbon-fiber
    • After today, it has:
      • A base body that prints upright
      • Two tube halves that print cut-side down
      • Dowel pins and a press-fit socket to align the pieces

faucet shell — three printable pieces

Hydro and Extruder

  • The pressure-test plan pivoted to hydrostatic
    • Before today the plan was to pneumatic-test welded vessels with a compressor
    • After today, the rig leads with a water-driven hydrostatic pump — water stores ~200x less failure energy than gas at the same pressure
  • The right extruder broke during print attempt 6
    • A snapped filament-feed pincer and severed flex cable from probing a clog from below
    • A replacement extruder unit and a second H2C printer on order
    • A safe teardown procedure for the next clog

First Weld

The first video is on the channel. Three and a half minutes of attempt four or five at learning to weld, on the way to a stainless steel carbonation tank for the soda machine.

I've Never Welded — First Welds on the Xlaserlab X1 Pro

Faucet and Updates

  • The faucet's first carbon-fiber print finished
    • Before today no PET-CF (carbon-fiber) print of the faucet shell had run to completion
    • After today, the fifth attempt finished with observed air-gap patterns inside the print and a plan to re-dry the filament for 12 hours before attempt six
  • The site got a polish pass
    • Montserrat across every page, matching the typeface on the touchscreen device
    • An iOS-style settings page with dev-mode and notification toggles, reachable via a gear icon in the top nav
    • A landing-page button that now reads "Tell me when I can buy one" instead of "Notify me"
  • The Updates feed entries got pictures
    • Twelve older posts now carry an illustrative image
    • A new tool renders 3D drawings, flowcharts, and mobile screenshots into post images
    • Tapping an image opens a pan-zoom lightbox that also works on the dev viewer's drawings

Landing page in Montserrat with the new buy-one button and a gear icon for the settings page

Reservoir and Updates

  • A printed flavor reservoir is on the table
    • Before today the only plan was off-the-shelf 1L water bladders inside the machine
    • After today, there is a written plan for printing custom hard reservoirs sized to the cold side, plus two food-contact filaments to try first
  • The site now has a daily Updates feed
    • A page on homesodamachine.com listing every day of work going back to late March
    • A push notification when a new entry lands that opens straight to it
    • A shared top bar so Home, Updates, Prints, and Diagrams are one tap from any page

the new daily Updates feed page on homesodamachine.com

Viewer and Android

  • The dev viewer is now an installable app
    • Before today it was a basic web page that auto-refreshed when files changed
    • After today, it has:
      • Push notifications when 3D drawings update
      • A polished iOS-style look
      • Auto-refresh after deploys
  • The Android app got its first onboarding flow
    • Before today it was just a splash screen with the soda glass animation
    • After today, you can swipe through onboarding pages and end up on a screen searching for your soda machine

dev viewer in its new iOS-style theme with the in-flow Settings card and Notifications toggle

Faucet, iOS, and Android

  • The printed faucet got its forward-bending spout
    • Before today the tubes ran straight up and the shell stopped at the lever
    • After today, it has:
      • A bend out toward you so soda lands in a glass set in front of the faucet
      • A printed cap over the lever pocket
      • Thicker spout walls and a wider bore fillet, both fixes from a first test print
  • iOS got accessibility and haptic feedback
    • Before today the iOS app did not work for VoiceOver users
    • After today, you can drive the config screen by voice or VoiceOver, and a small bump goes through the phone when you start a hold-to-prime
  • An Android app exists for the first time

printed faucet shell with forward-bending spout and lever pocket cap

Faucet and Site

  • Worked on the STEP file (3D drawing) for printing the faucet
    • Before today we had not got to the lever yet
    • After today, we got past the lever and started on the tubes
  • HomeSodaMachine.com is now a live site
    • A sign up to be notified when pre-orders are open
    • A STEP file viewer (3D drawings) of in-progress work
    • A Mermaid file viewer (flowcharts) of in-progress work

homesodamachine.com landing page on its first live day

Faucet and Foam Shell

  • The faucet got its outer shell
    • A round mounting plate that sits under the deck, with holes for the shank and the two flavor tubes
    • A fitted shroud that wraps the faucet body from the deck up to where the lever lives
    • Pockets carved out so the pressed-down lever swings without scraping the shell
  • The carbonator's foam shell got tougher
    • Before today the walls warped while printing and the copper plugs slipped loose
    • After today, it has:
      • Two-millimeter walls all the way around so the printed shape holds
      • Clip-on rails on each copper plug that grab the wall like a binder clip
      • A wider seat for the quarter-inch copper coil so the real tubing actually fits

Isometric view of the foam bag shell showing the cylindrical pocket for the carbonator coil and the side cutouts for the copper plugs

Foam Shell and Faucet

  • The foam-pour shell got more complete
    • Before today it was just an inner shell with a copper inlet slit
    • After today, it has:
      • A matching copper outlet on the other side
      • An outer shell with a 16 mm gap for the insulating foam
      • A lid with a pour port and two vent holes
      • Corner-pin joinery so the three pieces clip together
  • Started the printed faucet
    • Before today the faucet was just a bare metal valve body from a donor unit
    • After today, we have caliper measurements, a 3D reference drawing, an assembly with the water tube and two flavor tubes that S-bend into it, and a swing-clearance volume for the lever

harvested touch-flo valve body with water and two flavor tubes S-bending into it

Foam Shell and Tubes

  • Started the foam shell wrapping the carbonator
    • A floor and walls clearing the tank
    • A wedge ring lifting the tank off the floor
    • Two side pockets for the syrup bags
    • Seven 1/4-inch holes for water, gas, and probe lines
  • Got a real-world quote for the flavor tubes
    • Before today we had a sketch and no quote
    • After today, we have a 316 stainless drawing and a quote of $137 each at six units, $29 each at a hundred

316 stainless flavor companion tube, two-bend gooseneck

Foam Shell and Diagram

  • Wrote a spec for the carbonator's foam shell
    • The inner vessel
    • Foam pours
    • Bag pockets
    • Three pieces mating with locating pins
  • The carbonator flow diagram caught up to the current design
    • Before today it had an older fill method, the wrong level sensor, and missing parts
    • After today, it shows the bottom sparge, the float-and-reed level sensor, and the new check valve

Carbonator fluid topology: tap water and CO2 inputs through backflow preventer and regulator into the carbonator vessel, with sparge stone, magnetic float level sensor, PRV discharge, and faucet dispense path.

Vessel Plan and Pricing

  • The carbonator vessel locked in a buildable plan
    • Before today there were two competing shapes and no committed stock
    • After today, it has:
      • A vertical 5-inch round tube in 316 stainless, with cut-to-length stock and laser-cut endcap discs ordered
      • A bubbler stone at the bottom for carbonation, instead of the spray nozzle that was not making a spray
      • A magnetic float on a rod inside, read by sensors stuck to the outside, so nothing has to pierce the wall
  • The bill of materials got an honest pricing pass
    • Before today some lines double-counted whole orders as one-unit costs and packs were charged in full per unit
    • After today, the per-unit total is $1,287, down from $1,358, after fixing five fold-up errors and amortizing consumables to actual usage

laser-cut circular endcap with two port holes for the carbonator vessel

Racetrack Vessel, Faucet, and Pricing

  • The racetrack carbonator vessel got a manufacturing plan
    • Before today the body was a 3D-printed plastic experiment and the cooling coil had no forming tool
    • After today, it has:
      • A pivot to stainless: two flat sheets press-formed into D-halves, butt-welded into a racetrack tube
      • A printed press die set sized for the home shop press
      • A printed mandrel that pre-bends the copper cooling coil into the right shape before it slides over the tank
      • 3M foil tape replacing thermal paste between coil and tank
  • The dispense faucet got a parts harvest plan
    • Before today the spout was a sketch with no donor unit and stale silicone-tube references in the docs
    • After today, we have a teardown plan for a third donor faucet, a three-tube spout fabrication approach, and the right hard-tubing fittings ordered
  • Pricing split into two tiers
    • Before today the price was a flat $6,000
    • After today, it is $7,500 for the first 50 hand-built and numbered units, then $5,500 for everything after

racetrack press die and copper coil pre-bend mandrel

Ports and Nameplate

  • The 3D carbonator tank pivoted to push-fit ports
    • Before today the tank had threaded holes that weeped in pressure tests
    • After today, four push-fit bulkhead ports cluster at the top, and the 3D test sphere uses a clean drilled seat instead of a printed thread
  • The refrigeration plan is firming up
    • Before today the plan still pointed at an old refrigerant that needed certifications
    • After today, we have a hydrocarbon refrigerant chosen and a brazing kit on order
  • The rear panel got a nameplate spec
    • The voltage rating
    • A unit number
    • A QR code for that exact machine

carbonator tank with four push-fit bulkhead ports clustered at the top

Pump Case, 3D Test Sphere, and BOM

  • The pump case got simpler and fit better
    • Before today it had a separate retainer clip and the pogo pins pressed in too tight
    • After today, it has:
      • The retainer dropped entirely, with the block held in by press-fit alone
      • A looser pocket so the pins go in by hand
      • A ridge thickness that the slicer will actually print
  • The 3D test sphere got a threaded port
    • Before today it was a sealed shell with no way to attach a fitting
    • After today, it has a 1/4-inch threaded hole at the top and roughly twice the interior volume for testing
  • The bill of materials got a real audit
    • Before today the power supply was twice the size it needed to be, the compressor switch was overspec'd, and a couple of AC-side parts were the wrong category
    • After today, it has:
      • A right-sized 12V supply with a household-appliance safety listing
      • A small 3.3V relay in place of the bolt-down solid-state one
      • A proper chassis inlet and a wall-plug line cord, so the unit ships ready to plug in
      • Two temperature probes added for compressor control

test sphere with a 1/4-inch threaded port drilled through the wall

3D Carbonator Tank

  • The 3D carbonator tank got a first shape
    • A hollow sphere sized for 1.5 liters of soda water inside
    • A 5 mm wall picked to hold 100 psi long-term in PETG plastic
    • A small matching test sphere for dialing in print settings before committing to the full part

first 3D printable spherical carbonator tank, 1.5L volume

Pump Case, Chiller, and BOM

  • The pump cartridge got a tool-free electrical connection
    • Before today the two halves clipped together with bullet connectors that you had to fish in by hand
    • After today, it has:
      • A magnetic pogo-pin pocket on the base so the wires self-align and snap on
      • A retainer clip with diamond pins that lock into matching cavities in the case wall
  • Started the carbonator's chiller
    • A $64 unit's teardown
    • A keep-or-discard plan
    • Two cold-side routes
    • Wiring reserved for the compressor relay
  • The bill of materials got cheaper and more accurate
    • Before today the regulator, the foam, and an epoxy coating were all overpriced placeholders, and a pressure relief valve was wrongly flagged as a gap
    • After today, the regulator swap saves about $48 per unit, a pour-in-place foam saves about $110, and a citric acid soak replaces the $40 epoxy

pump case base — magnetic pogo-pin pocket with retainer cavities

3D Test Vessel and BOM

  • Each flavor bag got its own refill inlet
    • Before today both bags shared a single bag-in-box inlet that fed either pump
    • After today, each bag has a dedicated inlet wired to its own pump
  • A new 3D printable pressure-test vessel
    • A 50 mm wide outer shell of carbon-filled nylon with a 2 mm rubbery inner liner
    • A bottom port that points straight down, so it prints with no overhangs
    • A press-fit cap with a soft face disc that seals against the liner under pressure
  • The bill of materials got priced per unit
    • Before today the parts were a scratch list with bundle totals, no per-unit pricing
    • After today, it has:
      • 29 Amazon items priced live, with two delisted parts flagged to replace
      • A version covering the in-house steel tank and harvested ice-maker chiller
      • A projected total around $1,505 per finished unit

carbon-filled nylon outer shell of the 3D printable pressure-test vessel

Racetrack Vessel and BOM

  • The racetrack carbonator vessel got a buildable plan
    • A 0.048" stainless body that gets rolled flat-to-round on a benchtop slip roll and butt-welded
    • End caps press-domed from 0.060" blanks so they hold pressure as a membrane instead of a flat plate
    • A printed dishing die set to do the doming
    • A written reason each of the four ports has to be where it is
  • The hardware docs caught up
    • Before today there was no bill of materials and the carbonator plumbing only had a manifold-side flow diagram
    • After today, it has:
      • A full bill of materials with sources for every line item across eleven categories
      • A second flow diagram for the carbonator side, including the firmware interlocks
      • A backflow preventer specified to the standard for carbonated water
      • An enclosure layout that puts hot parts in front and cold parts in back, with the flavor hopper reached through the kitchen cabinet door

press-domed end-cap dishing die set, male and female halves

Flowcharts and Foam Shell

  • The dev viewer started showing flowcharts
    • Before today the viewer only opened STEP files (3D drawings)
    • After today, it has:
      • A live Mermaid file viewer (flowcharts) with pan and zoom
      • The first wiring diagrams for the current prototype and the future build
      • A plumbing map of every valve, junction, pump, and tube in the machine
  • The foam shell switched to a racetrack shape
    • Before today the shell wrapped a round steel tube and the tube itself was still round
    • After today, it has:
      • Stadium-shaped walls that hug a flattened steel tube instead of a round one
      • A printable two-piece die set for pressing the round tube flat with a 12-ton press
      • A wider bag cradle and cleaner floor cuts so the bags drop in without snagging

old vs new foam shell

Foam Shell Channels

  • The foam shell got clean corners
    • Before today the syrup bags sat in pockets whose side channels met at messy corners that would not print
    • After today, each pocket's channel is a single U-shaped groove with mitered corners and clean openings through the outer wall

foam-bag shell bottom — bag pockets with clean U-shaped channels

Welder and Endcaps

  • The laser welder arrived
  • The carbonator tank got endcaps
    • Before today the tank was an open tube with no plan for sealing it
    • After today, two laser-cut stainless discs slip inside the tube for welding, with four ports on top for CO2, water, soda, and pressure relief
  • The foam shell got internal bag pockets
    • Three more inches of height to fit the bags and the foam on top
    • Two arc-shaped slots in the floor so the bags drop into the cup below
    • A connected groove around the rim so the upper and lower halves seat together

foam shell bottom cup with two arc-shaped bag pockets in the floor

Viewer and Foam Shell

  • The 3D drawing viewer got an orientation cube
    • Before today you orbited the model by dragging it with the mouse
    • After today, a labeled cube in the corner snaps the camera to top, front, side, or any other face when you click it
  • The carbonator got an insulating shell
    • An inner cylinder hugging the cold tank with a foam gap
    • An outer cylinder with cradle pockets for the two flavor bags
    • A split into a bottom cup and an upper shell that nest together for printing

first foam shell upper, with bag cradle pockets in the outer cylinder

Snap-Fit and Market

  • The printed parts' snap-fit got reworked
    • Before today the snap-fit shapes had a missing engagement bump, a single deflection setting for both halves, and the old tongue/groove vocabulary
    • After today, it has:
      • Independent tuning so the male and female halves can be tightened separately for stronger plastics
      • The missing upper bump put back so the parts actually lock
      • A renamed library with cleaner geometry vocabulary across every printed case
  • Market and video strategy now exist on paper
    • A target market defined as people who already solve daily friction with purchases and hate hauling cans
    • Competitive write-ups on Aarke, SodaStream, Ninja Thirsti, Pepsi, and Coca-Cola
    • A 16-concept video plan split into build-in-public content now and product videos once the prototype is self-contained

case-snaps demo top half — the reworked snap-fit with the upper engagement bump back in

Snap Fits and Story

  • Picked a snap-fit strength for printed cases
    • Tongue-and-groove pieces printed at three flex depths
    • The loosest one cracked
    • 0.3 mm per piece as the keeper
  • The pump case got snap-fit walls
    • Before today the case had plain walls and the snaps only existed on standalone test pieces
    • After today, the same snap geometry is shared code that the case imports, so the top and bottom halves clip together with the chosen 0.3 mm fit
  • Published the story of the project
    • Before today there was no public write-up of how this got started
    • After today, the README links to a piece on going from a failed SodaStream 15 years ago to a working faucet, plus a separate piece on how AI built the printed parts

pump case with shared snap-fit walls clipped into base

Pump Case and Image Sync

  • The pump case got a redesign
    • Before today it was one printed piece with a uniform skirt
    • After today, it has:
      • A skirt that flares out to 76 mm on one side and tapers in to 62 mm on the other, so it sits flush against its neighbors
      • Two arch-shaped notches cut through the wider face for the tubes to pass under
      • A split into an upper part and a lower part with a stepped mating surface, so each prints flat without supports

pump case before and after the flared-skirt redesign

  • The display chip stopped losing stored images
    • Before today a config update arriving during a delete could overwrite the wrong image slot
    • After today, the config waits its turn behind the delete and the image count stays in sync

iOS and Pump Case

  • The iOS app recovers from backgrounding
    • Before today, leaving the app idle stranded it on the searching screen or hung the stats spinner
    • After today, coming back restarts the scan, clears any half-done image transfer, and retries chart loads up to three times
  • The pump case is a new printed part
    • A 101 by 69 mm plate sized for a single Kamoer (the peristaltic pump)
    • An octagon cutout in the plate, with four M3 mounting holes around it
    • A 60 mm tower above the plate that steps down to a 37 mm round bore

pump case — plate with octagon cutout, mounting holes, and stepped round tower

Cartridge Panels and Struts

  • The cartridge panels got thicker in the middle
    • Before today the bottom, back, and front panels were a flat 3mm slab edge to edge
    • After today, the middle 164mm extends an extra 2mm so it sits flush against the rail lip and fills the wall channels
  • The lever and release plate joinery got reworked
    • Before today the struts that hold those plates to the pump tray were built into the plates themselves
    • After today, it has:
      • A separate 150mm strut part with tapered lead-ins and retention grooves
      • Six snap-fit variants printed for testing, including short-taper, oversize-bump, and split-tip cantilever designs
      • 6mm sockets on the lever and release plate that the struts press into

split-tip cantilever snap-fit strut variant

Cartridge Walls and Snap-Fit

  • The cartridge enclosure kept growing
    • Walls grew 35mm taller and 55mm deeper to match the parts inside
    • Front, back, and bottom panels widened to 170mm
    • The top panel removed for now, to be mirrored from the bottom later
    • Shelves carved into the pump tray cutouts so each pump rests on a ledge
  • The lever now clicks into the release plate
    • Before today the lever and release plate had separate struts that did not connect
    • After today, the release plate strut tips widen out, the lever struts slot inside, and a small bump and groove click together when fully seated

lever struts with snap-fit tips for the release plate

Cartridge Sizing

  • The pump cartridge grew on every axis
    • Before today the plates were 140mm wide and the pump tray was 68.6mm tall
    • After today, it has:
      • The pump tray and coupler tray widened to 170mm
      • The lever and release plate widened to 160mm
      • 35mm of extra height on the pump tray and coupler boss
      • Diamond cutouts trimmed to octagons so the corners sit further from the edge
  • The tube holes got dialed in
    • Before today the back panel had 10mm holes and the release plate had 6.5mm holes, and the row sat 1.4mm off-center
    • After today, every tube hole is 7.0mm and the row is centered on the new plate widths

pump tray widened to 170mm with octagon cutouts and tube-hole grid

Pump Cartridge Parts

  • Drew the pump cartridge for the first time
    • Left and right walls plus four panels (top, bottom, front, back) that slide into channels
    • A pump tray with mounting holes and diamond cutouts for the pump bases
    • A coupler tray split into two halves so the four tube fittings can be captured between them
    • A lever and a release plate with four matching struts

first STEP of the pump cartridge lever

Pump and Valve Measurements

  • The bought parts got more honest dimensions
    • Before today several photo readings were off and we had missed the valve's mounting holes
    • After today, it has:
      • A square 32.71 mm white valve body with a 2x2 mounting hole grid
      • The valve depth corrected from 50.84 mm to 56.04 mm
      • The Kamoer pump motor diameter at 35.73 mm and mounting hole spacing at 50 mm, both up from the old guesses
      • The Kamoer product manual saved alongside the photos

Enclosure and Bag Frame

  • The enclosure shell got both halves
    • A bottom tub with the cartridge opening, dock, valve cradles, and rubber feet recesses
    • A top cap with the funnel opening, snap catches, and front-face apertures
  • The syrup bag got a printable cage
    • Before today there was no design for holding the syrup bags
    • After today, we have a two-piece cage that ratchets permanently shut around a 2L Platypus bag

bag frame lower cradle — slatted printable cage for a 2L Platypus bag

Twist Release and Enclosure

  • The cartridge release is now a twist knob
    • Before today it was a cam lever that pushed the plate the wrong direction
    • After today, it has:
      • A 60 mm knurled knob that you twist a half turn and pull
      • A printed trapezoidal-thread strut so no metal hardware is involved
      • Validated 3D drawings for both the knob and the release plate
  • The outer enclosure exists for the first time
    • A two-piece split with a tub on the bottom and a magnetic top lid
    • 300 mm of depth so the flavor bags lay diagonal without kinking the tubes
    • Validated 3D drawings of the tub, top panel, and front panel that snap together

Engineering Drawings and Tubing

  • Every printed part got a 2D drawing
    • Before today only a handful of parts had drawings, and the dimensions came from datasheets and estimates
    • After today, it has:
      • A three-view orthographic drawing for every part heading toward 3D printing
      • Dimensions from physical caliper measurements, not datasheets
      • The valve corrected from an L-shape to a T-shape, and the John Guest fitting from a uniform cylinder to a barbell
  • Bill of materials switched to hard tubing
    • Before today silicone tubing ran the whole machine
    • After today, hard PE/PU tubing carries the internal plumbing, with silicone only at the pump heads, faucet run, cable glands, and vibration-dampening segments

release plate orthographic drawing — front, top, side, and section views

Drawings and Off-the-Shelf Parts

  • Eight printed parts got engineering drawings
    • The release plate, pump tray, cartridge shell, lid, and cam lever inside the cartridge
    • The valve rack, dock back wall, and pogo pin mount inside the enclosure
  • Three off-the-shelf parts got measured and photographed
    • Before today the bought parts had only rough estimates from product pages
    • After today, the John Guest union, Kamoer pump, and Beduan solenoid valve each have caliper readings on 30 photos plus a written description of their shape

cartridge shell engineering drawing — one of the eight parts that got drawings today

Enclosure and Cartridge Plans

  • The under-sink box got a real plan
    • A 220 by 300 by 400 mm box that fits next to the carbonator under the sink, with two 2L flavor bags lying at a 35-degree slant inside
    • Ten valves routing fluid between the bags, the pumps, the hopper, and the tap
    • Two round displays on retractable cables that snap to the front or pull out to a countertop
    • One ESP32 running everything, with both displays as detachable peripherals
  • The swap-out pump cartridge got a real plan
    • A 148 by 130 by 80 mm box holding only the two pumps, no valves or drivers
    • Four push-to-connect fittings that grip on insertion and release together when you flip a lever
    • Pogo pins on the dock ceiling that meet flat pads on the cartridge top to deliver power
    • A mandatory clean cycle before the lever unlocks, so the lines are water or air at swap time

Pump Cartridge Concept

  • Started planning a swappable pump cartridge
    • A written spec for a slide-in module that holds both pumps
    • Research on how to guide it into the dock with sloppy aim
    • Research on how to mate the power contacts without water reaching them
    • Research on how a lever could release all four tube fittings at once

Welcome Screen and Pictures

  • The iOS app routes everything back to welcome
    • Before today disconnecting, canceling, and exiting demo mode each went somewhere different
    • After today, it has:
      • A single welcome screen as the home base for all of those
      • A confirmation alert before disconnecting from a real machine
      • Renamed buttons so "Enter Demo Mode" and "Exit Demo Mode" mirror each other
  • Picking flavor pictures is now one screen
    • Before today add, delete, and upload progress were scattered across separate places
    • After today, it has:
      • A plus button to add new pictures right from the picker
      • Long-press on a picture to delete it or cancel a pending upload
      • A clockwise progress ring on the picture currently uploading

Animation, Onboarding, and Comms

  • A soda glass animation plays everywhere
    • Before today the display had a static logo and the iOS app had a plain spinner while it searched
    • After today, it has:
      • Sixteen frames of sloshing liquid and rising bubbles on the touchscreen
      • The same animation on the iOS splash, with the launch icon as frame zero so there is no jump
      • The serving-size glass icons in iOS redrawn to match
  • iOS got a first-run onboarding screen
    • Before today the app went straight to scanning and asked for Bluetooth permission on launch
    • After today, you pick Scan or Try Demo first, the choice is remembered, and Bluetooth is only requested if you scan
  • The chips talk to each other faster
    • Before today the link between chips was a hand-rolled reliability layer that could silently drop messages
    • After today, the link is three times faster, drops about a thousand lines of homegrown code, and the iOS upload no longer hangs at "Finalizing"

Servings and Sync

  • Image sync skips redundant work
    • Before today every reconnect re-uploaded all flavor images over Bluetooth and re-pushed them to the display
    • After today, every chip stores a checksum per slot and only the changed slots cross the wire
  • The stats screen counts servings, not raw flow
    • Before today the charts plotted opaque flow values as a thin line
    • After today, it has:
      • Bars in quarter-serving steps for the 24-hour and 30-day views
      • A row of three glass icons (12, 16, 20oz) below the charts to pick what counts as one serving
      • Y-axis padded so the rightmost bar's label no longer gets clipped
  • The link between chips is mid-swap
    • Before today the link was a hand-rolled reliability layer with per-chunk acks and sequence numbers we had to manage ourselves
    • After today, an HDLC (a standard framing protocol) library is in the build alongside the old one, the touchscreen is talking over it, and the other two chips are next

Settings and Uploads

  • iOS image uploads no longer cap out
    • Before today an upload of a full-resolution flavor image stalled near the 50KB mark
    • After today, the upload pipeline carries the whole 115KB image through to the display
  • The iOS settings screen got a unified look
    • A picker sheet with all flavor images on a grid, white-bordered when selected
    • Wheel picker sheets for ratio numbers instead of swipe-to-edit
    • Manage Images, Usage Stats, About, Prime, and Clean Cycle all opening as sheets with matching gray titles and Done buttons

Clean Prime and Clock

  • A real-time clock chip joined the main board
    • Before today the firmware tracked time with a counter that reset on every reboot
    • After today, a small RTC chip is wired in over two pins, hours powered off show up as empty gaps in the charts, and the firmware falls back to the old behavior if the chip's coin battery dies
  • Clean and prime moved into the app
    • Before today there was no way to clean a line, and priming meant pressing a hardware button
    • After today, the touchscreen and iOS app both have a Clean / Prime menu where you pick a flavor and either kick off a three-round fill-and-flush clean cycle or hold a button to prime that flavor's pump

Upload Queue and iPad

  • The usage charts got an iPad layout
    • Before today the four charts stacked vertically and stretched to fill the iPad screen
    • After today, on iPad in landscape they sit in a 2x2 grid with even spacing instead of stretching
  • Image upload became a real queue
    • Before today you uploaded one image at a time, with a single progress bar
    • After today, you pick many at once, each upload has its own row with a thumbnail and progress, you can keep adding while the queue is draining, and any pending or active upload can be cancelled with an X

Charts and Identity

  • The iOS app got usage charts
    • A pie chart of the 30-day flavor split
    • 24-hour and 30-day line charts of flow
    • An average-by-hour-of-day line chart
  • The app and the touchscreen share a look
    • Before today the iOS app had no icon and the touchscreen idled on plain black
    • After today, both screens are on the same dark navy, the iOS app has an icon (a glass with gradient liquid and bubbles) and a matching launch screen, and the touchscreen fades to that icon as a screensaver after two minutes idle

Photo Uploads and Settings

  • The chip-to-chip link is now packet-framed
    • Before today every UART (wired serial link) used hand-rolled framing that lost bytes on boot and corrupted image transfers
    • After today, all three chips talk over SerialTransfer with checksum-checked packets and shared packet IDs
  • Phone-to-machine photo upload now works end to end
    • Before today, new flavor logos went in over a USB cable to a Python script
    • After today, you pick a photo on the phone, it gets cropped and shrunk to a small indexed PNG, and streams over Bluetooth into the main controller's storage
  • The iPhone app grew a Settings page
    • A Manage Images screen with thumbnails and swipe-to-delete
    • A Factory Reset with a Yes/No confirmation
    • An About screen showing the build time of all three chips

iPhone App and Storage

  • The main controller now owns the flavor images
    • Before today, each display kept its own copies and a USB cable was the only way to recover one
    • After today, the main controller stores all images in its own filesystem and re-pushes them on boot if a display comes back wrong
  • An iPhone app talks to the machine
    • A scan screen that finds the soda machine over Bluetooth and connects on its own
    • A swipe-through carousel of flavor images with plus-and-minus controls for the per-flavor ratio
    • Live PNG downloads of every flavor image, decoded natively on the phone

Config Display and Uploads

  • Flavor images load without a USB cable
    • Before today, swapping a logo on the small round LCD meant flashing the display chip over USB
    • After today, a Python script pushes a PNG through the main controller over a wired serial link, with a checksum on every chunk
  • A second display for changing flavors at runtime
    • A 240x240 ESP32-S3 round touchscreen with a rotary encoder, separate from the existing flavor LCD
    • An LVGL menu (graphics library) that browses flavor images and edits the per-flavor ratio
    • A wired link to the main controller that persists each change to the chip's saved-settings flash

Runtime Config and Tools

  • Cost breakdown grew tools and CO2 tank
    • Before today the breakdown listed only the parts you wire together
    • After today, it adds a 5 lb CO2 tank with first refill, mounting hardware, and eight tools (drill, hole saw, ratcheting crimper, USB cables) with three tiers topping out around $1,932
  • Tuning is no longer baked into the firmware
    • Before today the flavor ratio and display image mapping lived as compile-time constants you had to reflash to change
    • After today, those values live in flash and respond to serial commands at runtime, with an integration test covering valid, invalid, and boundary values across reboot

Display Board and README

  • A round LCD now shows the selected flavor
    • Before today there were just two indicator LEDs labeling flavor 1 and flavor 2
    • After today, an RP2040 display board reads the flavor switch, draws the brand image on a 128x115 round screen, and gets its image mapping over UART (a serial wire) from the ESP32
  • The repo got its first README
    • A project overview, bill of materials, and wiring guide
    • Eight photos of the panel, the under-cabinet install, and the faucet
    • A cost breakdown totaling about $1,537 with the Lilium carbonator (cold carbonated water source) or $498 without it

First Firmware and One-Knob Ratio

  • Flavor strength collapsed to one knob
    • Before today there were four separate timing constants to tune the recipe by hand
    • After today, a single ratio sets concentrate-to-water in 1:X notation, with 1:20 as the default for SodaStream concentrate
  • The dual-flavor soda maker has its first firmware
    • An ESP32 (small microcontroller) driving two peristaltic pumps (the kind that squeeze tubing to push fluid) and two solenoid valves
    • A flow meter that triggers dispensing when water moves through the faucet
    • A pump duty cycle that scales on/off timing to the detected flow rate