Earlier in 2018 we first described our plans for a professional SD duplicator and flashing device named EtcherPro. We’ve made a lot more progress since then, but we’ve also taken a lot more time than we first thought, so here’s what we’ve been up to.
EtcherPro was largely born of our customers’ (and our own) need to flash multiple balenaOS images when adding devices to applications on balenaCloud. Our mission boils down to reducing friction for fleet owners, so help with provisioning devices en masse falls squarely in the middle of it. Etcher is our widely used, cross-platform flashing tool and is already writing over 1 million SD cards and USB drives per month, so we thought why not build upon this tried and trusted software to build a hardware product? If nothing else, we’d get to feel the pain our customers have when building their own hardware products; and boy did we!
When reviewing other SD card duplicator devices on the market, we found them to be slow, lacking in functionality, and expensive. Even worse, we’ve heard customers reverting to Etcher for flashing large batches because the duplicators cannot process certain disk images. Given all this, we’ve been developing a hardware package which is faster, a pleasure to use, has additional functionality and is priced lower than comparably sized units. Did we mention it will continue to be updated over the air, becoming better and gaining features as time passes?
EtcherPro is a fully standalone hardware device allowing you to write up to 16 destinations per unit. It allows for duplication from and to SD cards, USB drives or external hard disks, as well as flashing an image file sourced from any of these locations or an internet/network location. In addition, EtcherPro is able to flash the Raspberry Pi Compute Module and other eMMC devices such as the balenaFin.
So, what’s taking so long?
Over the past year we’ve continued to develop and refine the product. We’re laser focused on building the best SD card flashing system on the market, with home and industrial applications; just as Etcher gets raving reviews from users, we won’t be satisfied until the hardware elicits even more enthusiasm from its users. We’ve gone through several design revisions and iterations of key components, gradually improving them to arrive at the final prototype stage we’re at now.
Our approach has been to avoid reinventing the wheel, and so the internal hardware is based on USB. We didn’t want to use expensive FPGAs, nor did we want to use unreliable USB hubs, and thus have designed our own mainboard. Here’s what the latest prototype looks like:
Yup, you counted that right. That’s 34 USB 3.0 ports. The design of the SD card for each slot is modular, allowing easy replacement should the modules fail or get physically damaged during use. The hardware design includes both wired and wireless ethernet, and an RGB indicator LED for each slot for feedback.
Choosing the core module
Initially our aim was to use our board with a powerful Linux SBC such as something from the Up board range, which meant a main and daughterboard with an interface of some kind between them. We needed something with multiple high throughput USB3 buses, at a reasonable cost, with WiFi and Ethernet connectivity, and a host of other specific features, not least of which is balenaCloud supportability. We investigated a long list of boards: UP Squared, BananaPi, Sapphire, ODroid XU4, Rock960. All of them had benefits, but in each case we ended up getting blocked by some obstacle or an other. We finally ended up focusing on the new i.MX 8 compute module which seems to have the best of all worlds, can dock directly onto our existing design, and reduce the number of unneeded components to a minimum, simplifying assembly times and improving reliability in the long run.
We’re now at the stage where the second iteration of the mainboard is now complete and passing tests running it at 75MBps per port, even when using all slots simultaneously.
The case is a story of its own. We’ve iterated through a few revisions of the case, including folded aluminium, laser cut, and injection moulded versions. It’s probably worth writing another blogpost just on the iterations of the case manufacturing approach we’ve explored, but we feel it was worth the exploration: Our latest case design (pictured below) is based on a vacuum form manufacturing process, which, along with the improved board, greatly improves the ease of assembly of the device.
Along the way, we’ve 3D printed or otherwise manufactured a number of prototypes, an example of one below:
EtcherPro is uniquely able to flash the Raspberry Pi 3 Compute Module as well as boards built around the Compute Module, (such as the balenaFin). Software updates will allow us to expand support to cover the direct flashing of additional boards in the future. Here’s one of our prototypes flashing a Fin:
We’ve been working hard to finalise the case production, which means design and tooling, as well as pushing forward to agree a deal with a manufacturer to produce the outer shell case for us.
If you’re into some heavy steampunk, you might enjoy some of our earlier prototypes. We tried aluminium, and even one made with steel (yes, the black parts are laser-cut steel!):
All in all, despite our best intentions, plastic is still the way to go if we want to get you a product in time that has a reasonable weight and price point.
You might also notice that we’ve played around with port placement over time, but the latest version has come back to where our original design was — all in one straight line.
Another of the major limitations of the existing duplicators is their lack of extensibility. If you buy a 7-slot or 15-slot unit, that’s all you can have. If you decide you need more slots in the future as your needs grow, you’ll need to discard the one you had, and buy a new one. In contrast, EtcherPro units can be daisy-chained up to 10 or more times, allowing for simultaneous flashing of device batches numbering in the hundreds whilst continuing to operate at full speed. The design incorporates facilities to pass data and power along the chain with built-in connectivity, but can be extended via cable too if there is distance required between the parent and child devices. In this way, you can start with a single EtcherPro and scale up as you grow. Just because a project may start small, doesn’t mean scaling up has to be wasteful.
How fast is it?
Depending on the device being flashed (SD card, for example), our testing has shown that each EtcherPro unit is capable of flashing 16 slots simultaneously, and that speeds up to 75MBps per device should be achievable with our latest board revision. Other SD card duplication devices on the market target 33MBps per device – so EtcherPro should be capable of more than doubling their speed! The speed you will experience in practice of course varies with the media you are using, but with EtcherPro you can be sure that your duplicator won’t be the bottleneck.
How much will EtcherPro cost?
We are targeting a price of around 990 USD. Alternatives on the market cost about 50% more, while at the same time forcing you to choose whether to flash USB sticks or SD cards, and lack extensibility. With EtcherPro you don’t have to make those hard choices, and can support our open source work on Etcher at the same time.
When can I get one?
We are now aiming to have the first production batch available in late April or early May 2019, and they’ll be available on our store. We are considering setting up a pre-order system so that you early birds can get a better deal, so let us know if such an option would be of interest. To be amongst the first to find out when these units become available, be sure to sign up to our EtcherPro mailing list if you haven’t done so already.
We appreciate all the support and encouragement we’ve received from everyone on this project and are continuing to work hard polishing the experience and hardware to bring you the best product we can! We hope to bring you more of the backstory on all the crazy iteration and experimentation thus far, so keep an eye out on the balena blog.
Thanks for following and keeping up with the latest on EtcherPro! If you’ve any further questions, feedback or just want to discuss things further, the team always reads our Etcher forum – come and join in the discussion!