noisymime / speeduino Goto Github PK
View Code? Open in Web Editor NEWSpeeduino - Arduino based engine management
Home Page: http://speeduino.com
License: GNU General Public License v2.0
Speeduino - Arduino based engine management
Home Page: http://speeduino.com
License: GNU General Public License v2.0
In addition to existing VE analyse live function, add ability to use the WUE autotune.
http://speeduino.com/forum/viewtopic.php?p=17229#p17229
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Looking to scale down AE as RPM increases, similar to feature in MS. At low RPMs, higher AE is needed than at high RPM. Currently I can only either start from a stop correctly (with no lean spot on throttle open) but go pig-rich/sputter when accelerating while in-gear or vice versa.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
There's a typo in speeduino.ini.
When you go to Tuning -> Acceleration Wizard you can see "Accel Time(ms)", but when you hold your mouse over the "?", the text shown is "Duration for accel enrichment(s)." So seconds or milliseconds?
Also, the window is called "Acceleration Enrichment", but in the menu it shows as "Acceleration Wizzard".
Hey Josh how is testing going? Do you need any hardware support?
Discussion thread: https://speeduino.com/forum/viewtopic.php?p=21609#p21609
Further details of this pattern required, but appears to be 36-2-2-2 or similar with a cam signal where grouped pulses should be counted to determine cylinder ID.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Hi im getting the error messages bellow while trying to upload/compile not sure what to do, a bit of help would be appreciated
corrections:146: error: 'PID' does not name a type
corrections.ino: In function 'byte correctionsAFRClosedLoop()':
corrections:189: error: 'egoPID' was not declared in this scope
display.ino: At global scope:
display:6: error: 'Adafruit_SSD1306' does not name a type
display.ino: In function 'void initialiseDisplay()':
display:13: error: 'display' was not declared in this scope
display:26: error: 'display' was not declared in this scope
display:26: error: 'SSD1306_SWITCHCAPVCC' was not declared in this scope
display:29: error: 'WHITE' was not declared in this scope
display.ino: In function 'void updateDisplay()':
display:38: error: 'display' was not declared in this scope
Same reverse option TS checkbox for correct stepper direction.
On lines 14 and 44, currentStatus.engine should be currentStatus.spark to set the correct bit for tunerstudio.
Hello,
I'm new at Speeduino and i have to admit that i don't understand really much, but i will try to help to make it better.
Now i will tell u, which ideas i have.
while (true)
{
// do stuff...
}
The Loop will be in while and it will be much faster.
Question: Have u an idea why the ignition accuracy is jumping on high rpm?
-Stock micros resolution is to low?
-Stopping interrupts on some times are the reason?
Maybe its possible to fix the ignition accuracy to <1 degrees@8000RPM
I don't understand how u trigger the Ignition time, maybe u can help me by learning the code
analogRead(pinTPS);
byte tempTPS = fastMap1023toX(analogRead(pinTPS), 0, 1023, 0, 255); //Get the current raw TPS ADC value and map it into a byte
Why is the code "analogRead(pinTPS);" in row 92?? I don't understand why u do that, because in the next row u read it again.
I hope u understand me.
Best regards
tausday
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Individual Cylinder Ignition Trim enhancement discussed long ago and perhaps just an offset correction value for now with possible table-driven solution following. Highlighted in this forum thread: https://speeduino.com/forum/viewtopic.php?f=12&t=1880
There is a $50 open bounty on this issue. Add to the bounty at Bountysource.
Could a current status variable be added for the current fuel trim value in use for each channel?
I wish to add the value as a reading in the OBD2 output.
Perhaps it should be added to the TS stream with gauges too?
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Allow use of a 2nd pressure sensor input for live baro corrections
Hi all,
I recently connected the fuel pump and thermofan to the speeduino board V0.4.2.
I tried to load the Dec16.zip firmware from the www.speeduino.com web page (outdated/different) and found that the firmware on the Wiki was different, especially the pin assignments in the Utils.ino file.
I uploaded the firmware from the wiki, and started to trouble shoot why the Fuelpump and Thermofan wouldn't work when connected to the pins 14 and 15 on tue IDC40 connector. These ar slow current Relay switching pins, however these did absolutely nothing on the scope. I was then advised to use the HC (high current outputs 1 and 2) and did this by changing the Utils.ino file pins to read pinD4 and PinD5 (arduino pins) and then the same changes inside Tuner Studio - the thermofan i managed to get working correctly by setting it up on Pin5 inside Tuner Studio -
The fuel pump however - wouldn't work. Josh then replied to my PM and told me to use PinD4 on the arduino to connect to IDC40 Pin38 - this is incorrect, D4 connects to IDC40 Pin36.
I am now running the following successfully:-
No matter what pin combination i use to get the boost control or VVT or Idle PWM or Idle Stepper to work, nothing will....... I have tried the IDC40 pins 34, 36 and 38 with no luck. I have checked the schematic off the WIKI and it says completely different pin connections versus Arduino pin connections.
I would like to use the following features on my ECU but cannot seems to get these to work at all -
Can someone possibly shed some light on this??
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
As previously discussed on Slack for a "reverse" checkbox in TS, and one code solution posted and tested here https://speeduino.com/forum/viewtopic.php?f=19&t=1159#p18146.
Did you help close this issue? Go claim the $5 bounty on Bountysource.
I want to convert my car from the original Bosch MP 9 ecu to speeduino. The only problem that I seem to have is that the OEM trigger design has an Optical sensor on the distributor with four teeth. One tooth is 6 degrees longer and that marks the #1 cylinder and to be exact the 72 degrees BTDC.
Yours Kostas
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Utilise TunerStudios composite logger function to display both primary and secondary tooth signals
There is a $100 open bounty on this issue. Add to the bounty at Bountysource.
Per thread: https://speeduino.com/forum/viewtopic.php?f=12&t=1855
TS has a number of functions around reporting performance and economy numbers that are currently unused. This issue is to track the potential utilisation of these.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Unfortunately I don't have an engine running Speeduino yet, but I made some changes in the interrupt code on sensors.h.
ISR(ADC_vect)
{
byte nChannel = ADMUX & 0x07;
int result = ADCL | (ADCH << 8);
BIT_CLEAR(ADCSRA, ADEN); //Disable ADC for Changing Channel (see chapter 26.5 of datasheet)
#if defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__)
if (nChannel==7) { ADMUX = 0x40; }
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
if(ADCSRB & 0x08) { nChannel += 8; } //8 to 15
if(nChannel == 15)
{
ADMUX = 0x40; //channel 0
ADCSRB = 0x00; //clear MUX5 bit
}
else if (nChannel == 7) //channel 7
{
ADMUX = 0x40;
ADCSRB = 0x08; //Set MUX5 bit
}
#endif
else { ADMUX++; }
AnChannel[nChannel] = result;
BIT_SET(ADCSRA, ADEN); //Enable ADC
}
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
this two pins are not with PinMode declared to Output
pinStepperDir = 16; //Direction pin for DRV8825 driver
pinStepperStep = 17; //Step pin for DRV8825 driver
https://speeduino.com/forum/viewtopic.php?f=12&t=80&p=16513&hilit=subaru#p16517
There is a $15 open bounty on this issue. Add to the bounty at Bountysource.
https://speeduino.com/forum/viewtopic.php?p=18725#p18735
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Setup a preprocessor macro(s) to have the timers do either all injectors or all ignitors with a total of 9 timer compares. There could also have a setup to have a split at different number of compares. For example 8 injectors for a full sequential v8 and 1 compare for the distributed ignition coil.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Hi. currently I'am working on my nissan SR20VE. My decoder not match with current firmware.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Acceleration Enrichment -> Decel Fuel Amount(ms) -> explanation says "0%" is complete cut and "100%" is no cut, but allowed values are from 0 to 25.5. Aside from that, 25.5 does not seem like percentage, but it can be, who knows, it is meant to be a "ms" value.
Looking to see if there is anyone working on Kawasaki Teryx 2 seaters? SORRY. this is not an issue
The commit 6921107 does not compile under teensy , raises error with isr in line 35 of sensors.
in last commit upon compile config1.mapSample declaration shows as missing.
Currently the cranking pulsewidth adder is only a single value.
Request is to add a basic curve (Probably 4 points will be enough) based on coolant for the cranking PW rather than this single value.
Original request: https://speeduino.com/forum/posting.php?mode=reply&f=12&t=237
Using my last comment on issue #51
By default, the successive approximation circuitry requires an input clock frequency between 50kHz and 200kHz. If a lower resolution than 10 bits is needed, the input clock frequency to the ADC can be as high as 1000kHz to get a higher sample rate.
ATmega640/V-1280/V-1281/V-2560/V-2561/V [DATASHEET] page 271
version 2549Q–AVR–02/2014
Using the datasheet as base the ADC prescaler should be clk/128 to output a 125KHz clock os ADC successive approximation circuitry
I think is better to use analog interrupt handle. Make a struct named AnChannel with all 16 channels.
ADMUX = 0x01000000; //Starting at channel 0
ADCSRA = 0x11101111; // ADC Interrupt Flag enabled and prescaler selected to clk/128
ADCSRB = 0x00000000; //ADC Auto Trigger Source is in Free Running mode
//ADCSRB = 0x00000100; //ADC Auto Trigger Source is Timer/Counter0 Overflow
//ADCSRB = 0x00000110; //ADC Auto Trigger Source is Timer/Counter1 Overflow
//
ISR (ADC_vect)
{
if((ADMUX & 0x00100000) //8 to 15
{ AnChannel(8+(ADMUX & 0x0000111)) = ADCL | (ADCH << 8); }
else
{ AnChannel(ADMUX & 0x0000111) = ADCL | (ADCH << 8); }
if((ADMUX & 0x01100111) //channel 15
{ ADMUX = 0x01000000; }//channel 0
else if ((ADMUX & 0x01000111) //channel 7
{ ADMUX = 0x01100000; }//channel 8
else
{ ADMUX++; }
ADCSRA = 0x11101111; // ADC Interrupt Flag enabled and prescaler selected to clk/128
}
//Informations on pages 281 to 287 at 2549Q–AVR–02/2014 datasheet.
This will speedup the analog conversions, at prescaler selected to clk/128 will run at 125KHz(limit due to page 271), is 8ms continuous conversion interrupt.
Per thread: https://speeduino.com/forum/viewtopic.php?p=21572&sid=e3841610b755204f35a86d9cf3f43041#p21572
32 poles spaced at 10 degree intervals, with 4 missing poles,at 30, 60,210 and 250 degrees.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
https://speeduino.com/forum/viewtopic.php?f=18&t=1695&p=25451&hilit=MAP+phasing#p24741
There is a $100 open bounty on this issue. Add to the bounty at Bountysource.
Add ULN2803 to the BOM of the boards that need it externally for the FP to work and tag it as "OPTIONAL".
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Decoder for newer Toyotas, pending waveforms
I believe it would be a great addition to the speeduino if closed loop VVT could be added.
I personally have a Ford ST170 engine and am wiring it up with another ECU which has integrated VVT control.
I can create a small harness adapter and swap that out for a Speeduino and do testing at my end.
I have been reading about it over the weekend and found these resources which might be helpful.
I believe a basic initial implementation with just variable P, I and D values would be good.
Then maybe once some are tested out presets added with known good values.
http://www.ni.com/tutorial/13609/en/
http://www.turbosport.co.uk/showthread.php?t=478299
https://www.miataturbo.net/megasquirt-18/itt-ms3x-vvt-settings-tuning-64590/
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
I've been having trouble getting Speedy to recognize the basic distributor trigger.
If I turn the key and immediately crank the engine, it always detects the trigger.
If I turn the key on and wait a few seconds, it never detects the trigger.
Never fails, I tried it probably 40 times back and forth. Then cranked it immediately upon key turn 10 more times and everytime it synced. Video below shows this clearly. For this video, recall that I am only trying to get the trigger to work reliably, the distributor and carb are running the engine.
First I turn the key and crank it. You can see the injector lights flashing, showing trigger sync. Second, I turn the key, wait a few seconds and crank it. You can hear the FP relay cycle for the priming pulse and then when I start the engine you can hear the FP relay clicking. No injector lights, and TS reports no teeth in the logger and no RPM.
I do this a couple more times in the video to show the pattern.
Pretty sure this isn't expected behavior, hence the report.
Original thread here: http://speeduino.com/forum/viewtopic.php?f=19&t=1140&p=18277#p18277
Edit to add: Replicated the same on two 0.3.3 shields and one 0.4.2.
AFR/O2 appears to have two important issues. First is that total control authority ("Controller Auth +/-") does not limit the correction to the maximum percent entered, assuming an entry % should limit total O2/EGO fuel corrections to that % of the current VE value in any case. Second, the control is unrestrained by increment, so corrections are to the full extent it wants to go, with no incrementing toward that value — e.g., settings of 5% authority and increment of 1% (no existing setting) should have it step in 1% increments with each step interval, with a limit of 5% maximum allowed correction.
Reasons for these improvements are many and clear, with controlled correction response and limited to avoid over-control, such as adding unlimited fuel during over-rich but lean (indicated) misfire conditions. Improvements should apply to simple correction and could apply with benefits to PID correction.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
The setting Trigger Angle is defined as After TDC on cyl 1 in speeduino.
On most engines i have seen (mostly car engines) the missing tooth is defined as Before TDC on cyl 1.
See Delay teeth drawing in megamanual :
http://www.megamanual.com/ms2/wheel.htm
And more about the this here:
http://www.extraefi.co.uk/wheel_fitting.htm
Note the setting is BTDC not ATDC
Speeduino users could benefit from more than 1 or 2 squirts-per-cycle for a number a useful reasons.
Beyond the obvious potential for improved fuel distribution in certain engines and setups; ultimately, semi-automated setting of injector latency (dead time), voltage compensations, and other important functions could stem from this.
arduino due has 84 Mhz clock speed and teensy 3.1 has 72 Mhz and can be overclocked to 96 Mhz
Ive noticed quite a large timing swing (on the timing light) when speed rapidly changes on this decoder, due to the low resolution
if we could improve this, it may also be possible to have a useable closed loop VVT control later on
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
we need a way so that when a change of order that the data is sent to TS occurs that is doesnt break anyone using Serial3 output?
Perhaps we could have a seperate second list for the serial3 stream?
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
HEY BROTHER , PLEASE HELP ME...
I HAVE A PROBLEM WITH CONNECT THE FIRMWARE TO ENTER IN THE (MEGASQUIRT SOFTWARE) THE (IDE) DETECT A PROBLEM , BUT NOT IS OF THAT YOU HAVE IN YOUR PAGE.
I HAVE A DCCDUINO MEGA 2560 AND THE CONFIGURATION IN IDE ITS OK , I CAN UPLOUD OTHER SKETCH FROM THE LIBRARY, EXAMPLE WITH BLINK ITS OK.. PLEASE SOLVE THE PROBLEM CODE OR GIVE ME A GOOD PRICE FOR ALL ARDUINO ECU FULL MADE!
THANK YOU, SORRY BY MY ENGLISH I AM OF PUERTO RICO (SPANISH)
GOOD WEEK,
BEST REGARDS!!!
Per thread: https://speeduino.com/forum/viewtopic.php?f=12&t=1838
In the IAT Timing retard curve, allow negative values so that more advance can be configured when cold
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
The latest version seems to have back dated the signature to sept 2016? In globals
Decoder for Early Jeeps some volvos and renaluts with Renix MPFI.
This trigger mode came in a four cylinder variation which used 44 base teeth with two gaps 180
degrees apart, and a six cylinder version with 66 base teeth and three gaps 120 degrees apart.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
See details at: http://www.dsmtuners.com/threads/setting-up-420a-crank-trigger-for-haltech.284890/
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
http://speeduino.com/forum/viewtopic.php?p=17235#p17235
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.