What We Opened, What We Didn't, and Why
For a long time our repository carried a badge that said License: Open Source. Underneath it was almost nothing — none of the sources for the device we actually sell. The badge was doing work the code wasn't.
That's now the other way round. The firmware is published under GPL-3.0, the signal-processing reference alongside it, the enclosure designs under CC BY-SA 4.0, and the network's seismic data under CC BY 4.0.
And the PCB design is still closed. So is the cloud backend. This post is about where exactly the line sits, and why we drew it there rather than somewhere more flattering.
The line
| Part | Status | Licence |
|---|---|---|
| Firmware (ESP32-S3, ESP-IDF) | Open | GPL-3.0-or-later |
| Signal-processing reference | Open | GPL-3.0-or-later |
| Enclosure designs (STL + Fusion source) | Open | CC BY-SA 4.0 |
| Seismic data | Open | CC BY 4.0 |
| Documentation | Open | CC BY-SA 4.0 |
| PCB design / schematics | Closed | not published |
| Cloud backend | Closed | operated by us |
Because the PCB is proprietary, the GeoShake T1 is not open source hardware, and we don't call it that anywhere. The accurate sentence — the one we use on the site, in the README and in every announcement — is:
Open source firmware, open enclosure designs, open data. PCB design and cloud backend are proprietary.
It's a mouthful. It's also true, which the badge wasn't.
Why keep the PCB closed?
This is the question we get most, and it deserves a straight answer rather than a press release.
We're small. Publishing the board files means anyone can have them fabricated for a few dollars a unit. The board is the only physical thing we sell; the firmware, the app and the network are what make it useful, but the board is what people pay for.
Opening is a one-way door. We can publish the PCB later. We can never unpublish it. Given that asymmetry, "not yet" costs us very little and "yes, now" could cost us the company. So the decision isn't a doctrine about openness — it's a question of sequencing. We expect to revisit it at the next hardware revision.
We'd rather be honest than flattering. It would be easy to describe the T1 as "open hardware" and hope nobody checks. People check. And the moment one person finds the gap, everything else we've said about transparency gets read differently.
There's an uncomfortable detail worth admitting: keeping the PCB closed buys friction, not protection. Anyone who buys a T1 can open it and photograph the board — reverse engineering is entirely legal. What closing the files really does is make copying slower and less convenient. The things that actually protect us are the trademark, the network credentials, and the copyleft on the firmware.
Why these particular licences
Firmware — GPL-3.0. Strong copyleft. If you ship a modified GeoShake firmware in a product, your changes have to be public too. We'd rather improvements come back than watch a closed fork take them away.
Enclosure — CC BY-SA 4.0. We originally planned CERN-OHL-S v2, which is the more "serious" open hardware licence. We switched, for an unglamorous but decisive reason: CC BY-SA is a native dropdown option on Printables, MakerWorld and Thingiverse, and CERN-OHL-S isn't. A licence nobody can select in the upload form is a licence that keeps your design off the platforms where makers actually look. Same share-alike protection, one fewer obstacle.
Data — CC BY 4.0. Not share-alike, deliberately. Attribution is all we ask, because we want the data used in papers and products without anyone having to think about licence compatibility. Version 4.0 also covers the EU's sui generis database right, which 3.0 didn't — that matters for a dataset rather than a single file.
Your device is actually yours
This part matters more than the licence text.
GeoShake T1 units ship with no secure-boot eFuses burned. You can build your own firmware and flash it over USB-C, any time, without asking us. That's what GPLv3 §6 requires of anyone shipping GPL software on hardware, and we're honouring it rather than engineering around it.
If you don't want to use our network, point the firmware at your own MQTT broker — one constant in main/config.h. The device will happily run without us.
Access to the official network does need credentials we issue, and we're upfront that we can decline or revoke them to protect data quality. But that's a gate on our network, not a lock on your hardware. The distinction is the whole point.
What you can do with all this
- Read the detection code. The STA/LTA detector and feature maths are in the repo, along with the TypeScript reference they're verified against — we wrote about how that verification works.
- Print the enclosure. STL files plus the editable Fusion source, on Printables and Thingiverse.
- Use the data. No account, no API key: api.geoshake.org/developer.
- Build something else with it. Sell it, even. Just not under our name — the GeoShake trademark isn't licensed, which is the same model Arduino and Prusa use.
The part we'd change if we could
Being precise means admitting the awkward bits, so: the thing we opened is genuinely useful, but it is not a complete recipe. You cannot build a T1 from what we published — you'd have to design your own carrier board around the pinout the firmware expects. For people who want a fully open device, that's a real limitation and we're not going to pretend otherwise.
What we can promise is that the line stays where we said it is, and that we'll say so plainly when it moves.
Everything we call open lives here: github.com/GeoShake/geoshake
Ready to join the network?
Get the GeoShake T1 sensor and start detecting earthquakes at home.