Shop OBEX P1 Docs P2 Docs Learn Events
Need Hired Gun to Write Some Code. — Parallax Forums

Need Hired Gun to Write Some Code.

The MuleThe Mule Posts: 9
edited 2010-02-15 23:41 in Propeller 1
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!

Comments

  • LeonLeon Posts: 7,620
    edited 2010-02-11 20:20
    Is a Propeller going to be fast enough for that, and will it have enough memory?

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM
  • BradCBradC Posts: 2,601
    edited 2010-02-11 22:48
    The Mule said...

    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).

    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.
  • VIRANDVIRAND Posts: 656
    edited 2010-02-11 22:52
    @Leon, Say What? Are you spamming other chips again, or was that someone else? Just kidding.
    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. SwieterTimothy D. Swieter Posts: 1,613
    edited 2010-02-11 23:15
    This sounds like an interesting project and I wish I had time to experiment with some of the coding. For now though I will be eager to here updates on the progress.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    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
  • LeonLeon Posts: 7,620
    edited 2010-02-11 23:38
    VIRAND said...
    @Leon, Say What? Are you spamming other chips again, or was that someone else? Just kidding.
    But if you can write code that drives race cars, not like ETCS-i , then "more power to ya!". Still just kidding.

    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
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-02-11 23:46
    I agree about the time frame... I PM'd him to that effect.

    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.
    Leon said...
    VIRAND said...
    @Leon, Say What? Are you spamming other chips again, or was that someone else? Just kidding.
    But if you can write code that drives race cars, not like ETCS-i , then "more power to ya!". Still just kidding.

    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.

    Leon
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    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
  • The MuleThe Mule Posts: 9
    edited 2010-02-11 23:56
    The propeller has no problem at all doing such a thing as this in Spin, because we have done similar projects before, except for the PWM's, but I had a cog or two available for that, just never had any code to make it work. The maximum engine RPM will be under 6000 and the maximum injector pulse width will be under 3 milliseconds. If Spin is too slow for this project, PASM will be totally acceptable.
    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
  • pmrobertpmrobert Posts: 677
    edited 2010-02-12 02:16
    I am absolutely not a real programmer and am not interested in your proposal. I have had a Mazda rotary running on a Prop based breadboard. You will need PASM for sure if you're doing sequential and/or ignition and want decent (us) precision. The hub ram can hold a few tables but things get tight fairly quickly. What exactly did you get working well in SPIN? I'm not being critical in any way, just curious...
  • Graham StablerGraham Stabler Posts: 2,510
    edited 2010-02-12 11:20
    Engines are pretty slow compared to the propeller, I think this could be coded up pretty quickly assuming the hardware was available to test with but I agree those deadlines seem very tight to be set in stone.

    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
  • heaterheater Posts: 3,370
    edited 2010-02-12 11:32
    pmrobert: "I have had a Mazda rotary running on a Prop based breadboard."

    That must have been one heavy duty bread board [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • Agent420Agent420 Posts: 439
    edited 2010-02-12 11:58
    The Mule said...
    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.
    I'm all for diy and such, and if this is something you want to do I say more power to you (pun intended)...

    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
  • pmrobertpmrobert Posts: 677
    edited 2010-02-12 13:02
    @heater: Yes, finding DIP motor mounts was a little tough.smile.gif
  • Erik FriesenErik Friesen Posts: 1,071
    edited 2010-02-12 13:59
    I am unclear where the 3ms max comes from. Is this a diesel? In a project I built I see around 1.5ms at idle, to 30-45ms at full throttle in a honda v6.

    My estimate in hours for this type of project would be around 300-400+ hours.
  • LeonLeon Posts: 7,620
    edited 2010-02-12 14:17
    That sounds much more realistic. At $30 an hour that makes $9,000 - $12,000.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-02-12 15:04
    Where are you guys getting experienced developers for $30/hr???
    Leon said...
    That sounds much more realistic. At $30 an hour that makes $9,000 - $12,000.

    Leon
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    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
  • Agent420Agent420 Posts: 439
    edited 2010-02-12 15:10
    ^ I'm just guesstimating a lowball figure that someone on this forum might work for.· Certainly that doesn't reflect 'professional' code development; I'm not certain that aspect would make this project at all economical.

    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
  • BeanBean Posts: 8,129
    edited 2010-02-12 15:31
    If this engine will/could have any interaction with humans, I hope you have a lot of liability insurance. Like a couple million dollars worth.
    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
  • LeonLeon Posts: 7,620
    edited 2010-02-12 15:32
    It's the sort of figure that someone moonlighting at home might charge. $100 per hour upwards would be more realistic for a professional doing that sort of work. I'm semi-retired and I charge £30 (GBP) per hour for the occasional design work I do for people, which is actually $47 per hour.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM

    Post Edited (Leon) : 2/12/2010 4:27:43 PM GMT
  • TonyWaiteTonyWaite Posts: 219
    edited 2010-02-13 19:29
    I can't be alone in thinking that the specification is somewhat contradictory: just where does the AI of the ECU overlap with that of the Propeller?

    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 MuleThe Mule Posts: 9
    edited 2010-02-13 20:49
    This is currently a race-only engine for use by truck/tractor pullers and drag racers on closed courses, and yes it is a diesel.

    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
  • The MuleThe Mule Posts: 9
    edited 2010-02-13 21:01
    The attached image shows CID on the red trace, FDCS in blue, and the injector in green. Yellow is the camshaft position signal.
    640 x 435 - 152K
  • BradCBradC Posts: 2,601
    edited 2010-02-14 00:44
    Give it's a diesel I'm assuming that unlike a petrol engine, the injector pulse timing is incredibly critical as it is effectively the ignition timing ?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    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.
  • The MuleThe Mule Posts: 9
    edited 2010-02-15 17:49
    Timing is critical, that's why I specified that the code must have the same processing time for each injector (And the Prop has no problem here)
  • Graham StablerGraham Stabler Posts: 2,510
    edited 2010-02-15 23:41
    I've PM'ed you in case it slipped you by.
Sign In or Register to comment.