Page 1 of 1

One more MS user and a few questions

Posted: Tue Oct 21, 2014 12:29 am
by 3400tZ
Hi guys,

I've already posted a bit but I thought I would make a proper introduction :)

First, let me start by saying that I really like this project. I'm currently running a MegaSquirt 3 / MS3X in my summer car and I'm a developer. Mainly Web developer these days but I'm doing a lot of Java (Android app) in my spare time as well as C/C++. I've came up with all sort of devices to "talk" with the MS from Android app to Arduino based touch screen LCD thingy to 2 1/4 gauge and what not. What I've never really dived into is the firmware side of thing mainly because I think the MS code is so poorly written that I don't even want to get myself into this non-sense. A 2000 lines function with goto everywhere shouldn't exists in any project IMO. Part of the reason is probably the over optimization based on the hardware that isn't what it should be. Better hardware with more room for less optimized code is probably a better idea, again in my opinion. I've looked at DIYEFI as well but long story short, I can't stand that Fred guy :P And the code is better than MS, but still not good enough for me. Andrey, you seems like a really nice guy and I really like what I'm seeing so far with this project.

Now, I have a few questions:

1- It would be cool if the documentation could include actual code examples. For example, it would be cool to have an example of bringing an hard coded value to an exposed tuning setting in TS. I've seen you've added the cylinder cleanup feature recently for when TPS > 95%, no fuel is injected. At the very least, that 95% should be a define somewhere but even better, I would like to expose that 95% in the cranking stuff dialog in TS. It's a bit hard to understand the flow to make that happen. Maybe a code diff of extracting a setting like that would be useful. People could use that generic example to help them understand the whole flow. The ini part of it is no problem for me as I've done a couple MS apps, I know the format pretty well (I can help build dialogs btw, if you have anything you need in mind).
2- I haven't looked at it too much but I can't seems to find any "how-to" and for some reason I'm having issue understand how to compile java console with Eclipse ? It seems like every folder has a "src" folder which is something I haven't really seen before. I've tried a couple way of importing that with Eclipse without any luck.
3- Is warmup enrichment / after start enrichment planned for a near future ? I don't see them in the "tickets list". It seems somewhat straight forward. We just need a couple curves (array) and basic interpolation and include that in the fuel calculation.
4- Is there support or is it planned to add support for GMDIS ? I'm using "Basic trigger" and a 60 degree angle offset with MegaSquirt right now.

I still strongly believe this project really belongs on github (with proper forking / pull requests mechanism and what not). It's somewhat there but used more as a mirror with the "auto-sync" stuff, so it's not easy to follow :) Anyway, enough complaining, awesome and interesting project!

Re: One more MS user and a few questions

Posted: Tue Oct 21, 2014 10:05 am
by kb1gtt
Have you found this page yet http://rusefi.com/docs/html/ that might help with one of your questions. I'm guessing you have found it, but figured a link wouldn't hurt just in case.

Are you looking to compile the java console such that you can offer help further developing it?

Can you elaborate on GMDIS? A quick Google didn't cause it to jumper out at me. I'm not sure what is needed for that. Most of the not developed features are because we don't have hardware at arms length. If we can find info on the interwebs we can probably take a good stab at a drafting a version of the feature.

Re: One more MS user and a few questions

Posted: Tue Oct 21, 2014 10:44 am
by AndreyB
Good morning :)
3400tZ wrote:1- It would be cool if the documentation could include actual code examples.
No time :( Also I believe that with a good IDE one should be able to navigate the code to all the answers once he has some keywords. I've added the name of the structure into the main overview @ http://rusefi.com/docs/html/ - new version should get uploaded around noon daily
3400tZ wrote:I haven't looked at it too much but I can't seems to find any "how-to" and for some reason I'm having issue understand how to compile java console with Eclipse ?
Considering the fact that Jetbrains IDEA has community edition, it would be hard to convince me to open java code in Eclipse. So it's either IDEA or using ant from command line - there is an ant build script.
3400tZ wrote: Is warmup enrichment / after start enrichment planned for a near future ? I don't see them in the "tickets list". It seems somewhat straight forward. We just need a couple curves (array) and basic interpolation and include that in the fuel calculation.
I believe it's there. It's mentioned at http://rusefi.com/wiki/index.php?title=Manual:Software:Fuel_Control and the code is

Code: Select all

/**
 * @brief Engine warm-up fuel correction.
 */
float getCltCorrection(engine_configuration_s *engineConfiguration, float clt) {
	if (cisnan(clt))
		return 1; // this error should be already reported somewhere else, let's just handle it
	return interpolate2d(clt, engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE);
}
3400tZ wrote:Is there support or is it planned to add support for GMDIS ? I'm using "Basic trigger" and a 60 degree angle offset with MegaSquirt right now
Everything gets added once there is a test platform :) And time :(
3400tZ wrote:I still strongly believe this project really belongs on github (with proper forking / pull requests mechanism and what not). It's somewhat there but used more as a mirror with the "auto-sync" stuff, so it's not easy to follow :) Anyway, enough complaining, awesome and interesting project!
Right, the commit messages get lost, that's true :( But forking and pull requests are technically there, once there are pull requests I would definitely figure out a way to pull & check them into SF :)

Re: One more MS user and a few questions

Posted: Thu Oct 23, 2014 1:26 am
by 3400tZ
GM DIS is a pretty widely used ignition system by GM. Here is some info from the MS manual: http://msextra.com/doc/ms1extra/MS_Extra_Ignition_Hardware_Manual.htm#gmdis. I'm not very familiar with ignition system so I cannot help with the implementation side of thing for this unfortunately.

Yeah, I had already contributed a very very small amount on the console earlier but I would like to do more eventually. I also have the discovery board but I have yet to order a frankenso board.

I understand about not having time to write documentation. Aside from not having time, lets face it, it's not the most exciting thing to do. :) I also understand everything get added as time permit. Development of new features does take time! It seems to be progressing quite well tho.

Ok so whenever I'm ready to send you some changes, I will create a fork on github and pull request the changes. Cool!

Re: One more MS user and a few questions

Posted: Thu Oct 23, 2014 9:40 am
by kb1gtt
Thanks for the reminder about why Government Motors was / is on the brink of destruction. Looking over the GMDIS, I'm tempted to put the use of that system up there with dexcool, but then I have to remember they did that because they were using things like a 68HC11, which didn't have the resources we have now. My first reaction is to encourage the replacement of the Ignition Control (IC) module, as we have the ability to do it all, and do it better than how the control module was doing it. However I also understand there allure of replacing 3 or 4 low voltage wires and leaving the rest of the high voltage alone.

Both Frank boards have the physical ability to get the information in and out of the IC. The issue is that you are not driving the ign or getting the cam/crank directly, you are instead manipulating an intermediate device. So there is significant firmware changes that would need to happen as the device controls are very different. Also it appears that just like with EDIS, if the ECU fails completely, the engine still runs. I'm not sure if that's a good thing or a bad thing. If you fail, it hides problems, but at the same time it allows a lesser experienced or less skilled installer to have some sort of success.