The only possible issue is the max operating temperature being 105c.Everything keeps pointing me towards this 5v compliant model.
Solder jumpers are the plan. Starting with dip switches, which are very resilient against vibration. We would like to make it with the programming fitting all uses and then set the jumpers/solder pads or whatever before shipping them out. No changes to the program needed. The auto detect could be done with the crank signal. That should be very evident but would need up to one revolution to detect. This stuff can always be added to later revisions with just software updatesIf you use resistor nets you can combine a bunch of settings onto one ADC pin, saving some inputs. Or since settings don't change real-time, move them to a I²C expander chip which will take only a couple pins and let you read as many as you need.
Some of the settings can be detected at startup with a little bit of clever code. The LB7/LLY high-vs-low signaling level should be very easy to autodetect, since we know that at low RPM (e.g. 0 RPM when being powered on) only 0 to 1 injector at a time should be being fired. So look at the voltage level of all the command lines, and treat that as the "off" for the session, no setting needed.
I am personally a big fan of baking settings into the firmware, or using solder jumpers or soldered resistors if an end-user is expected to change the settings. Jumpers or DIP switches would make me nervous in an engine bay, especially given the vibrations it will be exposed to constantly.
I believe it takes 2-3 revolutions before it builds enough pressure. So it may not be an issue. But a jumper would make it fool proof and keep the programming simpler. External jumpers are also possible too as there are plenty of unused pins on the harness connectorYeah, I had meant using resistor nets for settings only, not the main I/O. That all needs to be as robust as possible, as you say.
Since we have to support at least some CAN messages to make the ECU happy, it might be easy to add some custom messages for debug / development, like holding the voltage regulator on, etc. Since that kind of thing won't be done by an end-user, no need to waste pins making it easy to do.
I bet we could come up with a clever method to avoid needing a 1-revolution delay every startup, such as remembering the last crank signal type (then we'd only be wrong for up to 1 revolution after swapping between LLY/LB7), or knowing that high- vs low-signaled injector command always correlates with a specific crank signal type.
That said, I don't know how long a LB7/LLY normally cranks before it builds fuel pressure. It might require more than 1 revolution anyway?
I'll do some more reading on that one this evening. Was just looking at my compiled frimware size on the CANbus gateways I build with the M4, and that comes in at about 48k. Wouldn't expect this code to be much more in size, but we have buffers, and any learned calibration data that might need a byte or two of space. 256k vs 512k is mem size difference between those models.What about the NXP Semicon S9KEAZN64AMLH ? Looks to meet the requirements but I'm not too educated in this area
Arm Cortex-M0+|Kinetis KEA 32-bit Automotive MCUs
Kinetis EA series is reliable, scalable, low-power Arm based MCU for Automotive and Industrial General Purpose Applicationswww.nxp.com
From what I captured on the LB7 bench rig so far, it's looking for that gap plus 2nd tooth reference after it sees a certain control pin signal. Guessing #1, but it might be #7. I can slow it down on the emulator and try to verify which one actually triggers our start. But again, one crank revolution is 4 cylinders delay. Pretty certain nobody gonna notice that delay.. However as a long time 6Leaker owner, 5 or 6 revolutions before fire was a good start.. lolYeah, I had meant using resistor nets for settings only, not the main I/O. That all needs to be as robust as possible, as you say.
Since we have to support at least some CAN messages to make the ECU happy, it might be easy to add some custom messages for debug / development, like holding the voltage regulator on, etc. Since that kind of thing won't be done by an end-user, no need to waste pins making it easy to do.
I bet we could come up with a clever method to avoid needing a 1-revolution delay every startup, such as remembering the last crank signal type (then we'd only be wrong for up to 1 revolution after swapping between LLY/LB7), or knowing that high- vs low-signaled injector command always correlates with a specific crank signal type.
That said, I don't know how long a LB7/LLY normally cranks before it builds fuel pressure. It might require more than 1 revolution anyway?
My brother owned one, and it would always make me nervous while cranking, as you wonder "is it gonna start today, or no?". The answer to that was no one too many times, and he went back to the LB7 club with meHowever as a long time 6Leaker owner, 5 or 6 revolutions before fire was a good start.. lol
I'd say 10 days or so we should know something more. Have what they started with, now for spotting what they changed...How long till we have an LLY read?