The latest project – A tool for creating tools.

I’ve been working hard on a project.  I’ve codenamed it ECMHACK as I’m unoriginal.  Might keep it, might not.

I have several datalogging and reflashing tools under my belt now, and all of them took a VERY long time to write, and repurposing them to other ECMs and vehicles is damn near impossible due to how different other vehicles are.

Everyone always wants me to write purpose specific software for interacting with datastreams in one way or another.

So, one night I had a crazy thought, why write a bunch of new tools, when I can write a tool for writing tools, so writing a ‘bunch of tools’ would then be really easy, especially once other hackers learned to use that tool.

The idea is, that by having a language that’s designed around what you would want to do with datastreams most of the time, you can create tools for working with those datastreams much more easily.

So what I’ve done is created this homebrew programming language for datastream handling, which I’ve called SDPL (Serial Datastream Procedure Language)

The language includes working versions of, among other things:

  • All the basics of a good language – goto, set, print, etc.
  • Heap, stack, and global memory all built around managing large arrays
  • Array range specifications wherever you need them.  Lots of array-specific operations (take, prepend, append, size…)
  • Nested subroutines
  • A unique status register implementation
  • Simple user interface creation
  • Table lookups
  • Incremental block mapping
  • File load/save
  • Fast algorithms for checksums etc

As I developed the language, I also developed the tool that runs programs written in the language at the same time, so they’re at the same stage of development, which ensures that every language feature I wrote is real and functional, not theoretical.

I also wrote chunks of datalogging and flashing routines with it, to ensure that it was possible to create such tools, which I have a decent amount of experience with now.

I decided early on that the SDPL language must not just be capable of defining a flash tool or datalogging tool, but also must be capable of defining the ‘driver’ for the serial interface itself, so you can write a supporting driver for an ELM, OBDXPRO, or any other sane interface with it.

The tool itself has become a massive project.

Instead of being a purely interpretive programming language that slowly interprets a bunch of strings in a table, it quickly executes the SDPL procedures with incredible speed by compiling them to indexed data structures and function pointers.  The compiler is also fast, leveraging lists, explicit data prefixes, and hash tables to turn a plain text program into a bunch of computer instructions in milliseconds.

Things are executed in asynchronous threads so procedures cannot block other procedures.

The SDPL language includes features to develop simple user input forms to involve the user in the procedure, so it must be able to handle making controls such as buttons and input fields.

The tool also includes a basic IDE (integrated development environment) for editing and verifying the procedures you write.

Stay tuned!

New Support Forums

For help with EEHack, EEX, or general f-body stuff, I made a forum so it’s easier to ask questions, or just discuss the software.

I doubt it’ll become very active, but my hope is that new users can read this forum to search for answers to frequently asked questions.

This forum shares its membership database with this blog as well, so if you’ve already signed up, you’re good to go.

This should be more efficient than posting comments here if you need help (and I will now stop approving comments on blog posts asking for help, instead sending a private message reccommending re-posting on the forum …)

Enjoy!

Donations

I’d like to take a moment and thank everyone that’s recently pitched in a few bucks to my paypal beer/carparts fund, and mostly from the gearhead-efi crew.  Some donations have been especially generous.

I know that none of us LT1 folks are rich, especially after dumping so much into keeping these beat up old sports cars running.  Every time I get an email that someone has thrown me a tip, big or small, it makes my day.

I’ve never really directly asked for anything for my time and efforts (…outside of putting a big ‘donate to beer fund’ button in the about tab of eehack, which will be in the next version…)

The timing has been really great, my wife has been out of work for some time now, so my car budget is shot, and my clutch throw-out bearing is starting to sound like it’s possessed by demons.  Now I can afford a proper replacement.

Your donations have really demonstrated to me that:

  • I did the right thing investing a lot of my free time into this project
  • Taking the high road with “Free and open source” is the right way to go
  • People actually do still tune LT1s!
  • People find the tools useful and appreciate it, instead of seeing them as just a novelty

Just a few more things to tidy up, and 4.0 should be released soon!

New Site

Old site – ugly and hard to maintain, and nowhere to comment or post anything.

This site – took 5 minutes to make with wordpress.

Enjoy!