Settings

Theme

Speeduino – Arduino based engine management

github.com

121 points by canbus 3 years ago · 73 comments

Reader

technothrasher 3 years ago

I had some fun a few years ago developing a replacement circuit for Ferrari 308/Mondial ignition ECUs, and then subsequently the ones for the 328/Mondial 3.2/Testarossa cars. It was interesting to see how crude but still effective the original circuits from the 1980's were, but also how much polish I could give to it while retaining form/fit/function compatibility, using an ARM Cortex-M0 and other modern ICs available to me.

One of the biggest updates I was able to do was to add a much more rugged power supply. The original boxes get fried easily by dirty jump starters, pulling the alternator while running, etc. It was pretty easy with the components available now to make a new circuit that protects from all that.

The most interesting thing to me was that when I went to a more modern ignition map rather than the crude 8 stepped curve they had originally implemented, while testing showed it produced more power and better emissions, people beta testing for me reported it felt 'too smooth, less fun'. So I went back to the original crude steps <shrug>.

Anyway, it was an engaging project that taught me a lot about engine ignition, and I've now sold about 100 boxes and helped keep these old classics on the road.

  • vctrnk 3 years ago

    I'm still looking for an open ECU focused only on old, carbureted cars. Projects like Speeduino, rusEFI, MegaSquirt, etc. are wonderful, but I have no use for them because they're more geared towards fuel-injected engines (though some do have ways to run injector-less).

    Case in point: I have a Renault R5 GTL with a Renix pseudo-ECU module [1] taken from a Renault R11 TX, along with its camshaft, head, double barrel carb and other bits. It has inputs only for manifold vacuum & crankshaft sensor (some support a knock sensor, mine does not). A crude ROM map is applied to the advance curve from just those two parameters. It works really well, but that's it, no way to change or fine-tune anything.

    > while testing showed it produced more power and better emissions

    A customizable "ECU" similar to the Renix approach that does EXACTLY this, would be a godsend to me (and also my local old Fiat/Lada/you-name-it heads). At these small displacements, we just don't care how the engine sounds: every HP gained is a win.

    [1] http://boursinp.free.fr/pdgdiag2.htm

    PS. Yes, I know an 123ignition dizzy is what I need, but they're way too expensive - and proprietary. Where's the fun in that?

    • technothrasher 3 years ago

      Electromotive sells a waste spark system they call "XDi" that seems to be the go to replacement ignition system for the earlier carborated Ferrari folks. Perhaps something to look at if you haven't already?

      > and also my local old Fiat/Lada/you-name-it heads

      If you've got any Fiat friends who have a car with a Digiplex ignition system that needs a replacement, my ignition units will work with many of them as well, as the Fiat units are basically identical to the Ferrari units but with different curves in them. I've never actually sold a unit to a Fiat customer, but I do have curve information on several Fiat and Lancia cars. The exterior boxes are 100% identical, and I've used some of the Fiat boxes as cores before (I use the old boxes to make the new units, as sandcasting new replacement aluminum boxes would be way too cost prohibitive)

      > 123ignition dizzy

      I've heard good things about those distributors, but I've never played with one myself. I've used the Petronix solid-state triggers to replace points in a distributor plenty, but several of my mechanic friends now use the 123 ignitions instead.

      • dicknuckle 3 years ago

        Don't even need Pertronix. You can use a TFI module from 1990's Ford vehicles and trigger it directly from the points distributor, or build a simple circuit with 1 transistor to invert the signal and trigger an HEI ignition module.

        • technothrasher 3 years ago

          This is true, but the Pertronix units are cheap, easy to install, easy to remove and put points back in, and readily available. The downside I've found from them is that their reliability isn't perfect, but they're definitely better than points!

          • dicknuckle 3 years ago

            An OEM TFI or HEI is even cheaper and more reliable. If you splice everything with bullet connectors and keep the points coil with you, it's the same thing to go back to points, with no tools.

    • bayindirh 3 years ago

      There's at least one Speeduino based model aimed at carbureted cars:

      https://wtmtronics.com/product/carbumate/

    • geocrasher 3 years ago

      Check out this guy. He built what calls a "carb cheater". It's a Chevy Idle Air Controller (IAC) from a TBI setup, and is essentially a very controlled vacuum leak. Using it, he's been able to get some pretty impressive feats done. Might be the level of hackery you're looking for. It doesn't do timing, but this is the right kind of tinkering you're looking for, I think.

      https://www.youtube.com/watch?v=FwhMz2kR4pw

    • rainbowzootsuit 3 years ago

      You can use a single injector at the intake—Throttle Body Injection (TBI)—to replace the carburation metering with a fuel injector. A lot of domestic manufacturers did this for a time when they were struggling to convert to EFI.

      For the MegaSquirt (at least) the default metering is speed-density which sounds like what your Renix is, and this is the minimum needed to run the MS, unless alternatively you go for Alpha-N fuel mapping.

      https://www.holley.com/blog/post/fuel_injection_fundamentals...

  • camhenlin 3 years ago

    I'm currently working on replacing the factory KJet on a 83 308 QV engine that's been swapped into a 77 308 GTB to a MegaSquirt 3 unit, with coil on plugs from a newer Corvette. Full fuel and ignition mapping control! It's been relatively straightforward so far, someone even makes a crank trigger setup for these cars, I've mostly just worried about keeping the work tidy. I am planning on adding a Rotrex C38-71 supercharger once the modern fuel injection conversion is complete.

    • technothrasher 3 years ago

      Converting the 308 to full MPI is a great project, and I've seen some folks who have done really nice work in that area. Supercharging/Turbocharging them is also a fun project, but quite a bit more work!

  • Zemtomo 3 years ago

    Just to be clear: you build an engine controller with a normal arm cortex-m0?

    And if this thing breaks the engine just do nothing?

    Did you build any hardening or redundancy into it?

    • technothrasher 3 years ago

      If the ignition unit dies, the car will just turn off. I did add the power supply hardening, am using automotive rated components, and I'm actually able to ignore one of the three engine speed/TDC sensors in the car upon failure and still run, but other than that no redundancy. The original boxes do not have any redundancy either, so I'm still providing a "like OEM" solution.

      • bayindirh 3 years ago

        I know at least one Ford ECU (1996 Ford Escort ZETEC) which has a limp-mode backup controller if the main ECU processor dies, so no, at least some ECUs have redundancies inside.

        • technothrasher 3 years ago

          Oh, I'm sure a lot of engine ECUs have redundancies, probably most at this point. I was speaking toward the Magnetti Marelli Digiplex ECUs from the 1980's specifically. They have no redundancy.

      • Zemtomo 3 years ago

        Cool to read about this.

        I'm in Munich close to Bmw etc and whenever I did something with automotive it would say 'automotive grade components '.

        I would not have assumed this would just work.

        Is this also connected to can? Or is this only for old cars? So what inputs does it use?

        • technothrasher 3 years ago

          It is only for direct replacement of the OEM ignition units on these Ferraris. The cars pre-date any kind of diagnostic bus. Although some cars of the era did have at least some flash code based diagnostics, the Ferraris really had nothing until the 348 came out in 1989.

    • Gordonjcp 3 years ago

      Why would it need hardening or redundancy?

      The original system hasn't got any.

      • technothrasher 3 years ago

        I definitely gave hardening and redundancy some thought when designing. Just because the originals didn't have it doesn't mean it wouldn't be a nice thing to add. So I think it's a fair question to ask. But I decided it was mostly impractical for my design goals and price point.

      • Zemtomo 3 years ago

        My experience with cars is not very deep but I did hear a lot about redundancy, isolated systems, real time requirements and automotive grade components.

        Also I would say that controlling the ignition is very critical to a car.

        • technothrasher 3 years ago

          Those are all important, but modern improvements. In the 1980's electronic management of engine systems was still very new to the scene and so most of the systems are still pretty basic.

          > Also I would say that controlling the ignition is very critical to a car.

          Indeed.

        • Gordonjcp 3 years ago

          Yeah, there's none of that in car ECUs.

          If something happens to the system that controls the ignition, it either runs poorly or stops altogether. No biggie.

  • lemmiwinks 3 years ago

    > while testing showed it produced more power and better emissions, people beta testing for me reported it felt 'too smooth

    How hard would it be to made that user-selectable? Because I would guess that some would prefer it that way while driving in the city.

    Can you send CAN bus commands to the ECU?

    • technothrasher 3 years ago

      I could have made a lot user selectable, added bluetooth connectivity (or CAN, I suppose), allowed uploaded maps, etc. But I wanted to concentrate on keep it simple plug-and-play for two reasons. First, the majority of people who own these cars don't want to fiddle. Their car died and they want to just swap out the unit and go. Second, I had some trepidation about the Clean Air Act of 1970, which basically says "don't screw with emissions". If I made it too easy for people to "play" with ignition maps, I was worried I'd be in violation of that law.

  • ilyt 3 years ago

    Was there anything special in the cars that made off the shelf aftermarket ECUs not work with them ?

    • technothrasher 3 years ago

      No, off the shelf ECUs will work. But because it is a mechanical fuel injection system on these cars, most of the applicable off the shelf ECUs are designed to copy an old two spring distributor system, so you'd lose a lot of the ignition map. Also, for any off the shelf ECU you'd have to hack into the wiring harness, because the OEM units use a proprietary 11-pin connector which is unavailable anywhere. I had to pay about $5000 to get a custom run of them made. A lot of people don't want to hack into their car because it lowers the value. There are definitely people who have hacked these cars with standard ECUs though, even going full electronic MPI fuel injection with things like MegaSquirt.

  • rainbowzootsuit 3 years ago

    I definitely have no need for this, but do you have anything published about the project?

rainbowzootsuit 3 years ago

Shout-out to the OG of open and DIY engine management systems: MegaSquirt.

https://megasquirt.info/history/

http://www.megamanual.com/MSFAQ.htm

I participated in the Yahoo group where the early development of this happened and had a car that my friend and I retrofitted. Bowling and Grippo deserve all the credit due for making this in a free and open spirit.

The original way one made the kit is to order a board in a group buy, and import a BOM .csv file to digikey to put together your own parts kit. It looks like you can mostly still do the same today.

  • geocrasher 3 years ago

    I got interested in MS and ended up doing a deep dive on fuel injection in general, learning the different types (TBI, MPI, etc) and the different sensors involved (MAP vs MAF and the like) and really just soaking it all in.

    Around that time a friend was having car problems. He described the symptoms to me. I looked up the type of fuel injection used on that car, which sensors it used etc, and recommended they replace a specific sensor, without ever having even seen the car- all based on my knowledge from Megasquirt. I found out later that it worked, the engine ran much better. It's amazing what a bit of open source knowledge can do :)

  • ehnto 3 years ago

    I have never used a megasquirt but I was always rooting for them. We also had an underdog here in the form of Nistune, it was and still is just a bloke in his garage.

    I have to support my locals though, Haltech and Link. They have a recent video on the Haltech YouTube channel of a tour of their facilities. It's no Toyota factory line, but feels very pragmatic and I love that they still do it in house.

Matrix89 3 years ago

I've used to run my it in my miata, until I've moved to Haltech. Given what it's worth speeduino is a killer in terms of price to performance. IIRC I've moved because speeduino being based on ATMega, doesn't allow for high resolution tables, and overall it's quite basic. My friend used to run megasquirt and while it had more features according to him megasquirt was harder to setup right than speeduino

  • lubesGordi 3 years ago

    How did you learn how to tune (fuel maps, timing, etc)? I was kind of hoping the speeduino docs would have something in there, alas "it does not cover advanced engine tuning, fuel / ignition strategies etc".

    • westmeal 3 years ago

      I can send you some video seminars from this company called high performance academy. They have these paid courses and honestly they've got a lot of free shit on youtube too that is helpful for tuning your VE tables and how to come up with timing figures.

    • rainbowzootsuit 3 years ago

      Not sure on speeduino, but for Megasquirt, you would start with a best guess fuel map based on engine displacement. These are data that can be shared around.

      Then, to tune precisely to the engine, you datalog the oxygen sensor or fuel ratio sensor in closed-loop and process that data to refine the fuel map.

      I'm harking back to Megasquirt 1 here so things might be a little different now.

      • lubesGordi 3 years ago

        So does the best guess basically just mean estimating a fairly rich mix at first? Then for tuning are you trying to lean it out to the point you start pinging then back off?

        • rainbowzootsuit 3 years ago

          Yes, sorry to be obtuse.

          The MegaSquirt measures as its most basic inputs Manifold Absolute Pressure (MAP) and engine speed (RPM) and uses a Volumetric Efficiency (VE) [1] in a lookup table to calculate the fuel injection pulse width in order to combust at a stoichiometric air:fuel ratio (14.7g air:1g fuel) or maybe a bit rich (<14.7:1). A VE <100% is implied by all engines under vacuum because their displacement is constant while the atmosphere in the manifold is at a reduced density. Also good add an inexpensive intake air temperature sensor to adjust air density.

          An oxygen sensor in the exhaust stream will "switch" between a lean signal —approximately 0.1 volts—and rich signal—approximately 0.9 volts. This acts as feedback to the engine management to add a correction to the theoretical VE.

          More advanced is a "wide band O2" or "lambda" sensor that measures the air/fuel ratio over, as the name implies, a range of air/fuel ratios rather than just a nearly binary output at stoichiometry.

          Many engine management systems use a Mass Airflow Sensor (MAF) to directly measure the mass of air taken into to the engine through a single point in the intake air piping and don't need to know much about the details of the VE of the engine.

          [1] https://x-engineer.org/calculate-volumetric-efficiency/

        • millzlane 3 years ago

          Yes, it's how the pros do it. After a bunch of cars with the same mods you can tune in the base map pretty much withing 20% error. Copy that map to a car with the same mods. Then it's just a pull on the dyno and refine the fuel maps, rinse and repeat until all cells are stoic or rich but not too rich at WOT. That's a very simple explanation. But there's also things like timing, VVLT, Boost controllers, torque maps, and clutch friction points for DCT's that can all be adjusted.

    • Matrix89 3 years ago

      Honestly I don't know, it's not like I've read some kind of a book. I think it's a combination of reading random articles, docs and watching youtube videos(HPAcademy <3). Obviously having a good understanding of how an engine works is also super useful.

fegu 3 years ago

This is so cool, a nice push towards low cost repairs and de facto "right to repair" for hobbyists. The MX5 is also a cool and inexpensive test vehicle. Hope more models are added.

  • JKCalhoun 3 years ago

    I thought it was cool when the Spec Miata racing class was added — until, years later, you can hardly find any old Miatas that are not either automatics, or stripped down ex-racers.

anfractuosity 3 years ago

Out of interest does a typical engine management system used in a car, make use of an MCU which supports lockstep computing, with multiple cores executing the same instructions simultaneously?

  • sidewndr46 3 years ago

    For a car it'd be kind of overkill. The failure mode of the system is usually something like "throttle position sensor value out of range" due to bad wiring or a bad sensor. So multiple cores doesn't do anything, because you still wind up pulling over to the side of road. Some aircraft do something like what you're thinking but it's actually separate computer architectures running the same code.

    Now if you go back in time far enough to pre-WWII designed vehicles it was common to have two ignition systems with a massive mechanical lever to switch between "magneto" and "coil" based ignition for gas engines in military engines. Coil driven spark plug systems had advantages but the magneto system was much more reliable by virtue of having no moving parts. Diesels had a slight advantage here in that there was no ignition system as such to fail.

  • samtho 3 years ago

    Nope, just automotive grade components and potting goop. A Bosch ECU from a VW New Beetle that I recently repaired has a single Infineon MCU, AMD flash, and Bosch power management ICs.

    All Audi and VWs recently have drive by wire system that opens the throttle, drives ignition coils, and triggers fuel injectors electrically. It’s not like there is much to go wrong. I did find a very high accuracy, temperature compensated Crystal resonator which makes sense for sending timing signals in a harsh environment.

    • qznc 3 years ago

      Some Infineon MCUs have lockstep multicore. Probably not necessary for the computing power you need for engine control though.

    • pkphilip 3 years ago

      Can any of this be done using an open source design? that is, would it be possible to create open source engine management kits for vehicles?

  • actionfromafar 3 years ago

    No. (But the MCUs are rather rugged. I would imagine they have a watchdog to catch some error conditions, possibly in hardware.)

    • ilyt 3 years ago

      I can imagine bitflip in one of the tables could be pretty dangerous and not catched by watchdog

      • Gordonjcp 3 years ago

        Not really. What's it going to do, make the engine run rich for a fraction of a second until the next time it recalculates the mapping?

        • samtho 3 years ago

          Yeah, the kinetic energy associated with a running engine (flywheel to entire vehicle mass) makes it rather difficult to stall from a single cycle problem, especially given that it consistently recalculates and checks everything multiple times before the timing signal is sent.

          The engine feels like it’s running fast, but it’s really slow compared to ECU’s ability to observe it and respond to it. A single missed signal would just result in a misfire.

          • Gordonjcp 3 years ago

            > kinetic energy associated with a running engine (flywheel to entire vehicle mass)

            Like the notoriously hard to stall Citroën 2CVs and Dyanes, where roughly a third of the total weight of the engine was the ridiculous flywheel.

            They could chirp the tyres in first, second, or third gear if you got all that mass spinning fast enough, not from power but from momentum.

        • ilyt 3 years ago

          Mapping is not recalculated in flight, it is loaded from flash (or via obd when tuning) and normally not reloaded till restart. You might have some luck with short/long term trim fixing it, or not.

          If you're lucky ecu might crash or run rich in that one rpm/load point, if not it might run lean entire highway drive, if say a bitflip happens to flip lambda probe settings to always show mixture being too rich.

      • Already__Taken 3 years ago

        I saw a 30 second segment in something I'm sure was about F1 engines that had something on a dyno and they flipped (while running) from the engine map to an ai predicting the engine timing per-firing and you could hear the thing smooth right out.

        So no I imagine there's actually quite a lot of wiggle room to be off. Less so if you want it to last a million miles. But 30k?

        • ilyt 3 years ago

          Well, yeah on top of one in billion chance of bitflip you'd also have one in million chance that the bitflip would cause it doing something incorrectably wrong.

          There is a lot of protection in modern engine, like retarding timing when there is a knock or long/short fuel trims to correct for any changes in the sensors.

skypanther 3 years ago

This has me thinking, are there any similar projects for antique "dumb" cars? I have a 1940 Chevy with a simple distributor, points, timing, etc that all need tweaking now & then. When any of those are out of tune, it runs rough, starts hard, stinks, and so on. I'm not looking for performance, but more efficient and reliable operation would be wonderful.

It would involve a lot more than just an Arduino & some wiring obviously. And a lot of the car's charm is its low-tech originality.

  • jasongill 3 years ago

    Yes, there's lot of projects out there, but most people just use off-the-shelf products.

    Get yourself electronic ignition (Pertronix is a recommended brand) which replaces points and basically uses solid state electronics to fire the spark plugs, making them run much better and no more messing with points.

    All engines need timing, but modern distributor-less motors do it automatically; timing should be a set it and forget it thing for the most part.

    Then your carburetor is likely the issue for running rough, hard to start, etc. You could get a different more modern carburetor, but switching to fuel injection may be the way to go if you just want "turn the key and go". They make fuel injection systems that look and mount just like a carburetor but use more modern tech - look at FiTech, or Holley for solutions. Those are going to require you to add a sensor to the exhaust and a couple sensors around the motor (all included in the kit, but work to add), plus you'll probably need a new fuel pump that can put out much higher pressure (fuel injected cars use ~40-60psi fuel, carburetor is more like 3-5psi).

    It stinks because it's burning raw fuel and you're not used to the smell of that thanks to today's cars with catalytic converters - they do sell them aftermarket that you could add in to your exhaust system as well.

    At the end of the day, it's all very possible and there are open source projects like Megasquirt that could be a place to start, but going the open source route will be even MORE "fiddling around" than your current setup, so you may want to look at off-the-shelf EFI conversions. At least do yourself a favor and get Pertronix electronic ignition - it's a total game changer in terms of ease of starting, smoother running, and less hassle, and it doesn't cost much and is easy to do.

    • geocrasher 3 years ago

      Indeed, I worked with a guy who had a Ford 300 I6 in his Unimog. He had it running on Megasquirt, but it was so fiddly that he ended up going back to carb.

  • ehnto 3 years ago

    I think a modern carb and distributor would get you a nicer running car if you wanted to stay analog. There were plenty of improvements from 1940 until the time we switched to computer control.

    But for a digital solution, you're looking at an EFI conversion kit, with a ready made wiring harness to convert the necessary items to run the EFI. It is common enough to do that you'd have no trouble sourcing advice and if you like that kind of thing it would be a great project. I see Holley do good looking kits but I can't speak from experience sorry.

    The difference between an ECU run V8 and an "analog" V8 is mostly in electronic control of ignition timing and fuel injection, and all the sensors needed for the ECU to know what's going on. I think just replacing the carb with an EFI carb kit would be a great project, but to take it further you would need to ditch the distributor and use coilpacks and ignitors controlled by the ECU, and a timing sensor to sense the position of the crank. At that point you need a full ECU and speeduino would do the trick, but there are supported manufactures of aftermarket ECUs as well like Haltech, Holley, Motec, and Link.

  • bayindirh 3 years ago

    I think there are solid state ignition coils which replace distributors. Also, there's at least one Speeduino model which does what you want [0].

    [0]: https://wtmtronics.com/product/carbumate/

  • Gordonjcp 3 years ago

    It's called "123ignition", and it's exactly what you need :-)

haunter 3 years ago

One of my favorite examples https://www.youtube.com/watch?v=iH9lp-Nms-o

ctrlc-root 3 years ago

Having gone down the rabbit hole of researching aftermarket ECUs for my cars I've discovered that in the US it's basically illegal to make changes to any part of a street legal car's emission control system which of course includes the ECU. It seems that it has been for several years but the EPA did not enforce the regulation consistently.

* https://www.saveourracecars.com/about.html

* https://www.aemelectronics.com/product-legal-restrictions

* https://tiremeetsroad.com/2021/07/13/how-californias-bar-app...

mewse-hn 3 years ago

I'd love to convert my ninja 250 from 1987 over to fuel injection but I don't think I have the electrical expertise to figure it out. There are even throttle bodies available from japan where they had fuel injection much earlier than north america. Oh well.

westmeal 3 years ago

Love speeduino! I'm using it to resuscitate an old 87 corvette in batch injection/ignition mode. Starts up but I've got wayyy more to fix on this old turn.

slicktux 3 years ago

This is awesome!

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection