Paid Gig: Car Odometer

I need an Arduino backed Odometer for a car I'm building, I don't have time to do it myself. Needs to have a small 7 segment 6 digit display, take the VSS input from my transmission, write that data every 25-50 meters to an eeprom or something. Needs to be somewhat compact, in other words not 5 different breadboards, with loose wire etc.

Input is VSS from Miata 6 speed.

We can discuss compensation privately.

Paul

A quick search on this VSS tells me it's basically a pulse signal with a single pulse every certain distance. So that's easy enough to measure. It probably needs a bit of filtering, though.

For storing data: EEPROM has can be written to only about 100,000 times. So if you write every 25 meters it will last for about 25,000 km.

The display is easy, just needs an appropriate driver chip for it. You need to tell how big it has to be. Can also do a 1602 LCD instead, even easier.

To keep it compact, an ATtiny would work just fine.

An odometer is just a pulse counter with memory and scaling. They're available off the shelf literally by the thousands, how is what you are asking for different?

EcotecMiata:
I need an Arduino backed Odometer for a car I'm building, I don't have time to do it myself. Needs to have a small 7 segment 6 digit display, take the VSS input from my transmission, write that data every 25-50 meters to an eeprom or something. Needs to be somewhat compact, in other words not 5 different breadboards, with loose wire etc.

Input is VSS from Miata 6 speed.

We can discuss compensation privately.

Paul

How much of the data needs to be retained (all of it)? If you retain it all, that means storing 2 bytes every 25-50 meters. If you want to time stamp the data every sample or every x samples, add 4 bytes for the time stamp. Should we assume that you'll want to dump the data to a nearby computer at the end of every day? Do you want to use bluetooth or wifi to share the data or connect a cable? Must the display be a 7-segment type? Small + inexpensive could be OLED. How small? This doesn't have to be a dangling wires project, you can solder everything to a protoboard from existing modules like a project I just did:

photo

Parts list so far:
Arduino
Display
Realtime Clock + EEPROM?
power converter
BLE or wifi adapter?

Thanks for the reply folks. Good point on the eeprom limitation. Suffice it to say, I just need a way of storing current mileage and not losing that data. However I'd obviously need that to work for far more than 25000 writes. Perhaps an SD card, or otherwise non volatile storage.

Wvmarle, I've seen different accounts for my car, but general consensus is 4000 pulses per mile. I'd need kilometers however.

Cedarlakeinstruments, I recognize this isn't very complex, I just have enough on my plate and would need to teach myself Arduino more than just my cursory understanding.

Bitbank, don't need Bluetooth, any small LCD or oled or screen would do. We can discuss size, but I'm thinking about 0.75cm tall by 5cm wide but will know precisely once I measure all my gauge placements.

That said I ordered myself an Arduino kit to tinker with, but still in to motivated for just paying someone to do this. I'm also tinkering with CANbus shield for giggles.

Feel free to email me paulm@no-spammmSPIDER-ORG

Let me know if you can't decipher the above email address.

I recognize this isn't rocket science, have a couple of other ideas I might want to include like a sequential shift light read via CANbus/OBD2.

Paul

I wasn't saying you should learn the Arduino. Rather, I was pointing out that odometers and counters are available off the shelf at all price points and with a dizzying variety of features and asking why you would develop something new instead of buying a cheap one from a supplier.

Indeed it sounds like a ready-made one will be the way to go. Saves also worrying about the necessary filtering on both the input signal and the power supply (it's automotive after all).

Miles vs km is just a multiplication factor.

Ah! Because I'm doing a custom dash in my car, every odometer I find is a combination speedometer and Odometer. I'm building a Raspberry Pi dash with a custom 3D printed cluster. I want to have an odometer be in a very specific spot. My race car data logger doesn't handle odometer function and the raspberry Pi likely wouldn't keep up with this task.

3D printed cluster:

By doing this with Arduino I can integrate the display of the odometer into the dash wherever I want.

That said, if you know a small digital display metric odometer with VSS input without a speedometer that can be configured for 4000 pulses/mile by ALL means send me the link.

I'm not here because I didn't do my homework, I'm here because I couldn't find what I needed.

I'm swapping my transmission out, which is currently cable driven to a new better transmission, this transmission has a VSS sender.

I think an eeprom would still be best, but likely only needs to write when power is lost. A capacitor could keep things working for a short amount of time when the car is shut off giving enough time to write the current mileage.

At least that's a thought.

Writing it every 100 meters would keep you going for 100 x 100,000 meters = 10,000 km (that 100,000 writes is guaranteed - in practice it probably lasts a lot longer, but how much longer can't be predicted).

Doing basic wear levelling (it's divided in blocks, iirc 8 bytes each giving 1024 bytes of EEPROM 128 sectors) and you could do 1,280,000 km before you reach the guaranteed minimum lifetime. Every new write is the next sector, upon startup just read them all, use the highest number, and go from there.

Flash (sd cards) doesn't last that long either.

wvmarle:
Writing it every 100 meters would keep you going for 100 x 100,000 meters = 10,000 km (that 100,000 writes is guaranteed - in practice it probably lasts a lot longer, but how much longer can't be predicted).

Doing basic wear levelling (it's divided in blocks, iirc 8 bytes each giving 1024 bytes of EEPROM 128 sectors) and you could do 1,280,000 km before you reach the guaranteed minimum lifetime. Every new write is the next sector, upon startup just read them all, use the highest number, and go from there.

Flash (sd cards) doesn't last that long either.

Agreed, SD card isn't ideal.

Crazy idea, but I've got various 12v warning lights and turn signals, using those circuits, as a trigger, I might be able to remove the conventional warning lights and replace them with an i2c OLED display. Not sure how that would work exactly. For example check engine light, currently it lights a 12v bulb, but could that circuit go into the Arduino and activate a graphic on a small OLED?

Sure, no problem.

Simplest solution is a voltage divider but far safer would be an optocoupler. Read the signal through a digital input pin and draw the required image on the OLED display based on it.

Any one want to build an odometer with 6 opto isolator 12v inputs with ~3" OLED display? Might as well add an LED sequential shift light based on a tach signal.

Shift light similar to this.

:slight_smile:

EcotecMiata:
Any one want to build an odometer with 6 opto isolator 12v inputs

No problem here.

with ~3" OLED display?

Any preference?

Might as well add an LED sequential shift light based on a tach signal.

As in, lighting more LEDs as the rpm increases? Sure. Should be possible to draw as bar on the LCD as well.

wvmarle:
No problem here.
Any preference?

As in, lighting more LEDs as the rpm increases? Sure. Should be possible to draw as bar on the LCD as well.

Yes. My Raspberry Pi already lights up a tach on on an LCD, the shift lights are faster so more accurate.

If you look at the link above there are typically set points where the lights go from dim, to yellow to red and then flash bright white on shift. The project in the link above is well done. But obviously wouldn't include the other things I'm after.

OK. Context helps greatly!

First: I expected that you would have looked at odometers, that's why I mentioned counters. My initial approach to this would be purchase an off the shelf non-volatile counter and feed the VSS signal to it, perhaps with some signal conditioning. Counters are easy to design and build. I do that here: http://www.cedarlakeinstruments.com/blog/products/rs232-serial-pulse-counter but the additional requirements you have (portable, save count on power off, etc) make it more time consuming, hence my suggestion of something that already has thousands of engineering dollars invested in it that you can buy off the shelf for $50.

Second: Do you want to move from bulbs/LEDs to a graphic on the OLED for space reasons or is there something else driving the desire? I'd be concerned that in a racing environment the OLED display represents a single point of failure for all that data.

The car is street legal, barely, but it is. Think of it this way, my Raspberry Pi screen is my race screen, this has been proven to work by endurance race teams etc. That screen is the only important one when I'm on track.

Think of the smaller screen connected to Arduino as my "street dash" with basic stuff like odometer, check engine light, seat belt light and whatever normal lights a car has.

This is what my dash looks like, fuel gauge on the left, raspberry pi screen in the middle and a small TFT or OLED on the right.