An update on the Arduino OBD-2 library is in place.
To be honest, I haven’t been working on this for a while now, as my attention had somewhat shifted to my vintage computer collection.
With that being side-tracked for now (as for why; you can read that in my latest Toshiba T1000LE update) I can finally focus on this project again.
Having had some time to think about how to approach this, I got to a point where I needed to make a practical decision.
A complete rewrite of the library, though a fun and educative effort, seems both impractical (because I’m not a very good at C) and unnecessary.
The library I’m currently using, which is developed and maintained by Stanley Huang of Freematics seems adequate enough for the most part.
When developing the OBD-2 reading and parsing side of the library I started to notice that a lot of the code I wrote looked a lot, if not exactly, like the code Stanley wrote. It is very much optimized already and it just works.
Decision time
This has lead me to the decision that I will no longer completely rewrite an OBD-2 library from scratch, but will instead fork add/change some things in the Freematics library.
This is, in my opinion, the best way moving forward because it combines the best of both worlds without any possible copyright infringements.
Going forward
I will update my fork of the code and add a list of things I would like to implement. Some of the things I wanted to implement already include:
- Dynamically adding/removing extra INIT commands
- Better status reporting
- Some advanced calculations like the current gear
- Probably some other stuff I thought of but have forgotten
If you have any suggestions on features to add, open an issue on GitHub and I’ll be happy to take a look at it.