Nytt styrsystem med funktioner utifrån krav från STS-forumet

Insprutning, Tändsystem och Elektronik

Moderator: backeliten

PelleW
För mycket laddtryck
Inlägg: 110
Blev medlem: tor aug 24, 2006 10:58 pm
Ort: Umeå
Kontakt:

Nytt styrsystem med funktioner utifrån krav från STS-forumet

Inlägg av PelleW »

Hej,

jag har sedan en tid skissat på och knåpat ihop ett nytt styrsystem som jag tänkte släppa Open Source när jag känner att det finns en grund att bygga vidare på. Med Open Source menar jag att t.ex. källkod och de hårdvaruunderlag man behöver för att utveckla vidare på systemet kommer finns tillgängligt att ladda ner.
Det kan tyckas konstigt att ta fram ännu ett styrsystem när det finns så många att välja på, men några av mina anledningar var att:
-Det finns väldigt få öppna styrsystem på marknaden mig veterligt och de som finns har ofta massor med år på nacken med alla nackdelar detta medför.
-De som finns tycker jag till viss del saknar funktionalitet.
-De som finns går lätt sönder om man kopplar fel, kräver konfigurering av hårdvara för att fungera och är allmänt svåra att koppla in.
-Och den största anledningen: Det är roligt att göra något eget. :hihi:

Det finns säkert fler anledningar också men dessa var de som krävdes för att jag fick den motivation som behövdes för att börja. Syftet med denna tråd är för att kolla lite vad det finns för intresse av ett nytt styrsystem och då kanske främst intresset för att själv vilja hjälpa till att utveckla ett sådant system. Skriv gärna en kommentar eller skicka ett PM.

Fakta kring hårdvaran (som är den del som till största delen är klar och även provad och som är mitt huvudområde):
- Bygger på en Arm Cortex M3 som snurrar i 100 MHz.
- 8 tändutgångar med kortslutningsdetektering.
- 8 spridarutgångar med kortslutningsdetektering och stöd för lågohmsspridare genom PWM.
- 2 0-400 kPa trycksensorer, t.ex. insugstryck och avgasmottryck.
- 2 bredbandslambdasondsstyrningar.
- 8 avgastemperaturingångar.
- 1 USB för mappning.
- 1 Micro-SD-hållare för loggning till SD-kort.
- 2 CAN-bussar för kommunikation med t.ex. displayer, I/O-moduler.
- 2 VR-givaringångar för t.ex. vev- och kamaxelgivare.
- 2 Hall-ingångar för t.ex. vev- och kamaxelgivare.
- 1 K-linjeinterface för att t.ex. prata OBD2 med standardbilar.
- 5 analoga in 0-5 Volt.
- 2 digitala in för t.ex. strömbrytare.
- 8 generella 2 Amp. digitala ut för drivning av t.ex. reläer eller lampor.
- 1 realtidsklocka med batteribackup för att t.ex. få korrekt tid på loggar på SD-kort.
- 1 expansionsport för tillkoppling av t.ex. blåtandsmodul (blåtandskort finns framtaget och är provad mot en Android-telefon).

Dessa funktioner är tänkt att täcka de flesta personers behov. Om inte detta är tillräckligt så finns en tanke på att bygga ut systemet genom att koppla till olika typer av I/O-kort som kommunicerar med en av CAN-bussarna på styrkortet. I princip är det bara fantasin (och utvecklingstiden av hård- och mjukvara förstås :doh:) som sätter gränser för vad man kan göra.

Det mesta av hårdvaran är testat och mjukvara finns för att hantera denna. Grundfunktioner som t.ex. att styra ut utgångar, USB- och CAN-kommunikation, SD-loggning, lambdastyrning och avgastempmätning finns. Det saknas dock väldigt mycket funktionalitet för knyta samman allt för att fungera som ett komplett styrsystem. Det är främst här den "stora" massan kan hjälpas åt för att utveckla ett bättre system. Min förhoppning är också att kunna ta fram eller hitta en ny PC-programvara för att ersätta MegaTune som just nu används. Om någon vet något om eventuella Open Source-verktyg liknande just MegaTune så får ni gärna skriva det i tråden eller skicka ett PM.

Såhär ser kortet ut i prototyp-stadiet. Kortet passar just nu i samma låda som används för VEMS-korten. Kontaktdonskortet används som en gavel:
Bild

Två kontaktdonskort har tagits fram. Det med skruvplintar är tänkt i labsyfte. Det lösa kortet är uppdelat i olika don för lättare inkoppling. 6-poligt don = Lambdasond, 4-poligt don = Matningsspänning och CAN-buss, 10-poligt don = Avgastemperaturingångar o.s.v.
Bild

Vad tror ni, är det dömt att misslyckas?

-Pelle
Senast redigerad av PelleW den mån nov 14, 2011 1:41 am, redigerad totalt 1 gånger.
Användarvisningsbild
Stener
Forumsberoende
Inlägg: 2194
Blev medlem: sön okt 21, 2007 9:07 am
Ort: Östersund

Nytt OpenSource-styrsystem

Inlägg av Stener »

Ser riktigt lovande ut så långt. Hur mycket är gjort på mjukvarusidan?
Chevelle SS -65
Användarvisningsbild
backeliten
MS-Guru
Inlägg: 938
Blev medlem: sön jul 02, 2006 10:23 pm
Ort: Örnsköldsvik
Kontakt:

Re: Nytt OpenSource-styrsystem

Inlägg av backeliten »

Åh, sånt här brinner jag för! :)

Jag håller med, många av de öppna systemen idag hänger inte med i utvecklingen.

Har själv gått i liknande funderingar av o till, men senast var nu när jag på jobbet när jag fick äran att programmera Cortex M3.
Så det glädjer mig att se att du har valt samma processorfamilj som jag tänkt göra! NXP1768?

Hårdvaran ser mycket lovande ut, något liknande spec hade jag också tänkt mig.


Du tänkt använda USB för mappning, vilket protokoll och device hade du tänkt använda?
En USB till serie tycker jag inte är en särkilt bra lösning. Då får man samma problem som med en vanlig serieport.

Jag hade tänkt att man kanske kunde använda Ethernet porten för mappning, std på alla datorer, balanserad inkoppling, tillräckligt snabbt dataflöde! :)


Håller på just nu att skriva en KWP2000 (ISO14230) stack för ett modulärt styrsystem, den kan ju kanske vara intressant här.
Speciellt för K-linjeinterface, men kanske även över andra datalänkar. Går kanske att baka in i en USB länk utan större problem.

Likaså CAN-tp protokoll (ISO15765) för överföring av rådata på CAN-nätet.


Har du haft några funderingar på E-gas styrning? Går ju att lösa tex över ena CAN-bussen.


För att projektet ska nå ut och bli ett riktigt open source måste man vara frikostig med dokumentation.
Här kanske de vanliga vägarna är att föredra, hemsidan, wiki och forum. Shop för att köpa byggblock?

Nu kanske du redan tänkt på nå namn på projektet, DITRON eller?

Mycket hänger nog också på mappningsprogramvaran, det är ju den man som användare enkelt ska kunna använda.
MegaTune är snabbt och smidig, men saknar en hel del funktionallitet.
Tunerstudio har tagit upp saker som MegaTune saknar, men lite jobbig att jobba med.
VemsTune har verkligen gått framåt och börja likna nått riktigt bra. Så kan man använda något från den miljön?
Eller ska man satsa helt på tex C# programmerad windows miljö?

En annan viktig fråga när man kommer till programmering är att göra kontroller på att koden i minnerna är korrekta.
Det innebär att kritiska delar av koden måste kunna kontrollera sig själv mot tex minnesfel.
Något som idag inte är helt ovanligt för den miljö enheterna sitter i.

På senare tid har jag haft en del projekt (framförallt på MS sidan) där de plöstligen har "tappat" minnet över vintern.
Nu kan det ju vara mera processorfamilj relaterat. Men ack så irriterande och jag vet att Bosch gör sådana kontroller i
sina moduler.

Men man inser ju också att ett sånt här projekt kommer ta mycket tid, det går inte att sticka under stolen med.
Men ja, jag är helt klart intresserad av att bidra.

/Jonas
Jonas Back - MegaSquirt guru
jonas.back(at)swetune.se
Kurre86
Ganska mycket laddtryck
Inlägg: 69
Blev medlem: fre dec 04, 2009 9:53 am
Ort: Strängnäs
Kontakt:

Re: Nytt OpenSource-styrsystem

Inlägg av Kurre86 »

Låter som en jättekul idé! Håller helt klart med om att befintliga "öppna" motorstyrsystem har alltför primitiv hårdvara, framförallt skydds och diagnosmässigt. I mina öron låter din hårdvaruspec som ett klart steg framåt!
Användarvisningsbild
Stener
Forumsberoende
Inlägg: 2194
Blev medlem: sön okt 21, 2007 9:07 am
Ort: Östersund

Nytt OpenSource-styrsystem

Inlägg av Stener »

Får du med backeliten så är ju projektet nästan i hamn direkt :D
Vad gäller programvara så föredrar jag Tunerstudio framför MegaTune. Dels Java-baserat vilket betyder cross platform-stöd, vilket aldrig skadar. Kanske går att samverka med Tunerstudio för att få programvaran att kunna snacka med nya boxen. Det tjänar ju alla parter på, dock kör väl inte dom open source vilket kanske pajar hela idén.
Chevelle SS -65
Användarvisningsbild
mattias
Admin
Inlägg: 10081
Blev medlem: ons okt 22, 2003 10:25 pm
Ort: Sävar
Kontakt:

Re: Nytt OpenSource-styrsystem

Inlägg av mattias »

Snyggt Pelle! :thumbright:
Mjukvara och utvecklingstid är de stora problemen, och det är där fördelen med open source finns.

Om man ska hålla open source för mappningsprogramvaran högt, så tycker jag Java eller C++ (Qt) är lämpligt. En del brainstorming kring en kravspecifikation på tuning-programvaran, vad det ska klara av och hur det är tänkt att man ska arbeta med den bör vara högt på agendan. Det är säkert inte en populär idé VemsTune till ett sånt här projekt, det blir nog aldrig open source och det är en konkurrent. Just kommunikationsprotokollet blir inte öppet då heller, så det kan vara lika bra att ha ett eget - helst ett packat format med CRC för att undvika problem och kunna köra höga hastigheter. Ethernet och IP-koppling inbjuder till en del roliga möjligheter (= fjärr-mappning).
Mattias Säfsten (fd Sandgren)
Säljer, installerar, mappar och justerar motor-styrsystem och tillbehör.
Återförsäljare för MaxxECU, Link, ECU Master, VEMS, m.fl.
Nav-dyno och motor-bänk i Sävar vid E4.
Säljer, flödestestar och tvättar bränsle-spridare.
Skicka mail, PM eller ring vid intresse. Innehar F-skatt. Jobbar mest i norr.
The
Forumsberoende
Inlägg: 5094
Blev medlem: tis jun 01, 2004 11:05 pm
Ort: Boden
Kontakt:

Re: Nytt OpenSource-styrsystem

Inlägg av The »

Som rookie i frågan känns det som att det viktiga, och svåra, är att få till en mjukvara som är kraftfull men ändå lättanvänd och enkel att konfigurera för "normalt" bruk. Iallfall om man vill att det ska vara något som tilltalar en lite större krets än personer som t.ex Backeliten
Torbjörn.A
Har man slagit yxan i båten får man ro som fan
Användarvisningsbild
Stener
Forumsberoende
Inlägg: 2194
Blev medlem: sön okt 21, 2007 9:07 am
Ort: Östersund

Nytt OpenSource-styrsystem

Inlägg av Stener »

Skulle vara coolt med ethernet och köra 3G router och logga via eller så sitter Mattias i Umeå och mappar min bil i Östersund :) skulle kunna skapa grymma fördelar. Dock kanske lite överkurs men coolt är viktigt!
Chevelle SS -65
Terror_Flynn
Ganska mycket laddtryck
Inlägg: 86
Blev medlem: ons aug 22, 2007 5:52 pm
Ort: Sala

Re: Nytt OpenSource-styrsystem

Inlägg av Terror_Flynn »

Så det skulle alltså inte vara en omöjlighet att man kan använda sig av en smartphone som mappningsdator?
"Fjärrmappning" Låter som en riktigt kul och spännande idé om det skulle gå att fixa!
Användarvisningsbild
Jens Gustavsson
Sävar Turbo Racing
Inlägg: 21681
Blev medlem: mån sep 22, 2003 5:47 pm
Ort: Tomterna/sävar
Kontakt:

Re: Nytt OpenSource-styrsystem

Inlägg av Jens Gustavsson »

kan bara bli bra med Pelle bakom spakarna, men jag förstår att det blir mycket jobb än om jag inte fattar mycket av detta på komponent/programuppbygnads nivå.



usb mapning :thumbright:
SD logg :thumbright:
många 0-5v ingångar och färdiga K-temp ingångar för loggning :thumbright:
riktiga slutsteg :thumbright:
inbyggd BB lamda drivning :thumbright:


problemet skulle jag tro kan va att få till en programvara med tillräckligt användarbart/användarvänligt samtidigt som det ska klara många av de finesser som många tuners kräver.

jag är ju en sån som hellre har ett enkelt överskådligt system än en massa bling bling finesser, nästan lite DOS känsla på programet ska det va då trivs jag :wink:

lycka till och hör av dig om jag på nått sätt kan hjälpa till med ide er eller nått sånt. ända meriten jag har är att jag mappat och installerat olika system sen mitten av nittiotalet, kan knappt grundläggande gymnasie elektronik så där är jag inte till nån hjälp. mvh jens
PelleW
För mycket laddtryck
Inlägg: 110
Blev medlem: tor aug 24, 2006 10:58 pm
Ort: Umeå
Kontakt:

Re: Nytt OpenSource-styrsystem

Inlägg av PelleW »

Skoj att det faktiskt blev lite liv i tråden! :thumbright:

För att svara på lite funderingar:

Ditron är inte arbetsnamnet på kortet utan namnet på mitt företag. Därav reklamen på mönsterkortet. Någon som har ett bra namnförslag på styrsystemet?

Fjärrmappning eller fjärrhjälp via t.ex. en Androidtelefon är inte en dum tanke. Många gånger är det felaktiga inställningar som gör att det inte fungerar som tänkt och då skulle man snabbt kunna rätta till sådant. Ingen funktion som har prio just nu dock, men det är bra att spåna.

Ethernet finns inte utdraget på detta kort, däremot är Ethernetpinnarna på processorn oanvända vilket innebär att man skulle kunna utöka med det i framtiden. Just nu känns det som för mycket jobb att ordna detta. Jag har som haft en plan att kunna ta fram ett system som faktiskt fungerar, om än med begränsad funktion, relativt snabbt. Det betyder t.ex. att jag inte kan köra Ethernet eftersom det inte finns något färdigt "mapparprogram" idag som pratar Ethernet.

Processorn är mycket riktigt en LPC1768 från NXP. Mycket trevlig att jobba med och rätt bra prestanda. Koden som finns skriven är optimerad för tänd- och spridarstyrning och jag har gjort tester där jag kodat av ett 60-2-tandhjul i 14000 RPM med 8 spridarutgångar och 8 tändutgångar aktiverade som en full sekventiell styrning till en V8. Testerna visade på +-1 us jitter på tändutgångar och +-2.5 us på spridarutgångar. +-1 us på 14000 varv borde ge ungefär +-0.1 vevaxelgrads fel (om man bortser från alla mekaniska fel och jitter på givarsignal) och det får nog anses som helt ok.

Angående kommunikationsprotokoll så är det något som kommer in på flera ställen: USB <-> Nytt mappningsprogram. CAN <-> Tredjepartsprodukt eller egenutvecklad produkt. Blåtand <-> Telefon eller PC. Många kommersiella standarder är dock ofta för stora, för generella, för komplexa eller omöjliga att hitta gratis specifikationer på. Däremot skulle man kunna tänka sig implementera ett subset av ett större protokoll om man hittar något som passar. E-gasstyrning är ju ett exempel på där man tvingas implementera en antagligen inte så öppen standard, det är dock inget jag titta på än, det känns som en bit bort.

Att lägga in checksummor för applikation och inställningar är inga större konstigheter. Jag har bitvis skrivit klart en bootladdare som är tänkt att användas för att uppgradera applikationen i styrsystemet och denna sköter också att räkna checksumman på applikationen innan denna tillåts starta.

I första läget så kommer jag att använda mig av MegaTune för att korta ner utvecklingstiden. Det låter dock bra att många av er som skrivit fokuserat på just PC-programvaran då den inte ligger mig närmast om hjärtat. VEMSTune är som sagt uteslutet av många anledningar, ska man använda något så får man försöka utveckla något parallellt som man använder MegaTune. Att ta fram ett nytt mappningsprogram är något som tar, och måste ta, lång tid för att bli bra. Därför måste man ha något som fungerar under tiden, annars blir det aldrig några
:lakrits:

För att försöka summera mjukvaran som den ser ut idag:
I botten ligger ett hårdvaruabstraktionslager som i princip är drivrutiner för de olika delfunktioner som finns på kortet. Dessa är till största delen färdiga och fungerande. Dessa används för att t.ex. läsa analogomvandlare, prata CAN, prata SPI med SD-kort, hantera klockor, serieportar mot blåtand o.s.v.
Ovanpå detta körs ett operativsystem som kallas TinyTimber som är utvecklat på Luleå tekniska universitet och porterat av mig till Cortex-processorn.
Sedan finns det en USB-stack som är en porterad variant av LPC-USB som just nu används för att emulera en serieport för att kunna kommunicera med MegaTune.
För att läsa och skriva till SD-kortet så är FatFS inkluderat vilket ger en stöd för att skriva till SD-kort formaterade med FAT-filsystem.
Högst upp på allt ligger sedan själva applikationen som just nu har ungefär följande implementerat:
- Tandhjulsavkodning av arbiträrt tandhjul finns. Koden är skriven så generell att "alla" tandhjul enkelt går att implementera enbart genom att skapa en tabell med tandhjulets utseende oavsett om det är 60-2 eller 100-3-1, ingen kod måste skrivas om. Kamsynk är inte implementerat.
- Enklare beräkning av spridartider och förtändning och utstyrning av dessa. Koden som hanterar att styra ut tänd- och spridarpulser är också så generellt implementerad att det enkelt går att anpassa till t.ex. Wankel med dubbla stift per cylinder.
- USB-kommunikation med MegaTune för att ställa in parametrar och tabeller.
- Mätning av varvtal, 2 x lambda, 8 x EGT, trycksensorer och analogvärden görs och visas i MegaTune.

Min "att göra"-lista ser just nu ut som följer, utan speciell ordning på dessa:
- Kamsynkronisering
- Crank-inställningar
- Crank-tabell
- Kallstartstabell
- Efter start-berikning
- Accelerationsberikning (TPS/MAP)
- PWM-inställningar för spridare
- Aktivering av t.ex. bränslerelä
- Varvstopp - Fuelcut, ignitioncut
- Felhantering vid uppstart, t.ex. kontroll av inställningar
- Felhantering under drift
- Loggning av realtidsvärden och tandhjulsmönster till SD-kort
- Spridarkorrigering mot matningsspänning

Ni får gärna skriva om ni ser något som jag missat för att få grundläggande funktion på systemet. "Att göra"-listan innefattar alltså inte alla häftiga funktioner som man kan tänka sig att implementera senare. :wink:

-Pelle
Användarvisningsbild
super7
Forumsberoende
Inlägg: 1681
Blev medlem: tis nov 11, 2003 1:23 am
Ort: Umeå

Re: Nytt OpenSource-styrsystem

Inlägg av super7 »

Hur har du tänkt angående inställning av spridar storleken?

Som i Motec:s värd så så sätter man ett värde till ex 11, då
i bränsle mappen har man 0-100 % av 11. Byter man spridare till
större pga dom man kör med ligger på gränsen så ändrar man värdet 11,
bränsle mappen behöver man inte röra så mycke....kanske lite finjustering.

Spridartiming? eller det kanske kommer senare.

//Nisse
Behöver ni ha någonting svarvat , hör av er via PM
Användarvisningsbild
Stener
Forumsberoende
Inlägg: 2194
Blev medlem: sön okt 21, 2007 9:07 am
Ort: Östersund

Nytt OpenSource-styrsystem

Inlägg av Stener »

Ang Ethernet och annat lull lull vi snackat om är ju bara drömmar :) allt annat går ju före förstås. Vill man så går det ju att koppla upp mappningsdator till internet och kunna fjärrmappa på det viset om man skulle vilja.
Chevelle SS -65
PelleW
För mycket laddtryck
Inlägg: 110
Blev medlem: tor aug 24, 2006 10:58 pm
Ort: Umeå
Kontakt:

Re: Nytt OpenSource-styrsystem

Inlägg av PelleW »

I första läget så kommer bränslet att baseras på varvtal och insugstryck (alla sugmotortrimmare får vänta :hihi:) för att göra det enkelt. Tabellen är då en VE-variant där man ställer in säg 0-255 % av en ReqFuel (den du Nisse refererar till som 11) som är ett värde i millisekunder. VEMS gör på detta sätt och även många andra styrsystem.

Med spridartiming, menar du individuell korrigering för att kompensera för att olika cylindrar får olika mycket luft? Det är relativt enkelt att implementera men är något som kommer senare. De allra flesta har ändå inget bra sätt att ställa in en sådan typ av korrigering p.g.a. avsaknad av mätutrustning och måste därför förlita sig på att luften fördelar sig hyffsat lika mellan cylindrarna.

-Pelle
Användarvisningsbild
super7
Forumsberoende
Inlägg: 1681
Blev medlem: tis nov 11, 2003 1:23 am
Ort: Umeå

Re: Nytt OpenSource-styrsystem

Inlägg av super7 »

Spridartimingen är var i insugningstakten man börjar/slutar spruta in bränsle. Motorgången och körbarheten på
lätt belastning är vars man märker av det mest.
Behöver ni ha någonting svarvat , hör av er via PM
Skriv svar