DIYEFI.org, FreeEMS and the future of TRUE DIY engine management

The 1UZFE EGR Delete Kit is available for sale here.

fredio54

New Member
Messages
46
Location
Auckland New Zealand
Hi,

This thread is here to introduce and discuss DIYEFI.org, a new community with a difference.

For those of you who don't know who I am, I've been keeping a close eye on DIY EFI stuff since the late 90's and been involved with MegaSquirt for the last 3 years or so to some degree or other. Many things have come and gone and many things have changed in that time. The time has come for an even bigger change. Those of you who "just use" MegaSquirt and don't get too involved won't really care too much about this site for at least a few more months. On the other hand, if you like to participate and get involved, this site is probably for you.

As a way of testing whether you might be interested, I have assembled some questions here :

  • Do you use GNU/Linux?
  • Does engine management interest you?
  • Are you a fan of Open Source Software?
  • Do you enjoy printing your own boards?
  • How about designing your own boards?
  • Do you dislike closed door development?
  • Sick of Lance deleting your posts on msefi.com?
  • Sick of waiting for UMS, PWC, MS3, Router board, GPIO or Sequencer?
  • Willing to put in the hard work to have the engine management system of your hearts desire?
  • Clever with electronics or code and willing to work on an open source project for the greater good and benefit to all?

If you answered yes to any of those you may want to take a look at my new site, if not, there is no need to bother :)

The site is totally non-profit. There aren't even any adverts (yet, probably never if I can help it). The designs will be community produced and available for free download just like FireFox and Linux etc. There are no businesses or companies behind it. Just me and a group of like minded individuals who want to make the DIY engine management world a better place for everyone.

If you are wondering why I have gone and put this much time, effort and money into apparently reinventing the wheel, take a look here http://www.diyefi.org/why.htm

If you are wondering who else is involved in the project, or indeed who has made MegaSquirt the runaway success that it has become, please see the appropriate sections of this page http://www.diyefi.org/contributors.htm

If you are wondering about some of the details of the history of Do It Yourself fuel injection, have a read through this partly incomplete history page http://www.diyefi.org/history.htm

If you want to dig straight in then have a of this thread http://www.diyefi.org/forum/viewtopic.php?f=17&t=90

The code is nothing special just yet, but some of the foundations are there and working flawlessly http://www.youtube.com/watch?v=jsXPi2KWRAU

It will be some time before it runs an engine, but that doesn't mean you should wait till then to get involved. If you express your opinion in a constructive way now, you will be happier with the end result when it finally arrives.

It was recently suggested to me that I was trying to recruit the type of people that complain a lot :

Anon said:
If the recruitment drive is for disenfranchised MS people as it seems to be, you're going to end up with a bunch of B&G gripers and generally negative people more than likely.
This is NOT the case. In fact, that is the LAST thing that I want. If you are just going to whinge, whine and complain about the past, please stay away. If on the other hand you have something positive to offer about the future, please sign up!

The forum is here if you would like to join our efforts : http://www.diyefi.org/forum/index.php

However, before joining, I recommend that you have a read of this first http://www.diyefi.org/forum/viewtopic.php?f=17&t=26

If you want to see some of my work that is more or less completed and you have DSL have a look here http://www.diyefi.org/forum/viewtopic.php?f=3&t=16

If you are wondering more about me, some would say that one word sums me up nicely

http://i260.photobucket.com/albums/ii15/diyefi/freeems-hardware-prototyping/100_7044.jpg

though, I prefer to prefix it with 'car-' ;-)

Additionally, and importantly for you guys, the NipponDenso 24/2 trigger present on stock 1uzfes is what I am developing first. It currently can read a trigger, but not well enough to use on a vehicle. This will improve over the next few weeks though. The video above is shot using a JimStim and simulating the NipponDenso mode.

Thanks for reading, I hope you enjoy what you find :)

Fred.
 
Way cool Fred, and my answers are yes to most of your questions.

I've been a dabbler in Linux since the early Slackware days, but can't say I've developed any special expertise with it.

I'll sign up as soon as I get back to civilisation and broadband. I've a GT40 mate in the UK who's an ace at writing assembler code for embedded devices, and I'll point him to your place too.

Definitely keep it free & open. Nothing rubs me worse than someone who comes along and siphons up "free" knowledge and then tries to turn a buck with it.
 
Way cool Fred, and my answers are yes to most of your questions.

LOL, Awesome :)

I've been a dabbler in Linux since the early Slackware days, but can't say I've developed any special expertise with it.

It's amazing who comes out of the woodwork when you ask about Linux :) Windows is ok for dev too, but I can't/wont support it because I have no windows machine and don't approve of their business practice and monopoly in the market place.

I'll sign up as soon as I get back to civilisation and broadband. I've a GT40 mate in the UK who's an ace at writing assembler code for embedded devices, and I'll point him to your place too.

Definitely. I have to say though, the aim is to keep it clear and readable. ASM kinda slaps that idea in the face. However, there is no C compiler for the XGATE co processor (yet at least) so that may be very useful for ignition purposes, and possibly sequential v8 fueling with some loss of accuracy.

I'm trying to keep the development "purist" at the start. Later when things are more or less complete, various branches/parallel code lines supporting things like siamese injection, rotary ignition, and bit banged XGATE fuel will be welcomed. What we need is a REALLY good base that anyone can understand if they put in the effort. I think for that reason, and to ensure max audience participation, ASM should stay at the door for now. However, if the man can write good ASM, the chances are he can write good C too :)

Definitely keep it free & open. Nothing rubs me worse than someone who comes along and siphons up "free" knowledge and then tries to turn a buck with it.

To be fair, I think they have spread more knowledge than they have siphoned. My main issue is the following :

Current MS solutions are good and cheap, but not that good for high kw/litre engines. And not that good at acceleration response OR accurate delivery of fuel due to the batch injection scheme and dead time error %.

Future MS solutions are likely to improve in this respect which is great, however, they will be almost as expensive as some commercial stuff AND, that cost is not justified EXCEPT for making a profit.

I've been kinda led along the garden path of believing that it is all open and roses, but if you look at the "webarchive" copy of the original ms1 page, it reads like a sales brochure.

I think that misleading about the "open sourceness" and release time frames is really not very good, even if it's entirely by accident/disorganisation, which BTW I think it is.

Something else that has really pissed me off is that James, Phil, Keith, Ken etc have NOT been treated right. Those guys made it the success it is by opening it to new audiences. They have been pushed out in the cold by Lance. I find that unacceptable too.

Hopefullly I can run my forum with an absolute minimum of interference!

Wish me luck :)

Thanks again!

Fred.
 
I got a little carried away and forgot to mention this :

Definitely keep it free & open. Nothing rubs me worse than someone who comes along and siphons up "free" knowledge and then tries to turn a buck with it.

The only thing it is possible for me to do is stop development. The code is out there and under GPL, at that point it is not my decision anymore :)

The only other thing I could do, and only up until someone else contributes, is sell the code under a different parallel license to someone. All that means is that they can improve it and not give it away for free. It doesn't/can't take it away from the public.

Regards,

Fred.
 
Our member Kdog would be a natural for this project, as would several others here. Hope they're reading this.
 
Im signing up now, mainly becouse i plan on putting a ms on my 1uz supra eventually but ill keep an eye on this one to see how it evolves.
 
Cool :) MS is a good system, I just don't see any future developments occurring for the hard core DIYer. Hence this :)

Are you planning NipponDenso mode? or 12-1 mode like em_knaps or a custom 36-1 setup or what?

If you haven't decided yet, my recommendation is 36-1 with a single cam pulse. That is widely supported for ms, and will be supported for FreeEMS too. Reason being it gives the best transient data and the best information for COP/Sequential.

Fred.
 
Sounds interesting, I'll have to take a look. My job has been primarily Linux performance for the last 7 years, but not in the embedded area. Does this thing run Linux, or just use Linux for the development environment?
 
Just for dev, although windows is fine too, I can't/wont support it because I don't have a win machine, and don't enjoy their business practices.

Also, I just wanted to point out that James and Ken are NOT working on my project with me. The original contributors page may have been a little misleading in that regard, I have updated it now to be more clear. My most humble apologies for that misunderstanding.

Fred.
 
Ken had this to say on some other boards, so I thought I would put it here. If an admin wants to delete that duplicate post above this, that would be good. I'm not sure how that happened.

This is Ken from the msextra forum.

James Murray, Phil Ringwood, and I (along with Bruce and Al of course) are the main developers of ms1/extra and ms2/extra (along with tons of other people, at least on the ms1/extra side).

We are in no way associated with Fred's project, and are hard at work trying to make ms2/extra (and our next generation stuff) better.

Ken
If you are reading this, Thanks Ken, your work is most appreciated, as is James'.

Fred.
 
It has come to my attention today that one of our members has been banned from msefi.com just by being a member on my site. Please, if you are signed to my site, or intending to, and also need assistance on msefi.com read this :

http://www.diyefi.org/forum/viewtopic.php?f=17&t=26

It is highly unfortunate that I have to post about this publicly, but I feel that not doing so would be irresponsible to my users.

Fred.
 
Minor update :

FreeEMS_logging_first_time.png

Human readable serial logging is working as of this morning. I'll tidy it up and add a bunch more variables before doing a release later today.

I also changed the formatting of the forum a bit. The moderators are now Blue, the members that have contributed the most useful stuff to discussions are Green, I am now Fred instead of Admin which feels much more natural, and I added an Admin user for site stuff (who is me for now, but could be others later).

Fred.
 
FreeEMS_logging_useful.png

There was a bug in the handling of char to ascii so now lostcranksync can be displayed it works :)

Also visible is rpm increasing and decreasing and pulsewidth decreasing and increasing and 1/3 down a processor reset (induced by me). All things that have been happening for ages, it's just that now I can view the exact numbers involved, the RPM jitter etc etc.

Mint!

Fred.
 
Introducing FreeTherm a new little utility that does a similar thing to easytherm :

FreeTherm03.png

C# + mono = "up yours" to M$. (microsoft)

Result :

logging-iat-and-cht-from-lookups.png

Real temperatures in the ECU :)

Too easy.

(in degrees K * 100, so divide by 100 and subtract 273 for deg C, you are on your own for deg F)

Fred.
 
Screen shot of my little thermistor app running on Vista :

http://i260.photobucket.com/albums/ii15/diyefi/FreeTherm/FreeThermOnVista.jpg (190kB)

Get it here : http://sourceforge.net/project/showfiles.php?group_id=214452&package_id=280763&release_id=608485 (166kB)

And the library it needs here : http://forge.novell.com/modules/xfc...Installer/v2.8.3/gtksharp-2.8.3-win32-0.0.exe (23.3MB)

I'm *hoping* that Stu intends to use GTK# for the tuning app if/when he does it, so that library install should cover both apps and we can produce other utils in C# in future too to keep the downloads to a minimum.

Of course, it's no use to any of you really, and not 100% finished (see the TODO in the zip) either, but I thought I'd post it up anyway.

Fred.
 
OK, it has been nearly 3 months since I made a code release, but to be fair, I have a few excuses...

I had to get one of those things... what are they called? A job! Yes, that's it! Which took up a bit of time to obtain, and more to maintain... Plus, on my third day of work, my hard disk died a horrible death and I was silly enough to try Ubuntu instead of my usual Debian. Anyway, to cut a long story short, I'm back on track now! And in fine form even if I do say so myself :)

Tonight I've released 0.0.16-FlashGordon

It does many things like jumping through hoops, but no engine running just yet ;-)

The zip file is nearly 25% bigger than the last release so as you can imagine quite a bit of work has gone into it...

SeanK has written some code to do flash burning, and I've added RAM paging to allow many tables and things to be tunable. Lots of other little things too.

In the mean time a couple of clever blokes called Jared and Dave have been hard at work designing some hardware for us :

freeEMS_1.png

http://i260.photobucket.com/albums/ii15/diyefi/freeems-hardware-design/freeEMS_10_A18_P01.png

Those are just drafts, but it is coming along pretty nicely. So nicely in fact that they are well ahead of me. By the time I'm ready to run an engine, the hardware will be chrome plated and capable of running a small city ;-)

Expect more regular releases now as winter is coming and there will be nothing else to do except perhaps keep the missus warm ;-)

Thanks for your patience!

Fred.
 
Who was the member that already owned the TA XDP card? Now is the time to get involved for some testing with a JimStim and serial cable. Feedback on the GUI and testing of the comms interface and math code and configuration etc will all be useful and some of them can be done right now. On with the copy paste message :

Last week I put out 0.0.17-SpudEchoes With two way checksummed packetised headered IDed data and a matching really really simple gui called FreeEMS-Tuner.

It can do basic stuff like send back it's own name and version etc. It could also return blocks of memory, ve tables etc, thermistor lookups etc, and blocks of setting data.

In the unreleased code it can receive data too and thus it is now tunable :)

It needs more work, but it's getting pretty close to being useful.

I reckon in a few weeks the gui and firmware will talk to each other in more detail and it will be tunable.

Why spud echoes?

spud because the source in that release is half baked... and echoes because it can echo data back and forth on command, and also because I listened to pink floyd echoes about 50 times while developing it.

I'll give you a screen shot of the big red button because that is fairly cool in a childish sort of way :

bensChanges.png

One guy in Wellington NZ and one in South Carolina are working on that, and I'm working on trying to make the EMS side of the comms deal ROCK solid. Currently it's pretty good, but I'm not done yet!

I hope to finalise more of the comms stuff and do another release in a few weeks or less such that those guys can focus on making a nice GUI for it while I work on the guts that will actually run the engine. Mean while the hardware guys will be working on their share, and hopefully we'll all come to a climax at exactly the same time producing a wonderful system that actually works TM :)

Fred.
 
Latest update hot off the press :

New firmware release : 0.0.18 JackTheRipper

The last two releases added real packet based serial communications with extensive error checking and verification. This isn't quite ready for the world as the tuning interface isn't quite finished just yet. It shouldn't be long before we can adjust the parameters the device is using on the fly, and when I say that, I mean almost all of them.

Enhancements over MS due to the serial architecture include, but are not limited to :

  • Datalogging at double the speed over the same speed link.
  • Reset the device via the tuning app without cycling the key.
  • What you send IS what you get (checksummed and verified).
  • Random data can not corrupt memory (no DMA setup, all by logic/lookups)
  • If it works, it works right, though bad connections will make it slow, but that is FAR better than corrupt maps running your engine!
  • Ability to burn small blocks straight to flash without sending the whole page
  • Ability to save part of a block from live tunable ram without saving the rest

Additionally, it now builds on windows 2k and XP, thanks to Daniel for his help making that work. Thanks to Sean for his assistance in getting this far, the flash stuff is great. Finally, the mathematics code is much cleaner with no reduction in functionality.

A demonstration of the serial and flash functionality is available in this video :

http://www.youtube.com/watch?v=4MS_zc8sZxM



Version Control by Git

The firmware source code is now publicly hosted on github with the following URL :

http://github.com/fredcooke/freeems-vanilla/tree/master

This is an exciting move for a large number of reasons. Not least of which being the ability to fork the code easily and allow me to keep track of what you are doing with it. In this way if you don't want to discuss what you are doing with me until it is done, you don't have to. Of course, it is better if you say "I'd like to work on XYZ" so I can advise whether that is a good idea, and if so avoid that area myself. It is also possible to just download a tar ball or zip of the current repository version of the code at any time, however I urge you to fork it using github and publish your work for the world to see so we can easily integrate it back in.



Code Statistics by ohloh

With the public source code repository we now have a source of genuine statistics about the code base. These are generated by ohloh.net automatically and available for the world to see. So far the results look good. It will be interesting to see how they change over time. If you are interested, take a look here :

https://www.ohloh.net/p/freeems



Issue tracking with MantisBT

As the system grows and diversifies we will face many challenges. One of these is keeping track of bugs and feature requests from users and testers. In that direction Aaron was kind enough to set up and host an instance of Mantis Bug Tracker. This is available for use right now. Anyone can view it, but you must sign up to create bugs, at the moment an administrator needs to allow a member to create bugs, but we could change that in the future if it is too restrictive. Please use this for anything non-trivial that you notice that needs fixing or that you would like to see. Please us this service if you are planning on reviewing the code and/or testing it out on the bench and/or just want to ask for a feature. Also have a read around the forum and check for existing bugs and requests before creating your own, but don't be shy about it. The URL is here :

http://freeems.aaronb.info/tracker/



User driven documentation on DocuWiki

Aaron has also setup a user documentation system ah la wiki. The wiki is a DocuWiki which is best suited to source code use. To prevent vandalism by those who are less than enthusiastic about this project you need to have a login. If you feel you have something to contribute (So I can keep coding) you can find it here :

http://freeems.aaronb.info/wiki/



Doxygen code documentation

Jared has been generating automatic documentation from the source code with Doxygen for a few releases now. If you want to get a more visual insight into the source code, you can find them at the following location :

http://freeems.sourceforge.net/doxygen/



Release versions of the code

If you are interested in getting the latest official version of the code to tinker with, you can always find them on sourceforge. It is far superior to get the latest development copy from github as above, however the release versions are guaranteed to more or less just work as described. If you are conservative or want something to use on an actual car in future (once it works as a system) then get your copy from here :

https://sourceforge.net/project/showfiles.php?group_id=214452&package_id=258422



What is planned?

Hopefully in about 48 hours Aaron will get a tar ball copy of the fully reworked Tuner code to me. This, among other things, is supposed to have threading and a working decoder for the packets, awesome!. Who knows what else it may have in it :)

For the firmware, 0.0.19 is due out in early January with goals including :

  • A revised serial specification and implementation
  • A fully documented serial interface and data map
  • Restructuring and tidying up of the overall code base
  • Multiple datalog types including super fast scope and logic analyser functions
  • Other documentation like serial implementation, freemind mind map, readme etc etc updated
  • Documented hardware setup design

Of course, all of that is subject to change and re-evaluation, but this is the current plan of attack!

Thanks for reading and your interest in this project and indeed the whole movement!

Regards,

Fred.
 


Top