Posted on 2 Comments

Miata NA6 PNP update

With the launch of the newest revision of the NA6 PNP boards, AC control is enabled without modifications to the board.

These instructions are for board revision 1.8w only. If you have questions send us a message via email or facebook.

Step 1 is to connect to your ecu with tunerstudio.
Open the idle-up menu, in the idle dropdown menu.
Then turn Idle Up Enabled to “on”, set it to pin 38, with normal polarity.
The next box is how much idle valve duty cycle that will be added when you press the AC button. 20 is a good starting point, but you may find 10-15 acceptable.

The Idle Up Output is what is triggering your AC compressor relay. Turn this to “on”, without inverting and output on pin 36.

This sets your ECU up to accept the “AC request” from your HVAC system, prepare the engine, and then turn on the AC compressor.

Posted on 8 Comments

Mazda Miata NB2 Air Conditioning and Alternator Control

On the NB2 (01-05) Mazda Miata we took some liberties in design to optimize the Air Conditioning(AC) and digital alternator control.

The first half of this will detail how to setup the software in Tunerstudio to utilize AC control as we designed it, the second part will detail how to setup and utilize the alternator control circuit to reduce wear/tear on your alternator and belt system.

For the SpeedyEFI NB2 Plug And Play ECU, AC idle up uses the factory circuits to automatically adjust your engine’s air intake to compensate for added load from the AC compressor, the electrical load from the cooling fan, and your HVAC blower fan.
To utilize this feature on our hardware, you’ll need to use the Programmable Outputs our ECU offers. First, open Tunerstudio, find the Settings dropdown menu, and you will find “Programmable outputs”.
In the programmable outputs menu Rule 1, Output Pin Num 38, Output Polarity Active High, Activation Delay 0, 2nd Condition OR, Condition 1 Coolant Greater than 195(f), Condition 2 Aux in 0 Equal 0, Minimum output time 5.0.
This sets the cooling fan for the AC to turn on when coolant is above 195 degrees, or the AC button is triggered.

Then, change Rule 2, Output Pin 39, Output Polarity Active High, Activation Delay 1.0, 2nd Condition Disabled, Condition 1 Aux In 0 equal 0.
This turns the ac clutch on 1 second after the button is pressed, which gives the engine time to open the idle valve and prepare for the increased engine load of the AC compressor.

Next, we need to set the Idle Up Settings. Idle Up Enabled On, Idle Up Pin 37, Idle Up Pin Polarity Normal, Idle Up Amount 12.
This looks at CPU pin 37 to trigger the idle up based on if the HVAC system is ready for AC.

We also need to set the AUX 0 input to pin D37. 
Open the Accessories menu, at the bottom is the “Local Auxiliary Input Channel Configuration”
Aux0 should be set to Digital_local and Pin No. 37.

For the alternator system, we found that there needed to be a delay in alternator control to reduce belt squeal on startup and excessive heat in the alternator when the key is on, but the engine is not running.

To do this, we added an inhibit circuit which inhibits alternator output when active, and does nothing to inhibit the signal if nothing is programmed.

To enable this feature in the programmable output menus, select rule 3, output pin 52, Rule Alias Alternator Disable, Output Polarity, Active High, Delay 0, 2nd condition disabled, and RPM Smaller/Equal 600.
Then set the maximum output time to 16 seconds.

This sets the ECU up so that when the RPM is less than 600, the alternator will not charge. But it can only disable it for up to 16 seconds, otherwise the alternator works like normal.

Posted on 18 Comments

How to update firmware and load a base tune


Step 1. Download the newest version of SpeedyLoader, the Speeduino firmware and base tune program.
Step 2. Use SpeedyLoader to update to the firmware of your choice.
Step 3. Click “Get Base Tune”, this will save a copy of the base tune you select to your “Downloads” folder.
Note 1: It’s important that your base tune that you select matches the firmware signature that comes on it. Loading mystery tunes into mystery firmware will create interesting results.
Note 2: It’s extremely important that you select a base tune that has the correct Board Type that you purchased. If you load a tune with the incorrect board type, it can cause catastrophic damage to your car or ECU.

Posted on 2 Comments

Connecting your SpeedyEFI Speeduino board to Tunerstudio

How do I connect my Speeduino to Tunerstudio?

This guide is extremely outdated. If you have trouble using the automatized setup in Tunerstudio, send us a message on Facebook or via Email.
Step 1. Figure out what firmware is on your speeduino. You can use this guide.

Step 2. Download, install and open Tunerstudio.

Step 3. On the main screen, click “Create New Project”.

Step 4. In the name field, put whatever you want. Leave the project directory alone.

Step 5. In the firmware section do not click detect. You will waste your time. It doesn’t work. Click “Other/Browse” and navigate to the Speeduino.INI file for the firmware you’re using. You can download the appropriate INI file from the speeduino firmware wiki. The SpeedyLoader software will also have an INI if you’ve used SpeedyLoader to update the firmware.

Step 6. Just keep clicking “next” through all the windows to select all the default settings. Default gauge layout, default units of measure, etc.

Step 7. Once you see the grayed out gauge cluster with “NOT CONNECTED” across the top, click the Communications dropdown box and click “Settings”.

Step 8. Change the COM port to whichever COM your Speeduino connects to. Usually it’s COM4 through 10. COM1 is the Windows default. It’s probably not COM1. If nothing is populated in the boxes, your computer isn’t seeing the Speedy. If you are using USB, make sure you do not have a bluetooth module installed, as the bluetooth module uses the same lines to talk.

Step 9. Do not click “Test Port” or “Detect”. They don’t work. Just click Accept.

Step 10. After a few seconds, you should see a loading bar show up across the top as Tunerstudio loads the tune from the Speedy.

If you don’t see the gauges pop to life, hit Communications > Settings > and select the COM port of your speedy. If nothing is populated in the box, install the Arduino software from (it’s free) and install it. Once it is installed, reboot the computer.

Posted on 4 Comments

How to check the firmware version on your SpeedyEFI speeduino.

How to check the firmware version on your SpeedyEFI speeduino.
Step 1. Download and install and open the Arduino software from (it’s free)

Step 2. In the Tools dropdown menu, change the COM port to whichever one your Speedy showed up as. (usually it’s COM4-10, COM1 is the default for Windows, don’t worry about COM1)

Step 3. In the Tools dropdown menu, open the Serial Monitor. You’ll see a blank bar across the top, with a “SEND” button next to it. Type a capital S, and click send. In the lower box you should see it display something to the effect of “Speeduino082018”. The first two numbers are the month code, and the last two or four are the year.

You may need to change the BAUD rate in the bottom right hand corner of the window to 115200.

Posted on 35 Comments

ULNs, and pullups, and launch… Oh, my.

We get a lot of questions regarding the installation of a ULN chip (uln2803, or uln2003) in the proto area, clutch switch inputs, and tach pullup resistors for the Speeduino v0.4 boards. This should clear some of that up:

The stock v0.4 boards control signals for the proto output pins right from the MEGA2560. They aren’t suited for relay control as they sit, and need some extra oomph to handle grounding a relay coil. The ULN chips are a series of darlington pairs in one chip that streamlines installation of drivers for our proto outputs.

The basic proto layout is:

proto1- unassigned (pin 43)
proto2- Fan (pin 47)
proto3- Fuel pump (pin 45)
proto4- Tach (pin 49)
proto5- Clutch switch input (pin 51)

#1-3 are standard outputs from the Speedy, and will be handled through the ULN, #4 is the tach output and will typically need a 1K-10K pullup resistor between the output pin of the ULN and a 12v source to drive most tachs. Proto 5 is an input pin, and will not be routed through the ULN.

The first order of business is to clip 4 of the pins off of the uln chip itself. We don’t want to foul the A15 row, and don’t need uln control on the clutch input row. We also want to lift the 12v input leg of the ULN so that we can power it without fouling the ground plane of the proto area. The ground leg is left alone and will ground through the proto ground row.

The next step is to gently widen the footprint of the ULN to fully bridge the proto holes, and insert it into the proto area with the lower left pin (ground) in the ground row. Make sure the 12v leg is lifted and not touching anything.

With the ULN mounted go ahead and solder up most of the pins, but leave the pin49 row open so we can add the tach pullup later. The 12v leg of the ULN will need run to a 12v source, I prefer to route it though the hole by c24 and run it directly to the bottom of the 12v input terminal.

The clutch switch jumper just needs to be run from one side of the proto area to the other. This will tie the IDC40 pin, to the Mega2560 pin and allow the clutch switch to signal on/off.

The final part of ULN install is to add a pullup resistor for the tach output. The speeduino provides a grounding pulse as the output, and for most tachs we will need a pullup resistor (1K-10K, start with 10K) between the 12v rail and the tach output to create the proper signal. This is as simple as putting one leg of the resistor into the same proto area hole as the ULN tach output pin, and the other leg of the resistor to a 12v source. Since we brought 12v to the ULN, we already have a perfect spot to tie in.


With these all wired up, your speedy now has all of the available proto outputs, and clutch input wired up. Set up your fans, fuel pump, tach, and launch in software, and there you go.


Posted on 37 Comments

Is this your first time hearing about Speeduino?

Speeduino is an open-source engine management platform, based on the Arduino Mega platform, designed to give everyone a cheap, easy and practical engine management solution for a variety of automotive applications.
With support for 1 cylinder to 8 cylinder engines, and rotaries up to two rotors, Speeduino is the fastest growing community of tuners.

Assembled Fishdog boards can be found here.

As well as our current list of Plug-And-Plays



Feature List:

  • 16×16 3D fuel and ignition maps, with base of either TPS (Alpha-N) or MAP (Speed Density)
  • Supports up to 8 cylinders fuel and ignition with 4 channels of fuel and 4 channels of ignition outputs
    • 1, 2 (Even fire only), 3 and 4 cylinder engines with full sequential fuel and ignition
    • 6 (even fire only) and 8 cylinder engines are supported with wasted spark and 2 squirts per cycle
  • 6×6 3D individual cylinder trim on engines up to 4 cylinders
  • After Start Enrichment
  • Rev limiting (Spark based, hard and soft)
  • Cranking specific enrichment, dwell timing and advance
  • General logging through TunerStudio
  • High speed tooth logging
  • TPS calibration through TunerStudio
  • Sensor calibration through TunerStudio (Coolant, IAT and O2)
  • Warm Up Enrichment (WUE)
  • TPS based acceleration enrichment
  • Tacho output
  • Fuel pump activation/deactivation (With priming)
  • Over dwell and over duty protection
  • Battery voltage compensation for dwell and injectors
  • Modular wheel decoder support. Included decoders:
    • Missing tooth (Eg 36-1, 60-2 etc)
    • Dual wheel (Evenly spaced teeth on crank, single tooth on cam)
    • Basic distributor
    • GM 7X
    • GM 24X
    • 4g63 aka 4/2
    • ‘Jeep 2000’
    • Audi 135
    • Miata 99-05
    • Honda D17 (12+1)
    • Nissan 360
    • Subaru 6/7
    • Taking requests…
  • Open and closed loop idle control (PWM and Stepper)
  • Closed loop boost control
  • Open loop VVT control
  • Deceleration fuel cut off (DFCO)
  • Launch control
  • Flex fuel
  • O2 based autotune (Registered version of TunerStudio required)

You can find more information on the wiki,  Be warned, the mobile version of the wiki does not work.