mirror of https://github.com/speeduino/wiki.js.git
docs: update Secondary_Serial_IO_interface
This commit is contained in:
parent
499571f17f
commit
816eb8cbb8
|
@ -2,7 +2,7 @@
|
||||||
title: Secondary_Serial_IO_interface
|
title: Secondary_Serial_IO_interface
|
||||||
description:
|
description:
|
||||||
published: true
|
published: true
|
||||||
date: 2020-12-16T23:49:26.641Z
|
date: 2021-07-09T12:39:49.314Z
|
||||||
tags:
|
tags:
|
||||||
editor: markdown
|
editor: markdown
|
||||||
dateCreated: 2020-01-06T01:37:19.933Z
|
dateCreated: 2020-01-06T01:37:19.933Z
|
||||||
|
@ -49,17 +49,17 @@ Depending on if the secondary port is a simple serial port or is a canbus port t
|
||||||
##### A Simple Serial Port
|
##### A Simple Serial Port
|
||||||
A Serial port offers ,
|
A Serial port offers ,
|
||||||
|
|
||||||
1. Retrieve the current realtime data in full from Speeduino . This is the same data as sent to TunerStudio.
|
1. Retrieve the current realtime data from Speeduino . This can be a simple or full(enhanced) data set. This is the same realtime data as sent to TunerStudio.
|
||||||
2. Retrieve specific current realtime data from Speeduino.
|
2. Retrieve specific current realtime data from Speeduino.
|
||||||
3. Read in the Analog data values from 16 remote sensors as requested by Speeduino.
|
3. Read in the Analog data values from 16 remote sensors as requested by Speeduino.
|
||||||
4. Activate External Outputs(coming soon!)
|
4. Activate External Outputs(coming soon!)
|
||||||
|
|
||||||
##### A Canbus Port (COMING SOON!)
|
##### A Canbus Port
|
||||||
A Canbus port offers ,
|
A Canbus port offers ,
|
||||||
|
|
||||||
1. OBD2 formatted data of current realtime data .
|
1. OBD2 formatted data of current realtime data .
|
||||||
2. Broadcast selected current realtime data and function status .
|
2. Broadcast selected current realtime data and function status .(COMING SOON!)
|
||||||
3. Read in Analog and Digital data values from other devices on the BUS including those from OEM devices/ECU.
|
3. Read in Analog and Digital data values from other devices on the BUS including those from OEM devices/ECU.(COMING SOON!)
|
||||||
|
|
||||||
Serial Port Functions
|
Serial Port Functions
|
||||||
---------------------
|
---------------------
|
||||||
|
@ -67,23 +67,25 @@ Serial Port Functions
|
||||||
### Retrieve realtime data
|
### Retrieve realtime data
|
||||||
|
|
||||||
To get Speeduino to send out the realtime data to your device connected on a Secondary Serial IO port you must send either an "A", an "n" or an "r" to it.
|
To get Speeduino to send out the realtime data to your device connected on a Secondary Serial IO port you must send either an "A", an "n" or an "r" to it.
|
||||||
|
An 'A' will retreive a simple set of data whereas an 'n' will retreive an enhanced set of realtime data.
|
||||||
|
An 'r' will retrieve specific data starting at a selected position in the list for x number of bytes.
|
||||||
|
|
||||||
- **Send an "A"**
|
- **Send an "A"**
|
||||||
|
|
||||||
If you send an "A" to the port it will reply with ,
|
If you send an "A" to the port it will reply with ,
|
||||||
|
|
||||||
1. A "A" confirming the received instruction (sent as 0x41 in hex),
|
1. A "A" confirming the received instruction (sent as 0x41 in hex),
|
||||||
2. The port will then transmit the first 75 realtime data values from the list below.
|
2. The port will then transmit the first 75 realtime data values from the list below(simple data set).
|
||||||
|
|
||||||
The "A" command data set will not be changed or expanded upon and is maintained for legacy devices.
|
The "A" command data set will not be changed or expanded upon and is maintained for legacy devices.
|
||||||
Designers of new devices are recommended to use the newer "n" command to enable use of any additonal realtime data available beyond the orignal 75 This command supports.
|
Designers of new devices are recommended to use the newer "n" command to enable use of any additonal enhanced realtime data available beyond the orignal 75 This command supports.
|
||||||
|
|
||||||
- **Send an "n"**
|
- **Send an "n"**
|
||||||
|
|
||||||
If you send an "n" to the Serial port it will reply with,
|
If you send an "n" to the Serial port it will reply with,
|
||||||
1. A "n" confirming the received instruction (sent as 0x6E in hex (110 in DEC) ).
|
1. A "n" confirming the received instruction (sent as 0x6E in hex (110 in DEC) ).
|
||||||
2. A single hex byte ,this value is the type of "n" command about to be sent. In this case the value is 0x32 in Hex.
|
2. A single hex byte ,this value is the type of "n" command about to be sent. In this case the value is 0x32 in Hex.
|
||||||
3. A single hex byte , this value is the number of data bytes the port will be transmitting next as part ofthe command. At the time of writing (23/02/2020) this is 0x4B (75 dec)
|
3. A single hex byte , this value is the number of data bytes the port will be transmitting next as part ofthe command. At the time of writing (09/07/2021) this is 0x77 (119 dec)
|
||||||
4. The port will now transmit the realtime data.
|
4. The port will now transmit the realtime data.
|
||||||
|
|
||||||
- **Send an "r"**
|
- **Send an "r"**
|
||||||
|
@ -107,13 +109,15 @@ BIT 0 - currentStatus.secl
|
||||||
|
|
||||||
` secl is simply a counter that increments each second`
|
` secl is simply a counter that increments each second`
|
||||||
|
|
||||||
1 - currentStatus.squirt
|
1 - currentStatus.status1
|
||||||
|
|
||||||
` Squirt Bitfield`
|
` Status1 Bitfield(was squirt)`
|
||||||
|
` inj1Status(0), inj2Status(1),inj3Status(2), inj4Status(3), DFCOOn(4), boostCutFuel(5), toothLog1Ready(6), toothLog2Ready(7)`
|
||||||
|
|
||||||
2 - currentStatus.engine
|
2 - currentStatus.engine
|
||||||
|
|
||||||
` Engine Status Bitfield`
|
` Engine Status Bitfield`
|
||||||
|
` running(0), crank(1), ase(2), warmup(3), tpsacden(5), mapaccden(7)`
|
||||||
|
|
||||||
3 - (byte)(divu100(currentStatus.dwell))
|
3 - (byte)(divu100(currentStatus.dwell))
|
||||||
|
|
||||||
|
@ -226,6 +230,7 @@ BIT 0 - currentStatus.secl
|
||||||
31 - currentStatus.spark
|
31 - currentStatus.spark
|
||||||
|
|
||||||
` Spark related bitfield`
|
` Spark related bitfield`
|
||||||
|
` launchHard(0), launchSoft(1), hardLimitOn(2), softLimitOn(3), boostCutSpark(4), error(5), idleControlOn(6), sync(7) `
|
||||||
|
|
||||||
32 - lowByte(currentStatus.rpmDOT)
|
32 - lowByte(currentStatus.rpmDOT)
|
||||||
|
|
||||||
|
@ -254,6 +259,7 @@ BIT 0 - currentStatus.secl
|
||||||
38 - currentStatus.testOutputs
|
38 - currentStatus.testOutputs
|
||||||
|
|
||||||
` testoutputs bitfield`
|
` testoutputs bitfield`
|
||||||
|
` testEnabled(0), testActive(1)`
|
||||||
|
|
||||||
39 - currentStatus.O2_2
|
39 - currentStatus.O2_2
|
||||||
|
|
||||||
|
@ -325,7 +331,7 @@ BIT 0 - currentStatus.secl
|
||||||
|
|
||||||
71 - lowByte(currentStatus.canin\[15\]);
|
71 - lowByte(currentStatus.canin\[15\]);
|
||||||
|
|
||||||
72 - highByte(currentStatus.canin\[15\]);
|
72 - highByte(currentStatus.canin\[15\])
|
||||||
|
|
||||||
73 - currentStatus.tpsADC
|
73 - currentStatus.tpsADC
|
||||||
|
|
||||||
|
@ -334,6 +340,116 @@ BIT 0 - currentStatus.secl
|
||||||
74 - getNextError()
|
74 - getNextError()
|
||||||
|
|
||||||
` Error codes`
|
` Error codes`
|
||||||
|
` errorNum(0:1), currentError(2:7)`
|
||||||
|
|
||||||
|
75 - currentStatus.launchCorrection
|
||||||
|
|
||||||
|
76 - lowByte(currentStatus.PW2)
|
||||||
|
` Pulsewidth 2 multiplied by 10 in ms. Have to convert from uS to mS.`
|
||||||
|
|
||||||
|
77 - highByte(currentStatus.PW2)
|
||||||
|
` Pulsewidth 2 multiplied by 10 in ms. Have to convert from uS to mS.`
|
||||||
|
|
||||||
|
78 - lowByte(currentStatus.PW3)
|
||||||
|
` Pulsewidth 3 multiplied by 10 in ms. Have to convert from uS to mS.`
|
||||||
|
|
||||||
|
79 - highByte(currentStatus.PW3)
|
||||||
|
` Pulsewidth 3 multiplied by 10 in ms. Have to convert from uS to mS.`
|
||||||
|
|
||||||
|
80 - lowByte(currentStatus.PW4)
|
||||||
|
` Pulsewidth 4 multiplied by 10 in ms. Have to convert from uS to mS.`
|
||||||
|
|
||||||
|
81 - highByte(currentStatus.PW4)
|
||||||
|
` Pulsewidth 4 multiplied by 10 in ms. Have to convert from uS to mS.`
|
||||||
|
|
||||||
|
82 - currentStatus.status3
|
||||||
|
` resentLockOn(0), nitrousOn(1), fuel2Active(2), vssRefresh(3), halfSync(4), nSquirts(6:7)`
|
||||||
|
|
||||||
|
83 - currentStatus.engineProtectStatus
|
||||||
|
` RPM(0), MAP(1), OIL(2), AFR(3), Unused(4:7)`
|
||||||
|
|
||||||
|
84 - lowByte(currentStatus.fuelLoad)
|
||||||
|
|
||||||
|
85 - highByte(currentStatus.fuelLoad)
|
||||||
|
|
||||||
|
86 - lowByte(currentStatus.ignLoad)
|
||||||
|
|
||||||
|
87 - highByte(currentStatus.ignLoad)
|
||||||
|
|
||||||
|
88 - lowByte(currentStatus.injAngle)
|
||||||
|
|
||||||
|
89 - highByte(currentStatus.injAngle)
|
||||||
|
|
||||||
|
90 - currentStatus.idleDuty
|
||||||
|
|
||||||
|
91 - currentStatus.CLIdleTarget
|
||||||
|
` closed loop idle target`
|
||||||
|
|
||||||
|
92 - currentStatus.mapDOT
|
||||||
|
`rate of change of the map`
|
||||||
|
|
||||||
|
93 - (int8_t)currentStatus.vvt1Angle
|
||||||
|
|
||||||
|
94 - currentStatus.vvt1TargetAngle
|
||||||
|
|
||||||
|
95 - currentStatus.vvt1Duty
|
||||||
|
|
||||||
|
96 - lowByte(currentStatus.flexBoostCorrection)
|
||||||
|
|
||||||
|
97 - highByte(currentStatus.flexBoostCorrection)
|
||||||
|
|
||||||
|
98 - currentStatus.baroCorrection
|
||||||
|
|
||||||
|
99 - currentStatus.ASEValue
|
||||||
|
`Current ASE (%)`
|
||||||
|
|
||||||
|
100 - lowByte(currentStatus.vss)
|
||||||
|
` lowByte of speed reading from the speed sensor`
|
||||||
|
|
||||||
|
101 - highByte(currentStatus.vss)
|
||||||
|
` highByte of speed reading from the speed sensor`
|
||||||
|
|
||||||
|
102 - currentStatus.gear
|
||||||
|
|
||||||
|
103 - currentStatus.fuelPressure
|
||||||
|
|
||||||
|
104 - currentStatus.oilPressure
|
||||||
|
|
||||||
|
105 - currentStatus.wmiPW
|
||||||
|
|
||||||
|
106 - currentStatus.status4
|
||||||
|
` wmiEmptyBit(0), vvt1Error(1), vvt2Error(2), UnusedBits(3:7)`
|
||||||
|
|
||||||
|
107 - (int8_t)currentStatus.vvt2Angle
|
||||||
|
|
||||||
|
108 - currentStatus.vvt2TargetAngle
|
||||||
|
|
||||||
|
109 - currentStatus.vvt2Duty
|
||||||
|
|
||||||
|
110 - currentStatus.outputsStatus
|
||||||
|
|
||||||
|
111 - (byte)(currentStatus.fuelTemp + CALIBRATION_TEMPERATURE_OFFSET)
|
||||||
|
` Fuel temperature from flex sensor`
|
||||||
|
|
||||||
|
112 - currentStatus.fuelTempCorrection
|
||||||
|
` Fuel temperature Correction (%)`
|
||||||
|
|
||||||
|
113 - currentStatus.VE1
|
||||||
|
` VE 1 (%)`
|
||||||
|
|
||||||
|
114 - currentStatus.VE2
|
||||||
|
` VE 2 (%)`
|
||||||
|
|
||||||
|
115 - currentStatus.advance1
|
||||||
|
` advance 1`
|
||||||
|
|
||||||
|
116 - currentStatus.advance2
|
||||||
|
` advance 2`
|
||||||
|
|
||||||
|
117 - currentStatus.nitrous_status
|
||||||
|
|
||||||
|
118 - currentStatus.TS_SD_Status
|
||||||
|
` SD card status`
|
||||||
|
|
||||||
### Read external analog data from a remote device
|
### Read external analog data from a remote device
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue