Personal page of Gabor Racz
I am a 28 yrs old programmer and electric technician, from Debrecen, Hungary. Currently, I am a leading programmer at a small company.
A small history
- June, 2003: First met with the MS-AVR
- November, 2003: GenBoard/VerTwo working in my friend's car (BMW 316i with self-made turbo assembly) - the unit drives only the injectors
- April, 2004: we received the first GenBoard/VerThree-s
- Long, long work at the treadmill... I have no time to improve anything on GenBoard. Sorry.
- January, 2005: Now I have a little time to the GenBoard! We have successfully tested the GenBoard/UnderDevelopment/StagedInjectors and our first WideBand sensor.
- February, 2005: Toothwheel and VR sensor on its place! Ignition is working with 2 Ford transformers in wasted spark mode. Thanks MembersPage/Fero!
- March, 2005: Experimenting with ALS.
- July, 2005: Uploaded two patches for allowing spark after TDC, and modified calibration of the MAP sensor, and an experimental patch for testing a soft RPM limiter and launch control.
- October, 2005: Because the previous patches still not committed, I generated a patch diff-ed to current revision of firmware, and added links to the related pages.
- November, 2005: Reworked the ALS code a little bit. Added spark-cut, TPS-dependent ignition retard, time limiter, EGT limiter. Added launch control and soft revlimiter. Added spark-cut based idle controller. Created page MembersPage/GaborRacz/NewAlsLaunchAndOthers.
- May, 2007: I am hunting incompatibilities and bugs in the firmware-MT couple. Also trying to integrate all features of the VEMS into MT, to be more user friendly than ever.
Config and tables:
Could you upload your config and tables? I'd like to test ALS. At least please submit your ALS related config settings.
Problem:
Soldered missing parts for the EGT, but after that, the LCD and keyboard are unusable when the engine is running. Both of them have got some 'extra' reset signals previously, but now the LEDs on the keyboard starts blinking randomly, not react to keypresses, and the LCD shows absolutely nothing, or a scrolling text. I think we need some capacitors to stabilize 14V power input. (a scope could be a big help...)
Q: Any help for solving the problem described above?
Tip: Check your grounds and supply. A supply capacitor cannot hurt, but it's likely a ground loop or disconnected ground.
Thanks! The problem solved by itself... This is one of the most annoying, mind-killer failures with no acceptable solution recipes. I think a small ball of soldering material shorted two pins of an IC temporarily.
Problem:
Sometimes the engine stops unexpectedly when idling. And possibly the same problem: the car sometimes 'hiccup' on constant TPS (same symptom as we give an extra squirt of fuel to the engine - or cut the fuel for a moment). I think this problem possibly reduced to the previous, but this one is not individual. Fero has the same thing.
Q: Any help for solving the problem described above?
Tip: Check your MAP signal in megatune "moving dot". If it jumps to max occasionally (eg. when it hiccups), you won't notice on LCD, but the moving dot can show.
Also pay attention to your VBATT, who knows (low reading can result in too high dwell, but that shouldn't give this symptom, except maybe with an external ignition amplifier)
More information: After the engine stops unexpectedly, the LCD shows 00312-00364 RPM for a massive amount of time (1-1.5 minutes).
Is there any sign of life after this?
Yes, the board can communicate, and the engine can be started without switching off and on its power.
Serial port working?
Yes.
Fuel pump relay switching off 2.5 sec after engine stopped ?
Thanks, good trace. conf.engine_off_delay had set to 0xFF. Now 0x08. The fuel pump itself isn't controlled by the VEMS.
Does this happen after long uptimes (eg. 5 hours) or shorter uptimes too ?
Sometimes after a few minutes (warm engine), sometimes after a hour or more. MAT and CLT sensor calibration is not done yet (LCD doesn't show exact temp values). I think this is an important thing, but we can not get out these sensors too easily from the car to calibrate.
Q: How can I stabilize the EGT readings on the 3.1 boards? The values shown are frequently changing (for example between 350 and 630 while warming the sensor with a gas flame). 3.2 boards are stable. Output voltage on the AD597 is stable. Used 5.6k and 4.7k divider resistors on the 3.1 boards.
- Solder a filtering cap (eg. 100..220nF) on the MCP3208 input channel on v3.1.
One of my boards seems to be have a dead MCP3208, EGT shows a constant value plus-minus 2-4 degrees even when warming the sensor.
- measure MCP3208 input voltage for the given channel (double-check that it is the channel that you read; there was a channel change v3.1 => v3.2)
Many thanks to MembersPage/MarcellGal who helped us a lot in our projects, and MembersPage/Fero who support us with experience, good ideas and an almost-ready v3.2.
TODOs: pictures and detailed descriptions, links to my webpages, plans...
- MembersPage/JörgenKarlsson: Gabor, I took a look at the ALS code. I can't verify the code itself but it seems like it does almost everything it should. A 'throttle bump solenoid' output is needed, could not find that in your code. This is used to somehow increase the throttle opening.
- MembersPage/GaborRacz: OK, I could add it to the firmware, but the switch used to activate the ALS can be used to turn on the throttle bump solenoid too. Or you can use a simple screw to permanently open the throttle in your racecar.
- What is the ballpark dimension for the opening suitable for ALS ? 10% of full-throttle opening ?
- The exact amount of constant throttle bumping is hardly depend on engine, size of the throttle valve and the idle target pressure. You can experiencing normally 8-20% of full throttle. VEMS should always show 0%! Note: this setup is intended for racecars only where the stable and silent idling is not necessary.
Not stable NBO2 readings?
I am testing our v3.0 boards on the table (with an old PC switching power supply), and noticed the O2 voltage (we plan to use NBO2 sensors) readings are changing frequently by the time, although i've hooked up a potentiometer to divide the 5V input for NERNST_CELL1 (EconoSeal III/18 - pin 13), and my DVM shows a stable value. See the [sample logfile (dead link)] for details. The DVM shows rock stable 213mV all time. All other sensor readings are also stable (such as TPS, MAP, MAT, CLT).
MembersPage/MarcellGal told me to check the 12V DC output voltage on my power supply, and check the AREF(62) pin on the AVR with scope. I have no oscilloscope yet. I've checked the requested pins with multimeter, AC voltage shows 0.0V (I know, this function is usable on higher voltages, and frequencies below 20kHz), and frequency measurement shows 'out of range' on the DC 12V, and 0.00kHz on the 5V DC (after the regulator) and on the AREF pin.
I've tried to stabilize the changing with a capacitor, and a 100n between the ADC1 and ground seems to be enough (on GenBoard/VerTwo there is a 220n) and solved our problem. R144 and C66 are soldered in, but they don't changed anything. I will test the board on a known-stable source (on a battery used in cars) to see if my PC power supply needs some stabilizing/filtering or the direct OPA-ADC connections need capacitors as an option (two SMDpads wouldn't hurt). Fortunately, a GND trace runs close to the R98 and R99 TODO: picture, and I was able to solder an SMD cap without a big shorting wire.
Someone has the same problem?
Yes I got the same problem.. Took a few pictures of measurering in and output on LM324: MembersPage/HansK/EgoReadingProblems
What is your ego_lag setting? I had to raise that to get a usable NBO2 reading.. not sure that its the correct solution though.. //Emil - ego_lag=15.. It did not stabilize the ratio-value, but I was trying without a sensor, just a potentiometer to divide 5V.. don't know if that should make a diffrent? HansK
Q: Is there any components missing around the LM324 (V3.2) that will cure this problem?
A: I have a workaround that solve our problem. You need a 100nF capacitor. Solder one of its its pins to the output trace of the LM324 (leads to the AVR's ADC1 input) and the other pin to a nearly GND trace. GaborRacz
Instructions for the patches mentioned above (Hungarian)
A patchek mellékelve a v3_firmware_2004-11-24_v11_2.zip változathoz képest vannak diff-elve, "-U4" paraméterrel.
A patch1 tartalmazza az ALS-hez szükséges ignadv-eltolást, a másodlagos injektorok nyitásidejének korrekcióját (beÃÂgért fix), a MAP szenzor kalibrációjának elöjelmódosÃÂtását (nekünk csak ÃÂgy lehetett jól beállÃÂtani). Minden patch1-es korrekciót teszteltünk, müködött.
A patch2 a patch1-hez képest van diff-elve. Tartalmaz egy szoft RPM limitert gyújtáskésleltetéssel és -vágással, egy erre épülö rajtprogramot, és egy IGBT-s RPM kimenetet. Sajnos itt ütköztünk
abba a problémába, hogy a konfigváltozók kevésnek bizonyultak, ezért a knock-rész kiiktatásával próbáltam játszadozni, a patchnek ez a része figyelmen kÃÂvül hagyható (a global.h-ban a remark-olt rész, és az spi-ben a KNOCK_8101-el kimakrózott részek).
-Szerintem inkabb a warmup temp bineket kellene kiszedni a configbol es default homersekleteket beallitani, ezeket ugyse allitja el senki, mindenki a bevalt ertekeket hasznalja, eleg ha csak a dusitasokat allitjuk be.
Az RPM szignál kimenet úgy müködik, hogy a COMMON_IGNITION_ACTIVATE-t definiálod a my_make-ban, és ekkor a h[2] táblában utolsóként megadott IGBT csatornát aktiválja minden gyújtási eventnél.
A SoftRevLimiter-ek úgy müködnek, hogy van egy induló fordulatszám, ahonnan elkezdi a késleltetést, egy másik induló fordulatszám, ahol elkezdi a gyújtásvágást, egy maximális fordulatszám, ahol 100%-os lesz a vágás, és egy maximális késleltetési fokérték a gyújtáseltoláshoz (ez állna be a maximális megadott fordulatszámnál, ha elérné).
Egyelöre egyik patch2-es feature sincs tesztelve, de elméletben is kitünik, hogy a Soft revlimiter túl lépcsözetesen müködik, mert a 100-zal osztott rpm változóra épül, magyarul az interpoláció csak 100 fordulatonként ad különbözö késleltetési, illetve vágási értéket. Ezt egyszerüsÃÂtendö, kitaláltunk egy másik rendszert, ami kevesebb konfigváltozót is igényel (csak gyújtásvágást tartalmaz). De ahhoz is kellene 16 bites interpoláció, vagy valami hasonló.
Az ALS jelenlegi egyszerü formáját is tervezzük bövÃÂteni, gyújtásvágással, TPS-függö késleltetéssel, idö- és EGT limiterrel, throttle kicker solenoid aktiváló kimenettel. Az IAC-hoz nem nyúlnánk, az nekünk most nem kell. Az ALS plusz funkciói az eddigi 4 helyett 9 konfigváltozót igényelnek. A launch control patch2-höz képest egyszerüsÃÂtett változata viszont 4 helyett csak
2-t. (Az általános célú softrevlimiter is 4 helyett 2-t, ha kell egyáltalán olyan).
Ami tényleg nagyon szükséges lenne, az a jelszavas védelem... egyetlen valamirevaló tuningcég se foglalkozik olyan motorvezérléssel, amelynek adatai nem védhetök le. Akár firmware-be kódolt legalább 8 karakteres RS232 hozzáférési kódszó is jó lenne egy (vagy több) plusz menüstátusz beiktatásával.
-Egyetertek.
Szóval mi jelenleg itt tartunk.