Close
0%
0%

The Dropship Coquí Lamp Done Right

On the left is the Puerto Rican coquí lamp being dropshipped across the internet. On the right is the version I’m willing into existence.

Similar projects worth following
217 views
0 followers
Cheap coquí lamps sold online get the idea right and nearly everything else wrong: charming concept, disposable execution. This project asks a simple question: What if one were built as something worth keeping? The result is an ambient sound-and-light sculpture inspired by the iconic garitas of Castillo San Felipe del Morro. A 3D printed watchtower conceals a Google Nest Mini, an ESP8266, capacitive touch controls, and a smart RGB bulb beneath a hand-finished faux masonry exterior that transforms from weathered stone by day into softly glowing architecture by night. Rather than reproducing a novelty lamp, the goal was to create an heirloom-quality interpretation—one that evokes the feeling of a Puerto Rican evening through authentic coquí recordings, carefully choreographed lighting, and architectural form. This project documents the design journey from concept to finished piece, including the engineering dead ends, painting experiments, Home Assistant integration, an

The project began with a simple frustration.

The inexpensive Puerto Rican coquí lamps sold online captured something emotionally recognizable—a tiny glowing watchtower filled with frogs—but they felt like disposable souvenirs. Thin plastic, harsh lighting, toy electronics, and little sense of place.

Rather than modifying one, I decided to rebuild the idea from the ground up.

The finished sculpture is centered around a two-piece 3D printed reinterpretation of a garita from Castillo San Felipe del Morro. The upper chamber conceals an E12 RGB smart bulb while the removable lower chamber houses a Google Nest Mini hidden beneath the coquí scene. An ESP8266 and capacitive touch interface integrated into the brass base provide local interaction while Home Assistant orchestrates lighting, sound, and automation.

What surprised me most wasn’t the electronics.

It was the material.

Printing in natural translucent PLA and finishing the surface with a custom raw umber and matte medium wash produced an object that behaves differently depending on the time of day. Unlit, it reads as weathered masonry. Illuminated from within, the pigment recedes and the walls themselves begin to glow, allowing the sculpture to become a lamp without ever looking like one.

The finished piece supports multiple modes of interaction:

  • Single Tap — Ambient lamp on/off.
  • Double Tap — “Coquí Song” mode with authentic Puerto Rican coquí recordings and a custom Home Assistant lighting sequence.
  • Triple Tap — A decidedly less dignified Puerto Rican party mode.

Lighting is driven directly through TinyTuya, allowing smooth color transitions and custom animations beyond what the standard integration exposes. Rather than abrupt color changes, the lamp slowly drifts through greens, ochres, ambers, and warm evening tones inspired by El Morro after sunset.

The project logs intentionally document the entire journey—not just the successful ideas. Failed mounting strategies, painting experiments, unexpected material behavior, and repeated encounters with the same twist-lock mechanism all became part of the design process.

Because sometimes the object tells you what it wants to become.


Read the Project Logs for the Full Story behind the build.

IMG_3919.jpeg

JPEG Image - 798.10 kB - 06/27/2026 at 21:09

Preview

IMG_3924.jpeg

JPEG Image - 614.88 kB - 06/27/2026 at 21:09

Preview

  • Home

    WonkWorks06/27/2026 at 21:08 0 comments

    The garita sat beneath a framed postcard depicting Frank Lloyd Wright’s unbuilt Crystal Palace proposal for the site of today’s Washington Hilton. As different as the subjects were, Wright’s prairie-style emphasis on horizontal lines, natural materials, and warm earth tones felt surprisingly compatible with my little painted garita with its long grout lines.

    The postcard wasn’t the problem, so much as it was composition.  I didn’t want the Coqui to live in their lamp on a random shelf, they were in Castillo San Felipe del Morro in the heart of old San Juan.  

    I wanted something… a flag maybe. There wasn’t room left in inside the garita for a decal on the back wall, and I wasn’t going to paint the outside.  I considered stained-glass little windows.  But it didn’t need a symbol so much as it needed a setting.

    So out with Frank Lloyd Wright and in with a rustic wooden Puerto Rican flag for fifteen dollars that surely must exist on Amazon… or AliExpress… but they didn’t. Amazon offered plenty of printed fabric flags and an impressive number of products that looked suspiciously identical despite allegedly coming from different vendors.

    Etsy offered beautiful handmade wooden versions for roughly what I’d already spent on my little garita.  So I embarked on a trip to Michaels… Not the fancy art store where I spent entirely too much time trying to understand matte medium.  The regular Michaels.

    As it turned out, Michaels had exactly what I needed:  A whitewashed plank panel, painters tape, and two bottles of $1 acrylic paint.  The entire art took maybe twenty minutes. And Two coats later I was staring at a weathered Puerto Rican flag that looked suspiciously similar to the ones I’d spent the previous evening refusing to buy.

    For fifteen dollars. Take that, Etsy.

    The flag wasn’t complicated, but it was exactly what the composition needed.  The scene (at least the shelf) was finally set… with a sense of place to make the coqui feel at home, in our home.  The watchtower no longer felt like just an object sitting in our home.

    Somewhere along the way this project stopped being about replacing a dropshipped souvenir and became something else entirely. A tiny piece of Puerto Rico, built by hand, shared with the people I love.  And every time I walk by it, I still smile.

    There comes a point in every project where there are no more problems left to solve. No more brackets to redesign. No more paint experiments. No more wiring to hide. No more automations to tweak late into the evening. 

    Eventually you have to stop building and simply enjoy the thing you’ve built, let all the automations, the electronics, and even the paint fall away and live in the illusion.

    With a single tap, a warm glow spreads through the walls. Not just through the windows—but through the masonry itself. The weathering that dominates the sculpture during the day quietly steps aside, allowing the tower to become something entirely different without ever becoming something else.

    The Coqui inhabitants are constantly on watch, waiting for you to reach out and touch the brass base again or invite them to sing and let Puerto Rico come alive.   Not loudly, not theatrically.  Just enough.

    But this is Puerto Rico and I still have a triple tap gesture left to use.  So with three taps, or a simple request to join a Coqui Party, the carefully curated Caribbean evening gives way to something considerably less dignified and our centuries-old Spanish fortification suddenly discovers that it’s a surprisingly capable Puerto Rican dance club.  As one does.

    The technology disappears. The illusion remains.

    The garita finally has a home.

    The coquí finally have a home.

    And perhaps most importantly…

    Puerto Rico finally has a tiny corner of ours.


    Final Cost

    • Garita (CraftCloud): ~$100
    • Brass lamp base: ~$10
    • Floating shelf bracket: ~$12
    • Two pairs...
    Read more »

  • Teaching a Garita to Sing

    WonkWorks06/27/2026 at 19:44 0 comments

    Long before there was a garita, there was a proof of concept.

    Back in the first project log, I demonstrated that Home Assistant could simultaneously control a smart bulb and play coquí sounds through a speaker. Technically, the project already worked.

    The problem was that it worked while sitting on a workbench.

    Now it was time to hide all of that technology inside a sixteenth-century Puerto Rican watchtower.

    The first step was surprisingly simple: Drill holes. One hole near the base of the dome feeds a clear 120-volt lamp cord to an E12 socket hidden inside after the cord passes through the rear rib. On the low voltage side, I have power going into the lamp base for the electronics (an ESP8266 and capacitive touch controller), and then back out from behind through an existing opening in the bracket into a hole drilled into the base. 

    For something containing a surprising amount of technology, remarkably little of it is visible.  Of course, hiding the brains in the lamp base turned out to be more difficult than I’d expected. Every cubic inch mattered.

    Which brought me back to that barbell weight – I eventually realized I’d accidentally created the world’s most over-engineered capacitive touch environment. Between the brass base, the mounting hardware, and the giant cast-iron weight, there was simply too much conductive metal influencing the sensor.  There was also almost no room for the electronics.

    So, the weight is out.

    The shelf bracket was already doing nearly all of the structural work anyway. Removing the barbell opened valuable space for the electronics while dramatically improving touch performance.

    With the hardware finally sorted out, the garita could finally learn a few tricks.

    The ESP8266 exposed three gestures: single, double, and triple tap. Home Assistant simply saw three buttons.

    The single tap was easy… Lamp on, Lamp off.

    The double tap was the entire reason this project existed.

    Touch the brass base—or simply say, “Hey Siri, Coquí Song On”—and the watchtower wakes up.

    The lamp glows, The coquí begin singing.  The entire scene comes alive.

    One of my favorite details is almost completely invisible.

    The capacitive touch wire is attached directly to the brass base using a carriage bolt and wing nut through the center hole that I had originally envisioned for the mounting hole.  So now, the brass base itself had just enough capacitance to cleanly become the physical switch.  Exactly what I’d hoped for.

    Just as important, the coquí were ready to move in.  Back when the frogs first arrived, I assumed they would simply sit side-by-side inside the opening of the garita, but every arrangement I tried either felt crowded or blocked too much of the structure.

    For a while I considered building an entire mirrored floor above the speaker chamber. The theory was sound.  More reflected light, depth, and ergo drama.  Instead, I stopped trying to give the frogs a floor and opted to give them space on their own perches, made of craft foam, covered in adhesive mirrors.

    The frogs were larger than I’d expected, but now more perfect than I’d hoped for with the front coquí almost suspended in midair while the second quietly watches over the scene from deeper within the watchtower.

    The electronics had disappeared, which was precisely the point.

    Technically, nothing new had happened the exact same demonstration had existed weeks earlier on my desk, yet seeing it emerge from inside the watchtower completely changed the experience.

    The illusion had begun.  At this point I probably should have been finished, but naturally, I wasn’t.

    The original dropshipped lamps use simple puck lights, but this project deserved something better. That was the entire point of the build.

    I didn’t just want green… I wanted a Puerto Rican evening with deep greens, dark yellows, hints of amber, and long, slow...

    Read more »

  • What If the Material Is the Point?

    WonkWorks06/27/2026 at 18:42 0 comments

    I could make the garita look like almost anything. Stone. Concrete. Bronze.

    The problem was that every finish risked killing the very quality that made it interesting as a lamp in the first place… Every finish seemed to come with a tradeoff.

    And the truth was, I wasn’t entirely sure I understood the material I’d spent a hundred dollars printing.  Then I dropped a bulb inside the unfinished garita and turned the lights off and the effect was immediate.

    The garita didn’t light up through its openings… It lit up through its walls.

    I’d intentionally chosen translucent PLA from the beginning, but until that moment translucency had been little more than a specification on a website. Seeing it in person was something else entirely.

    The dome glowed. The brickwork glowed. The entire tower seemed to absorb the light and re-emit it through its skin.

    Standing there in the dark, holding a bare bulb on a cord inside a completely unfinished print, I suddenly realized I wasn’t trying to paint a sculpture.

    I was trying to paint a sculpture that also happened to be a lamp.

    Up until that moment I’d been researching stone paints, textured finishes, and other ways of making my miniature El Morro look like three hundred years of Caribbean weather had washed over it instead of looking like injection-molded dropship bait.

    Now I had a different problem.

    How do you make something look like weathered stone during the day while preserving the thing that makes it magical at night?

    That realization sent me in a completely different direction.

    I found myself reading Reddit discussions about illuminated 3D prints, researching translucent finishes, and asking ChatGPT increasingly specific questions about how to color something without losing its ability to transmit light.

    The deeper I went, the less certain I became.

    Stone paint suddenly seemed less obvious.

    Smoke-tinted finishes looked promising until they started pushing the project toward modern architectural lighting instead of centuries-old masonry.

    Then came the unpleasant realization that some spray finishes weren’t merely capable of obscuring translucency—they could actually damage PLA.

    The more I researched, the fewer easy answers remained.

    Eventually I landed on acrylics, not because I was convinced they were right, but because they seemed the least bad option.  They could be thinned and they could be layered.

    And if I completely hated the result, there was at least some chance I could backtrack before permanently committing the garita to a finish I regretted.

    The problem wasn’t choosing a paint, it was deciding which properties of the print I was willing to lose.  I felt simultaneously like Bob Ross holding a jug of matte medium and Bob Vila trying to apply a stain finish to a material that wasn’t supposed to take stain.

    The PLA acted unlike any material I’d ever painted. The acrylic seemed more interested in sticking to my fingers than it was to the print. I tried wiping it with a paper towel the way I might wipe down a wood stain and mostly succeeded in moving the paint around—or removing it entirely.

    Not exactly a confidence-building start, so at that point I stopped pretending I had a detailed plan.  I mixed roughly one part raw umber to ten parts matte medium, grabbed a foam brush, started at the dome, and committed to finding out what happened.

    Almost immediately I began developing a rhythm… Brush on. Wait. Watch.

    As the mixture began to dry, I’d come back with the foam brush and wick away excess material, redistributing it across the skin of the print.

    Something interesting started happening… the garita wasn’t simply getting darker, it was gaining texture.

    As I worked, I discovered that dragging the brush perpendicular to the filament layers left pigment exactly where the print wanted to hold it.

    The paint wasn’t covering the layer lines, it was revealing them. Then came another accidental...

    Read more »

  • The Weight of a Garita

    WonkWorks06/27/2026 at 18:27 0 comments

    With El Morro and the coquí were sitting on my dining room table, I’d discovered a new problem.

    Gravity.

    When I first started planning this project, I was convinced I’d already solved the mounting problem. The garita was designed with a center hole. Lamps have been built around threaded rods for decades. I had leftover lamp hardware from previous projects.

    There was a neat, elegant solution hiding in plain sight.

    Or so I thought.

    One of the recurring lessons of this build has been that it’s often better to wait until the physical objects are actually in your hands before becoming too attached to a design.

    On paper, everything fit.  In reality, things were more complicated.

    My original plan involved running a threaded lamp rod up through the center of the base, through the spine of the garita, and securing everything into a single rigid assembly. I spent more time than I’d like to admit mapping out mounting options and was fairly certain I’d found the cleanest solution.

    Then the print and frogs arrived larger than I expected which changed the geometry I had imagined.

    The radius of the watchtower was surprisingly close to that of the brass lamp base.

    Suddenly my elegant center-mounted design was starting to look less like a lamp and more like a top-heavy mushroom balanced on a coin.

    The more mockups I assembled, the less convinced I became that a simple center mount was the answer.

    Naturally, I responded to this engineering problem the way many engineers do.

    I went shopping.

    Which brings us to one of the stranger chapters in this build:

    A 2.5-pound barbell plate.

    After spending far too much time estimating weights, center-of-gravity concerns, and stabilization options, I became convinced that hidden ballast was the answer. For about eight dollars, Amazon was willing to sell me a cast-iron solution to my problems.

    And to be fair… It worked.  The plate fit neatly inside the base.  I was quite proud of myself for solving the stability problem of a Puerto Rican watchtower with gym equipment, but a problem became obvious...

    The barbell occupied nearly the entire interior of the base.

    That space was supposed to belong to electronics and wiring, but looking at the assembly, I found myself making compromises before the project was even built.

    At the same time, I was experimenting with a completely different idea.

    A floating shelf bracket at the back of the base instead of through the center.

    The moment I mocked it up, though, it was obvious the bracket was solving multiple problems at once.

    It provided, weight, and a. path for future wiring. Most importantly, it positioned that weight behind the garita instead of directly beneath it, naturally counterbalancing the structure instead of simply making it heavier.

    The more I worked with it, the more intentional the design started to feel.

    For the first time, the solutions weren’t creating new problems.

    The shelf bracket wasn’t just supporting the garita.

    It was becoming part of it.

    There was still the small matter of the mysterious hole in the middle of the brass base.

    Future me would eventually have to explain that one.

    But for now, the watchtower was finally standing on its own.

    The good news was that the engineering finally made sense.

    The bad news was that it still looked exactly like what it was.

    A giant translucent 3D print bolted to random hardware.

    Next up: figuring out how to make plastic look like three hundred years of Caribbean stone.

  • The Garita Arrives (And So Do the Coquí)

    WonkWorks06/27/2026 at 18:01 0 comments

    The 3D printed garita (El Morro) has arrived.

    My first thought was:

    “Uh oh.”

    I knew the dimensions when I ordered it. I had studied the renderings. I had measured the space. I had convinced myself I understood exactly how large it was going to be.

    I was wrong.

    The print isn’t absurdly large, but it is larger than the lamp I’d been carrying around in my head for the past several months. Sitting on the table, it immediately felt less like a lamp and more like a small architectural model.

    Which is both exciting and mildly terrifying.

    The print quality from CraftCloud is excellent, though I quickly discovered that “finished” and “ready to assemble” are not always the same thing. The lower cup is designed to twist-lock into the main garita so the speaker chamber remains accessible.

    In theory.

    In practice, the twist-lock currently twists about halfway before deciding that’s enough progress for one day.

    Nothing major. A little careful rasping and trimming around the locking features got things moving much more smoothly. Still, it was my first reminder that the project had left the world of CAD files and entered the world of physical objects.

    Physical objects have opinions.

    The future residents of the garita arrived this week too.

    Ironically, while this entire project began as a reaction against dropshipped Puerto Rican coquí lamps, the coquí themselves came from Temu.

    Apparently the manufacturer only sells them as male-female pairs. The distinction appears to be almost entirely a touch of red lipstick. Since the plan called for two male coquí inhabiting the garita, I ended up buying two pairs, selecting the future residents, and arranging for the two female coquí to emigrate to Orlando’s sisters.

    The problem was that nobody told the frogs they were supposed to be small.

    The moment I set them inside the garita I realized the interior composition wasn’t nearly as straightforward as I’d imagined.

    Originally I envisioned the two frogs sitting side-by-side inside the opening.

    Now I wasn’t so sure.

    Maybe one sits higher than the other.

    Maybe one sits farther back.

    Maybe the front opening becomes some kind of porch.

    Maybe all of those ideas are terrible.

    At the same time I started thinking about what happens beneath them. The lower chamber had always been intended to house the speaker, but I wondered whether a mirrored floor above it might create additional depth while bouncing light back into the opening.

    Or maybe it’ll look tacky.

    At this point I honestly didn’t know.

    What I did know was that the project had crossed an important threshold.

    The garita was here. The coquí were here.

    For the first time I wasn’t staring at CAD renderings or sketches. I was staring at the actual pieces, realizing that figuring out how everything fit together might prove more challenging than building the electronics. Next up: figuring out how to make a surprisingly large Puerto Rican watchtower stand upright without looking like a science fair project.

  • Local Audio + Home Assistant Integration (Coquí Sound Engine)

    WonkWorks05/02/2026 at 14:02 0 comments

    One of the core goals of this build was to avoid cloud dependencies and make the lamp feel like a self-contained object, not a smart speaker hack. That meant getting reliable, local audio playback working through Home Assistant and a Nest Mini.

    This turned out to be straightforward once the right path was identified.

    Step 1 — Acquire the audio

    The coquí sound was sourced and downloaded locally using yt-dlp. The key requirement was a clean audio file that could be hosted locally and played without buffering or API dependencies.

    The result is a simple .wav file stored locally.

    Step 2 — Serve the audio from Home Assistant

    Home Assistant can act as a lightweight web server. The audio file was placed in:

    /config/www/coqui.wav

    Which makes it accessible at:

    http://192.168.1.XX:8123/local/coqui.wav

     This is critical — Google Cast devices (like the Nest Mini) expect a direct URL.

    Step 3 — Verify playback

    Using Developer Tools in Home Assistant, playback was tested with:

    action: media_player.play_media
    target:
      entity_id: media_player.speaker
    data:
      media_content_id: "http://<home_assistant_ip>:8123/local/coqui.wav"
      media_content_type: "audio/wav"

    At this point, the system could reliably play the sound on demand.

    Step 4 — Create control scripts

    Two scripts were created:

    • coqui_sound_start
    • coqui_sound_stop

    The start script sets a known volume and plays the local file. The stop script sends a media stop command.

    This isolates the “sound engine” from higher-level logic.

    Step 5 — Create a virtual device (the key abstraction)

    Instead of exposing scripts directly, a Home Assistant helper was created:

    input_boolean.coqui 

    This acts as a virtual on/off switch representing the coquí experience.

    Step 6 — Automations (binding behavior to state)

    Two automations were created:

    • Coqui – On
      • Trigger: input_boolean.coqui → ON
      • Actions:
        • Turn on lamp (Garita)
        • Run coqui_sound_start
    • Coqui – Off
      • Trigger: input_boolean.coqui → OFF
      • Actions:
        • Turn off lamp
        • Run coqui_sound_stop

    This creates a clean separation:

    • Switch = user intent
    • Automation = behavior
    • Scripts = implementation

    Step 7 — Expose to HomeKit

    Only the input_boolean.coqui entity is exposed via the HomeKit bridge.

    This results in a single, intuitive control:

    • “Turn on Coqui”
    • “Turn off Coqui”

    No shortcuts, no custom phrases, no ambiguity.

    Result

    The system now behaves like a native smart device:

    • Turning Coqui ON:
      • Light fades on
      • Coquí sound begins
    • Turning Coqui OFF:
      • Light fades off
      • Sound stops

    All control is:

    • local
    • deterministic
    • independent of external services

    Notes

    • Looping is handled at the audio level (longer file), not in Home Assistant
    • Tuya native lighting modes were intentionally bypassed in favor of HA control
    • Entity naming was cleaned to maintain long-term readability and maintainability

    This forms the foundation for the final object: a physical lamp with a single control surface that triggers a coordinated audio/light experience.

  • What the Dropship Coquí Lamp Gets Wrong

    WonkWorks04/28/2026 at 02:15 0 comments

    On the left is the Puerto Rican Coquí lamp with ambient Coquí song being dropshipped across the internet. On the right is the version I’m willing into existence.

    Cheap coquí lamps get something important right.

    They recognize there should be a lamp that glows softly at night and sounds like Coquí in the dark.

    That idea is lovely.

    What’s usually disappointing is the execution: molded novelty plastic, blinking LEDs, tiny speakers, and chirps that often barely resemble the real thing, or worse sound like a singing fish novelty item hanging above the fireplace at uncle Bob's cabin.

    When my partner started obsession over them on socials, and was close to buying one, I stopped him and said, "There must be something better to put in our home and admire instead of tire over." The appeal is real, especially to Boriquas, so I didn't view the online version of the lamps as failed products, I started seeing them as unfinished ideas.

    This project is an attempt to build one properly.  Not as a souvenir. Not primarily as a smart-home gadget.

    As an ambient object to display proudly in our home as part architecture, part sound installation, part proper lamp.

    The build centers around a 3D printed interpretation of a garita from Castillo San Felipe del Morro, with a hidden Google Nest Mini in the detachable lower chamber for authentic coquí soundscapes, and an RGB lamp above for slow ambient light scenes orchestrated through Home Assistant.

    The goal isn’t realism for realism’s sake.  It’s atmosphere.

    This lamp and sound machine will evoke something closer to the feeling of a Puerto Rican night than imitate one with toy electronics.

    I’m especially interested in whether the object can live in the strange overlap of:

    • souvenir and heirloom
    • sculpture and appliance
    • automation and ambience
    • open-source project and cultural object

    The current design uses a two-piece printed garita, faux masonry finishes, a lit niche with coquí figures, hidden sound, and a voice-triggered scene (“Where are the Coquí?”) that wakes the lamp into a small environmental installation.

    Upcoming logs will document:

    • starting with the garita print
    • faux stone finishing experiments (including whether “stone” can subtly glow)
    • fitting a smart speaker inside the structure
    • soundscape and lighting scene design
    • final assembly as a functional art object

    Because half this project is building the lamp.

    The other half is figuring out what this object wants to be.

    One thing I’ve already decided: it will not be wall-mounted like the novelty originals (but it may take advantage of the hanging mechanism on the back of the 3D model file I've procured).  Its stand will be an important part of the object, just as important as the light, sound, and architectural form.

    If you were rebuilding one of these novelty coquí lamps from scratch, what would you keep from the original idea — and what would you throw out entirely?  I hope to find out in the coming weeks - Hopefully thanks to Cloudprint for the base that is ordered!

View all 7 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates