threads
Page 2 of 2
Mazda Engine General \  DIYEFI.org, FreeEMS and the future of TRUE DIY engine manage

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

Mazda Engine General Mazda Engine Mazda Tech
views 2827
replies 18
following 4
 
fe3tcourier   +1y
Minor update :

thread post photo


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.
fe3tcourier   +1y
Introducing FreeTherm a new little utility that does a similar thing to easytherm :

thread post photo


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

Result :

thread post photo


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.
hex0rz   +1y
Dang son! That stuff makes no sense to me! I'll just pay you to build me one, lol...
fe3tcourier   +1y
By all means



If I were charging for this work, the project would be up around the 40k USD mark by now. Feel free to ease my unemployment!

You won't get any hardware for your trouble though, just satisfaction in knowing that you helped and recognition on the site as a contributor

Fred.
fe3tcourier   +1y
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 :

thread post photo


thread post photo


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.
fe3tcourier   +1y
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 :

thread post photo


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.
fe3tcourier   +1y
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 :

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

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 :





Version Control by Git

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



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 :





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 :





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 :





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 :





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 :





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 :

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

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.
fe3tcourier   +1y
It's time for another update!


New firmware release : 0.0.19 Doxygenated

Three weeks ago I released the 19th version of FreeEMS into the wild with the name Doxygenated. This release contained almost no further functionality but, significantly, is fairly completely documented in the source code and other sections. I hope to grow this documentation and keep it up to date as the code matures and becomes more functional.

You can find the documentation here :



Note the related pages section which contains some good information on a various aspects of the system. Many of these pages are still in draft form, but as mentioned they will grow and mature with time.

Included in the new documentation scheme are online release notes and change logs :

Release Notes

Change Logs

All previous change log and release notes entries are available linked from the same pages :

Previous Change Logs

Which reminds me, the Makefile no longer works on Windows without cygwin (that didn't last long) AND the Makefile now builds multiple output files with a different wheel decoder each. Only two of these do anything at this time, but that number is sure to grow a bunch in the medium term. I find this situation vastly superior to having to configure one from 20 and being able to mess up the selection and configurations surrounding it. Each file is named appropriately such that you can't possibly put the wrong thing on your controller. Less configuration and smaller code size FTW!



Slow pace of development so far in 2009

Since January I've been working on a new project at work. I was keen to make an impression and do an excellent job so I've been putting in a lot of hours on it to make sure it all goes 100% right.

I've managed to get two successful releases out to the client since then and brought the project into line with all of the best practices that I know of. The release before I joined the team was generated by hand using eclipse and no versioning or tags etc. The next one was built by maven two but manually adjusted to use different library jars and a config manually updated. The last one was built by maven two including libararies with only the manual config change. The next one will be 100% automated meaning better repeatability and reliability and exposure of all metrics surrounding the code.

They seem to be liking what I am doing as I'm now in charge of all technical aspects of the system, officially in charge of 3 of the devs and unofficially in charge of another two.

Hopefully the pressure is off a bit now that we have the system more or less under control. The remaining work is BAU stuff like adding features and removing bugs and making it faster and more usable. This means more time working on FreeEMS again.



The FreeEMS development team

I'd like to welcome Philip Johnson to the project. He has already written a basic 36-1 missing tooth decoder and picked up the use of Git to achieve integration of that into the core branch. Some of you may remember Phil as the man that ported the B&G MS2 code from the broken CodeWarrior compiler to GCC forming the basis of what is now MS2Extra. We should all be thankful to Phil for that achievement as everyone knows MS2Extra J&K >>>> MS2 B&G. I'm really looking forward to working with Phil to produce a really good system that gives people no reason to not use it.

The addition of Phil to the team means that we now have :

[*:3buv5iuw]3 Firmware devs[/*:m:3buv5iuw]
[*:3buv5iuw]3 Tuning app devs[/*:m:3buv5iuw]
[*:3buv5iuw]8 People with TA card hardware[/*:m:3buv5iuw]

Plus the large group of interested parties contributing ideas and constructive criticism to the discussions on the DIYEFI.org forums. One further firmware developer is due to start writing Subaru code any day now and with a bit of luck AbeFM will get stuck into some quality PID code and an NB decoder too

These numbers are about to increase as four days ago the Helsinki University of Technology's Formula SAE team, "Otaniemi Flying Finns", announced that they intend to use FreeEMS to power and control their FSAE car in the 2009 UK competition at the Silverstone race track. I wish them the very best of luck with their racing endeavours and FreeEMS development too.

In other news, the network graph on github is quite interesting at the moment :

thread post photo




Material contributions

As I'm sure you are aware, running a website and buying all sorts of parts and tools for development costs money. Additionally, my time is valuable and I contribute almost all of my free time to making FreeEMS a success. A few people have decided to acknowledge that and donate to the project cause.

One generous individual anonymously donated 500 USD to the FreeEMS project using the pledgie campaign site and for this I am most grateful. This will make getting the bits I need for development a lot easier. Thank you very much! The same person donated a TA card to our tuning author for testing purposes. Again, thanks for that, most useful!

Alan To from donated two JAW wideband kits (1.03 and 1.041) to me for testing purposes. I intend to assemble one of these fairly shortly and install it on the test vehicle before I try to use FreeEMS to run the engine. Again, thank you very much for this, Alan, it is most appreciated.

If you don't have a clue what you are doing when it comes to software or hardware but have some spare cash and want to help the pledgie site is available to assist you doing this :


[*:3buv5iuw]My firmware campaign - [/*:m:3buv5iuw]
[*:3buv5iuw]Aaron's tuner campaign - [/*:m:3buv5iuw]
[*:3buv5iuw]Sean's firmware campaign - [/*:m:3buv5iuw]

I would like to see Jared and Phil have accounts listed there too such that donations can be directed where you feel they should go.

Any funds that I receive will go towards the following things :


[*:3buv5iuw]Web site running costs - domain names and hosting etc.[/*:m:3buv5iuw]
[*:3buv5iuw]Electronic supplies - Components, PCBs and sensors etc.[/*:m:3buv5iuw]
[*:3buv5iuw]Providing test rigs to intelligent and interested but poor potential contributors.[/*:m:3buv5iuw]
[*:3buv5iuw]Tools - meters, scopes, logic analysers and soldering equipment etc.[/*:m:3buv5iuw]
[*:3buv5iuw]Fuel and replacement engines (assuming the worst) for testing purposes.[/*:m:3buv5iuw]

In that order. In the future we could add a bounty system where you request a feature, put a price on it and someone can pick that work up and get paid to do it. The whole community benefits from that sort of interaction so it is a very good thing to do. For now though we need to focus on the basics and getting them 100% right.



Git Pecha Kucha Presentation

I decided to do a presentation on Git to a group of people from the company I work for in London... Well, just my luck, 1/3 of the way through I started getting a cough and could barely breath or speak due to it and trying not to cough loudly. This threw my confidence off and when I left the front I was sweating quite a lot. It was quite hot in there, but not that hot. Fortunately the video looks a LOT better than I felt, so I'm not too embarrassed to post it up. Audience was about 50 developers and business consultants in the financial sector, central London.

The video is available here :



The slides in M$ PPT format (I had to...) are available from here :



I'll add the OO version when I get a chance.



What is planned?

A lot of the stuff that was planned for 0.0.19 has been pushed forward to 0.0.20 due to time issues. Additionally I intend to have a scheduling implementation completed before 0.0.20 is out. This combined with shared inline function code for the actuation of fuel and ignition channels and a split out timer init function will pave the way for decoder contributions from anyone that wants to step up and help.

0.0.20 will released when it is logical to do so. I expect that there will only be a few more 0.0.X versions released because as soon as an engine runs on FreeEMS a landmark version 0.1.0 will be released. I was originally planning end of February for engine running time, but a few things got in the way so it has been delayed slightly.

The next 6 months should be a VERY exciting time for Free and Open Source Software in the automotive arena as months of hard work start to come to fruition for everyone's benefit

Regards,

Fred.
fe3tcourier   +1y
Man, this is badly out of date! I should have done a few updates over the last few years for sure. I didn't, though, and look at what y'all missed:

thread post photo


Don't worry, though, it's still not ready for general consumption. Here's a guide on what's expected from users, and what users can expect:



Edit, they sure scale the images down, here! Right click and "view image" in all good browsers to see it full resolution.

Fred.