SV650 ECU EFI warning decoder/dash replacement

So I finally finished the design of my very first PCB and placed an order with OSH Park to get some samples. The basic premise is I needed a way to decode the data stream from my 2nd gen SV650 ECU to know when there is a problem with the fuel injection system with the race bike. Also, ideally, I needed a way to know what the specific error codes are.

Normally you do this with the stock dash, but I wanted to use my GPX Pro dash and didn’t want two dashes on my race bike. Unfortunately, the PCB on the dash is just one large unit (including the tachometer) and so there wasn’t an easy way to just use the parts I needed (a red idiot light and the LCD which displays the error code).
Continue reading


Cassandra + Hector + JRuby == Awesome

So a few months ago I started looking into using Cassandra for a project. Not being fluent in Java or Python which have excellent client libraries for interfacing to Cassandra (Hector and Pycassa respectfully), I looked into the Perl and Ruby clients.

At the time, none of the native Perl or Ruby clients weren’t nearly as powerful, feature rich or as actively maintained as Hector/Pycassa. I started hacking on the Perl client, but a) realized it was going to need a lot of work and b) I really wanted to use Ruby on Rails as the front end for my application I started looking into using Hector with JRuby. Continue reading


Need help with tcpreplay? Read this!

I’ve noticed a certain pattern come up more and more recently and so I’d just like to make a public statement about asking for help with using tcpreplay:

Occasionally people are testing some kind of top secret device with tcpreplay and can’t tell me how it works or what it does or share their pcap file (because it has some kind of exploit or something like that I guess), but expect me to help them figure out why it can’t “see” the traffic tcpreplay sends. That’s a lot like asking your car mechanic to fix your car, but you won’t let them look at it because you’ve modified the engine to run on tap water and don’t want the mechanic to figure out your secret. As you might imagine, this is both very frustrating and a huge waste of my time.

Simply put, if you see the traffic in Wireshark or tcpdump, but your device under test can’t see it, then it’s most likely either a) bug in your product, b) you’ve miss-configured tcpreplay or c) you’ve got a bad pcap. You’ve pretty much ruled out a bug in tcpreplay at that point. Hence if you want help with determining if it’s A, B or C you’re going to have to give me your pcap, tell me what your product does and some basics about how it works under the hood. Honestly, I wouldn’t consider any of this at the company secrets level unless you’re hacking directly in kernel-space and are completely avoiding the well known socket API’s, but that’s your call.

Anyways, if you’re unable to tell the whole world on this mailing list the above, then your other option is to hire me as a consultant (for a price) at which point I’d be happy to sign an NDA to keep your secrets and we can work off list. Other then that, your best bet is to try and figure it out on your own, but please don’t ask me or the list for help to your problem.



Calibrating Thermistors for the Arduino

This is my first post about my current geek project: building a wireless thermometer/alarm/data logger for my Weber smoker. Until now, I’ve been using a Maverick/RediCheck wireless unit which is merely OK. The wireless signal tends to be really flaky and it has only one temp probe. There are multi-probe units available, they’re still missing other features I’d be interested in such as logging the data for generating graphs, measuring ambient temperature outside and setting multiple alarms (for both the food and smoker temperature too high/low).

For my food and smoker temp measuring needs, I picked up 3 food safe probes from Thermoworks for $8/ea. Unfortunately, the probes come with no technical documentation and my email to the company requesting information was ignored. Contrary to my initial thoughts, these probes are not the same as those sold by Maverick or Amwei. I was however able to determine they are NTC thermistors and some searches turned up a way to convert the resistor readings into actual temperatures. Continue reading


Did you bother to test this?

My feedback to Apple regarding Mail.app in Lion:

Seriously, wtf? How could you not notice:

1. Emails I delete from the inbox come back after a few minutes. I’ve deleted the same messages 4 or 5 times now from my inbox. I guess you figured my delete key doesn’t get enough use already?

2. Still haven’t fixed the Snow Leopard/Exchange issue where Mail.app stops downloading emails after some random period of time requiring me to restart Mail.app. The good news is I can really tell my boss I didn’t see that important email! Thank you for being my excuse!

3. Can’t quit Mail.app. Yes, it just hangs every time. Have to Force Kill it. This is great since I’m restarting Mail.app 3-5 times a day due to #2.

4. When it starts back up, it often presents me with a random email I recently sent acting like I didn’t actually send it. It’s in my Sent Mail folder… did you send it or not? It’s a mystery! We all like mysteries right?

5. How many times do I have to read an email before you mark it read? You seem to have chosen to use a random number generator for that. I guess this was designed to mess with people with alzheimer’s or something?

Outlook and Thunderbird are looking really good right now.


Why Tcpreplay went GPL

I’ve been thinking about this for a while and honestly pretty made up my mind months ago, but I finally go enough determination to edit almost all the files in the trunk source tree and change the license from the 3 clause BSD to GPLv3.

There’s actually a number of reasons for the change and I wanted to share the ones that were most important to me. I don’t expect everyone to like the decision, but probably most won’t care since it doesn’t really impact them. But sometimes people get all bent out of shape when a project that has been around as long as Tcpreplay (10 years? Damn, where did the time go?) changes its license so I wanted to give my side of it. The change doesn’t mean I don’t like the BSD license anymore, just that I now feel the GPL is more appropriate for the Tcpreplay Suite. Continue reading