The Future of Etcher

Etcher [https://etcher.io] recently reached 2000 stars on github [https://github.com/resin-io/etcher]- and we’d like to take the opportunity to share our plans for the future with the rapidly growing community of users. In the last year- we’ve seen hundreds of blog posts and videos about Etcher in dozens of languages- and many projects recommending it in their…

Etcher recently reached 2000 stars on github, and we’d like to take the opportunity to share our plans for the future with the rapidly growing community of users. In the last year, we’ve seen hundreds of blog posts and videos about Etcher in dozens of languages, and many projects recommending it in their instructions, which makes us incredibly happy.

If you’ve been following along, you might have noticed informal discussion of our plans for the v1.0 and v2.0 versions of Etcher in Gitter and GitHub. We’re planning plenty of features and want to summarize what’s currently on our minds in one place.

Getting to Etcher 1.0

After 18 beta releases, we’re getting very close to v1.0. Moving on from beta releases means that we must ensure a certain level of stability and robustness in the product, therefore a major focus for v1.0 is ensuring all the major bugs we know about are fixed. We’ve fixed hundreds of issues so far, giving Etcher a reputation for working where other tools fail, but we have set a high bar and feel like we still have work ahead of us.

Automatic error reporting, for users that have it enabled, has proven to be critical in our bug-fixing endeavors. Since this is such an important driver of our bug-tracking effectiveness, we will be focusing on creating state-of-the-art automatic error reports, so we can improve the product at a much faster rate.

We all love Etcher’s slick look and feel, and since we’ve brought on a UX expert, the user experience is only getting better. Konstaninos, our interaction designer, has added spectacular design improvements on top of the current user interface to give it a more minimalistic and modern look:

When a new version of Etcher comes out, users are currently presented with an update notification dialogue that prompts them to download the new version from the website. We know this is not an ideal experience, and therefore will be spending more time trying to get an auto-update infrastructure up and running. Like everything Etcher-related, making it work on all platforms is the thing that turns this into a Hard Problem.

If graphical user interfaces are not your cup of tea, we’ve got you covered. Etcher has a powerful built-in CLI version. Due to various NodeJS distribution difficulties we’re not releasing this version to the public yet, but we’ll be allocating resources to provide CLI downloads on the website soon.

Beyond v1.0 launch: the plan for Etcher v2.0

But wait, there’s more! The Etcher team is constantly thinking one step ahead, and we already have a rough plan of the major features we will introduce in the v2.0 version of Etcher.

The biggest feature we plan to build is an image catalog embedded in the application, which would allow users to explore a growing set of images from trusted publishers and stream from the internet right to their drive. Users will be able to browse the image catalog by the device they own (e.g: a Raspberry Pi 3 B+, or a BeagleBone Black), and discover new images to boot and try.

This new flow will enable streaming .img files from the internet straight to the SD card, cutting in half the time it takes to write a card (depending on the network speed relative to the drive speed). In combination with a feature we’ve silently released already in v1 called bmaps, Etcher will save time both on the initial download and subsequent downloads. As a quick back-of-the-envelope calculation, Etcher is used for more than 100k writes a month. If we save 3 minutes on each of those, we save 5,000 hours of waiting every month. And Etcher usage is growing every day, so the hours we can save are growing too!

Most images provide some kind of configuration. What if Etcher could show you a customized configuration form for any image in our catalog, and configure the image as it’s written to your drive? Etcher v2.0 will give you that. In addition, you’ll be able to plug your configured drive back in, and Etcher will auto-detect the configuration you set while initially flashing it and provide you a way to re-run the configuration stage. How cool is that? We know this is a long-term issue for device projects, for instance when managing wifi credentials or GPU memory, so we’re happy to build a solution we’re very confident in, and that works for all platforms.

Some devices are a bit tricky to get up and running, and you often have to go hunting for instructions, usually on the publisher’s website. Our image catalog will include built-in instruction documents for a variety of IoT devices and images, which will be automatically presented when you need them the most.

Finally, sometimes you have the tedious task of flashing the same image to a variety of drives. To make this task easier, we’ve been making a lot of progress in our multi-write engine. Do you have a USB hub for 32 SD Cards? You’ll be able to watch Etcher flash an image to all of them, at the same time!

Of course, adding room for these huge improvements will have an impact on the user interface. We’re already working on some early sketches of the Etcher 2.0 design. We hope you’ll love the major update we’re giving to the interface!

The Future is Coming

In summary, Etcher v1.0 will bring more robustness; Etcher v2.0 will bring faster writes, the ability to (re)configure the resulting media after writing the image, a gorgeous new UI with a built-in catalog of images, and of course a lot more features that we simply don’t have space to write about here, so we’ll keep them as a surprise 🙂

We hope you are as excited as we are about where Etcher is going. As an open source project, we welcome feedback and contributions from our users, so let us know what you think in the forums, send us your comments and pull requests on GitHub, or simply come in for a chat at Gitter!


Posted

in

Tags: