The UltraMod

If I had known just how much work it would be, I might not have done it. Sometimes, ignorance is just what you need to carry the day...

In this case, I bought a new Aprilia motorbike back in 2003. It was fuel injected by computer control. I was a computer guy. It had a removable EPROM containing the injection code. I had an EPROM reader.

You can see where this was heading.

Maybe I could make a simple replacement swapping the EPROM for a Flash chip to make it easier to fart around with for tuning purposes. That would be interesting.

But then, oh then, I had The Idea. What if I could figure out a way to extract data from a running engine? What if I could correlate that data to an on-board GPS for location and velocity? I would have my own personal data logging computer. I could go for a ride and see how fast I was going through a corner, and by correlating the location with the throttle angle, I would even know when I was getting back on the gas again. This was heady stuff back then. I admit that in the years that have passed, this has totally become a thing. But back then, it was something crazy interesting, and I knew I could do it.

Therefore, it simply had to be done.

And it was done, over the span of about the next 6 years. It took months of staring at the engine computer with a jewelers loupe to reverse engineer schematics for it. It then took years to decode the fuel injection code to the point where I could identify the results of sensor readings and calculations. It also took a number of increasingly complex circuit boards along with the development of the proverbial butt-load of software running on a secondary processor. Such are the time costs of good ideas.

My circuit board making skills went from minimal to pretty decent over the course of the project. Here is the first version of the PCB. It had some design major flaws. For instance, it turned out that it would not be capable of updating its flash memory without removing the flash memory from the board. But the important part was that it proved that the basic premise was possible: getting the engine computer to send data to the secondary logging computer during operation. Data would get logged to the mini SD card on the left.

Version 2 allowed for in-system flash updates and added the first GPS.

Here you can see the version 2 board mounted on the engine computer. Mine is the little silver board down in the lower left. I was still too cheap to get solder masks made, so the boards were just bare solder-covered copper.

I was finally discovering that boards didn't have to be square. There is a cutout just visible under the red connector at the top left of the version 2 PCB to let it clear a tall component underneath. There was also a small cutout to allow finger clearance for the Mini SD card to get removed from its push-in/push-out socket. My favorite though was the nicely rounded corner on the lower left of my board to match the contours of the ECU case.

With version 3, I started getting real serious. Finally, I sprung for a solder mask. I also went crazy with the outline routing to extend the board size so I could add more components without hitting anything underneath. One sure sign that the project was taking a long time was that Mini SD cards were dead. This latest version logged its data to a new-fangled Micro SD card.

I can look back and laugh. With the solder mask and milled outlines, these bare circuit boards were costing me about $80 per PCB, minimum order of 2. I saved money by not having the silkscreen which seems a bit stupid in hindsight. These days, I can have the same board manufactured for $2, and that's for 5 copies.

What can I say: I had an idea and I made it work. I went for rides and got my data and plotted graphs and had a good time.

Funny story: there was one tight uphill right on the way home where my data said that as I came out of the corner, the throttle was only 15% open. That seemed kind of wimpy, so the next time through the corner, I gave the throttle an extra twist for a change. The bike picked its front wheel off the ground so fast, the handlebars almost hit me on the chin of my helmet. I realized that 15% throttle was about right for that corner.

It's been a long time now, but I can still read that graph. I see the bright red RPM line dropping as I slow down to a stop. It's a short stop, so probably a stop sign. Then, the revs rise kind of sloppily until the clutch locks up, followed by an extra twist of throttle (the analog purple line), and brisk acceleration to about 6k RPM. The clutch pulls in (the digital purple line) and I change to 2nd gear with even more throttle, then again into 3rd before rolling off the throttle and coasting slower.

I think I ended up on version 3.4 before I decided it was enough.

Was it all worth it? For sure.

Would I do it again? I don't know.

But on the other hand, I know that with a faster, more modern co-processor, I would do things differently. A fast enough co-processor would allow it to pretend to the be EPROM for that slow, old main processor. That would let me get rid of two big, expensive, and somewhat obsolete chips off my board. Obviously, a new version would also be wifi enabled so that I could come home and just park, and the bike would upload the ride data to a server, and generate all the graphs and maps auto-magically. So who knows, version 4 is still out there, singing its siren song.

It's just so hard to resist a cool idea.