Fred's firmware development diary

Official FreeEMS vanilla firmware development, the heart and soul of the system!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Fred's firmware development diary

Post by Fred »

Today I got screwed by 1.5 hours due to untested buggy software. Bugs happen, sure. But I can't afford the time anymore. I never could really. Every time a tool lets me down badly like this it reinforces my resolve to surround myself with a set of robust tools. I'm available for support for existing users and about-to-be users, and little else, until I have the reliable tools that I need. Sorry for any inconvenience that this causes. I'll be trying to slip a few firmware commits in too, as there is some stuff I'm part way through that needs to be finished and shared.

Additionally, some of the tools that I need simply don't exist, and are required for the majority of the outstanding 0.2.0 issues. IE, it's got to be done.

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Fred's firmware development diary

Post by Fred »

N00bs, and others, too: viewtopic.php?f=54&t=1954
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Fred's firmware development diary

Post by Fred »

A monthly pat on the back for those that have stood out! viewtopic.php?f=41&t=1960
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Fred's firmware development diary

Post by Fred »

Also, engine 15, Hentai's Miata! This opens the flood gates from the DSM crowd, too: viewtopic.php?f=55&t=1958
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Fred's firmware development diary

Post by Fred »

Goals for the weekend, that I wrote on Friday sometime:

1) Finish fixing fw Makefile and add more CI goodness to the server
2) Integrate various small fw fixes and publish them
3) Redesign my loader high level code to be cleaner + add a new feature to it, if possible
4) Make a batch of BrickRPM boards
5) Do a load of washing :-p
6) Clean up the pig sty that's developed here...
7) Fix my jag hardware config
8) Change my J project build config to a superior setup that I discovered for someone else this week

Unfortunately, it's now Saturday and I've achieved nothing except some hobby stuff for sanity, and some "relationship building". Fail. Feeling alright, though :-)

Might try to knock off 1 and maybe 2 now, and 4 and 5 tomorrow.

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Fred's firmware development diary

Post by Fred »

2 is done, 1 is mostly done, 3-8 are not done :-(

3, 4, 6, 7, 8 are not going to happen today. 5 probably will happen later. I'll probably finish off 1 later too.

viewtopic.php?f=55&t=1967 :-)

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Fred's firmware development diary

Post by Fred »

I forgot to say, that 1) item included new build options! IE, you can do something like:

Code: Select all

fred@cheetah:~/workspaces/eclipse/freeems-vanilla/src$ make clean JSeries-12CrankWith6-2Cam
And it will only build that exact decoder variant for you:

Code: Select all

fred@cheetah:~/workspaces/eclipse/freeems-vanilla/src$ l firmware
-rwxr-xr-x 1 fred fred 166960 Nov 25 20:22 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-JSeries-12CrankWith6-2Cam.s19
Equally, and for a few weeks already, you can do something like:

Code: Select all

fred@cheetah:~/workspaces/eclipse/freeems-vanilla/src$ CLIFLAGS="PRESTO" make clean s19
And get a set like this clearly marked as containing PRESTO config:

Code: Select all

fred@cheetah:~/workspaces/eclipse/freeems-vanilla/src$ l firmware
total 3320
-rwxr-xr-x 1 fred fred 165472 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-BenchTest.s19
-rwxr-xr-x 1 fred fred 166450 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-EvenTeeth-Cam-16and1.s19
-rwxr-xr-x 1 fred fred 166450 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-EvenTeeth-Cam-24and1.s19
-rwxr-xr-x 1 fred fred 166446 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-EvenTeeth-Cam-6and1.s19
-rwxr-xr-x 1 fred fred 165734 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-EvenTeeth-Distributor-4of6and1.s19
-rwxr-xr-x 1 fred fred 166516 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-GM-LT1-CAS-360and8.s19
-rwxr-xr-x 1 fred fred 167024 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-HallOrOptical-Distributor-4of64.s19
-rwxr-xr-x 1 fred fred 167024 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-HallOrOptical-Distributor-4of69.s19
-rwxr-xr-x 1 fred fred 166956 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-JSeries-12CrankWith6-2Cam.s19
-rwxr-xr-x 1 fred fred 164054 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-Listener.s19
-rwxr-xr-x 1 fred fred 168658 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-Cam-12minus1.s19
-rwxr-xr-x 1 fred fred 168658 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-Cam-24minus1.s19
-rwxr-xr-x 1 fred fred 168804 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-Cam-6minus2.s19
-rwxr-xr-x 1 fred fred 168662 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-Crank-12minus1.s19
-rwxr-xr-x 1 fred fred 168808 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-Crank-30minus2.s19
-rwxr-xr-x 1 fred fred 168662 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-Crank-36minus1.s19
-rwxr-xr-x 1 fred fred 168808 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-Crank-60minus2.s19
-rwxr-xr-x 1 fred fred 168662 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-Crank-8minus1.s19
-rwxr-xr-x 1 fred fred 168650 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-TestFile.s19
-rwxr-xr-x 1 fred fred 169528 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MitsiAndMazda-CAS-4and1.s19
So, naturally they can be combined:

Code: Select all

fred@cheetah:~/workspaces/eclipse/freeems-vanilla/src$ CLIFLAGS="SPUDMN" make clean MissingTeeth-Crank-8minus1
<snip>
fred@cheetah:~/workspaces/eclipse/freeems-vanilla/src$ l firmware
-rwxr-xr-x 1 fred fred 168662 Nov 25 20:26 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-SPUDMN-MissingTeeth-Crank-8minus1.s19
Pretty neat, huh! :-)

I've taken the time to expose these as simple commands at the top level for each user:

Code: Select all

fred@cheetah:~/workspaces/eclipse/freeems-vanilla$ make

######################## Welcome to FreeEMS! ########################

To build, choose a target from the below list and type 'make target'!
For example, to build blank unconfigured firmware type 'make BLANK'
Note: For BenchTest to work you MUST build using the BENCHTEST target!
Advanced users will find more options available in the src directory!

Options:

SNOTROCKET
BENCHTEST
SEANKLT1
SLATER
BLANK
Makefile
PETERTRUCK
Help
TRUCK
DEUCECOUPE
TEST_AND_SAVE_ALL
PRESTO
PETERJSERIES
HOTEL
SPUDMN
Such that you can simply do this:

Code: Select all

fred@cheetah:~/workspaces/eclipse/freeems-vanilla$ make SNOTROCKET
<snip>
fred@cheetah:~/workspaces/eclipse/freeems-vanilla$ l src/firmware
-rwxr-xr-x 1 fred fred 166458 Nov 25 20:29 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-SNOTROCKET-EvenTeeth-Cam-24and1.s19
And get your configured single decoder built and all alone in the output dir! You can get a traditional make clean s19 with "make BLANK" at the top level, too.

Finally, the test script now uses this style, and can be used by me to create a set of binaries for all users to test:

Code: Select all

fred@cheetah:~/workspaces/eclipse/freeems-vanilla$ make TEST_AND_SAVE_ALL 
<big snip>
################# Built the firmware 12 times with 1 failures! #################
Passes:
DEFAULT passed!
TRUCK passed!
HOTEL passed!
PRESTO passed!
SEANKLT1 passed!
SNOTROCKET passed!
SPUDMN passed!
SLATER passed!
PETERJSERIES passed!
DEUCECOUPE passed!
PETERTRUCK passed!

Failures:
XGATE FAILED with result 2
################################################################################
fred@cheetah:~/workspaces/eclipse/freeems-vanilla$ l src/firmware-all/
-rwxr-xr-x 1 fred fred 165476 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-DEFAULT-BenchTest.s19
-rwxr-xr-x 1 fred fred 166454 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-DEUCECOUPE-EvenTeeth-Cam-6and1.s19
-rwxr-xr-x 1 fred fred 167236 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-HOTEL-HallOrOptical-Distributor-4of69.s19
-rwxr-xr-x 1 fred fred 166968 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PETERJSERIES-JSeries-12CrankWith6-2Cam.s19
-rwxr-xr-x 1 fred fred 168666 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PETERTRUCK-MissingTeeth-Cam-12minus1.s19
-rwxr-xr-x 1 fred fred 166450 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-EvenTeeth-Cam-24and1.s19
-rwxr-xr-x 1 fred fred 166520 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-SEANKLT1-GM-LT1-CAS-360and8.s19
-rwxr-xr-x 1 fred fred 168662 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-SLATER-MissingTeeth-Crank-12minus1.s19
-rwxr-xr-x 1 fred fred 166458 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-SNOTROCKET-EvenTeeth-Cam-24and1.s19
-rwxr-xr-x 1 fred fred 168662 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-SPUDMN-MissingTeeth-Crank-8minus1.s19
-rwxr-xr-x 1 fred fred 169528 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-TRUCK-MitsiAndMazda-CAS-4and1.s19
All in all, pretty awesome in my opinion, but I would say that, I did it! :-)

Hopefully it makes life easier for you all!

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Fred's firmware development diary

Post by Fred »

Fred wrote:1) Finish fixing fw Makefile and add more CI goodness to the server
2) Integrate various small fw fixes and publish them
3) Redesign my loader high level code to be cleaner + add a new feature to it, if possible
4) Make a batch of BrickRPM boards
5) Do a load of washing :-p
6) Clean up the pig sty that's developed here...
7) Fix my jag hardware config
8) Change my J project build config to a superior setup that I discovered for someone else this week
Fred wrote:2 is done, 1 is mostly done, 3-8 are not done :-(

3, 4, 6, 7, 8 are not going to happen today. 5 probably will happen later. I'll probably finish off 1 later too.
5 and 6 are now done! :-p

Also fixed a tiny bug in OLV and added a new feature that makes it pleasant to use again post the last new feature. IE, refined that further.

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Fred's firmware development diary

Post by Fred »

1) is complete! :-)

http://builds.freeems.org/firmware/master/images/

Firmware is now built (in real time) tailored to each current user's config! Normal builds are in the full-defaults directory. If you keep your config up to date in the master branch of my tree, then you can get fresh baked up to date latest greatest with your conf off the web without a build environment.

Additionally there is a special dir that I can direct custom code to build in for users just by git pushing. I'll link you to it if/when you need to run it.

Service with a smile!

I've started on a guide for hw builders too: viewtopic.php?f=54&t=1970

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Fred's firmware development diary

Post by Fred »

Now with compression and checksums!

http://builds.freeems.org/firmware/master/images/

Also with polite warnings to go elsewhere when no dev branch is available :-)

http://builds.freeems.org/firmware/dev/doxygen/
http://builds.freeems.org/firmware/dev/images/

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
Locked