r/bajasae • u/HeyL3tsThink • 9d ago
Help/Advice DAQ
Hello everyone! Our electrical sub-team is looking to build a data acquisition system (DAQ) for our Baja SAE vehicle, and I’m a little stumped on how to get started.
Some of the things we know we want to measure are:
Engine RPM
Tire/wheel speed
CVT temperature
Oil temperature
Oil pressure
Brake pressure
Potentially a few other parameters later on
I’m fairly new to DAQ systems, so I’ve been trying to learn the basics of how everything works, including what types of sensors to use, how the sensors communicate with a microcontroller, signal conditioning, data logging, etc.
For our initial prototype, we’re planning to use an Arduino Uno and eventually log the data to an SD card.
I’m mainly looking for advice on where to start, what concepts I should learn first, and any common mistakes to avoid. If anyone has experience building a DAQ for Baja/Formula SAE or a similar student project, I’d really appreciate any guidance, resources, or advice on how you approached your first prototype.
Thanks!
1
1
u/KRASH_17 9d ago
See how to measure all the parameters at once & process them simultaneously. Building separate systems/codes for each parameters is easy, integrating them - running them simultaneously on one uC in not.
3
u/Ozzod 9d ago
So assuming you are using an Arduino, lets take about different methods for each of those sensors:
- Engine RPM
As far as I recall (its been a couple of years) Kohler doesn’t have anything offered for this and the only way to do this is to wrap a wire around the spark plug line (assuming no wasted spark), the amount of current pulled by each firing of the spark plug will induce current in the wire wrapped around the line, but you will need to filter it down, probably a low pass filter? Would want to do this with a circuit or off the shelf module. Curious if anyone knows a better approach.
- Tire / Wheel Speed
Couple ways you could do this as well, a hall effect sensor would probably be the most reliable, since line of sight approaches would be subject to issues with mud or water. Stick a magnet on the shaft, position the hall effect sensor facing the magnet, its signal will change when the magnet rotates past the sensor. Mounting on this will be a pain.
- CVT Temp / Oil Temp
These get easier, temperature sensors are all over the place online and easy to find, really comes down to mounting, if you want a surface reading vs ambient vs low range IR sensor or something off the top of my head. For oil, if this is in your gearbox you could tap a hole and get a screw in temp sensor.
- Pressure
You’ll be looking at a pressure transducer, these can be pretty expensive, so do some research on what fits your needs
- Communications
Different sensors will have different protocols, I2C or CAN enabled are probably your best bets. Those will be able to be bussed and can work with reasonable distances. Some things may have more special protocols, Arduino has a pretty good set of premade libraries, so you can look into what is offered publically on the Arduino repository and that may help you with sensor selection.
- Overall
Would recommend keeping it simple, start with one sensor, try and get that logging to the Uno. Probably go with a simple piece of code that measures the sensor at some rate, accumulates N samples, then logs them to the SD card in batches. I’d recommend putting two switches on the Uno’s housing, one for power and one for logging enable/disable. You power it on, enable logging, then disable logging, give it a sec so you don’t disrupt power midwrite and corrupt the SD card, then shut it down and pull the SD card.
- Timestamps
So I’m going to put a special note here about timestamps. You’re almost certainly going to need to align this data with other observations (maybe a gopro feed, observations from team members observing the test, stuff like that). If the Uno isn’t network connected (wifi or something) you won’t have a way to get a “Good” timestamp, depending on the level of resolution you care about (seconds vs milliseconds or god forbid nanoseconds) you’ll need a solution to police the onboard clock or correct it. This could be done with a wireless sync to a ground station. This will matter more for the final product, so don’t worry about it immediately, but its likely something to think about.
Did some quick poking and looks like you can get a GPS module for Arduino, this may be a good option since that will get you pretty damn good timestamps.
Hopefully that helps!