Tiki CMS/Groupware
Fri 23 of Feb, 2018 [02:34 UTC]
Menu [hide]
TikiWiki Assistant
Thank you for installing TikiWiki!
Click the :: options in the Menu for more options. Please, also see TikiMovies for more setup details.


This is for internal use report bugs/ feature requests on this page in English

Those who cannot edit this, edit http://www.vems.hu/wiki/index.php?page=IssueReports%2FVemsTune instead.

(don't worry about it seeming old. It will be noticed. Info can be updated, but must not be deleted without a pointer to the help is added.)
TODO for spell: split up this page to (5..8 ?) categories - there can be a misc section. Some old solved (if relevant help is also good enough now) notes can be deleted BEFORE or AFTER the splitting (but not during the splitting up !).

ProlificProblem - RS232 related


Tested VemsTune? version 2010-10-15.

Computer 1 quad core 2.30 GHz processor 8 Gb ram 64 bit Vista
Computer 2 Eee Pc 1.60 Ghz 1 Gb ram 32 bit Xp

Comp. 1-2 behave wavy slowly use a lot ram and then crashes.

New functions is working fine.

I wonder have many test persons have tested this version before the release or maybe it´s my comp. There bad.

Comp. 1

DEP (also known as DEP - Data Execution Prevention) is a security feature that can protect your computer from viruses and other security threats. Harmful programs can try to attack Windows by running (also known as execute) code from areas of system memory reserved for Windows and other authorized programs. These kinds of attacks can harm your programs and files.

DEP can help protect your computer by monitoring programs to ensure that they use system memory safely. If DEP detects a program on your computer using memory incorrectly, the program will quit and you receive the message.

This release should not public as installer companies will have big trouble when update to this new released version.

Thank you

2009-12-15: (Jorgen)
Test report VT and Prolific drivers

Computer: Lenovo X61 core2duo T7300
OS: XP 32 bit
VT version: 2009.12.14 and 2009.12.15
Adapters tested: ST Lab prolific from Webshop, ATEN Prolific (Prolifics old chip) Lenovo native RS232.
Driver versions: Prolific ( 19/11-09 in driver details, 2009.12.02 download.), Aten(, from 2003.07.16, PnP install from windows update.), Lenovo native RS232 ()5.1.2600.0, from 2001.07.01
AIM protocol: ENABLED

VT 2009.12.14 and driver:
I failed to get the driver to hang but I could not always get VT to connect when the AIM protocol was active and when VT was started after the ECU. When this happened I could only turn VT off from the task manager. Restarting VT would not help, communication could only be started again by first starting VT and then starting the ECU. I could however start bray terminal to send the D command. I could then back into VT and everything would work. Frequency was always 22-23Hz. Most of the testing was done with timeout=50ms inter write delay=40ms. With Timeout and delay at 5ms 25-27Hz was seen on all adapters, Prolific, ATEN (prolific old) and native RS232.

Note that the 2009.12.14 results was found before AND after testing 2009.12.15. So something is worse in the 2009.12.15 build, at least on my computer.

VT 2009.12.15 and driver.
Hanged the driver repeatedly, all other settings the same. When ing into bray after hanging the driver the port would be unaccessible. Only a computer restart would make the port accessible again. Computer restarts were usually fast but the port locked up hard at least once and I had to kill the computer with the power button. Frequency was usually 19-20Hz, sometimes 10-12Hz. These speeds were found on all adapters, even native would do 10-12Hz at times.

VT would usually hang when trying to connect to the ECU when it was not available! Sometimes in a way that would make it impossible to kill the program from the task manager. When the program died this way a new instance using the native COM1 or the ATEN adapter could be started and it would work well.

So it seems like all the problems I had with the 2009.12.14 build was related to AIM. With the 2009.12.15 build I could also get severe startup hangs at a kernel level when the ECU was not connected. It is possible that AIM left some junk in the driver that casused this on 2009.12.15 but it did happen when the ECU was turned off when VT was started. 2009.12.15 has performed far worse regardless of adapter on my computer, it pretty much required a newly rebooted computer to work.

2009-12-06: (Jorgen)
I didn't manage to recreate the Prolific USB-RS232 problems in the Audi S6 today. I had it running for quite some time but I didn't make extensive changes. I didn however forget to use it for logging :(

Car/ECU: Audi S6/PnP with public 1.1.63.
Computer: Asus Eee 901, Atom N270 single core CPU.
VEMSTune: VT release from 2009-11-27
USB-RS232 adapter: Current webshop adapter. 3m Full RS232 extension between adapter and ECU.
Driver: Sorry, not sure. The one we recommend or newer. I don't remember which one went in last during the last unsuccessful test. This was only some preliminary testing while charging my proper tuning laptop.
Firmware upload: Not tested
Config upload: Not tested
Logging: Not tested
File-> Save Vemscfg: Yes, but I haven't verified the resulting file.

BTW: The VEMSLog to csv converter seems broken in the 4th of dec release, I saw the file size grow to hundreds of kB just like expected. But when the conversion finished only a file of a few hundred bytes remained. No further examination.

2009-11-06 (Peter)

  • VT logger view crashes
    • When testing the logger viewer in VT I found a bug.
    • Logger look od the first minus and then suddenly a gauge come up Vista crashes. See pic.


  • (Vasilis)
Done: i noticed that the rpm vs boost table has a bug and does not allow you to put rpm values in. it has kpa vs kpa only.

Testing at idle, BMW 318is, 1.1.63. -Jorgen

  • Didn't test how the 17 point curve behave on the last cell after 1.1.63 code change as that is a bench task. I will try to check over the weekend. But the rest of the cuve seem to behave the same as before. So far so od.
    • Remind me to make and commit configlet for webshop MAT sensor if I forget do do that over the weekend.
    • I can also add preliminary CLT sensor file for Bosch CLT (BMW 318is sensor), but it's not properly calibrated. Seems bloody close to webshop MAT.

  • Tested high res lambda code, seems to work well. The offset observed with classic lambda seem to be ne. Not thoroughly tested but so far it looks od.
    • High res lambda also made the Differ much smoother. Very nice!

  • Tested WBo2 calibration dialog, not successful. Dialog layout messed up in 09-10-21 and Samis-vc build from 09-10-14, no input fields are visible. It starts lambda heater and stops it as it should and calibrating from Basic settings->ECU calibrations work. I have screenshot if it can't be recreated in HU.

  • Tested idle control with help of Emil. "IAC integral min MAP" value was set at 160 after the upgrade and I didn't find it when reviewing after the upgrade. This disabled IAC control. Bad defaults file?

  • Found that "IAC to load" parameter is set at 198 after upgrade. Bad default file? How should this value be configured?

  • Found that the MAT modifier for the IAC ref curve was set at 5.9%. A bit odd value for a defaults file. Bad defaults file?

  • Observed unfortunate startup behavior when trying small fixed bypass air openings, this is not new for 1.1.x but we should try to fix it soon. I will post logs in firmware section. I think that we need a soft transition from cranking IAC position to PID IAC. On my car I don't have a problem as I normally run a larger throttle opening. But many new cars do not offer a way to change the fixed bypass air flow.

  • The lambda heats up a lot quicker when you warm start in recent 1.1.x. Very nice.

  • Wierd EGO correction behavior seen when warm starting short after you have turned the engine off (only condition tested). The second the sensor warmed up and the correction started it would rail the control in what seems to be the wrong direction! I observed the lambda value and the e corr value on screen. The second you t the first lambda reading the corr would to 110% (railed in my config), giving me around lambda 0.80. Seconds later all was od again. I will post logs in firmware section.

2009-10.26: Statistical analysis of the lambda control made by David Blades Priority
He made od plots for 1.0.x closed loop behavior and 1.1.5x closed loop behavior. These show that there is a negative offset of lambda 0.03 in the 1.1.5x control. We need to know if this is a conversion problem between VT and the V3 or if it's a change in the control loop. I saw this problem earlier but without statistical analysis the error looked smaller and I didn't think that it should get priority treatment, but a 0.03 lambda error will make it hard to pass emissions and it must be given priority.
1.0.x behavior
1.1.5x behavior

REQUEST: Would it be possible to do a experimental release 2009-10-16? It would allow me to do better tests over the weekend. If this is a bad time it would be nice to have a working build on Thursday 2009-10-23. -Jorgen

2009-10-15: In car testing, BMW 318is, track car.
Version tested: VEMSTune-VC, compiled by Sami 2009-10-14.
vemscfg and notes: http://www.vems.hu/files/MembersPage/JorgenKarlsson/VT/1.1.61_BMW_318is,60-2,waste%20fire_.zip
  • No wonder I had a hard time getting acc enrich to work right, it seem to behave better when rpm and dv/dt is not swapped;)
  • As Emil wrote, realtime data showing the current dv/dt would be very helpful when tuning the acc enrich.
  • We need a way to build the ECU database from the content in the working directory.
    • We need a way to choose an ECU to work with from the working directory. It only seems possible to do this from the "recent ECU's" menu now.

2009-10-06: In car testing, BWM 318is, track car.
  • As we know the recommended way of setting up the ref tooth table will force us to shift the H0 and H2 tables by one step compared to 1.0.xx. Let's keep it in mind, we will run into this several hundred times when users upgrade their cars. Medium priority Probably needs to be automated before we ship the software or we will most likely have hundreds of support cases.
  • With lots of help from the others I learned that the knock_alternative=1 define also enable high precision Lambda. Which is not working with the current VT release. The Non PS2 has this problem but the PS2 version works.
  • The EGO correction seem to be slightly different compared to 1.0.77, it seems to like to stay a tiny bit richer then target. Speed limit doesn't work for limiting this, when increasing from 40 to 100 it slowly starts to oscillate between lambda 0.94 and lambda 1.03 when idling. This cause the idle to roll and offset still seem to be present. With speed limit set to 40 it works between 0.97 and 0.99, only hitting the 1.00 tartet every 5-10 seconds or so. Maybe this is related to the lambda readout being correct now. It sometimes seemed a tiny bit off in MT when comparing witht he LCD. Minor detail, low priority unless someone gets emissions problems.
  • VT hangs when I try to start the logger. I didn't test to start log with the engine off. I will try to log to the root of C: to make sure that no path problem is causing this. I gave the everyone group full rights to the working directory to eliminate permission problems without any change.

Test upgrade of my track car makes me want to comment this:
  • As others have reported VT asked twice for the human readable name of the ECU. The second time it gave an error message as well. Related to broken default path?
  • Default working directory was not found. Something wrong with the path?
    • I looked around for a bit and it looks like the special folder information is found here: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal
    • "NaV\My Documents" will only work on some OS languages.
  • When choosing a new path VT locked up instead of popping up the dialog. It worked the next time I tried.
  • Save configuration doesn't work on 1.0.77. Probably disabled becaue of FW incompatibility, which is ok. But some message should indicate this and direct to the Firmware upload/download section for config saving.
  • Warmump enrichment table not at 100% with full warm engine after upgrade. Is this a problem with the default tables?

Small ideas,
  • helper for setting fixed timing
    • one screen with a spark advance gauge,a coolant temp gauge and a textbox where you can enter your fixed timing
    • one button to send ManmdaXXbye where XX is what you entered in the textbox multiplied by 4 (and hex of course)
    • one button to disable it, actually sending Manmda00bye
    • Fixed timing workflow proposal:
      • Save vemscfg for backup
      • Go to Ignition table and select all cells (Ctrl-A)
      • Set the desired flat the table with: q,w,e,r;
      • Play with the fixed ignition table;
      • import the saved backup vemscfg (from pup menu or drag & drop);

Good idea, we discussed the final way to configure this when I was in HU but we decided that we need to hold off a bit as large changes are needed. -Jorgen
As a start for the discussion I suggest this:
  • One button that will lock/unlock the timing (Manmda01bye/Manmda00bye)
  • Buttons that will retard or advance the timing by 1 deg.
  • The software will then decide if the change requires changes to:
    • ign_tdcdelay
    • trigger_tooth
    • Ignition and injection fire order
  • We also want a button that allow us to experiment with the trigger edge where that is applicable (hall or opto trigger)
  • Trigg from last tooth also need to work for low tooth count triggers, even for 1 trigger tooth per event.
    • This will allow us to use a triggerwheel that force a too low ign_tdcdelay, the ECU must trigg from the previous tooth if the ignition timing requires it.
    • This setting also cause changes to the starting advance, the user must be warned if the cranking advance is higher then the ign_tdcdelay. We also want the option to trigg the ignition without timing delay when the trigger pulse arrive. This is mandatory for all kick start applications....and I just bought a bike with a carburettor ;)

The above can be made to work for multitooth triggers without firmware changes. That is probably a od second step. The first step would be the simple lock/unlock of the timing and a way to only modify ign_tdcdelay. -Jorgen

Emil's observations 2009-10-01

  • big problem, Cannot open offline vemscfg any more (since 2009-09-25), same problem in latest SVN
  • Program still mess up after firmware upgrade, reproducing instructions:
    • Start with a 1.0.73 FW ECU
    • save vemscfg file
    • upload 1.1.61 FW
    • upload your previously saved vemscfg, let it add defaults
    • Now watch your VE table for scrap
    • Try restarting vemstune
    • Watch your VE table, scrap ne

  • WBO2 Calibration
    • Can we change scale of the gauge? To focus in the interesting areas, maybe 19-23 instead?
  • Is there any known issues with 2009-09-25 experimental release?
    • -> Can I recommend this for people to try at home
    • Today (2009-10-01) I ing to publish a release (there are some known bug that should be fixed)
  • Seems 1.0.73 lambda(target) reading is off
    • Tried only for a short moment, noticed it was wrong, then switched to megatune to not ruin anything
    • need a working 1.0.73 megatune ini and we should compare with our vemstune ini.
  • Remove the known bad versions from http://vems.hu/download/v3gui
    • People have (until 09-25 version I assume, been downloading the version that corrupted output channels and flooded engines with fuel..
  • SVN compile from 2009-09-30 crashed while doing nothing in the background.. No error message in the console window.
    • Hard to reproduce
  • I would like a button/function to switch VE Table in gauge groups ctrl-1 and alt-1 to with TPS Y instead of MAP Y
    • Its too hard to remove the table and add a new correct one for each new car
  • Regarding gauge group editing
    • When moving gauges in a group sticking to main window, widgets jump down/left instead of following the mouse movements. Moving off screen
    • When adding a new gauge, it appears in the upper left corner, and very hard to move from there as the gauge behind it will jump around.
    • we have 2 ideas which is in progress:
      • 1. by press right click popup menu appears in the unused (black) area of the group and this will be the new widget position
      • 2. new popup menu: Duplicate to left, right, top, bottom: for example by press "duplicate left" on a digital gauge then a new digital gauge will be appeared to the left side to to original one.
  • ECU Naming / Working dir
    • When naming a new ECU, I t the window twice, and error message on the second, that the directory was already there..
    • Once i t a directory made in C:\ instead of the correct path..
    • Can we later make a config automatically stored in the working directory for each ECU? That can be automatically opened when choosing it from Recent ECU's?
  • Occational crash on opening logfile http://media.vems.se/vemscfg/robert/v3.3_n000573-2009.09.18-00.53.28.vemslog
11:16:40: VemsTuneController::OnECUCommState() - BEGIN
11:16:40: VemsTuneController::OnDeviceEvent()
11:16:40: STDataMgrFacade::selectInput() - 1
11:16:40: VemsTuneController::OnDeviceEvent() DEVICE_UNKNOWN,id:-1
11:16:40: GaugeGroupManager::OnShowGroup
11:16:40: VemsLogReader::loadNextBlock()

  • Can we make the "paint" command (CTRL+ARROW keys) work with a selection? Suggestion, not very important.
  • Sensor management
    • Emil and I suggest that we move to the 17point curve for this as it will make it simpler to create new sensor files and we think that the end users will find it far simpler then what we have today.
    • In the dialog for setting up the 17 point curve we want to be able to choose sensor definitions from a file or database. The name of the sensors can be: Generic GM, Generic Bosch, specific bosch part number, specific Denso part number or specific car model and obviously our own part numbers for the sensors that we favor. All the files in the database must result in a od temperature match. What we have today is not even close to being od enough for the future.
    • A fair amount of bench testing and a test rig will be needed to create a batch of real life temp sensor curves. As a start we need well matched temperature sensor curves for the most common coolant temperature sensors we keep finding in the german cars and the ones we find in GM cars. Let's call them "Most Bosch" and "Most GM" for now. We also need a curve for our webshop MAT sensor. This is only to get us started, we'll add more sensors later. Medium priority
    • We will also want a way to store custom sensor curves Medium priority and a way to submit them to a central database. Any file that is submitted must be verified to be correct through bench testing by us before we pack it in the VEMSTune release. Low priority

  • Low Priority When draging something over windows the windows sometimes grab focus even if there is no realtime data or a log being played back.

emil, 09-09-09 09.00:
  • show warning for serial number mismatch/missing
  • Toolbar icons disappear quite often on a pretty slow computer (6-700mhz)

Peter?s observations:14/2-2010

Request firmware/software.
We have seen some cars (Subaru) have a long dwell when cranking up to 50 ms on org. ecu and 16-20 ms on link box.
Could we make a fixed dwell when doing cranking. Number + bat factor.

Peter Jensen

Jorgen observations: VEMStune 2009-09-02

High priority: Needed before first reasonable release is possible.
Medium priority: Needed before deployment to remote customers.

  • Very low priority No notification in web tool when new firmware is installed, probably not something we need but it could be discussed.
  • Low priority Can we add a "default bins" button or menu choice for the tables? Low priority
  • Very low priority Maybe new names for the trigger types in the "trigger play" module.
    • Need a map: "Human readable trigger names" -> "our C style names"
  • The serial communication seems to get very slow at times.
    • When? The log refresh rate is around 10Hz. Emil reported that VT can act strange after firmware update if you don't restart VT. It's likely that this caused the problem I had with update speed, I haven't been able to reproduce after restarting VT. -Jorgen
  • Burn/write buttons act up a bit sometimes, probably related to the sometimes slow serial performance.
    • When? As above, probably after upgrading FW without restarting VT. -Jorgen
  • Low Priority Graphical input select tool for Launch, ALS, table switch, Shift cut and other functions. Similar to the graphical injector output select tool.
    • Need to discuss
  • Can table kPa unit be removed?
    • ?? High and low boost setting?
    • High Priority kpa_conf=22 or 21. Yes, seems redundant. Now present in config but I can't find where to edit in VT -Jorgen, removing option in firmware or always configuring 22 is probably better option then adding to Vemstune Ini file, I get a support call about this for EVERY ECU at least once.
    • The user should not set this directly: The HIGH/LOW boost is automatically detected by VemsTune?. File/Firmware Info or File/Firmware Parameters.
  • File seems to be kept open while the ECU is connected, will this cause a problem when the battery runs flat in the laptop or when the power cable to the laptop with bad battery falls out?
    • ?? Low priority Having an open file when a computer suddenly stops working is not usually a od thing. I noticed when I tried to Diff the open cfg with the config dumped by the firmware tool. -Jorgen
    • Vemslog is opened when logging is active, vemscfg should be closed after it has been opened we will check it.


Quick list of new small problems: (some testing by Emil)
  • Opening Vemslog downloaded from sd card, does not open configs
    • File has to be opened with vemscfg file to show settings
    • csv conversion uses configuration for some values (Dutycycle for example), which doesnt work without config being loaded
  • .ini file, In Offline mode,#if PS2KEYBOARD for example doesnt seem to work, maybe not saved at all in vemscfg/vemslog files?
  • By accidentally having 2 "SD Card extended overview windows open, I t the second one showing that the last log file was ~= -8000000 seconds long, after that only restart of whole vemstune helped
    • Maybe a Refresh button in extended overview page?
    • Some information what the "magic number" in middle / Top part of screen is (numbers of sample taken for summary)

  • No reporting when serial port not found (USB adapter unplugged causing bad config)
    • Unhandled exception when trying to open SD Ext overview

  • New ideas again...
Done: ** When opening a dialog, check if same one is already opened and bring to front instead of opening a copy


  • New Dialogs for choosing output pins as discussed ( Ignition outputs and all other channels)
  • In dialogs where applicable, insert a Defaults button (WITH Confirmation)
  • Mix Realtime data with config data when sending/receiving lots of config
  • Change the headline "configlet" in all dialogs to Load defaults
  • Change the text "Descriptor file has not been found for current firmware" to "No defaults are available for this dialog"
    • Descriptor file has not been found for current firmware means that VemsTune? not found the appropriate (glaobal.h) so that tha user should download the given firmware even if he wont like to upload it.
  • in subMenu, add extra parameter to hide greyed out options


  • Done: Lock Gauge problem to prevent sensitive keypads so they are not moving around gauges.
  • TODO: add a background to the gauges
  • Done: Create new gauge descriptor add new gauges (example knock_cyl_0_knock_val) to VemsTune?.
    • Create a GUI on which user can select the appropriate RT values for convert to csv. Now it is stored in ini file
but needs to be stored in db.

  • Done: Drag and Drop *.vemscfg, *.vemsproject to main frame.
    • In online mode (ECU detected) a confirmation dialog should appear to avoid unwanted config upload.
    • In offline mode it loads into VemsTune? for offline working
  • Done: user defined hotkey for example in table editor


  • Cannot reproduce: BUG: In config parameters windows, typing too fast cause settings to be reverted
    • Example where i t problems: reference tooth table, was entering 0 tab 30 tab 0 tab 30 quickly, and these t reverted to old setting (which was 255, causing engine to run very bad), this is there in all settings windows.
  • Cannot reproduce: BUG: In Boost alternate PWM table (tables menu), some cells keep getting unchanged when moving the same value to all 4 corners (using shift), tag them all with ctrl and press I
    • cells keep getting unchanged in case of using shift+arrow key or in interpolation?? (some old value can be same as the interpolated)
    • bonus, describe when to use the boost alt pwm table and when to use the boost alt open loop dc curve
  • Done: WBO2 calibration WIZARD
    • warn the user to Switch off engine and remove LSU4 sensor from exhaust. Switch off engine is not enough by itself
    • optional: allow entering measured RCal (resistance between WBO2 pin 2 and pin6) and calculate starting wbo2 calibration value
    • make sure "lambda" display can show O2% properly (20.9 for 20.9 O2%)
    • allow updating wbo2_cal
    • restart wbo2 with mde00 mde02 each time value is changed. This way user can calibrate in a few quick steps
    • optional: analyze O2 and adjust wbo2_cal automatically
    • TODO: TableEditor? Height variable needed (pdascreens)

  • Done: TPS calibration wizard
    • 2 ways of doing it, choose one way to do it, remember to support inverted wiring)
      • method 1: on opening of the wizard, set min and max to 0 and 255, the rest working like the tool for tps calibration in megatune, but of course sends config to ecu
      • method 2: also sets 0 and 255, but automatically calibrates tps automatically while having the wizard open, has to show a TPS gauge in the window to verify that it works
  • TODO: Faster syncronization
    • Takes too long time, with no information, to synchronize and start showing realtime data, should probably assume that its the same version as last time the running instance t connected to an ECU
  • TODO: Autodetecting whether TPS is load, and automatically show Y scale in VE table as 0-100% instead of 0-510 x
  • TODO: Make "View Last Log" to automatically convert to csv log and open in viewer
    • Bonus would be to get vemslogger to work with latest firmware, and include logviewer in install
  • TODO: Describe defaults for all new tables and settings in 1.1.53, to make upgrade possible in less than 1 hour
  • _TODO:__ Rename config menus to have the same title as the menu choice


  • TODO: for wince some simple widget for changing setting variables, like up/down arrow and save button.
  • TODO: wince widget for uploading/downloading tables and config.

Linux Bugreports

WinCE Bugreports

Windows Bugreports


  • DONE: Rawtohighlog converter and logger gadget now uses Label (since 2008-05-30) rather than Channel from vemsv3.ini [Datalog] section for colum names in xls. mslogviewer likes them better.
  • should be quite usable in general
    • except experimental menu, of course
    • eg. sound will be experimental (perhaps broken)

PLEASE CONTRIBUTE some help texts and perhaps graphics(help is html format)



V3Gui User Manual



  • Upload/Verify firmware
  • Upload/fetch config/table files
  • Generate wav trigger sound based on trigger.ini file
    • TODO: currently only works if the v3gui directory is chosen. Should be possible to generate to other dir (maybe it requires trigger.ini in that dir ?)
    • TODO: some status report would be nice

Release: http://www.vems.hu/download/v3gui/

  • TODO: check again you don't need these or other even on a dev-env free system: mingwm10.dll and wxmsw26_gcc_custom.dll
  • Eg. hex file should be possible to select from _ANY_ directory (not just under ntc)
    • and when selecting a hex file the checkbox should automatically change to ON
    • also for a config file, when selecting a file, the related checkbox should automatically change to ON


  • Merge wxSound and signalgen module: soundFrame.cpp should move to signalgen and remove wxSound dir.
    • The basic concept is to sepearate the signalgen module to wx and non wx classes.
    • Do not mix GUI and non GUI functionality: wxSound/signalgen.cpp mix GUI and the signalgen function.
  • Use Helper::log() instead of printf and loads of: #if defined(wxUSE_UNICODE) && wxUSE_UNICODE
  • To Convert wxString to char * use: Helper::U2C() function
  • list of problems and ideas in hungarian VemsTune_todo_hun

User friendly interface(VERY important)

Take a look at Samis updates with a button to initiate firmware upload. The choice of an icon image button is great as it allow us to use informative buttons.

On the first tab we should have the default actions, v3gui must ALWAYS be distributed correctly configured for updating to the firmware in the package! An end-user must never be forced to setup paths!

It is important to have a layout that corresponds to the normal workflow. Having small graphic arrows between the buttons makes the order of the actions more obvious.

The default actions in order of workflow are:
  • Download config from ECU
  • Prepare config for upload to ECU (Make mtt)
  • Upload firmware to ECU
  • Upload config to ECU

Each action in the workflow need a button and an icon-like indicator below that show if the task has been successful or if it is yet to be performed. For now status can be: Not started, working, Success, Failed.

We don't want a console window that is shown by default! Users don't like it. We can have a console in it's own tab.

The second tab can have expert path options. This is useful when you configure more then one car with a computer.

Basic engine setup

The next few tabs has dropdown boxes for their own part of the configuration. For example:
  • Basic engine setup tab
    • Number of cylinders
      • trigger type, ignition type. Choosen with radio buttons. This is simpler to maintain as no smartness is needed in the program. Only the finished config snippets are shown with a radio button.
    • Load sensor setup (MAP sensor type and if you want to use alpha-N or alpha-N+boost)
    • Base map information.
      • Number of valves per cylinder.
      • Fast burning engine or knock sensitive engine. For example Saab which need little timing, or high CR engines that will detonate easily.
      • Normally aspirated / boosted

Base maps will need to be prepared for the different engines.

In the basic engine setup tab we can also have a 'More' button that show the downloaded config and the generated config side by side (maybe with diff highlighting?). The Generated config could be manually edited from here.

Trigger setup guide

This is a od place for the trigger analyzer application.
This is also where we want to help the user to strobe the engine and get the base timing right. We take him through the following steps:

  • Disconnect injectors
  • Check ignition timing when cranking (the ECU is commanded to run 0deg crank timing)
  • Have him change the number in an input field, prefferrably with buttons that will increment and decrement the value in the field. Until the actual crank timing and the commanded crank timing matches. Warnings has to be shown if the value is too low or too high. Maximum and minimum limits must be present.

Simple important details:

Noticed that the program has started to be released to the public, we need some quick and important parts fixed.

  • Appearance
  • there must be a file-menu (leftmost, even if it just contains EXIT. But firmware/webtool can be included in there TOO - also avaiable under firmware of course, with same menu-entry text). Stupid, but that's how programs work. Help must be the rightmost menu (as now).
  • It must be possible to pack gauges,dialogs and tuning subwindows in a root window (enlarge the main window, and pack there). The desktop as background is not od. Dragging gauges individually (as the only option) is unacceptable. Perhaps "sticking windows" (winamp style) can work, but the main root window is the best.
  • we need to make layout for 4:3 and widescreen displays. It does not work to use the same layout for both
  • Horizontal gauge widget showing lambda/lambdatarget above each other. To make it easy to see if above or below target. (already implemented ?)
    • Program has no name ? v3gui just looks strange, Rename to VEMS Upgrade Tool.
    • Main screen and debug window has somehow t mixed up.
      • Buttons for different functions es on the main screen, the basic functions like downloading config, generating config, uploading firmware, uploading config has to be controlled with buttons instead of menus. Especially when the menus are as cluttered with broken functions as now.
      • Maybe a VEMS lo? And a toolbar?
      • The current main screen es to a debug screen, which can be shown to experienced users when they want to, normal users want to see "Connecting to ECU", "Failed to connect to ECU", "Uploading Firmware version 1.1.x" etc

    • About screen, noone is interested in what version of vxwhatever is in use, This is info about the program itself, "VEMS Upgrade Tool, version x.x , check a simple program like MS minesweeper for comparison.
  • Hide unused features from users
    • Get OneWire? ID, Fills the screen with crap
    • Gauge test, see no use of a empty window for the end users
Its hard for me to explain the look and feel, but just open programs like ms word, minesweeper, and other programs you can think about and compare.

Additions to program (propositions):
  • Firmware upgrade wizard
    • Step 1: select new firmware
    • Step 2: download config(and tables), click "download", and get a "Finished" result back when they arrived at the computer ok.
    • Step 3: Report any strangeness in the old config (added or missing settings), with a possibility for users to fix.
    • Step 4: Upload firmware, Estimated time XX seconds. click upload to proceed, status is shown while uploading, a bar or just a percentage of finished upload is shown. Verify and show a new counter for that, with the Upload counter still shown on screen (so people see that they uploaded, the counter didnt just restart)
    • Step 5: Reupload firmware, simple and logical.
    • Step 6: Report that upgrade to version 1.1.18 in ECU with serial number XXX (if possible) successfull. Remember to use correct tuning software for this new firmware.

PhatBob? I've done a very simple little program to see the maximum speed that I can get out of the v3 using wxSerialPort classes. V3GUI Serial Tests


  • Burn (button or ALT-B hotkey?) does not work from Tuning (2D or 3D ?). All must be tested. Emil reported this as a very serious bug (that renders the tuning part "useless for the enduser" - Emil's words)
  • ...

Trigger Plot

windows/linux plot target uses wxplot that can be found from wxwidgets sources inside Contrib dir.
compile plot with same parameters as the wx itself (C:\usr\wxWidgets-2.8.3\contrib\build\plot)
Onsite logging: Buttons are there, only need implemention.
  • Create tmpfile
  • Issue Manmde40
  • Store every received byte to tmpfile
  • Stop receiving bytes
  • Issue ??stopcommand??bye
  • Give option to save tmpfile to real file
  • Plot tmpfile or real file to triggerplot


  • We are planning on using reliable comm such as SIPR. Most commands implemented

PC Requests

  • real-time FFT needed for knock-analysis and display and logging (together with other data). This feature MUST be accessible without any project, or firmware or ECU connection (possibly to be used with other ECU-s as well).
    • even if audacity can display real-time FFT, we need to be able to define thresholds so there a BIG RED KNOCKLIGHT comes up when knock is heard. Also, it can be logged synchronized to engine runtime-datalog.
    • The FFT tool could suggest knock-parameters from FFT analysis?
  • config-upload only a SET of a full vemscfg-file. I want the IDLE settings from JOE-s config. This uses 2 files as input:
    • config-file, possibly (not necessarily) a full vemscfg file
    • MASK-file to determine the set of values to upload. This might just be 5..10 variables. 1 key per line (except for comments). This might contain keys like ign_out=72 but the values do NOT matter. Only the keys matter, the values come from the other file. A special mask is "ALL", and "NONE", with obvious meaning. This MASK-selection can INSTEAD of the "upload it or not checkbox"

Realtime FFT for knock detection

Table example for channel selection dropdowns:

Old name;Name;Amps;Type;Position;HEX value
I259-0;Ignition output 1;7A;Grounding;EC36 pin 35;02
I259-1;Ignition output 2;7A;Grounding;EC36 pin 33;12
I259-2;Ignition output 3;7A;Grounding;EC36 pin 34;22
I259-3;Ignition output 4;7A;Grounding;EC36 pin 36;32
I259-4;Ignition output 5;7A;Grounding;EC36 pin 11;42
I259-5;Ignition output 6;7A;Grounding;EC36 pin 12;52
I259-6;Ignition output 7;7A;Grounding;EC36 pin 24;62
I259-7;Ignition output 8;7A;Grounding;EC36 pin 10;72
P259-0;Low Current output 1;0.3A;Grounding;EC36 pin 4;07
P259-1;Low Current output 2;0.3A;Grounding;EC36 pin 16;17
P259-2;Low Current output 3;0.3A;Grounding;Internal/Custom;27
P259-3;Low Current output 4;0.3A;Grounding;Internal/Custom;37
P259-4;Low Current output 5;0.3A;Grounding;EC36 pin 3;47
P259-5;Low Current output 6;0.3A;Grounding;EC36 pin 15;57
P259-6;Low Current output 7;0.3A;Grounding;EC36 pin 31;67
P259-7;Low Current output 8;0.3A;Grounding;EC36 pin 30;77
S259-3;Stepper output 1;1A;Push/Pull 12/0V;EC18 pin 4;36
S259-4;Stepper output 2;1A;Push/Pull 12/0V;EC18 pin 10;46
S259-5;Stepper output 3;1A;Push/Pull 12/0V;EC18 pin 5;56
S259-6;Stepper output 4;1A;Push/Pull 12/0V;EC18 pin 11;66
INJFET-0;Injector output 1;7A;Grounding;InjGroup?;00
INJFET-1;Injector output 2;7A;Grounding;InjGroup?;10
INJFET-2;Injector output 3;7A;Grounding;InjGroup?;20
INJFET-3;Injector output 4;7A;Grounding;InjGroup?;30
INJFET-4;Injector output 5;7A;Grounding;InjGroup?;40
INJFET-5;Injector output 6;7A;Grounding;InjGroup?;50
INJFET-6;Injector output 7;7A;Grounding;InjGroup?;60
INJFET-7;Injector output 8;7A;Grounding;InjGroup?;70

Powered by TikiWiki
RSS Wiki RSS Blogs rss Articles RSS File Galleries
[ Execution time: 1.51 secs ]   [ Memory usage: 10.86MB ]   [ 79 database queries used ]   [ GZIP Disabled ]   [ Server load: 8.56 ]