|
|
|
I think SU carbs are great – they're reliable, reasonably fuel-efficient and can give good performance. But their biggest drawback as far as I'm concerned is the inability to adapt them easily to a different engine configuration (e.g. free flow exhaust), without the expense of a rolling road session. Because I do a lot of engine mods on my Mini, I wanted a more flexible fuelling solution – electronic fuel injection is the only way ahead in my opinion. But being a tight-wad I wasn't going to pay for £700+ for an ECU or even £350 or whatever for a DIY Megasquirt. So I've designed my own – and it cost me about £50. I also had to buy the throttle body injector (TBI) from an Spi Mini - £55 ebay, along with a fuel pump, filter, crankshaft sensor, etc. So here's the prototype ECU: And my development lab (aka Kitchen Table): The ECU has a Variable Reluctance (VR) processing cicuit for the crankshaft sensor (from an Astra), a manifold absolute pressure (MAP) sensor, Mini Spi stepper-motor driver, throttle position sensor (TPS) input, injector driver MosFet (plus regulated supply), Lambda sensor input, engine temperature input. The microcontroller is the excellent Arduino Uno – a superb device that you can get for as little £7. And here it is fitted to the car: I rigged up a temporary fuel tank and pump for the first few runs: And here's a very short video of one of the first runs, showing how easy it is to start the engine: And a chart of key parameters from a warm start: You can see the high injector pulse width needed for cranking that quickly drops once the cranking threshold is exceeded. You can also see Lambda falling as the mixture goes from rich for starting to lean for normal idle. I should increase the damping on the MAP signal to see if I can smooth out the idle a bit more. At the moment, it basically starts the engine easily (cold, warm and hot) and allows me to rev it up. There's a consideable amount of tuning work to do so I need to permanently fit the fuel pump and either fit an injection Mini fuel tank or modify the current one to accept the fuel return. I'll develop the functionality over time but although the Arduino Uno is very good, it only has 2K RAM and I'm at the limit. I need to go up to the next size - Arduino Mega should be OK for what I want. Once I'm happy that I've got a solid solution, I'll try different throttle bodies, e.g. Jenvey or maybe bike TBI's that are relatively cheap.
|
|
Last Edit: May 3, 2015 17:56:11 GMT by bob1957
|
|
|
|
|
|
good work sir! hope mega has enough real time processing power to make a nice ecu, i've only seen it done on a diesel vw, think it was with an Uno as well, if memory serves right.
|
|
|
|
|
|
|
good work sir! hope mega has enough real time processing power to make a nice ecu, i've only seen it done on a diesel vw, think it was with an Uno as well, if memory serves right. Thanks mate. I think the Uno is using about 10% CPU time and I'm running the fuel calcs at 100Hz. Its memory that limits these Arduinos. I *think* the Mega will allow me to add auto AFR correction and possible ignition timing.
|
|
|
|
|
|
|
That's awesome, I used to have a megajolt on my mini before its engine conversion. I was lucky that a friend wrote his mini off and sold me the whole megajolt setup for £100! Will you be selling these when you've refined it a bit more?
|
|
|
|
|
|
|
10%! thats great, i've no notion about coding, but i've often wondered what made the megasquirt so bulky and expensive.
|
|
|
|
|
|
|
That's awesome, I used to have a megajolt on my mini before its engine conversion. I was lucky that a friend wrote his mini off and sold me the whole megajolt setup for £100! Will you be selling these when you've refined it a bit more? Thanks mate. I aim to get 3 or 4 PCB's made at some point in the future but mainly for my own use.
|
|
|
|
|
|
|
10%! thats great, i've no notion about coding, but i've often wondered what made the megasquirt so bulky and expensive. I think Megasquirt runs its fuel calcs a lot faster than I do at present - and its a lot more capable.
|
|
|
|
steveg
Posted a lot
Posts: 1,548
|
|
|
This is interesting. I have been considering fitting some sort of non standard ecu on our old Pug 106. I was thinking about Megasquirt but thats as far as it got. I really think the 106 would be improved if it had a better injection system even if it was still single point.
|
|
|
|
|
|
|
This is interesting. I have been considering fitting some sort of non standard ecu on our old Pug 106. I was thinking about Megasquirt but thats as far as it got. I really think the 106 would be improved if it had a better injection system even if it was still single point. I think you're right - most cars are conservatively tuned to cater for poor grade fuels. Should be pretty straightforward to fit a Megasquirt if the sensors of your 106 are all in good nick - and with a Megasquirt you'll find out pretty quickly if there's any problems lurking.
|
|
|
|
sparkyt
Posted a lot
selling stuff
Posts: 1,767
|
|
|
Wow I'd love to see the programme. I'm just learning the audrino . Started with some leds . Etc .
I'm failing on getting an input to start an out put . .
good work . Like it
|
|
|
|
|
ChasR
RR Helper
motivation
Posts: 10,188
Club RR Member Number: 170
|
|
|
Now this is the kind of stuff we like to see. That looks like some great work there! What are you doing regarding the ignition system? I take it that is a coilpack driven system? Also, do you have much experience with other ECUs etc. or are involved in the PCB trade? .
|
|
|
|
|
|
|
Now this is the kind of stuff we like to see. That looks like some great work there! What are you doing regarding the ignition system? I take it that is a coilpack driven system? Also, do you have much experience with other ECUs etc. or are involved in the PCB trade? . Thanks! Ignition is standard at present. Will aim to add programmed ignition later. I've no experience with ECUs as such but I've been working with embedded control systems for 30+ years. Nowadays, you can get PCBs made very cheaply - and all the tools to do the layout are available free!
|
|
|
|
|
|
|
Wow I'd love to see the programme. I'm just learning the audrino . Started with some leds . Etc . I'm failing on getting an input to start an out put . . good work . Like it Thanks mate! Just follow loads of examples, do lots of experiments, and it'll soon become second nature. I've been programming since before the IBM PC came out - I'll get the hang of it one of these days though!
|
|
|
|
sparkyt
Posted a lot
selling stuff
Posts: 1,767
|
|
|
Any hints on getting inputs to control outputs . . Examples etc ?
Help would be appreciated
|
|
|
|
|
|
|
Any hints on getting inputs to control outputs . . Examples etc ? Help would be appreciated Check you PM's
|
|
|
|
|
|
May 11, 2015 20:15:21 GMT
|
Made some progress on the fuel injection.... Modified the fuel tank to accept the fuel return. Copper pipe soldered in plus strain relief bracket welded on.... Fitted the pump and filter (pump sits below lowest fuel level to ensure a good head): Re-plumbed and wired the engine bay - just needs an inertia switch installed before putting the car in daily use: Gave it two runs around the block. The first run with a cold engine was great, engine responded really well. However on the 2nd run (engine fully up to operating temp) I couldn't get the revs up beyond about 3000 RPM. Clearly, the engine temperature compensation had backed-off by the time the engine was warmed-up. I made up a spreadsheet to display the average Lambda in each of the Load vs RPM cells in the fuel map (VE map). With the data logged from the 2nd run, you can clearly see the engine going lean at higher loading above about 2000 RPM. The black number in the cell is the average Lambda (in milli-volts) and the blue number underneath is the number of samples recorded in that cell. Lambda above 500 indicates a rich mixture and below 500 lean. I'd be happy to get Lambda in the range 400-600 (0.4 to 0.6 Volts). This table will be the main reference for tuning. Once I get a reasonably drivable set-up, I just need to drive the car and acquire samples in all or most of the RPM vs Load categories. Then I can adjust the VE map accordingly.
|
|
|
|
|
|
May 11, 2015 20:52:47 GMT
|
Very nice.. you could have it learn also, you've got a bit of EEPROM space on the board natively. You should have enough processing power. My fuel injection system has a pair of Motorola 6800's doing fuel and spark calculations in parallel. At 1MHz clock.
Once you go for ignition, might pay to stick a knock sensor in the loop also, as well as intake charge temperature.
--Phil
|
|
Last Edit: May 11, 2015 20:54:53 GMT by PhilA
|
|
|
|
May 11, 2015 21:04:29 GMT
|
Very nice.. you could have it learn also, you've got a bit of EEPROM space on the board natively. You should have enough processing power. My fuel injection system has a pair of Motorola 6800's doing fuel and spark calculations in parallel. At 1MHz clock. Once you go for ignition, might pay to stick a knock sensor in the loop also, as well as intake charge temperature. --Phil Hi Phil, I aim to add auto AFR correction later. Beyond that, who knows? But I need to get a multi-port solution as I want to fit EFi to my TR7. 6800? --- that takes me back, one of the first micros I'd programmed (and still among the best!)
|
|
|
|
|
|
May 11, 2015 21:23:45 GMT
|
I was only saying because you are doing similar calculations as mine does- engine speed and position off the flywheel with a couple keyed teeth, manifold pressure, throttle position, engine coolant temperature, intake charge temperature, lambda, knock (admittedly a number of those are for the spark). Intake charge can be accounted for if the lambda is operational but sans lambda, your guesstimate for a limp-home open loop situation becomes rather hit-or-miss Mine's Renix II, so the footwork is already done, I was just trying to decypher the output it provides. Mine spits out a serial stream of 33 bytes at 62500 bps, so it's doing calculation on all parameters in 0.000016 second. I know the Arduino should be able to hack it if you optimize the code, especially if you read in directly from the registers and hope for the best Good luck, you look to have gotten going real well so far. (I'm currently working on reverse engineering a Canadian 8080-based system from 1978, so yeah. I hear you). --Phil
|
|
Last Edit: May 11, 2015 21:24:21 GMT by PhilA
|
|
|
|
May 11, 2015 22:07:34 GMT
|
Hi Phil, Yes I was thinking that Lambda-based auto correction would account for intake charge temp - it'll be a bit of fun trying to get that to work though Just occurred to me that if the manufacturer had fitted an ECU to a '77 Mini, it would probably have had an 8080 or 6800 in it
|
|
|
|
|