Help build an ECU? - Ferrari Life
Reply
 
LinkBack Thread Tools Display Modes
post #1 of 158 Old 05-05-2011, 04:43 AM Thread Starter
Owner
 
mk e's Avatar
 
Join Date: Jun 2010
Location: PA, USA
Ferrari Life Posts: 4,439
Help build an ECU?

Does anybody here have any programming or hardware design experience and an interest in designing/building an ECU?

I’ve had a little side project in start/stop mode for a while now and I’d like to get it into start again. The idea is a good open source/ open design ECU. I‘ve got a couple people signed up to help but more is always better.

It will be based on a freescale MPC5554 processor and will do 12 fuel/12 spark outputs but we’re also considering a cheaper version that will do a total of 12 fuel/spark outputs using a MPC5634M processor…they would share most of the design and code and cost like $500/$250 respectively to put one together.

Any interest in helping?
mk e is offline  
Sponsored Links
Advertisement
 
post #2 of 158 Old 05-05-2011, 05:14 AM
nhw
 
Join Date: Jul 2010
Ferrari Life Posts: 32
I've done some embedded software design and implementation in a prior life; mostly aerospace stuff though (although actually using Power architecture hardware not that dissimilar from the MPC5554; MIL-STD-1553B rather than CAN bus!). This sounds like an interesting spare time project.
nhw is offline  
post #3 of 158 Old 05-05-2011, 05:24 AM Thread Starter
Owner
 
mk e's Avatar
 
Join Date: Jun 2010
Location: PA, USA
Ferrari Life Posts: 4,439
Quote:
Originally Posted by nhw View Post
I've done some embedded software design and implementation in a prior life; mostly aerospace stuff though (although actually using Power architecture hardware not that dissimilar from the MPC5554; MIL-STD-1553B rather than CAN bus!). This sounds like an interesting spare time project.
Excellent!

We have a forun I'm trying to get people to actually use instead of emailing everything

OPENECU.INFO COMMUNITY • Index page

and a googlecode site
5554openecu - 5554/5567 is an open source/open desing ECU using the freescale MPC55xx processor - Google Project Hosting

although both sat unused for some time I think we're rolling again....finally.

Most of the stuff on the forum is from VERY early and doesn't make much sense, but I'm trying to get some relavent stuff their and get the others to post so it stays current.
mk e is offline  
 
post #4 of 158 Old 05-06-2011, 08:57 AM
Owner
 
ferraricyprus's Avatar
 
Join Date: Jan 2010
Location: UK
Ferrari Life Posts: 121
Hmm. Very interesting project. I have a fair bit of mapping experience and have an eprom burner, so will contribute when time allows.
ferraricyprus is offline  
post #5 of 158 Old 05-06-2011, 10:02 AM Thread Starter
Owner
 
mk e's Avatar
 
Join Date: Jun 2010
Location: PA, USA
Ferrari Life Posts: 4,439
Quote:
Originally Posted by ferraricyprus View Post
Hmm. Very interesting project. I have a fair bit of mapping experience and have an eprom burner, so will contribute when time allows.
Great.

I'm trying to lock down specs for 1st gen hardware in the next week or so, so if you have anything for the wish list now's the time to get over to the ECU forum and ask.

Edit...i see you've alread registered, great! (your account is now active BTW)
mk e is offline  
post #6 of 158 Old 05-26-2011, 08:44 AM Thread Starter
Owner
 
mk e's Avatar
 
Join Date: Jun 2010
Location: PA, USA
Ferrari Life Posts: 4,439
There is some good progress on this project I think….and a couple small set-backs.

We are starting with what’s called an evaluation board which is a processor with some support hardware so firmware can be tested without needing a real ECU board. The Eval kit we’re using has what they call an SOM or System On a Module that has the processor and the most basic hardware then plugs on to the full Eval board and once it seems to be working correctly will plug onto our ECU board and become part of the ECU.

By doing it this way we have a known good processor board so if the software won’t run we know for sure the problem is the software. We also can work on the input/output board design and testing separate from the software and processor because there is a pin for any signal that passes between the 2 boards and that means a test signal can easily be applied to the pin to test the circuits. Long term we’d like to make 1 board with everything, but for now this seems like a good approach.

At the moment we think the processor is now “reading” the crankshaft and cam positions and generating the fuel and spark pulses at the correct times. The processor we are using, MPC5554, has a sub-module (the eTPU - enhanced time processing unit) that is specially built for tasks like this and once started runs with no main processor help required.

Now come the hard part – telling the eTPU how much fuel and what spark timing to use. There is an common memory location that the main processor can sent this information to, then the eTPU will read it and make it happen until it’s told otherwise. Right now we just threw numbers in the memory to test the eTPU now we need to get the main processor to actually put the right numbers in the memory… and a whole lot of stuff can go into that but it’s moving along.

The hardware though is another story…..we have an issue with not being about to make up our minds what we’re doing and just how flexible to make the design which makes it really hard to actually do anything. I think there might be a plan now finally.

The biggest hang up is over some nice chips that are on the market that are designed specifically for automotive stuff so they seem like exactly what we should be using and we had a guys who was helping that work’s in the auto ECU industry and was really pushing to use them…..but he’s wandered-off and now that the rest of us are trying to pick-up the pieces and get back rolling we’re seeing what a frikin nightmare these things are to work with.

For example the slick 4 fuel/4 spark driver chip doesn’t have the 8 ins and 8 outs plus power and ground, it has 29 pins and wants a serial interface connection to the main processor. It does lots of diagnostic stuff and have several alternate functions…..but mostly we’d just like then to drive injectors and coils. The others are the same all consuming lots of processor pins and adding gobs of traces to the board with no apparent benefit.

By kill off the fancy chips and going to basic driver circuits we can just plain do more….like run 12 coils and 24 injectors for a person like me who has a 12 cyl engine and wants 2 sets of injectors to optimize both the high power and low power set-ups, but then make those drivers available for boost control, or intercooler pumps or whatever for someone who doesn’t want all those injectors. I think we are also going to make the board in 2 connector and 3 connector version so guys with simpler engine set-up don’t need a big ECU board with room for all kinds of stuff that they’ll never use.

Progress.
mk e is offline  
post #7 of 158 Old 06-21-2011, 10:38 AM Thread Starter
Owner
 
mk e's Avatar
 
Join Date: Jun 2010
Location: PA, USA
Ferrari Life Posts: 4,439
There has been a whole lot of progress on this in the past few weeks.

We picked a case…which I then hotrodded to remove the silly little 60 pin connector and replace it with a 112 pin connector.

I think we’ve settled on all the basics for all the input/output circuits and how many of what there is going to be….and I got my place for 12 ignition, 24 injectors on the list and 10 more outputs for whatever the mood moves me on any particular day (it’s DIY so you only install what you want and can add more anytime…as long as there is a place on the board)

Now the actual input/output board can be designed and that work has begun. At first we are going to use a processor board that plugs into the I/O board…this lets the software development be done before final hardware is ready and also the SW guys know they have a known good board so any issue is a SW issue. Then the known good SW & processor can be plugged into the I/O board and we’ll know any issue is on the I/O board.

When that is all working it will be a perfectly good ECU that fits in the case, but the next step will be to put everything on 1 board to reduce the cost for anyone who wants to build one. Doing it on 1 board will cut the price from like $500/$600 to $250/$350, both of which are dirt cheap.

The SW is rolling along nicely and the development board set-up now appears able to read crankshaft rpm and deliver spark and fuel accordingly….at a very basic level, but this is the “core” of the ecu and it now works, everything else is an add-on. The guy writing the code has done a really nice job so far, it’s very modular so plugging in new code functions is pretty straightforward and most things can be written and tested independently before adding them to the big project file. It’s so easy in fact that even I was able to write something that works

Next up for me is to get my development board connected to an “engine simulator” I bought and my scope. The simulator is a simple little board that can put out signals similar to a crankshaft, throttle, Air temp and pressure, ect. You can turn a knob to cycle each signal through its range then see what the ECU output is on a scope to be sure everything works as intended. The guy who’s been writing the code has some of this build on to his board (his board will not fit in the case), but mine doesn’t have this stuff so I need to do some wiring before I can be much more help with the development/testing
mk e is offline  
post #8 of 158 Old 06-21-2011, 02:58 PM
Owner
 
bretm's Avatar
 
Join Date: May 2002
Location: New Jersey
Ferrari Life Posts: 2,152
Cool. Good to hear that it's moving along.
bretm is offline  
post #9 of 158 Old 06-21-2011, 03:26 PM
Owner
Elite Member
 
cribbj's Avatar
 
Join Date: Apr 2010
Location: Houston
Ferrari Life Posts: 2,197
Mark, if you happen to be looking for a field test of this ECU on a real motor, I have both a BMW V12, and a supercharged Lexus V8 that should be on the engine dyno sometime in the coming months (hopefully before the end of the year.)

Although it'll have more injectors and coils, the V12 should be simpler to control, it's NA and will have ITB's, and won't have an idle air valve. We'll try to do our fuel mapping with a MAP signal from a little accumulator and the TPS. The AEM EMS will supposedly allow us to do a fuel map based on both. I'm skeptical, but we'll see.

The V8 will have fewer cylinders, but will require IAC, boost control, meth injection control, and probably some other doodads that I've forgotten.

'99 550, Rosso Corsa / Nero, S/N:114654, Assy: 31836, Engine: 52084

High mileage, low compression, and missing on a few cylinders.....just like my cars.

Maranello Skunkworks Team Member
cribbj is offline  
post #10 of 158 Old 06-22-2011, 04:00 AM Thread Starter
Owner
 
mk e's Avatar
 
Join Date: Jun 2010
Location: PA, USA
Ferrari Life Posts: 4,439
Quote:
Originally Posted by cribbj View Post
Mark, if you happen to be looking for a field test of this ECU on a real motor, I have both a BMW V12, and a supercharged Lexus V8 that should be on the engine dyno sometime in the coming months (hopefully before the end of the year.)

Although it'll have more injectors and coils, the V12 should be simpler to control, it's NA and will have ITB's, and won't have an idle air valve. We'll try to do our fuel mapping with a MAP signal from a little accumulator and the TPS. The AEM EMS will supposedly allow us to do a fuel map based on both. I'm skeptical, but we'll see.

The V8 will have fewer cylinders, but will require IAC, boost control, meth injection control, and probably some other doodads that I've forgotten.

Let’s see how quickly it moves along and maybe this will work out. There is still a lot of big stuff to be programmed and then even more little stuff and then there is the question of the user interface tuning software.

In the very short term we plan to use one on the MegaSquit turners because we know how it’s talking to the ECU so we can intercept and redirect the signals….but a MS is REALLY limited and the control me5tod isn’t all that well thought through so the stuff the tuner is looking at in many cases is probably not what we want it to be looking at. For example MS tunes fuel with VE tables and does a ton of pointless math in the ECU as a result. We can use their VE table as a kind of % injection time but the table will say VE and will only be 12 x 16 instead of the 32x32 or maybe the motec 22x 40 we actually want. Then there is no provision at all for the individual cylinder tuning maps. We are speaking to the developers of 2 of the MS tuners about support for our ECU but they really want to see running engines before they are will to offer much support so we’ll see……we may be writing our own.

Form MPA on ITBs the accumulator/plenum works I guess but the signal is about ½ what you’d see on a plenum setup. I worked with some of the guys on the ECU project to design this:

http://5554openecu.googlecode.com/files/multi_map.zip

It’s a board that will mount up to 12 pressure sensors and sends the lowest pressure reading (the cylinder that is active) to the ECU as the MAP signal. It can be wired for either 12V or 5V supply, ground, signal so the ECU will think it’s a plain or MAP sensor, but you should get a much strong signal. You have to assemble it through, you order the PCB for batchPCB or anyplace you chose, but batch PCB has the files and will make just 1, if you are looking at 10+ it would be a lot cheaper to use a different supplier, but for 1 batchPCB is the place. I think we put up 2, 4, 6, 8, 12 sensor versions. You don’t need to connect all the sensors so a 12 cyl board would work fine on a 4 cyl engine but it costs about $20 per sensor to build so you only want to put on the number of sensors that you need. When you get the 12 cyl in the dyno I could lend you my 12 cyl board to test if you want. I’m curious to see the output on a running engine…..I’m thinking 4 or 6 cylinders might be plenty to have a clean signal but I didn’t take any chances and built a 12 sensor version.

The motec way to tune ITBs is to just select TPS load then use a MAP in place of barometric correction and you have it. At up near WOT the TPS dominates, at Idle/low power the MAP dominates and you have the best of both worlds. That should work on any ECU but I haven’t tried it with anything but a motec. Motec also lets you build a 4D tuning amp if you want more control than the simple method gives. The ECU I’m working on will do both of these things as well when it’s finished….or at least the plan is that it will.
mk e is offline  
post #11 of 158 Old 06-26-2011, 06:24 AM Thread Starter
Owner
 
mk e's Avatar
 
Join Date: Jun 2010
Location: PA, USA
Ferrari Life Posts: 4,439
I think I came up with a slick way to do the tuning tables.

The fuel table stars life as all zeros and the engine starts and drives before you've done any tuning at all.....how easy is that?

mk e is offline  
post #12 of 158 Old 06-26-2011, 07:57 AM
Owner
Elite Member
 
cribbj's Avatar
 
Join Date: Apr 2010
Location: Houston
Ferrari Life Posts: 2,197
Now THAT'S would be slick! The only other way I like to see fuel tables is when they're filled in with AFR's, rather than with VE's or dimensionless numbers relating to injector durations.

BTW, how are you calculating the timing events within this ECU? Is everything based on counting the actual number of crank gear teeth between the cam triggers?

Or is the crank signal just more of a speed/timing reference, and it's the cam trigger that starts everything, and the subsequent events are "timed" rather than being based on number of teeth?

'99 550, Rosso Corsa / Nero, S/N:114654, Assy: 31836, Engine: 52084

High mileage, low compression, and missing on a few cylinders.....just like my cars.

Maranello Skunkworks Team Member
cribbj is offline  
post #13 of 158 Old 06-26-2011, 08:53 AM Thread Starter
Owner
 
mk e's Avatar
 
Join Date: Jun 2010
Location: PA, USA
Ferrari Life Posts: 4,439
Quote:
Originally Posted by cribbj View Post
Now THAT'S would be slick! The only other way I like to see fuel tables is when they're filled in with AFR's, rather than with VE's or dimensionless numbers relating to injector durations.

BTW, how are you calculating the timing events within this ECU? Is everything based on counting the actual number of crank gear teeth between the cam triggers?

Or is the crank signal just more of a speed/timing reference, and it's the cam trigger that starts everything, and the subsequent events are "timed" rather than being based on number of teeth?
A AFR table is hard to do from a control standpoint because the sensor just isn't all that accurate and you you need to tune/map the air flow before the AFR can be right....so you have to tune before you can tune.

I'm going to use what you hate....a % which will be the % difference your engine is from the "model" engine. The model will be something simple or you can import a better model from a simulator progra then when you finish the tuning session you click "optimize" and the model will be recalculated to get the tuning cells back to as close to zeros as possible.

Another kind of slick thing that I think will also be done is to have the tuner display the expected hp/torque curves. The model that is driving the tuning is basically the engines torque curve, so dispaying it is no problem, and it you have torque and rpm you also have hp.
mk e is offline  
post #14 of 158 Old 06-26-2011, 11:33 AM
Owner
Elite Member
 
cribbj's Avatar
 
Join Date: Apr 2010
Location: Houston
Ferrari Life Posts: 2,197
Quote:
Originally Posted by mk e View Post
I'm going to use what you hate....a % which will be the % difference your engine is from the "model" engine. The model will be something simple or you can import a better model from a simulator progra then when you finish the tuning session you click "optimize" and the model will be recalculated to get the tuning cells back to as close to zeros as possible.
And that percentage adjusts what, the AFR predicted, based on injector pulse duration, vs the AFR measured?

I hear what you're saying about the AFR tables being difficult to do, and require tuning before tuning, but at the end of the day, it's the only real feedback parameter we can actually measure. It's also probably more intuitive (for the non-tuners here) to look at a table of AFR's and visually see where they need to be tweaked.

'99 550, Rosso Corsa / Nero, S/N:114654, Assy: 31836, Engine: 52084

High mileage, low compression, and missing on a few cylinders.....just like my cars.

Maranello Skunkworks Team Member
cribbj is offline  
post #15 of 158 Old 06-26-2011, 02:07 PM Thread Starter
Owner
 
mk e's Avatar
 
Join Date: Jun 2010
Location: PA, USA
Ferrari Life Posts: 4,439
Quote:
Originally Posted by cribbj View Post
And that percentage adjusts what, the AFR predicted, based on injector pulse duration, vs the AFR measured?

I hear what you're saying about the AFR tables being difficult to do, and require tuning before tuning, but at the end of the day, it's the only real feedback parameter we can actually measure. It's also probably more intuitive (for the non-tuners here) to look at a table of AFR's and visually see where they need to be tweaked.

The problem is alway that what you want to control is veyr hard to mearsure....like AFR. When you work with AFR and it's sensor you have something like 1/100 to 1/1000th the control of the injector pulse that you get by controling pulse width directly. AFR is just not a very good way to good even though it seems the most straightforward.

To the point of mearsuriing AFR.....whats it the right number any way? I know at low power what to use generally...big cams make the number a big tough to pin down though and at high power....well...only the dyno knows.

I'll leave it with I understand why you like it, but I don't know how to do it well and I think you'll like what I have in mind once you get the hang of it.

Last edited by mk e; 06-26-2011 at 02:18 PM.
mk e is offline  
post #16 of 158 Old 07-12-2011, 09:58 AM Thread Starter
Owner
 
mk e's Avatar
 
Join Date: Jun 2010
Location: PA, USA
Ferrari Life Posts: 4,439
More progress here.

I got my board wired up to the engine simulator and the "ECU" reading rpm form the simulated crank/cam sensors.

The firmware guy got primitive tuning tables working before heading out on vacation. When he gets back in a couple weeks he's expand the tables to a real size and get the processor reading the rest of the sensors.....and delivering real fuel and spark pulses (it does fuel and spark now to fixed values)

This still looks on track to test on an engine in Sept.

The problem looks like the tuner (user interface)....hopefully we can get something very basic put together while the real tuner is being built.
mk e is offline  
post #17 of 158 Old 07-15-2011, 06:55 AM
Owner
 
ferraripilot's Avatar
 
Join Date: Jun 2010
Ferrari Life Posts: 382
I really like the individual MAP sensor deal you have going. Most suggest with multiple runner applications to simply pipe all the runners to a plenum to smooth out the signal but it is still never really produces a solid kPa reading. I've decided to go ahead and use the MS ignition only version which is the MJ (megajolt). While the ignition map is only 10x10 it should be plenty for my simple application. The MAP signal does concern me though....
ferraripilot is offline  
post #18 of 158 Old 07-15-2011, 09:11 AM Thread Starter
Owner
 
mk e's Avatar
 
Join Date: Jun 2010
Location: PA, USA
Ferrari Life Posts: 4,439
Quote:
Originally Posted by ferraripilot View Post
I really like the individual MAP sensor deal you have going. Most suggest with multiple runner applications to simply pipe all the runners to a plenum to smooth out the signal but it is still never really produces a solid kPa reading. I've decided to go ahead and use the MS ignition only version which is the MJ (megajolt). While the ignition map is only 10x10 it should be plenty for my simple application. The MAP signal does concern me though....

Careful there.....I know the price seems good but the B&G stuff is generally total crap. I know dozens of people running aftermarket ECUs and spark units but I don't know anyone using a B&G product. I do know a couple that have tried B&G stuff........

I had a brief exchange with Bruce (the B in B&G) for the first time a week or so ago and he assured me the reason I didn't understand why they do things the way they do is because I don't understand the physics behind how engines work.

Now, the really funny thing here is the idea for multiple MAP sensors was had by the MS crowd first.....they just did what they do and made a total mess of it.

The version my team did on the other hand looks like it belongs on a performance car I built and bench tested my board over a year ago I think, but it will finally be live tested for the first time on Sean's (luckyDynes) 308 in a couple weeks probably.

Last edited by mk e; 07-15-2011 at 09:18 AM.
mk e is offline  
post #19 of 158 Old 07-15-2011, 01:53 PM
Owner
 
ferraripilot's Avatar
 
Join Date: Jun 2010
Ferrari Life Posts: 382
Quote:
Originally Posted by mk e View Post
Careful there.....I know the price seems good but the B&G stuff is generally total crap. I know dozens of people running aftermarket ECUs and spark units but I don't know anyone using a B&G product. I do know a couple that have tried B&G stuff........

I had a brief exchange with Bruce (the B in B&G) for the first time a week or so ago and he assured me the reason I didn't understand why they do things the way they do is because I don't understand the physics behind how engines work.

Now, the really funny thing here is the idea for multiple MAP sensors was had by the MS crowd first.....they just did what they do and made a total mess of it.

The version my team did on the other hand looks like it belongs on a performance car I built and bench tested my board over a year ago I think, but it will finally be live tested for the first time on Sean's (luckyDynes) 308 in a couple weeks probably.

I will keep tabs on him doing that. Many thanks for the advice there!
ferraripilot is offline  
post #20 of 158 Old 07-18-2011, 03:24 AM Thread Starter
Owner
 
mk e's Avatar
 
Join Date: Jun 2010
Location: PA, USA
Ferrari Life Posts: 4,439
Quote:
Originally Posted by ferraripilot View Post
I will keep tabs on him doing that. Many thanks for the advice there!
Another thought is that any ecu can be used for spark only. You could grab a used haltech e6K or E6x which have up to 4 ignition outputs for probably a few 100 dollars and have something that works good.

The e6k is the older one but still has 16x16 maps, the X is 32x32

or depending on you projects timeline my 5554 project will be followed in very short order by a 5634 project which will be 8spark/8fuel (or maybe 16 ) and be like $150-$200 to put together and will drive the coils directly so no $50-$100 a piece modules to buy.
mk e is offline  
Reply

Thread Tools
Show Printable Version Show Printable Version
Email this Page Email this Page
Display Modes
Linear Mode Linear Mode



Posting Rules  
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

 
For the best viewing experience please update your browser to Google Chrome
Copyright 2012 ONE Media, Inc.
FerrariLife is independently run with no affiliation with Ferrari SpA
Ferrari for Sale | Maserati for Sale