Can the Dash Firmware be ported to a Raspberry PI?

Can the Dash Firmware be ported to a Raspberry PI? With a PI Zero going for $5, and USB cellular modems going for $20-$30, it might be a good fit. We would prefer using your firmware over any Linux variety for the PI, too — much simpler for embedded apps.

Hey there!

This is a pretty complex question, but I’ll try to answer it the best I can. There’s a lot that goes into developing firmware, and, generally, it is extremely specific to the hardware/architecture you’re developing it for. All of our firmware is built specifically for the microchips (Cortex M4/M0), cellular module (UBlox), and architecture of the board (e.g. the 2-chip design to allow for safe/robust over-the-air updates and a more sandbox-friendly user program space). We consciously made these design decisions to try and bring you the easiest and most user-friendly cellular connected IoT experience, at the best price possible.

That being said, we realize that there are a lot of bells and whistles on the Dash that may not be needed in large scale production environments, or that are applicable to every user. This is why we’ve open-sourced our hardware design files - so that anything you don’t need, you can cut out and customize yourself, based around the Dash as a template. This way, our firmware can most easily be dropped in with minimal porting required, and you can build yourself a cheaper board.

Now, as to your original question - porting our firmware to the Pi with an off the shelf USB modem:
As an engineer, I cannot say that this would be impossible - but also as an engineer, I would have to say that this would be a massive undertaking. The hardware/architecture between the Dash and a Pi/USB-modem setup are radically different when it comes to how the firmware would talk to each of its parts. So different, in fact, that it would be easiest to rewrite the firmware from scratch.

Now say, theoretically, writing firmware was easy, and it only took a couple weeks to copy the Konekt firmware functionality to any hardware configuration (both of which are very untrue), the Pi/USB-modem setup is definitely something we would do - we want to make it as easy as possible for people to connect to their IoT projects, that’s what we’re all about. Unfortunately, since firmware is hard, and it takes a long time, we would be taking a huge risk in relying on the hardware of the Pi Zero and of each specific USB modem to remain consistent with our firmware endeavors. They’re doing some great things over at the Pi factory, and it’s fantastic that USB modems exist (although sometimes good ones can be hard to come by), and we would love to see more cellular solutions that utilize that particular configuration - but in order to achieve what we feel is the best cellular connected IoT experience (the Konekt experience), while keeping it reliable, consistent, and always moving/improving in the right direction, we realized there’s not much of a way around it, except utilizing our own hardware (enter, the Dash).

This is not to discourage you though! If you or any other members of our community are interested in porting the Konekt firmware functionality to a raspberry pi, by all means, feel free to use this thread to discuss! We’ll be happy to try and provide support/guidance to the best of our availability.

Thanks, Pat, for the detailed answer to my question — it is very much appreciated. You have obviously put a lot of thought into the design of the Dash product, to both simplify its use for your customers, and also make it as reliable as possible. We appreciate those efforts.