Virtual Dash where?
Page 1 of 1

Author:  superlen [ Sat Mar 01, 2014 8:00 pm ]
Post subject:  Virtual Dash where?

I'm in the process of coding up a UI for my custom ECU & I've been playing with gauges.


Here's a thread that has a few more pics & a description on how I created them. viewtopic.php?f=10&t=2410

Anyhow, the gauges are skinnable and will have quite a few configuration values, colors, locations, fonts, ect. Currently I'm storing this information just locally to the host computer's hard drive, but it I wondered if it would be warranted to store the gauge configuration down into the ECU as well. That way on any laptop you connect up to, your gauge definitions would look correct. Does anyone have any opinion on this or knows if this is common? I've never messed with any tuner software so I don't have any frame of reference.

I have plenty of flash on board & I of course wouldn't store a bitmap file if the user went that far with the skin, but I would at least store the path to the bitmap(s) so if they had the bitmap still in the same location on the host pc it would be correct.

The only downside I see as it might take an extra 1/2sec longer on upload/download time when you connect up. I wouldn't of course drop the load/save to the pc. It would still be present. Truthfully, I struggle with a clean easy way to keep the user informed with exactly the status of their tuning session and what they have changed & where it's at. The tune can be stored in 4 places while you're messing with it.

1. The Harddrive copy
2. The values in the GUI as you're making changes
3. The runtime variables in RAM of the ECU
4. The sticky flash copy of the ECU.

I'll have some icons to show what fresh/stale & such, but I've not came up with a solution I'm happy with yet.
I've considered just making every download to the ECU sticky so 3&4 get combined as just the 'ECU'. I suppose you could combine 1,3,& 4. Then when you hit SAVE it just saves it everywhere. Simpler, but you lose some flexibility. And you still have to allow loading from PC or ECU.

Any suggestions or opinions on how you think the tune storage would make the best user experience would be greatly appreciated.



Author:  ivan141 [ Mon Mar 03, 2014 10:03 am ]
Post subject:  Re: Virtual Dash where?

I would never go as far as storing UI data on a device, it entangles your device code with your UI code, which is usually not a good idea. Besides, it's just a tuning app, it's not like your likely to be using a different device with the same ECU often.
Why not just have an export option on the UI if you want to use a configuration across different devices?

As far as tuning data storage is concerned I'm sure there are better qualified people than me to advise you, but your problem definition sounds like it could use a bit of tweaking. In my perception you usually have 2 types of parameters:
-'global' (more or less) parameters, these are often committed in one go (mathmatical constants / setpoints).
You could commit these to the device RAM at a per-page basis I suppose (to keep things easy).

-Parameters that are changed while you tune (maps etc).
These need to be committed to RAM immediately if you want to see any results.

Personally I like having control, so I would prefer to:
-Commit changes to RAM immediately or when I choose to.
-Only store changes in flash when I know I'm ready.
-Keep storing to flash and storing to HD separate, perhaps offer a menu options to do both at the same time?

Those where my 2 convoluted cents..

Author:  Fred [ Mon Mar 03, 2014 11:08 am ]
Post subject:  Re: Virtual Dash where?

Good post, Ivan, I agree.

Author:  superlen [ Mon Mar 03, 2014 11:42 pm ]
Post subject:  Re: Virtual Dash where?

Thanks for the feedback Ivan.

For the UI..
The way you describe it is pretty close to what I have now. I too like having control, but I was trying to simplify if possible. It may make things worse, however.

I have buttons at the bottom of each screen that read/write to the ECU (the ram). Originally I thought I'd only read/write what that screen was editing/configuring. For instance if you're looking at the VE table the R/W buttons at bottom would only affect the VE. If you were in the general configuration screen setting something like the number of cylinders, the R/W buttons only sent down that structure. I planned on that way to just save the serial traffic. However, I found it easier to just read/write all structures, (config, tables, sensor cal numbers, ect) any time a read/write button was hit. This keeps everything up to date. The serial routines are all binary & packetized/crc'd so the read/write times are fast and they happen in the background.

Again, the read/write button(s) only send to ECU ram & doesn't invoke a save to flash. Of course the new values instantly take effect in the ECU. Saving to flash/Re-Loading from Flash is via a menu item and another additional "Save to Flash" button.

Load/Save to HD is by the typical menu item File -> Save/Load.

I think with some judicious use of icons, button verbage, and highlighting fields the user has modified but not sent down to the ecu yet, the confusion factor can be lessened.

Something like this:
  • Load/Save always mean HD type items. (Use little computer icon for menu items)
  • Read/Write always mean ECU Ram items (use little circuit board/ram icon for buttons)
  • "Commit to Flash" button with suitable flashy related icon.
  • I'll turn any editable field light yellow to indicate it's been changed, but not sent to ECU. Send clears the light yellow. - I'm not sure how to handle changed, then save to File, but still not saved to ECU????

For the Gauges....
I chatted with Fred and some others. Everyone confirmed I was crazy for thinking someone would want the gauge info to follow the unit. :D

Thanks again for all your input.


Author:  Fred [ Tue Mar 04, 2014 12:22 am ]
Post subject:  Re: Virtual Dash where?

Re saving to disk, it should be explicit, however if you're awesome you'll also maintain a full timestamped and annotatable log of all tune change actions in an automatic place such that you can review it and diff each thing that was done.

Author:  superlen [ Tue Mar 04, 2014 1:02 am ]
Post subject:  Re: Virtual Dash where?

I'm not awesome...I'm just super. :D

I do make a copy each time it's saved and stuff into a history directory. However, I don't (yet) have any comparison utility or diff details. Once I get the basics under control, I'll revisit.


Author:  Fred [ Tue Mar 04, 2014 2:04 am ]
Post subject:  Re: Virtual Dash where?

No, I mean on EVERY change sent to the ECU RAM, save EVERYTHING to a transaction log in detail, incrementally, or in full. Either works. One of the only really good things Phil does in Tuner$tudio :-)

Page 1 of 1 All times are UTC [ DST ]
Powered by phpBB® Forum Software © phpBB Group