Let's Please Discuss the Bootloader source code!

We’re trying to understand and get more clarity as to the reasoning behind not making the source available for the bootloader.
First, our use-case: We’re incorporating the Daisy Seed into a low-volume (~20-90 units per year) wind-synthesizer, and the Daisy is the perfect product for us. In our design, it’s fully enclosed and the buttons are not accessible. Also, for ease of field-updating, we’d like it to smoothly integrate with our Editor app, rather than having to use some external DFU application (we would be using MIDI SysEx as the transport mechanism). Also, it’s been somewhat tricky trying to time the 2-second DFU window, sometimes taking me multiple tries to get it to work. So we’d like a way to use one of our product’s buttons to force it to stay in the bootloader, and to otherwise immediately boot to the application.
Given the lack of source-code, the current plan is to create our own bootloader, which is of course a bit of an unexpected additional amount of work. This then gets back to pondering the reasoning behind why the source is not available. I saw some mention that there were concerns about people cloning the design and making their own hardware, but it seems like if someone has that much time/energy, they could make their own bootloader as well? Is there some sort of licensing fee or NDA that could be used to make the source available?
Also, wanting to be a good supportive community member, we would like to make our bootloader source available for others in a similar situation, but again without understanding the reasoning and thinking behind it, we would be hesitant to do so. Also, it’s worth mentioning that there is already a slightly-different (and maybe not quite compatible) open-source bootloader already available.

Let the discussion begin!

-Michael Shonle, CTO, Cantux Research LLC


This would be helpful for sure, even if there’s a detailed explanation on what’s going on under the hood (unless I’m missing that somewhere).

As for:

I ran into this issue as well but found a solution from one of the ES engineers somewhere here or on discord. If you press Boot again during that window it’ll stay in dfu mode.