So Fiero2M4Fastback proposed a custom butchered 7170 ECM with a Speeduino in another thread recently. I conversed with him about it, and have a thot. If I were to make a board, similar to the Speeduino, but did this for a 7730 ECM, that could have wider appeal. And Fiero2M4Fastback could just change wiring connectors to suit for his 2.7L. The PC board would fit into the housing.. remove the connectors from an old 7730 board, solder them into the new PC board, plug an Arduino in, and you could be ready to program. First, is there someone that can mail me a dead 7730? I would paypal you your shipping for such an effort. Second, can folks chime in and tell me if that has wider appeal? If 2 people want to do it, that is a lot of work for just 2.
My perception (and that of the Internet in general) is that Arduino libraries are poor quality, and are best avoided. Is Speeduino any good despite its ancestry?
It seems to me that the MegaSquirt-II-based DIYAutoTune DIYPNP D56 (Delphi 56 Pin) is a drop-in for a typical Fiero...
So what more would this project have to offer, above the already existing plug-and-play solution? Would its status as Free software be its primary advantage?
A reminder for all: while the code of MS/Extra is licensed for personal use, it is not Free software. It cannot be distributed to friends without permission of the authors, and it cannot be executed on non-MegaSquirt hardware.
But since Speeduino is reliant on TunerStudio, is it really Free software? Or is TS just being used to bootstrap the project, after which a Free tuning software will take over?
The next question is, should your project be destined to stock Fieros, or modified ones?
Attempting to accomodate all kinds of modified Fieros is futile; but if the ECU is not compatible with any level of modification... I'm not sure many people will change the ECU on a bone-stock engine for the hell of it.
Are you looking to build an easily tunable functional equivalent of a 7730?
I'm looking to complete my engine rebuild project in April 2018, so I would like to have a working ECU in my hands by that time... probably the timing's a bit too tight for me.
I require sequential injection on 6 cylinders, with a 7th (batch-fire) output for staged injection.
Don't forget about Fred and his FreeEMS project over at diy-efi.org
The first thing to say about speeduino is that a arduino is not going to be the best ECM in the world, its not the most powerful I/O in the world but it is absolutely capable of doing the job in a limited capacity. It does very well with the features it has, one of the features missing is knock detection. Other than that it doesn't have anything missing that I personally would like but there are other solutions for knock detection while tuning and it could potentially be added in the future by adding another processor just for handling knock.
Why choose speeduino? It's cheap, I Bought the PCB and components for I under $100, my goal is to eventually have a universal speeduino manufactured for under $100. If you had a plug and play version, you could still use it for swaps, just modify your stock harness and configure it for the inputs and outputs of your new engine.
I decided to go with a speeduino for my Stock 2.8 to familiarize myself with it before I drive into an engine swap. I decided to make it plug and play by hacking up a ECU for the Heck of it.
The code and hardware is open source and was not developed from Arduino libraries. I can't tell you how great it is because I don't have personal experience with it yet, what I can tell you is that the community of people running them, like them, especially the Miata guys.
My thot was that if I use the 7730 as a base, folks could use it for existing and swaps. Many swaps are 7730, so I am most of the way there? My long term idea is to swap my Duke for a 3.9L someday.. but that engine has variable valve timing. So if I take one step at a time, I could have something to build on to get there. I suspect that adding the additional 2 cylinders to the Speeduino would probably be more work than it's worth.
I suspect that adding the additional 2 cylinders to the Speeduino would probably be more work than it's worth.
Adding 2 cylinders over 4cl would just require the wiring and of course means you can't run sequential injection, you'd have to run paired or semi-sequential injection.
[This message has been edited by Fiero2m4Fastback (edited 09-26-2017).]
If you don't use the Arduino libraries, then you can skip the Arduino dev board, and solder the AVR directly to your ECU PCB, right? Or do you use the Arduino as a convenient programming method, to avoid needing to purchase the ISP or JTAG programmers?
Using the 7730 as a base isn't a bad idea... if you only sell the board, and have people install the PCB in the case themselves, and transfer the connector over. As we have seen from the brake booster fiascos, core-return type scenarios can go sour, fast.
Connectors/casing are among the most pricey parts of electronic gadgetry, so if you exclude that from the $100 price target, then that will help a great deal in meeting the target price.
I guess what I'm trying to do is too complicated for Speeduino, considering that my project is already behind schedule... So I guess I'll stick with something more off-the-shelf. Sounds like fun though!
For knock, I think it could be done relatively inexpensively in the analog domain, on the same PCB. Bandpass filter (tuned to knock frequency) -> rectifier -> low pass -> ADC input
Should be pretty simple/cheap, and wouldn't need to be populated if someone didn't care for knock sensing.
If you don't include knock sensing, then that just pushes the cost elsewhere. The GM knock module (for applicable engines) and its pigtail aren't cheap!
Also, for my two cents, SMT sucks for DIY, through-hole all the way. But it depends if you would like to buy automatically-assembled PCBs in a group-buy, or rather group-buy bare PCBs, and have everyone DIY the assembly.
If you don't include knock sensing, then that just pushes the cost elsewhere. The GM knock module (for applicable engines) and its pigtail aren't cheap!
The best solution I've come up with is about $70 after software but it's effective. It allows for knock detection while tuning. https://gumroad.com/l/tunerknockmonitor
quote
Originally posted by pmbrunelle:
Also, for my two cents, SMT sucks for DIY, through-hole all the way. But it depends if you would like to buy automatically-assembled PCBs in a group-buy, or rather group-buy bare PCBs, and have everyone DIY the assembly.
Through hole = better for diy, smd = cheaper production. Right now everything is through hole with smd in development.
[This message has been edited by Fiero2m4Fastback (edited 09-27-2017).]
Arduino hardware should be able to run circles around the old 1Mhz 6800 16bit cpu in our ECUs. The 7730 uses a 2Mhz (6808) version, I believe. The Arduino spec that I saw was 16 Mhz. My concern would be RAM and # of inputs/outputs. Are we talking about completely removing/replacing the 7170/7730 and running the entire car?
Lou, yes to the intent of replacing the whole 7730 and running the car. And on the comment with through hole versus SMT, there is an ugly reality.. most of the bigger chips are not available in through hole. For that matter, getting one of the more powerful chips in 5V is a thing of the past. So going with an 80 or 100 pin TQFP in surface mount and working at 3.3V is the new reality. With one possible out.. Microchip supplies PIM modules for folks to develop with.. essentially a chip on a board with plug in pins. One example of a part with a Shoeet load of power and features.. http://www.microchipdirect....?Keywords=MA330025-1 The part has 512K flash, 52K ram, 4 UARTs, SPI, I2C, 1 USB, 2 CAN, and 28 (28!) PWM outputs that would run injectors and ignition. The PIM is $25. The chip at Digikey is about $8.90. The board could be laid out to take either. And on the 6800 comparison, you are absolutely right.. BUT.. in the old days very stubborn engineers coded everything in carefully crafted assembly language. That would take a very long period of time to accomplish, and is hard to change. The new reality is C, or maybe C++, Python, or similar. The new key to success is choosing a part that has the right PWM peripherals that can handle the real time timing of the engine operation without weighing down the software. Sounds like fun to me.
If you go the 3.3v route, you're also talking about replacing sensors with OBD 2 or 3 versions... Otherwise you have to do other acrobatics like this: https://www.pishop.co.za/st...-raspberry-pi---blue
Originally posted by Chris Eddy: And on the comment with through hole versus SMT, there is an ugly reality.. most of the bigger chips are not available in through hole. For that matter, getting one of the more powerful chips in 5V is a thing of the past. So going with an 80 or 100 pin TQFP in surface mount and working at 3.3V is the new reality. With one possible out.. Microchip supplies PIM modules for folks to develop with.. essentially a chip on a board with plug in pins. One example of a part with a Shoeet load of power and features.. http://www.microchipdirect....?Keywords=MA330025-1 The part has 512K flash, 52K ram, 4 UARTs, SPI, I2C, 1 USB, 2 CAN, and 28 (28!) PWM outputs that would run injectors and ignition. The PIM is $25. The chip at Digikey is about $8.90. The board could be laid out to take either.
That's a good way to use the modern SMT stuff, while interfacing to an otherwise through-hole PCB.
I suppose that Arduino also serves the purpose of an SMT-to-TH breakout board.
quote
Originally posted by Chris Eddy: And on the 6800 comparison, you are absolutely right.. BUT.. in the old days very stubborn engineers coded everything in carefully crafted assembly language. That would take a very long period of time to accomplish, and is hard to change. The new reality is C, or maybe C++, Python, or similar. The new key to success is choosing a part that has the right PWM peripherals that can handle the real time timing of the engine operation without weighing down the software. Sounds like fun to me.
Regardless of when a PC was constructed, it takes about the same amount of time to go from black to booted-up and ready to use.
Software bloats proportionally with hardware capabilities. I've noticed it in embedded systems as well...
People's performance expectations of a product are what remain constant over time.
It doesn't matter what CPU is chosen; end results will be similar.
quote
Originally posted by lou_dias:
If you go the 3.3v route, you're also talking about replacing sensors with OBD 2 or 3 versions... Otherwise you have to do other acrobatics like this: https://www.pishop.co.za/st...-raspberry-pi---blue
The Fiero TPS, CLT (and its series resistor), MAT (and its series resistor) are all voltage dividers. They will work exactly the same (maybe a little more noise) on 3.3 V.
Otherwise, changing logic levels where needed is not a big deal (if included in the PCB, and not sh*t spliced into the harness).
For things such as MAP, straying from 5 V may be difficult. In that case, I would suggest that the 3.3 V (for CPU, sensor excitation, ADC reference) be generated ratiometrically from the 5 V rail... the end goal being that 5V sensors can still be ratiometric with respect to the ADC. A stable voltage divider can then take the MAP signal down to the 0 - 3.3 V range.
[This message has been edited by pmbrunelle (edited 09-27-2017).]
Don't mean to discourage the adventurous but why try to reinvent the wheel? GM has developed ECM's and PCM's for just about every application imaginable. Use them and you'll have full features, self contained diagnostics (especially with OBDII) easier tuning .......and you'll save money too.
------------------ " THE BLACK PARALYZER" -87GT 3800SC Series III engine, custom ZZP /Frozen Boost Intercooler setup, 3.4" Pulley, Northstar TB, LS1 MAF, 3" Spintech/Hedman Exhaust, Autolite 104's, MSD wires, Custom CAI, 4T65eHD w. custom axles, HP Tuners VCM Suite. "THE COLUSSUS" 87GT - ALL OUT 3.4L Turbocharged engine, Garrett Hybrid Turbo, MSD ign., modified TH125H " ON THE LOOSE WITHOUT THE JUICE "
Well Dennis... the point of the auto modification hobby is to modify... if end-results are the only objective, by all means go out and buy a ready-made sports car off the showroom floor.
To me, the fun is in modification itself.
[This message has been edited by pmbrunelle (edited 09-27-2017).]
Two thoughts.. The 5V stuff is OK.. you just use a 5V A to D converter, and the processor to AD chip has some level convert. Use GM ECM's and such? I may show my naivete, but I thought that the OEM stuff had to live in conjunction with the trans controller, body controller, fuel pump controller, license plate lamp controller, etc. So can I take a GM ECM and make a variety of feature changes, and operate it stand alone?
Originally posted by Chris Eddy: Use GM ECM's and such? I may show my naivete, but I thought that the OEM stuff had to live in conjunction with the trans controller, body controller, fuel pump controller, license plate lamp controller, etc. So can I take a GM ECM and make a variety of feature changes, and operate it stand alone?
You'll be able to take a GM ECM and cleanly sever its links from all the various modules. See HPTuners.
From what I know, the scope of possible modifications is limited to changing calibration data/flags.
I don't think source code is available, nor is a toolchain provided. So if you want to add features or change functionality of the factory ECMs, I think you're out of luck.
Or, if you could get an ECM with a through-hole microcontroller, plug an Arduino daughtercard into the old DIP socket, and then you'll get to re-use all the GM I/O stuff (injector drivers, input filtering, voltage regulation, etc).
Then, the Speeduino would run on its native architecture.
Don't mean to discourage the adventurous but why try to reinvent the wheel? GM has developed ECM's and PCM's for just about every application imaginable. Use them and you'll have full features, self contained diagnostics (especially with OBDII) easier tuning .......and you'll save money too.
It is an attractive idea, but two things run interference. There are no official schematics for OEM ECMs that I know of. Exatorq had stuff on old ECMs, but alas, I cannot get their web site to come up. It is near impossible to reverse engineer modern multi-layer PC boards. And I suspect that they are using either custom mfg microcontrollers, or even more likely, have switched to FPGA/ASICs. Which makes the thought of software replacement impossible. The thought of a 40 pin interface is interesting, but you will be relegating to only older ECMs like the 7730. Another thought? Many newer trans are not good for swaps, due to the computer control on them. We make an ECM that talks to a popular newer trans over CAN, giving people more options. I can pitch in a lot on hardware and low level software, but was hoping to get a ground swell of folks to take on the application, communication, and tuning code. If there is no community support, I won't likely jump in.
Its complexity/features level make it a suitable candidate to replace an ECU from the 80s/early 90s.
ECUs of this era should have a 40-DIP interface. Even without schematics, it should be possible to reverse-engineer. Someone with a running car (could be a Fiero with a 7730) would need to probe each pin of the microcontroller while the engine is running.
I think that Speeduino is too simplistic for modern engines/transmissions, so the argument that we can't easily retrofit it to new multi-layer whiz-bang PCB is moot. Someone with a whiz-bang engine with throttle-by-wire and variable cam phasing should just get HPTuners.
I think a plug-in microcontroller replacement for a 7730 or other similar ECM is a project of reasonable scope (not astronomical efforts), and can have appeal to GM folks in general, not just Fiero people. Some effort is needed for reverse-engineering the pinout of the original microcontroller, but on the other hand, there would be very little I/O design needed... just maybe some 5V/3.3V interfacing.
So it turns out I did something like that for my other hobby, Pinball. Most pinball machines take a 680x processor. I made a board that plugs into a 680x socket, with a fast 16 bit processor on it. And I have software that can address the address/data bus for the socket. Maybe this is something that can be of value.
Crap, no picture. It is a small PC board with 40 pins and two chips on it. It has a USB port that can be used by the application, and a header for a programmer to plug in.
Right but your still going to spend at least 2x as much on a 7730 than you would on a speeduino in its current 0.4 configuration.
The proposed project IMO would be worth it if it can come in under a Microsquirt at $350 and be plug and play.
In Canada (can't say for USA), the Kenny-U-Pull chain of junkyards sells ECUs for $40.
A Speeduino V0.4 doesn't have a connector that can interface with a harness, nor a case, so it cannot be considered an ECU; it is merely an ingredient of an ECU.
No matter what you do, you need a junkyard donor ECU for at least its connector and case. Any custom connector/case is going to cost more than the entire junkyard ECU. Plus, the benefit of using a junkyard ECU is that it will be a direct-fit for many GM target vehicles' ECU bracketry, since you don't change the external mechanical interface.
Besides the connector and case, the 7730 will have automotive-grade I/O circuitry, so why not use it?
Chris, I would think that the basic EFI functions could pass through the 7730 40-pin interface, just as they did in the 7730, but if you wanted to add more features (cam phasing, etc), then the Arduino daughtercard could have its own "expansion connector" to directly interface with the "extra goodies", without passing through the 40-pin interface.
[This message has been edited by pmbrunelle (edited 09-27-2017).]
In Canada (can't say for USA), the Kenny-U-Pull chain of junkyards sells ECUs for $40.
Then you have to add the cost to configure and tune. The speeduino can work with stuff you usually already have and there's not much cost over the initial hardware purchase.
With the speeduino you also have the option of a cheap case and 10ft of dupont ribbon, you can make a complete harness recycling the connectors from your old harness for cheap.
That said, its not for everyone. My personal justification for using it is "it's cheap and will do what I need it to do" the price of entry to learn the systems and learn how to tune an ECU myself is very low and will carry over should I ever decide the speeduino isn't good enough.
Originally posted by pmbrunelle: Someone with a whiz-bang engine with throttle-by-wire and variable cam phasing should just get HPTuners.
Speeduino supports VVT and for sure a second arduino can handle the throttle by wire. It really depends on the person. I'd say for the majority a DIY solution in general is beyond what they are comfortable with.
There is a lot of software and time invested in these types of projects.. I propose that I make a 7730 replacement PC board, all through hole, that takes an Arduino, and has all of the inputs/outputs that typical 2.5L, 2.7L, 3.6L, and 3.8L that people would want (assuming that one can add the hardware for 6 cyl to the Speeduino). I will design the PC board and order a pack of them.. and if folks want to build one, I will sell them at cost each. That way once assembled and wired, it would be solid and reliable for real world use. And if someday folks want to improve upon that, or Speeduino comes up with new approaches, I can change the design then. Can folks chime in with a vote if you might use it? No obligation?
Another reason one might consider replacing the stock ECU in a stock car is that the ECUs in the Fiero may not be aging well. I personally have never had a problem with them and even tell people trying to diagnose problems that suspect it's a ECU that is usually not the case and I still stand by that until it becomes a regular problem but when I dug into the EOM board, I discovered delamination over a large percentage of the board, I assume this is from outgassing and I don't know if this is common with the Fiero. This Fiero had low miles and sat all it's life in the Texas sun. I never tested this ECU.
I would no be as interested in a 7730 as I would a plug and play replacement.
[This message has been edited by jmbishop (edited 09-28-2017).]
If by "delamination" you are referring to the wavy look to many of the traces...
This is an artifact of the way these PCB's were soldered. They were most likely passed through a HASL (Hot Air Solder Leveling) machine after going through the wave solder system during the production process. Not all of the excess solder was removed, and so this gives some traces a wrinkled appearance.
If that is not what you were referring to, then my apologies.
As for their aging... it is not likely that the semiconductors would change their characteristics over time, as long as they were operated within their limits. Most of my concern would be with all the passive components, as they WILL age and change their operational characteristics. But most good electronics engineers will factor that into their designs to the extent that it is possible.
In general...I love the idea of either an Arduino or Pi Zero being used as an ECU. Makes me think of doing a set of RPi3 based digital gauges again.
[This message has been edited by computer_engineer (edited 09-28-2017).]
OK bishop mentioned keeping his stock ECU, and why change it if that works. And he mentioned more interest in plug and play over a 7730.. The issue is that there are (stop me if I'm wrong) 5 ECU models in the Fieros.. 1226156, 1226864, 1227748, 1226869, and 1227170. Yikes. And new mating connectors/pins for a 7730 are an ebay away. And the donor ECU for connectors/housing are just $50-$80. But why change? Add VVT control to get BIG horsies out of a more recent engine. How about a CAN bus for talking to a BCU or transmission, a CAN bus to talk OBDII to make troubleshooting with modern tools easy, and a bus to talk to a digital dash of your making. How about a switch for economy/performance tuned to your liking? I know that that is outside of the scope for many, but this project would only appeal to the curious customizing techie. Calling all of the 3.8LSC swappers out there. So you did that, what's next? Please throw cold water on the whole thing if it is over the top.. I am just campaigning an idea.
A good scanning software is as important as being able to tune... so what are the plans for scanning/logging? What kind of resolution does this ecm have on the MAF or VE table as well as spark? How much processing power will it have have and how quickly will it log data?
The 7730 was limited to about 10 parameters and would log a data set every couple of seconds. You could add more parameters, but it would slow down the log rate. One of my logs with a 411 ecm had about 23 parameters being logged with about 7 data sets per second. One of my logs with the E67 ecm had 37 parameters being logs with 80 data sets per second...
The faster the ecm can read & respond to sensor input and the greater resolution in the timing and fueling tables (MAF, VE, or Virtual VE) the smoother and more efficiently the engine will idle as well as run.
All of your questions are inherent in the Speeduino solution. I was intentionally avoiding a start from scratch because of the ton of software involved. I thought that adding OBDII (maybe Speeduino it has it) would just be duckie for basic troubleshooting. I have written some CAN J1939 stuff, the industrial machine version, so I am sure that I could get OBDII to work. I think that Speeduino is accepting code additions. If it would make more sense to put a DIY-EFI in the 7730 box, surely say so.. is it a better solution? That is based on a Freescale part.
OBDII is the watered-down interface OEMs give you because they don't want to share their full-fledged tuning software.
If you have the real McCoy, then you don't need OBDII.
Speeduino from what I understand is a black-box MegaSquirt replacement. Similar external functionality, but using a different internal implementation.
Therefore, Speeduino communicates using the MegaSquirt protocol. This means that Speeduino is compatible with MegaSquirt tuning software (TunerStudio), and MegaSquirt datalogging software (MegaLogViewer).
The benefit of NOT using CAN, and instead logging by connecting your laptop directly to the ECU is that you can datalog all you want, without increasing the bus load.
The freeware versions of the softwares are crippled; therefore, I suggest to purchase licenses for the full versions of each. The full versions are friendly to use, I think... though I have no experiences with tuning GM ECMs. But for reference, at my employer, we have in-house tuning and datalogging software, and the MegaSquirt stuff is 10x better to use. The cost of the software is reasonable... see http://tunerstudio.com/
Do not mistake the output data rate with the internal ADC sampling rate. For the purposes of running an engine, I would expect that most sensors are sampled at a regular beat, at a frequency determined by a timer interrupt. Depending on the input, sampling frequency can vary. Example, coolant temperature at 1 Hz would be more than enough.
The output data rate is often bottlenecked by the communication interface, so while this may be frustrating for datalogging, it is not indicative of a problem with the ECU.
If anyone wants a sample MegaSquirt datalog, I can email it to you. It can be opened with the freeware MegaLogViewer, or it can be viewed in a text editor.
Data refresh rate is nowhere near 80 Hz, but it is fast enough for what I want to do. I can observe the AFR's transient response to stomping on the gas, and use it to tune acceleration enrichment. You can do a pull, and observe AFR as a function of RPM, and adjust VE table values that way.
In my opinion, the biggest performance issue will be the batch-fire injection rather than processing speed. Suppose you are idling at 800 RPM, one injection per camshaft revolution, and you stomp the throttle. One 4-stroke engine cycle takes 150 ms, and with batch-fire injection, the worst-case cylinder may have up to a 150 ms time lag in fuel delivery... so you get a slight stumble. The batch-fire is slow to respond, therefore I can't imagine that sensor refresh rates would be a performance bottleneck.
Sequential fire allows for "Just-in-Time" fuel delivery, à la Lean manufacturing. Injection quantity can be computed at late as possible, then the fuel is stuffed into the cylinder just prior to intake valve closing. So it should run much smoother, I think. In my previous Fiero, I had batch-fire, and I had transient response issues that I feel could not be resolved without a change to sequential injection... so sequential is the plan for my new Fiero.
Therefore, I find this project interesting, but I don't want batch-fire... I already have a batch-fire ECU to use if I felt so inclined.
[This message has been edited by pmbrunelle (edited 09-28-2017).]
So it turns out I did something like that for my other hobby, Pinball. Most pinball machines take a 680x processor. I made a board that plugs into a 680x socket, with a fast 16 bit processor on it. And I have software that can address the address/data bus for the socket. Maybe this is something that can be of value.
Can't see the picture but that's great! Similar things are available for 80's computers. (Commodore 64 and Amiga) With OBD2, I believe GM switched to the PPC architecture. A lot of laser printers also use/used PPC. As did the Nintendo Gamecube, Wii and WiiU. Xbox 360 and PS3 as well...and Macs from mid-90's up until maybe 2007...
Of course this leads me to further thinking... A Raspberry Pi 3b is only $35 and gets you a lot more bang for buck. Quad-core ARM 1.2 Ghz with 1GB of ram and 4 usb ports, blue-tooth, Wi-Fi and HDMI output...
[This message has been edited by lou_dias (edited 09-29-2017).]