9 ms·
Launch HN: Memfault (YC W19) – Crashlytics for Firmware
Hi everyone!
We're Chris, François, and Tyler, founders of Memfault (https://memfault.com https://memfault.com). Memfault helps firmware teams find and fix issues before customers start calling (or worse, tweeting!) by providing a small <3kB SDK to include in the firmware and a web dashboard to manage releases, monitor devices, and view crashes. In the software world, Crashlytics, Sentry, and other error monitoring systems have been offering similar solutions for years. Memfault is the first such solution for firmware.
Embedded devices today are very different from ones built 10 years ago. Then, a device would run a small piece of firmware in a while() loop, capture input, compute some logic, write to a small 7-segment display, and that was about it.
Today, new products have a wireless connection to the internet, a bright 320x320 full color LCD, a high quality microphone and speaker for Alexa integration, and sometimes even run machine learning or computer vision algorithms on device! Building hardware products in 2019 is a significant software project, it requires software tools.
The three of us met at Pebble in 2013, where we shipped 4 watches together. Chris and Tyler went on to work at Fitbit, while François went to Oculus. Each time, we found ourselves building all of our tools from scratch which slowed us down tremendously. Imagine having to build a log collection solution every time you want to build a new web app!
As a result of the effort required to build them, the tools available to firmware engineers are not up to the task. For example, the state of the art in debugging requires connecting a physical debugger to your board. To investigate an error report from the field, customers must be contacted, devices shipped back, and enclosures disassembled. By the time this is all done, flash logs have rolled over, variables have reset, and developers are left scraping together raw data from flash to debug the issue. It can take weeks to get to the bottom of an issue that would be root caused in minutes with reasonable tools.
We've long wanted to show people what Memfault can do without the hurdle of integrating our SDK into their code. Today, we are launching a zero code, try-it-at-your-desk version of our tool available at https://memfault.com https://memfault.com (click on the "Try Memfault" button"). In about 5 minutes, you should be able to connect a ARM Cortex-M based development board and upload an error report using a GDB script. If you do not have a board, you'll be able to interact with an example error report.
We could go in at length about the implementations (ask us questions in the comments!). One thing we're especially proud of is the "Globals & Statics" tab which lets you query the state of any static or global variable in your system. To get this to work, we cross compiled libdwarf to wasm via emscripten and used it to implement parts of an in-browser debugger which can be used to look up values for a known symbol given an elf file and a Memfault core file.
We'd love to hear what you think, and find out what other tools you've found helpful in this space. Looking forward to the discussion!
- qntty 7y agoAny plans to support x86 CPUs?
- fra 7y agoNo plans for x86 at this time. What application do you have in mind, and what OS would it be running? In our experience even embedded linux projects run on ARM these days.
- qntty 7y agoProbably not your main target audience but I'm thinking of old industrial automation systems that run Windows for the UI together with a real-time software PLC (Siemens or something similar). Hard to find good tools for debugging them.
- fsaintjacques 7y agoSee https://backtrace.io https://backtrace.io, disclaimer, previous employee.
- fra 7y agoIt would be interesting to chat with someone working on that set up to figure out what an implementation could look like. I wonder if solutions for windows desktop would work in that case?
- lostgame 7y agoI'm curious as well why you'd be using x86 processors in embedded devices. Care to share?
- monocasa 7y agoNot the parent, but they can be nice for com express modules. Upgrade the SOM board without having to do an I/O board spin.
- 7y ago