I believe it is possible create simplest ECU which will calculate injection duration and ignition angle based only on rpm. No other sensors.
I did go down this road a little, starting with this post:
Forum made EFI?
With a fixed-pitch prop, the relationship between RPM and fuel flow can be predicted
fairly well. Per my guess/table in the post above, for a little indusrial engine that behaves analogous to a Lycoming, the amount of fuel needed per rev/cycle just about doubles from 2500 RPM (35% power) to 3600 RPM (100% power). That takes into account both prop load and the BSFC of the engine at varying RPM. It
might be possible to get close enough to this curve using analog electronics (OPAMPS with various gains, etc), but digital electronics with software are a lot more flexible and would allow you to use either a formula or a lookup table to dictate the fuel flow.
But, as rv7charlie says, this hard link between a particular RPM and an injection pulsewidth won't be very accurate all the time (during descents, etc). Maybe it will be sufficient to keep the engine running and we can manually adjust with a mixture knob (as we would with a carb). The most common approach is to use a MAP sensor to tweak our pulsewidth "guess," but a MAP sensor isn't necessarily easy to use in some cases. For example, the MAP in a V-twin will bounce around a lot in each induction runner during each engine cycle. All we really care about for adjusting our fuel squirt is the MAP
when the valve is open (so we can determine how open the throttle is by knowing the vacuum), but that's only a small fraction of the time. With a digital system it's not hard to just take the lowest MAP reading over a set sample period, and use
that to adjust our "standard-squirt-for-this-RPM." Using MAP for this purpose will adjust for both changes in atmospheric pressure and load (because the throttle plate will be closed = lower MAP). I
suspect that varying the injector pulsewidth (as is typically done in digital EFI) will prove to be easier than varying fuel pump pressure as you've suggested. I could be wrong.
I don't see a need for a TPS in this scheme, and
maybe not a temperature sensor either (though you'd probably need a primer button/software loop to get the engine started when cold).
And, with batch injection you don't need to know cam position, so a single crank pickup (for RPM) and a MAP sensor in each runner would be the only sensors needed. Maybe you could get by with one MAP sensor if the induction systems to both sides were well balanced.
An Arduino-type processor has all the power needed for this. The Speeduino project is pretty well advanced and stable, but the base software is very "feature dense" with a lot of stuff we do not need (variable valve timing, etc, etc). It's easy to say "don't use what you don't need," but I'd think it much safer to write your own >simple< code (using their software as a guide/template in the applicable areas) than to try to use what they have written. You need to know
everything that is in that flyable software and how it works. Chopping through/evaluating a thicket of unneeded code seems like a waste of time. Same for Megasquirt, IMO. Unless someone wants to get a PhD in Megasquirt.
With a simple open loop EFI we'll probably want to keep a manual mixture knob in the cockpit.
In your "Version 6" you could get fancy: the pilot presses a button in cruise that lets the EFI adjust pulsewidth with reference to EGT to achieve an EGT 50 deg F lean of peak EGT (replicating what we'd do with a mixture knob, but more precisely and independetly for each cylinder). That would be super deluxe--closed loop but without a lambda sensor. A fun long-term goal but surely not needed in a basic system.