Skip to main content

Qroma.dev intro

· 3 min read
Devalbo

I've been working on https://qroma.dev/ for a little over a month at this point and it's time for an introduction. First and foremost, qroma.dev is open source software and tooling for the provisioning, deployment, and operation lifecycle of an embedded device. It's based on users provisioning or accessing/modifying their own devices, having access to install the firmware they see fit, and interacting with it over WebSerial, Bluetooth, or WiFi.

Makers and software developers, especially for open-source and hobbyist embedded device projects, should be able to focus on the "business logic" of their device but still give their users and implementers a positive experience. In this vein, device lifecycle and user interaction patterns should be major parts of an embedded project but they don't have to consume a lot of developer time and bandwidth. Here are some questions to consider.

  • Once the project exists, why should a user/maker care? Documentation is important, especially if you value other people being able to understand what you're doing or even from a What was I doing 6 months ago? perspective. Qroma.dev gives you a Docusaurus web app so that documentation and WebSerial interaction with your device is easy.
  • How does a user get firmware installed off of a board they bought online and just got delivered? A qroma.dev project gives you a webpage to integrate an installer with it.
  • Once the firmware is installed, how can the user interact with it? Qroma.dev can give you a webpage that lets you link up your commands and send requests and receive responses.
  • If a user gives me good feedback, as a developer, can I quickly incorporate it for that user? Qroma.dev is oriented around an agile, rapid development continuous development (CD) cycle so that you can make your improvement, push the change, test your results, and get that improvement in front of your users.

What gave the world wide web its explosive growth over the past decades was tooling that supported and promoted the foundation of good separation of concerns between execution, presentation, and communication and tooling, but then plugged them back together! The ability to focus on HTTP, DOM, and Javascript separately as necessary, but package them altogether let a web SITE become the object of development. You developed components individually, but tooling kept those pieces integrated into a SITE.

With this in mind, the qroma.dev approach will attempt to holistically integrate all of the components it takes to successfully build, deploy, and support an embedded device project, starting with firmware and applications, but moving into the physical design of device electronics, enclosure, and more. Stay tuned.