They have an interesting product, and they're trying to build a business that includes a lot of open source aspects.
The device that they sell is proprietary, but it's also just an ESP32, screen, enclosure, and battery, with a custom PCB for convenience. They plan to add instructions to build your own device, and their firmware is open source under a GPLv3 license.
By default, their device connects to their servers, and they have a slick web configuration tool for people who don't care about having smart devices call home, but you can easily modify the firmware to connect to your own self-hosted server instead. As of this evening, both the Phoenix and Sinatra server implementations are open source under an MIT license after I pointed out that they had no license in an issue, and they pretty much immediately updated the repositories.
There are twoother repositories that they have not added a license to, but given their swift response, I'll give them the benefit of the doubt, and I would expect them to be updated shortly.
They have not shared all of the plugins that are available on their hosted service for use on a self-hosted instance, but a few are available for use and there are many plugins made by others available as well!
As soon as they update those last two repositories, I plan to pre-order one (unlike the conceptually cool VU Dials who's creators still have not added a license even after being called out by the co-creator of Rocky Linux).
As far as I can see in the firmware code it has Arduino under the hood. And the firmware itself doesn't look that complicated.
If I'm ever buying one I'd definitely rewriting the api client to my liking:)
$20 to unlock the API killed it for me. If it has a built in way yo lock it down, it's not an open platform and is a great way for bugs to brick a device.
This is a really bad way to look at an Open Source project. Want an API for free? Host your own, they have a server you can run. They are providing that service as a hosted platform, that they pay for, so you don't get that part for free. That's not what FOSS is.
There is a license on what you can install on the device. Open means no licenses on owned things, regardless of how open that license is initially, it can be changed.
The server it connects to is not configurable. You have to build your own firmware and maintain it and that goes back to the first point in case they decide to change the license.
This is very similar to what Home Assistant offers as a paid service. I don't see this complaint thrown at them, though. Also, any system that uses authentication has "a built in way to lock it down".
No, with home assistant they have a cloud server that has additional functionality that you can use or not. Home Assistant doesn't restrict access to the software on device it's running on.
With this, the device itself will not allow you to access its API endpoints without having a key that you need to purchase. And though they say it's a one time purchase, who's to stop them from releasing a critical security patch that invalidates the keys, even accidentally, or includes making the keys a monthly subscription going forward. Or what happens if that key gets exposed and you need them to generate a new one? Do you need to pay for that or is the device permanently compromised unless you build your own custom firmware?
You're allowed to modify the firmware to use a self hosted server for that functionality without violating the license, which is better than nothing, but then it's up to you to maintain your fork of the firmware. Why not just only require the key if you're connecting to their server and allow you to select your own server without needing to modify and maintain a fork of the firmware?
Their guide still implies that you need to pay a fee to unlock an API key before you can flash a new firmware.
How they plan to enforce that fee to unlock an API key when the firmware is supposedly open source I don't know. When I looked over the source code it looked like it was being written to a log.
The esp32 supports efuses that can be used to require a signed binary to boot. So they could lock their hardware to only work with their binary. Source code wouldn't matter.
Of course if the source is open you can buy and put together your own hardware and then put their code on it.
I'm not advocating what they're doing. Rent seeking is rent seeking even if they need to recoup development costs. I'd rather pay for open hardware and software with no monthly fee.
I agree that the guide is VERY unclear. The documentation here is a bit better, but still bad and mentions a monthly cost for DIY devices instead of a one-time dev-level API key cost.
The gist is that if you want to use their servers and you bought their device, they have an API key built in to the device for their non-dev-level API access, and it's not supported (maybe also against API TOS, but I'm not sure) to extract the API key and use it when you flash custom firmware. Getting the dev-level API key doesn't have this issue, though, because they give that to you when you pay for it.
When modifying the firmware to use on your own server, you don't have to pay them anything because you won't be using their API.
Ah. Can't really complain too much about them wanting people who are putting load on their servers to pay for it. Ideally, that should mean that the end user is not the actual product. Good to see more options joining Inkplate.
Looks really neat. I have an old Kindle e-ink screen I scavenged, but I have no clue how to actually interface with it. Being able to hack around with one would be nice.