Need Hired Gun to Write Some Code.
The Mule
Posts: 9
I am looking for a Propeller programmer to write code for controlling sequential fuel injection on a V-8 engine. I will be building the PCB with a Propeller and IR MOSFET's and H -Bridge MOSFET drivers controlling the injectors.
Brief outline:
Part 1: The Propeller will receive two square wave signals from the OEM vehicle computer which control injection timing and duration. These signals will be processed/interpreted and output to the 8 injectors. The delay or processing time between the input and output signals must be constant so consistent injection timing is maintained.
Part 2. We may need two or three closed-loop P-I-D PWM outputs based on 3-D lookup tables with engine RPM and Injector Pulse Width as the axes and MAP (Boost) and Injection Pressure as the controlled output. We will use a 4-channel National Semicondutcor 0834 ADC for the analog inputs (Throttle Position, MAP, Fuel Pressure, Injection Pressure, etc).
Part 3. We may need code for self diagnostics and fault detection on the PCB, such as short & open circuit detection on the injector circuits, and possibly for a live data display on a laptop and data logging that can be exported to a *.CSV or similiar format.
Time Frame: You should be able to start within 2 weeks and have Part 1 of the code completed in a week, and Part 2 in another two weeks at the most.
Each and every line of code must be commented, and preferrably written in Spin so I can understand it and make changes as needed, and I will also want phone technical support as needed. If you are near Nashville-Murfreesboro, TN that is a big plus.
If you're interested, please contact me via Forum Messaging with descriptions of other code projects you have done. Pay: To be discussed, either hourly or by contract.
If you need more information or have basic questions about this project, please feel free to post in this thread.
Thank you!
Brief outline:
Part 1: The Propeller will receive two square wave signals from the OEM vehicle computer which control injection timing and duration. These signals will be processed/interpreted and output to the 8 injectors. The delay or processing time between the input and output signals must be constant so consistent injection timing is maintained.
Part 2. We may need two or three closed-loop P-I-D PWM outputs based on 3-D lookup tables with engine RPM and Injector Pulse Width as the axes and MAP (Boost) and Injection Pressure as the controlled output. We will use a 4-channel National Semicondutcor 0834 ADC for the analog inputs (Throttle Position, MAP, Fuel Pressure, Injection Pressure, etc).
Part 3. We may need code for self diagnostics and fault detection on the PCB, such as short & open circuit detection on the injector circuits, and possibly for a live data display on a laptop and data logging that can be exported to a *.CSV or similiar format.
Time Frame: You should be able to start within 2 weeks and have Part 1 of the code completed in a week, and Part 2 in another two weeks at the most.
Each and every line of code must be commented, and preferrably written in Spin so I can understand it and make changes as needed, and I will also want phone technical support as needed. If you are near Nashville-Murfreesboro, TN that is a big plus.
If you're interested, please contact me via Forum Messaging with descriptions of other code projects you have done. Pay: To be discussed, either hourly or by contract.
If you need more information or have basic questions about this project, please feel free to post in this thread.
Thank you!
Comments
Leon
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Amateur radio callsign: G1HSM
If you are using all these inputs, why would you even bother with the OEM computer? You are basically building a fully blown ECU anyway!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
You only ever need two tools in life. If it moves and it shouldn't use Duct Tape. If it does not move and it should use WD40.
But if you can write code that drives race cars, not like ETCS-i , then "more power to ya!". Still just kidding.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
I should be typing in Spin now.
Coming soon. My open Propeller Project Pages and favorite links index.
Post Edited (VIRAND) : 2/11/2010 11:01:04 PM GMT
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Timothy D. Swieter, E.I.
www.brilldea.com - Prop Blade, LED Painter, RGB LEDs, 3.0" LCD Composite video display, eProto for SunSPOT
www.tdswieter.com
All that stuff is going to need some serious processing power and a lot of memory. I hope the OP has done a proper hardware and software specification. That time frame doesn't look feasible to me. As for doing it in Spin, he must be joking!
Leon
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Amateur radio callsign: G1HSM
Post Edited (Leon) : 2/11/2010 11:48:36 PM GMT
I don't have enough information to decide if what he wants is reasonably doable with a Prop, he really did not give enough information.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com 5.0" VGA LCD in stock!
Morpheus dual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory/IO kit $89.95, both kits $189.95 SerPlug $9.95
Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
Las - Large model assembler Largos - upcoming nano operating system
Cog 1 = ADC
Cog 2 Cam / Crank Position decoding
Cog 4&5 = Injector Control
Cog 6, 7 & 8 = ???
As far as completely doing away with the OEM ECU, well I didn't want to unnecessarily complicate thins, LOL!
I'm more than happy to give more information, I just don't know what you need to know. For instance, I can give a list of which pin on the Propeller will go to what input or output, specify cog function, etc, but I don't know if the hardware guy (me) should tell the coder this stuff, or vice versa.
As far as budget, I don't have one because I have no idea how hard this is, but I'm thinking 40-60 hours of work for an experienced programmer.
Post Edited (The Mule) : 2/12/2010 12:18:25 AM GMT
As for RAM it would depend on the size of the look up tables I think, the code would be mostly pretty low level and small.
Comparing it to stuff I have done and helped with I think the propeller can do it but the control stuff would be best in asm with spin to glue it together, that is my favourite way of programming the propeller, lightning fast operation and fast integration of code.
You should ask for proper commenting rather than commenting every line, the two are difference IMHO.
Graham
That must have been one heavy duty bread board [noparse]:)[/noparse]
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
But as an IT guy getting involved in projects all the time, I'd suggest 40-60 hours may not be enough to cover all of your unknowns.· It sounds like the intial work may not exceed that, but I forsee many revisions being needed to tweak the system.· Also, where are you going to obtain the data maps?· Any data from the existing controller will probably not line up with custom hardware.
And even at your midpoint 50 hours, let's assume $30/hr for a coder...· That's $1500 in software development alone.· I know Edelbrock et al offer complete injection kits including hardware, intake, injectors, distributer etc for ~$2500; and that is a known working system.
http://www.edelbrock.com/automotive_new/mc/efi/pf_intro.shtml
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Post Edited (Agent420) : 2/12/2010 12:10:26 PM GMT
My estimate in hours for this type of project would be around 300-400+ hours.
Leon
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Amateur radio callsign: G1HSM
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com 5.0" VGA LCD in stock!
Morpheus dual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory/IO kit $89.95, both kits $189.95 SerPlug $9.95
Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
Las - Large model assembler Largos - upcoming nano operating system
edit - perhaps I am misinterpreting the project...· I'm thinking this must be a hobby oriented project; if this is for commercial development, then obviously the fees would be substantially more.·· Still, I'd wonder how that could compete with existing products.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Post Edited (Agent420) : 2/12/2010 3:16:16 PM GMT
Should someone get killed because the engine went haywire, you are in for a world of financial hurt.
Bean.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Use BASIC on the Propeller with the speed of assembly language.
PropBASIC thread http://forums.parallax.com/showthread.php?p=867134
March 2010 Nuts and Volts article·http://www.parallax.com/Portals/0/Downloads/docs/cols/nv/prop/col/nvp5.pdf
Post Edited (Bean) : 2/12/2010 3:45:48 PM GMT
Leon
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Amateur radio callsign: G1HSM
Post Edited (Leon) : 2/12/2010 4:27:43 PM GMT
Similarly, the hardware/software interface seems blurred.
More positively, I suspect that an open source ECU software/hardware system, such as Megasquirt *would* be a viable starting point. And with the bonus of a dedicated forum of 'petrolheads' to progress the project.
Best of luck,
T o n y
The two square-wave signals mentioned in my first post function as follows: One is called CID (Cylinder Identification) and the other is FDCS (Fuel Delivery Command Signal). CID signals which revolution of the 4-stroke combustion cycle the engine is on and FDCS signals when and for how long each individual injector is to be fired for.
The engine is a 4-stroke V-8, so it takes 2 engine revolutions to fire all 8 injectors, or put another way, it fires 4 injectors per engine revolution. CID goes high to signal the start of revolution one and remains high for the duration of the first revolution, then it goes low for the duration of the second revolution. 75uS (microseconds) after CID goes high, the first FDCS signal arrives, signaling that it is time to turn on injector #1 and it is kept on until FDCS goes low. The next FDCS signal means it is time to turn on injector #2, and so on. The engine firing order is 1-2-7-3-4-5-6-8 with 1-2-7-3 fired during the first rotation and 4-5-6-8 fired during the second rotation, so 1-2-7-3 are fired while CID is high, and 4-5-6-8 while it is low. At some point after the end of firing injector #3, depending on injector pulse width and RPM, CID goes low. 75uS after it goes low, the signal for injector # 4 arrives, followed by 5-6-8. Some time after #8 ends, CID will go high again and the cycle is repeated.
Only one injector can ever on at one time, and there is a certain minimum time period that elapses between the end of one FDCS signal and the beginning of the next. Since there are 4 injector firings for 360* of crankshaft rotation, an injector fires exactly every 90* of crank rotation, and the maximum injector pulse width is around 70*.
The Propeller will need to monitor two input pins, one for CID and the other for FDCS, determine which injector is to be fired based on the above sequence, and then set an output pin corresponding to that injector high for the duration of the FDCS signal.
This is "Part 1" of the project
What we are doing here is converting an older model of diesel pickup truck engine to run on the newer high-pressure common rail injection system, and have already had enough engine components designed and machined to build 3 engines.
I have a complete engine test-bench to verify that everything works as intended before actually starting a real engine, and the real engine will be run on an engine dyno before installing it in a truck.
Post Edited (The Mule) : 2/13/2010 8:57:52 PM GMT
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
You only ever need two tools in life. If it moves and it shouldn't use Duct Tape. If it does not move and it should use WD40.