惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
有赞技术团队
有赞技术团队
量子位
N
Netflix TechBlog - Medium
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
Google DeepMind News
Google DeepMind News
aimingoo的专栏
aimingoo的专栏
GbyAI
GbyAI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Blog — PlanetScale
Blog — PlanetScale
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
Martin Fowler
Martin Fowler
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
博客园 - 司徒正美
云风的 BLOG
云风的 BLOG
V
Visual Studio Blog
V
V2EX
IT之家
IT之家
L
LangChain Blog
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
How to not end up in a Louis Rossmann video
sschueller · 2026-05-03 · via Hacker News: Show HN

What I did to build a more consumer-friendly product without having to open-source everything.

A while ago I released my first hardware product, the Station Display. During the process of turning what originally was just a project into a product, I needed to make many decisions on how to make it usable enough for the average person and at the same time mass-producible.

After going through this process myself, I somewhat understand why companies are becoming less consumer friendly even when they aren’t specifically trying to lock out users. It’s just easier and requires less work.

However, I believe it is possible to sell a product that depends on an online service and make it consumer friendly without having to bend over backwards and give up all your IP.

Here a few points and decisions I made in addition to what is required by law to make my product more consumer friendly.

In Switzerland there are several minimum legal requirements similar to those in the EU. Everyone needs to follow these, but that doesn’t make your product consumer friendly.

A CE mark or Swiss equivalent (CH) is required. Its purpose is to protect customers from dangerous chemicals and devices causing interference, etc.

Another one is a minimum two-year warranty. For me, this means I need to keep enough parts and whole units on hand to replace any customer’s unit if an issue occurs. For example, I need to keep stock of each LED panel batch, as the colors vary slightly; if I need to replace a panel, I would need to replace all three. For a small vendor like me, this is not insignificant, especially since my LED supplier only gives me a one-year warranty.

Additionally, I need to have insurance for 10 years after the last sale in case there are any issues with the device and I need to take old units back for recycling (VREG).

In Switzerland it is also common to offer a 14-day return policy for online purchases, although not required by law. Some trade associations will require you to do this if you want to be a member.

The Station Display consists of three pieces of software: the firmware on the device, the configuration app (Android and iOS), and the server providing the data.

Although this makes the setup and use of the device very easy, the device would stop working if I closed shop, leaving people with a large paperweight.

When I initially designed the configuration app, I built it in such a way that it does not require registration nor does it need any type of activation. If you have a Station Display, you can connect to it and configure it. The app does use my server to offer a search for the station you want to display; however, you can also just enter its ID, which you can find in the official government GTFS feed.

I also published the Bluetooth characteristics for configuration, and the device can be configured with any generic Bluetooth tool like nRF Connect. So even if my app gets removed from either app store, the device can still be configured. This also benefits people who don’t have an Apple or Android device.

Since I publish the characteristics and do not lock down the Bluetooth, I have it shut off a few minutes after boot. Data is received via WiFi, so Bluetooth is not needed after initial configuration, and this satisfies CE IoT security requirements.

The config app is not open source, although there isn’t really any IP. All it does is connect to the Station Display using the published Bluetooth characteristics and offer a UI.

I may release the app source, but it requires a bit of time for me to prepare it for this, which I would rather invest in adding new features to the Station Display.

I purposely do not lock the firmware or trigger the e-fuse, so you can flash another firmware onto the device (ESP32S3). OTA flashing, however, is only possible via my OTA server (unless other firmware is flashed via USB that supports other OTA methods), also because of CE requirements. The original firmware can be downloaded and re-flashed, restoring all functionality.

Ideally, I would want customers to be required to confirm something before being able to flash over the firmware, because it is possible to damage the hardware with bad firmware, but I don’t have that capability at this time. I also don’t expect a large number of customers to flash firmware, damage the device, and file a warranty claim.

The current firmware is not open source, but it will be released when I stop selling the device. There is an older version available open source which I made for the original project.

The server software collects the freely available government data from opentransportdata.swiss and processes it for the Station Display. It mixes the live data with the scheduled data and provides a consistent data set for the displays. The Station Display does not have enough processing power to process the raw GTFS feeds from opentransportdata.swiss, and the feed also changes from time to time, which would require firmware updates.

GTFS-RT Import Totals

OTA updates are also provided by the server to the Station Display.

The server software is not open source, and the service is only available to purchased devices at this time. However, the protocol is documented, and you can switch to your own server in the existing firmware. This allows you to have all the features with your own data. The data I use is open, and one can build a replacement or alternative server using the data feed from opentransportdata.swiss. Alternatively, you could also feed the Station Display a schedule for your model train set.

I published the schematic and BOM. Although this allows people to easily replicate my device, I don’t see there being anything special about the PCB design that isn’t easily replicable anyway.

PCB

I find the regulatory minimum requirements much more challenging and costly than anything else I did to make my product more consumer friendly, yet they have a big impact in the long term. It just requires a bit of thinking about how a customer would want to use the device and what the customer would do when you no longer offer the service.

Yes, I could release all the software I wrote as open source now, as well as all the manufacturing files for the frame, glass, and CAD models.

Since I want to sell a few units, I think this is the most balanced approach.

If I stop selling the device, I will release the rest as open source.