I made a transparent CAN bus bridge with logging, requesting input

My Nissan Leaf Forum

Help Support My Nissan Leaf Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Open sourcing: no, selling in a few specific varieties: yes. The leaf-specific stuff we've made is a bit too dangerous to mess with in some respects, unless we start documenting publically exactly how you can **** stuff up. That takes time, so I don't think that will happen soon, but eventually there will be an open source leaf-specific firmware I imagine.
 
mux said:
Open sourcing: no, selling in a few specific varieties: yes. The leaf-specific stuff we've made is a bit too dangerous to mess with in some respects, unless we start documenting publically exactly how you can **** stuff up. That takes time, so I don't think that will happen soon, but eventually there will be an open source leaf-specific firmware I imagine.

Do you see this as being 50/50 labor cost and safety risk, or perhaps 80/20? Developing niche software is always expensive, particularly when the hardware to go along with it is also niche, and managing the expectations of OSS consumers as to maintenance and portability is also a challenge. There are similar projects, e.g. http://www.openecu.org/ or https://rusefi.com/ or even https://github.com/commaai/openpilot (which steers the car!). The labor cost difficulty with OSS projects is that they tend to cannibalize non-free businesses, even those that played a founding role, and then the creators can be left without income.

As for safety, open-source licenses usually make it clear that everything is shared as-is with no warranty or guarantee of merchantability and that the developer holds no liability for its use. Real courts obviously may have their own opinions, but licenses have generally held up.

A car isn't really a utility like a web browser or a text editor or operating system. They're more of a luxury, and a complicated one at that! If you already own a car, and you want to modify it without working yourself, maybe you should be able to afford to pay someone to handle the complexity and cost of reverse-engineering. For a computing analogue, look to the Nouveau/NVIDIA driver battle: if you want to use CUDA with your fancy, expensive NVIDIA card, the incentives just aren't in place for that software to be free. CUDA ends up only being available in the proprietary NVIDIA binary blob, and Nouveau (the OSS driver) is basically a minimum viable prototype.
 
This is mostly an ethical consideration, as it's cheap and effective to open source a badly maintained and tested but functional codebase. The fundamental idea behind the code is very simple anyway - just replace some bytes here and there in CAN messages, as long as you know which bytes and which messages, you can just... do it.

However, there will be some expectation of safety and reliability coming from a company converting hundreds of cars on this codebase. It is quite rare for a fork or derivative project to actually change that much or to actively retrofit fixes in the code down the line. Anything I publish now or in the near future that ends up having an obscure failure mode will likely live on in the field and cause some issues down the line. For my own company, that risk boils down to at most the number of cars modified up to that point. For an open source project, that may suddenly become hundreds or thousands of projects spanning many countries, languages and degrees of calamity.

I'm essentially multiplying my support workload (if I want to be able to sleep at night) without much in the way of compensation for me. I'm very aware of the fact that this project I've started has a long tail. I don't want to be tinkering with 2011 Leafs in 2030 anymore, so I need to think about my exit strategy and any decisions that is contingent on right now. So I'm not publishing any leaf-specific code.

I'm implicitly endorsing... related activities though. As of now, Dala is more or less the only other person in the world intimately familiar with my code and thus able to meaningfully continue where I stop. He's been publishing some reverse engineering and useful data that you can really only know with these kinds of tools and code at your disposal, which I will never try to stop. Likewise, I will be publishing 'dangerous' functionality open source, such as modifications to throttle curves, possible future comma.ai or related library support, etc. etc. Things I can't reasonably upgrade on the Leaf myself but that some people might be interested in trying out on their car for funsies on a closed track. The boring 'this just has to work'-code will remain under wraps though.
 
Back
Top