Browsed by
Category: Uncategorized

DAQ

DAQ

So, now that I have a ton of signals that need capture, I need to tackle the data acquisition problem. I could use an off the shelf solution, but in looking for something that can do 24+ channels of 12 bit 1000hz capture, plus some digital mode capture, I am looking at $5-6k. AIM, Traq, RacePaq, Motec, etc. Sure those are well engineered solutions, but this is kids play in the data acquisition world. I worked on a system for aircraft engine controls 30 years ago that was much faster and more accurate than this needs to be.

I have a previous design that I can make work, but it is kludgy.

Here is what I am thinking: In the past I have used a variety of microcontrollers for the primary capture. It works well, but in the modern era is seems dated. There are so many choices in platform that have so much more processing power. My previous capture system used a TI ARM based processor which had plenty of horsepower but the system dev tools were convoluted. TI-RTOS works, but I really don’t need a system like that. For this design I’m thinking of using something much faster and simpler to develop for: A Beaglebone Black. The Beaglebone Black has a 1GHz ARM processor, 512MBs of RAM, and a plethora of peripherals. Best of all, it runs Linux, so many of the interfacing and use problems are already solved. I can have Wifi and Bluetooth for automatic data downloads, display interfaces, wireless development, tablet and phone interfaces, and more. I wouldn’t use the Beaglebone Black’s built in ADCs, but since it has plenty of SPI interface capability I would use external ADCs. The Beaglebone supports external boards called capes, but I’m thinking of making a larger board that would hold the Beaglebone, sort of a reverse cape. On that board I would put the analog interface circuitry, power regulation, connectors, etc.

For the ADCs I’m thinking of either the MCP3208s or the MAX146s. Both have 8 channels (So I would use 4x of them), SPI interface, 12 bit resolution, and in the case of the MAX146 a built in 2.5V reference. For the analog input section I’ll use a divider with schottky diodes for protection fed into an MCP601 single supply opamp configured as a Sallen-Key active low pass filter with unity gain. (test schematic attached) That would provide the needed input impedance from the sensors, as well as the output impedance for the ADCs. One nice thing about this setup is the diode protection doesn’t cause linearity problems in the sampling because the ADC reference is 0-2.5V, while the diode protection is from -.6V to about 3.8Vs.

I was worried a little about using the Beaglebone for the SPI communications, since the timing of those packets determines to timing of the actual analog sampling. With 32 channels at 1000hz I need 3 SPI transfer cycles per sample which would be 96000 transfers per second, which is easy over SPI. These ADCs are both capable of sample times of less than 10us, which could net about 90 sequential channel grabs per 1ms (1000hz). In reality I could run some things in parallel, and get better performance, but I don’t think it is needed.

The Beaglebone processor also as 2 PRU cores integrated into the die. These are like small 32 bit microcontrollers that can be use for offloading time sensitive interface problems. I might use one of these to do the SPI interfacing and timing, since that could enable a continuous stream to the main processor regardless of what the OS is doing.

Since I have a Beaglebone Black as well as one of the ADCs already, I’ll put together a prototype and see how well it works. I would love to hear any comments/concerns/refinements from my fellow engineers and the like.

Headers

Headers

Thanks to Jeff Perrin for adding some bungs to a new Perrin manifold for my 08 STI test car. I’m adding some new sensor elements to help with collecting test data while I’m in there changing turbos. I’ll have real time logging of:

Oil Pressure from 2 locations
Oil Temp
Fuel Temp
Fuel Pressure
Coolant Pressure
Coolant Temp
Pre Intercooler Post Compressor Temp
Pre Intercooler Post Compressor Pressure
Post Intercooler Temp
Post Intercooler Pressure
Pre Compressor Temp
Pre Compressor Pressure
Compressor Wheel Speed (EFR8374)
Exhaust Gas Back Pressure Pre Turbine
Exhaust Gas Back Pressure Post Turbine
Exhaust Gas Temperature for each Cylinder (4x)
Exhaust Gas Temperature Post Turbine
AFR Pre Turbine
AFR Post Turbine
Cylinder Pressure via Optrand Optical Sensor
Cylinder Head Temperature
High Speed Crank Sensor Measurement
Wideband Knock Sensor with spectral analysis
Antimatter-Matter Interaction Sensor with Dilithium Crystal Substrate (ok I made that one up)

as well as all of the usual ECU measured stuff.

Anything obvious I am missing?

Cars

Cars

A few picture from the Concours.

Cars

Cars

The usual lunch crowd…

RADs

RADs

I took a few readings with my Geiger counter while flying down to California today. At ground level (in Hillsboro), the level was at ~ 0.11 usv/hr, which is in the typical background range if not a bit low. At 20,000 feet is was 0.64 usv/hr (5.8x) , and at cruise at 42,700 feet it was 3.41 usv/hr (31x). Those are all still relatively low doses, although if you were exposed to 3+ usv/hr for your entire lifetime, that would be a significant increase in risk.

GTX

GTX

Awesome, and then more awesome.

Solar

Solar

Solar! System installed today, inspection tomorrow, then POWER! 34 320watt panels, S280 Microinverters, 10.8kW.

Machines

Machines

Did some cleanup and re-organization in my office. Lots of screen real estate now! Matthew R. Wilson should be happy as only one of those machines is Windows.

EFR

EFR

Yep, it fits just right. EFR8374 where the old EFR7670 was.

EFR

EFR

And for the Subaru, a bit of ‘while you are there’… I have been running an EFR7670 for a couple of years now, so I decided it was time to jump up to an EFR8374. I drilled out the compressor cover so I could move the compressor wheel speed sensor over. I’m also going to switch to a new set of larger runner headers, and add a few more sensors while that is going in.