How to use the TinyIOx
#1
SADFab Destructive Testing Engineer
![](/mt2011/images_td/ranks/supporter1.gif)
![](/mt2011/images_td/ranks/moderator.png)
Thread Starter
iTrader: (5)
Join Date: Apr 2014
Location: Beaverton, USA
Posts: 18,642
Total Cats: 1,866
![Default](https://www.miataturbo.net/images/icons/icon1.gif)
Going to start off with just a writeup getting the serial wideband data passing over CAN. I will dig into the more advanced features later after I can get all the circuits built. This will cover connecting the tinyIOx to power, and to the megasquirt, updating the firmware on the tinyIOx, project setup (adding the tinyIOx to your TunerStudio Project), and configuring your project to use CAN wideband data.
This guide assumes you are using an MS3/3x, other variants may differ. It also assumes that the tinyIOx is the only CAN device. Other setups will need different configuration.
Make sure to update to 1.4.1 if you are on 1.4. There is a bug that affects CAN in 1.4. Here is 1.4.1 Megasquirt Support Forum (MSEXTRA) ? MS3 firmware 1.4.1 released - use this (View topic)
All info was gathered from jbperf.com.
Mostly from these 2 links.
TinyIOx v1.0 Board
jbperf.com ? View topic - TinyIOx
Powering the tinyIOx:
Rumor is you can connect a tinyIOx to the MegaSquirt 5v power supply, but I know gesso had issues with that, so I skipped that, and connected it directly to main 12v power supply (with a voltage regulator in the middle).
I used this voltage regulator:
Amazon.com: Addicore 5V 1.5A Positive Voltage Regulator L7805CV in Antistatic Foam (5pcs): Industrial & Scientific
because it was easy to get and should provide plenty of power. I soldered it onto the tinyIOx proto area and hooked up the power.
Connecting the tinyIOx to the MegaSquirt:
Here is the MS3 manual CAN Comms page.
![](https://www.miataturbo.net/attachments/megasquirt-18/172415-how-use-tinyiox-6bz3rnb.png?dateline=1464221541)
As you can see you need to somehow connect JS6 (CANH) and JS8 (CANL) to the tinyIOx. I used some weatherpack connectors, you can do whatever you want. This is how the manual suggest to do it.
![](https://www.miataturbo.net/attachments/megasquirt-18/172416-how-use-tinyiox-t6c5pcy.png?dateline=1464221541)
JS6 -> SPR1
JS8 -> SPR2
Then you can connect the tinyIOx to the respective pins on the MS3 DB37.
Here is the pinout for the tinyIOx. You can see the CANH and CANL pins.
![](https://www.miataturbo.net/attachments/megasquirt-18/172417-how-use-tinyiox-tinyiox_dim.png?dateline=1464221541)
There is a DIP switch next to the CAN pins that enables or disables the 120Ohm terminating resistor. If the tinyIOx device is the only device on the CAN network then make sure it is set to ON.
Communicating with the tinyIOx and Updating the Firmware:
TinyIOx firmware thread: jbperf.com ? View topic - TinyIOx firmware and ini
Latest firmware (As of 5/25/2016): jbperf.com ? View topic - TinyIOx release 0.2.0
Latest portscanner (As of 5/25/2016): jbperf.com ? View topic - Port scanner
Make sure to disable any CAN polling or broadcasting before updating firmware. If you haven't ever setup CAN on your MS3 this shouldn't be an issue.
Now we need to see if you did the last few steps correctly. For this step you will need a windows computer and the latest port scanner (which can be found at the link above).
Make sure that any applications using the port are closed (tuner studio, etc) and scan the ports. If done correctly you should see something similar to this picture (from jbperf.com)
![](https://www.miataturbo.net/attachments/megasquirt-18/172418-how-use-tinyiox-port_scanner_v1_0.png?dateline=1464221541)
Except yours will only have one megasquirt, and one CAN device below it.
Make sure that the CAN ID is 4 (if it is the only other CAN device, if you have multiple devices, you can change the ID. Either way remember the ID for later)
Click on the drop down arrow and update the firmware.
![](https://www.miataturbo.net/attachments/megasquirt-18/172419-how-use-tinyiox-port_scanner_v1_0_drop_change.png?dateline=1464221541)
Make sure it says that it completed successfully. If not go sign up on jbperf.com and ask him. He knows his ****.
Now you have an updated tinyIOx that communicates with the MegaSquirt.
Project setup (adding the tinyIOx to your TunerStudio Project):
There are 2 ways to do this. Setup a project only for the tinyIOx (on your own for this). Or do it how I did, and add it to your project.
Make sure you have the ini file that you downloaded with the latest firmware.
Open your project in tuner studio.
File -> Project -> Project Properties.
Go to the CAN Devices Tab
![](https://www.miataturbo.net/attachments/megasquirt-18/172420-how-use-tinyiox-bhslod9.png?dateline=1464221541)
Click the + button to add a new device.
Set the Device Identifier, Device Description, and Device CAN ID (Probably 4, unless you changed it). Also make sure to check Disable runtime data.
![](https://www.miataturbo.net/attachments/megasquirt-18/172421-how-use-tinyiox-vzfpczh.png?dateline=1464221541)
Now click on the 3 dots and set the Device Configuration file to the ini file you downloaded with the latest firmware.
Make sure that you set the SERIAL to Deactivated.
![](https://www.miataturbo.net/attachments/megasquirt-18/172422-how-use-tinyiox-x9r9izc.png?dateline=1464221541)
Press OK (Project will close and reopen)
You now have a menu in the upper left to change between tinyIOx and MegaSquirt settings.
![](https://www.miataturbo.net/attachments/megasquirt-18/172423-how-use-tinyiox-c0spt0e.png?dateline=1464221541)
![](https://www.miataturbo.net/attachments/megasquirt-18/172424-how-use-tinyiox-qaa62nd.png?dateline=1464221541)
Go to TinyIOx setup and open AFR data settings. Change to the following.
![](https://www.miataturbo.net/attachments/megasquirt-18/172425-how-use-tinyiox-jekehah.png?dateline=1464221541)
Connecting your LC-1/2 to the TinyIOx:
If you have an LC-1 then you should already have the 3.5mm plug to connect. You might need an adapter cable.
If you have an LC-2 then you will need to build/buy an adapter. This was a pain, but I will post this info later tonight when I get home and have pictures.
Configuring your project to use CAN wideband data:
This may vary depending on firmware. But the basic info is the same.
Open the CAN EGO, GPS menu under the CAN-bus/testmodes menu. (This might also be called the 'CAN VSS,gear' menu)
Set Fetch EGO Data to Innovate format
Set Remote CAN Id to your tinyIOx ID (Probably 4)
Set the Table to 7
Set the Offset to 76
![](https://www.miataturbo.net/attachments/megasquirt-18/172426-how-use-tinyiox-zfesfsd.png?dateline=1464221541)
Now that the megasquirt is polling for the info we need to use it.
Fuel Settings -> AFR/EGO Control
EGO 1 Port set to CAN EGO
![](https://www.miataturbo.net/attachments/megasquirt-18/172427-how-use-tinyiox-qlx7eda.png?dateline=1464221541)
Thats a wrap. This worked for me, hopefully it will work for you too.
References:
http://forum.jbperf.com/
http://jbperf.com/io_extender/tinyIOx.html
http://www.msextra.com/doc/pdf/MS3ba...rdware-1.4.pdf
This guide assumes you are using an MS3/3x, other variants may differ. It also assumes that the tinyIOx is the only CAN device. Other setups will need different configuration.
Make sure to update to 1.4.1 if you are on 1.4. There is a bug that affects CAN in 1.4. Here is 1.4.1 Megasquirt Support Forum (MSEXTRA) ? MS3 firmware 1.4.1 released - use this (View topic)
All info was gathered from jbperf.com.
Mostly from these 2 links.
TinyIOx v1.0 Board
jbperf.com ? View topic - TinyIOx
Powering the tinyIOx:
Rumor is you can connect a tinyIOx to the MegaSquirt 5v power supply, but I know gesso had issues with that, so I skipped that, and connected it directly to main 12v power supply (with a voltage regulator in the middle).
I used this voltage regulator:
![Amazon.com: Addicore 5V 1.5A Positive Voltage Regulator L7805CV in Antistatic Foam (5pcs): Industrial & Scientific](https://www.miataturbo.net/images/misc/amazon_icon.gif)
Connecting the tinyIOx to the MegaSquirt:
Here is the MS3 manual CAN Comms page.
![](https://www.miataturbo.net/attachments/megasquirt-18/172415-how-use-tinyiox-6bz3rnb.png?dateline=1464221541)
As you can see you need to somehow connect JS6 (CANH) and JS8 (CANL) to the tinyIOx. I used some weatherpack connectors, you can do whatever you want. This is how the manual suggest to do it.
![](https://www.miataturbo.net/attachments/megasquirt-18/172416-how-use-tinyiox-t6c5pcy.png?dateline=1464221541)
JS6 -> SPR1
JS8 -> SPR2
Then you can connect the tinyIOx to the respective pins on the MS3 DB37.
Here is the pinout for the tinyIOx. You can see the CANH and CANL pins.
![](https://www.miataturbo.net/attachments/megasquirt-18/172417-how-use-tinyiox-tinyiox_dim.png?dateline=1464221541)
There is a DIP switch next to the CAN pins that enables or disables the 120Ohm terminating resistor. If the tinyIOx device is the only device on the CAN network then make sure it is set to ON.
Communicating with the tinyIOx and Updating the Firmware:
TinyIOx firmware thread: jbperf.com ? View topic - TinyIOx firmware and ini
Latest firmware (As of 5/25/2016): jbperf.com ? View topic - TinyIOx release 0.2.0
Latest portscanner (As of 5/25/2016): jbperf.com ? View topic - Port scanner
Make sure to disable any CAN polling or broadcasting before updating firmware. If you haven't ever setup CAN on your MS3 this shouldn't be an issue.
Now we need to see if you did the last few steps correctly. For this step you will need a windows computer and the latest port scanner (which can be found at the link above).
Make sure that any applications using the port are closed (tuner studio, etc) and scan the ports. If done correctly you should see something similar to this picture (from jbperf.com)
![](https://www.miataturbo.net/attachments/megasquirt-18/172418-how-use-tinyiox-port_scanner_v1_0.png?dateline=1464221541)
Except yours will only have one megasquirt, and one CAN device below it.
Make sure that the CAN ID is 4 (if it is the only other CAN device, if you have multiple devices, you can change the ID. Either way remember the ID for later)
Click on the drop down arrow and update the firmware.
![](https://www.miataturbo.net/attachments/megasquirt-18/172419-how-use-tinyiox-port_scanner_v1_0_drop_change.png?dateline=1464221541)
Make sure it says that it completed successfully. If not go sign up on jbperf.com and ask him. He knows his ****.
Now you have an updated tinyIOx that communicates with the MegaSquirt.
Project setup (adding the tinyIOx to your TunerStudio Project):
There are 2 ways to do this. Setup a project only for the tinyIOx (on your own for this). Or do it how I did, and add it to your project.
Make sure you have the ini file that you downloaded with the latest firmware.
Open your project in tuner studio.
File -> Project -> Project Properties.
Go to the CAN Devices Tab
![](https://www.miataturbo.net/attachments/megasquirt-18/172420-how-use-tinyiox-bhslod9.png?dateline=1464221541)
Click the + button to add a new device.
Set the Device Identifier, Device Description, and Device CAN ID (Probably 4, unless you changed it). Also make sure to check Disable runtime data.
![](https://www.miataturbo.net/attachments/megasquirt-18/172421-how-use-tinyiox-vzfpczh.png?dateline=1464221541)
Now click on the 3 dots and set the Device Configuration file to the ini file you downloaded with the latest firmware.
Make sure that you set the SERIAL to Deactivated.
![](https://www.miataturbo.net/attachments/megasquirt-18/172422-how-use-tinyiox-x9r9izc.png?dateline=1464221541)
Press OK (Project will close and reopen)
You now have a menu in the upper left to change between tinyIOx and MegaSquirt settings.
![](https://www.miataturbo.net/attachments/megasquirt-18/172423-how-use-tinyiox-c0spt0e.png?dateline=1464221541)
![](https://www.miataturbo.net/attachments/megasquirt-18/172424-how-use-tinyiox-qaa62nd.png?dateline=1464221541)
Go to TinyIOx setup and open AFR data settings. Change to the following.
![](https://www.miataturbo.net/attachments/megasquirt-18/172425-how-use-tinyiox-jekehah.png?dateline=1464221541)
Connecting your LC-1/2 to the TinyIOx:
If you have an LC-1 then you should already have the 3.5mm plug to connect. You might need an adapter cable.
If you have an LC-2 then you will need to build/buy an adapter. This was a pain, but I will post this info later tonight when I get home and have pictures.
Configuring your project to use CAN wideband data:
This may vary depending on firmware. But the basic info is the same.
Open the CAN EGO, GPS menu under the CAN-bus/testmodes menu. (This might also be called the 'CAN VSS,gear' menu)
Set Fetch EGO Data to Innovate format
Set Remote CAN Id to your tinyIOx ID (Probably 4)
Set the Table to 7
Set the Offset to 76
![](https://www.miataturbo.net/attachments/megasquirt-18/172426-how-use-tinyiox-zfesfsd.png?dateline=1464221541)
Now that the megasquirt is polling for the info we need to use it.
Fuel Settings -> AFR/EGO Control
EGO 1 Port set to CAN EGO
![](https://www.miataturbo.net/attachments/megasquirt-18/172427-how-use-tinyiox-qlx7eda.png?dateline=1464221541)
Thats a wrap. This worked for me, hopefully it will work for you too.
References:
http://forum.jbperf.com/
http://jbperf.com/io_extender/tinyIOx.html
http://www.msextra.com/doc/pdf/MS3ba...rdware-1.4.pdf
#4
![Default](https://www.miataturbo.net/images/icons/icon1.gif)
WooHoo, it's all in "Idiot Guide" format - please keep it up.
For those not familiar with the term: "Idiot Guide"s show/describe all steps involved so that almost any "idiot" can follow them, they don't make broad statements such as "configure the XYZ" when that actually involves multiple actions or assumes a lot of associated knowledge.
For those not familiar with the term: "Idiot Guide"s show/describe all steps involved so that almost any "idiot" can follow them, they don't make broad statements such as "configure the XYZ" when that actually involves multiple actions or assumes a lot of associated knowledge.
#5
SADFab Destructive Testing Engineer
![](/mt2011/images_td/ranks/supporter1.gif)
![](/mt2011/images_td/ranks/moderator.png)
Thread Starter
iTrader: (5)
Join Date: Apr 2014
Location: Beaverton, USA
Posts: 18,642
Total Cats: 1,866
![Default](https://www.miataturbo.net/images/icons/icon1.gif)
The second part may take a while. I have it all planned out but won't be implemented for a while.
All in all it took me a few hours to get serial o2 data. It updates way faster and is way more accurate.
All in all it took me a few hours to get serial o2 data. It updates way faster and is way more accurate.
#6
![Default](https://www.miataturbo.net/images/icons/icon1.gif)
Strange, I've had 0 issues using the MS 5V power supply. Nice writeup though. It would be nice if the TinyIOx had a user manual or something.
Just want to add that for those using MS2, to get the digital wideband signal you need to set it up like so:
Ignore the port polling settings (using that for outputs on the TinyIOx). AFR data is located on CAN ID: 4, table: 7, offset: 76
![](https://www.miataturbo.net/attachments/megasquirt-18/172538-how-use-tinyiox-c5iy1pw.png?dateline=1464255244)
Signal comes through on remote ADC4.
Just want to add that for those using MS2, to get the digital wideband signal you need to set it up like so:
Ignore the port polling settings (using that for outputs on the TinyIOx). AFR data is located on CAN ID: 4, table: 7, offset: 76
![](https://www.miataturbo.net/attachments/megasquirt-18/172538-how-use-tinyiox-c5iy1pw.png?dateline=1464255244)
Signal comes through on remote ADC4.
![](https://www.miataturbo.net/attachments/megasquirt-18/172539-how-use-tinyiox-21r3oao.png?dateline=1464255244)
#9
SADFab Destructive Testing Engineer
![](/mt2011/images_td/ranks/supporter1.gif)
![](/mt2011/images_td/ranks/moderator.png)
Thread Starter
iTrader: (5)
Join Date: Apr 2014
Location: Beaverton, USA
Posts: 18,642
Total Cats: 1,866
![Default](https://www.miataturbo.net/images/icons/icon1.gif)
Not sure. I have seen multiple references of people running it from vref. But one person having trouble was enough for me to just use a 12v source. It was very easy, and no hassle.
#14
Senior Member
iTrader: (1)
Join Date: Sep 2011
Location: Lambertville, NJ
Posts: 1,215
Total Cats: 74
![Default](https://www.miataturbo.net/images/icons/icon1.gif)
Also the pullups for the temperatures etc. Again, not a hell of a lot of current, but it all adds up. Even the FETs for the injectors etc. need a little bit of current to switch. If you are running older circuits with TIPs, they'll need even more.
#16
SADFab Destructive Testing Engineer
![](/mt2011/images_td/ranks/supporter1.gif)
![](/mt2011/images_td/ranks/moderator.png)
Thread Starter
iTrader: (5)
Join Date: Apr 2014
Location: Beaverton, USA
Posts: 18,642
Total Cats: 1,866
![Default](https://www.miataturbo.net/images/icons/icon1.gif)
Its pretty annoying to mount externally. Some people fit in inside the case. I built my ECU connector into the case so i have no room, but I had a 3d case printed.
#17
![Default](https://www.miataturbo.net/images/icons/icon1.gif)
I have a MSpnpPRO so I don't believe I have a heck of a lot of space available to me. Maybe I will order one and bring it to Fry's and see if they have a box on the shelf sitting around that will fit.
I already have the Trackspeed Engineering MSLabs CAN wideband controller sitting in a drawer ready to be installed. Should I just skip the MSLabs box and install a TinyIOx or does the MSLabs do something that the MSLabs box doesn't?
I realize you might not be able to compare, but if anyone knows I would like to know. Ideally I would like to add some more analog sensor inputs so the tinyIOx would be a nice addition.
I already have the Trackspeed Engineering MSLabs CAN wideband controller sitting in a drawer ready to be installed. Should I just skip the MSLabs box and install a TinyIOx or does the MSLabs do something that the MSLabs box doesn't?
I realize you might not be able to compare, but if anyone knows I would like to know. Ideally I would like to add some more analog sensor inputs so the tinyIOx would be a nice addition.
#19
![Default](https://www.miataturbo.net/images/icons/icon1.gif)
Just thought I'd add some more info on how to use the output ports. This is for ms2, however it should be similar for ms3x but it's highly unlikely that you'd need the extra outputs.
Port polling needs to be enabled on megasquirt with the following settings:
![](https://www.miataturbo.net/attachments/megasquirt-18/172598-how-use-tinyiox-xnzj2fs.png?dateline=1464317101)
Next the ports need to be setup on the TinyIOx and linked with the outputs PTE2 or PTE3:
![](https://www.miataturbo.net/attachments/megasquirt-18/172599-how-use-tinyiox-5jhoojn.png?dateline=1464317101)
Then you can choose the parameters that turn on/off the remote port:
(this one is set up to active VICS)
![](https://www.miataturbo.net/attachments/megasquirt-18/172600-how-use-tinyiox-k3soebp.png?dateline=1464317101)
.
Port polling needs to be enabled on megasquirt with the following settings:
![](https://www.miataturbo.net/attachments/megasquirt-18/172598-how-use-tinyiox-xnzj2fs.png?dateline=1464317101)
Next the ports need to be setup on the TinyIOx and linked with the outputs PTE2 or PTE3:
![](https://www.miataturbo.net/attachments/megasquirt-18/172599-how-use-tinyiox-5jhoojn.png?dateline=1464317101)
Then you can choose the parameters that turn on/off the remote port:
(this one is set up to active VICS)
![](https://www.miataturbo.net/attachments/megasquirt-18/172600-how-use-tinyiox-k3soebp.png?dateline=1464317101)
.