[{"data":1,"prerenderedAt":8},["ShallowReactive",2],{"ecu:tunerstudio-msl":3},{"slug":4,"wikiHtml":5,"adapter":6,"channels":7},"tunerstudio-msl","\u003Cul>\n\u003Cli>\u003Cstrong>File type:\u003C\u002Fstrong> Tab-delimited legacy ASCII datalogs (\u003Ccode>.msl\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Where they come from:\u003C\u002Fstrong> TunerStudio&#39;s Data Logging menu, and third-party dashes that write the same dialect — notably RealDash, which logs a Speeduino over Bluetooth straight to \u003Ccode>.msl\u003C\u002Fcode> with no cable and no conversion step\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Supported devices:\u003C\u002Fstrong> Speeduino, MegaSquirt, and any ECU logged through TunerStudio or RealDash\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Features:\u003C\u002Fstrong> Units read from the row beneath the header, optional firmware\u002Fcapture-date preamble, \u003Ccode>MARK\u003C\u002Fcode> lines skipped, blank and non-numeric fields carried forward from the last known value, clock columns converted to seconds since midnight, monotonic time enforced across concatenated sessions\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>Format Layout\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-text\">Time    SecL    RPM     MAP     ...     GPS Latitude    GPS Longitude   GPS Time\nsec     s       RPM     kPa     ...     lat             lon             time\n0.0     202.0   965.0   33.0    ...     -26.253315      -51.06884       21:51\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Row 1 is the channel names, row 2 is the unit for each column, and everything after is data. UltraLog reads the time unit from that second row, so a log in milliseconds scales correctly instead of being read as seconds.\u003C\u002Fp>\n\u003Ch2>Supported Data\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>RPM, MAP, TPS, MAT, CLT, Battery Voltage\u003C\u002Fli>\n\u003Cli>AFR and AFR2, EGO corrections\u003C\u002Fli>\n\u003Cli>Pulse Width, VE, Duty Cycle (per bank)\u003C\u002Fli>\n\u003Cli>Spark Advance, MAF, Boost (bar and psi), Acceleration\u003C\u002Fli>\n\u003Cli>Speed, and GPS Latitude \u002F Longitude \u002F Altitude \u002F Speed \u002F Date \u002F Time\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>Important Notes\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Track Map works out of the box:\u003C\u002Fstrong> GPS columns keep their exported names, so a logged session draws the track with lap detection and channel coloring\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Non-numeric columns:\u003C\u002Fstrong> \u003Ccode>GPS Date\u003C\u002Fcode> is text (\u003Ccode>18.8.2026\u003C\u002Fcode>) and has no numeric meaning, so it reads as the last known value. \u003Ccode>GPS Time\u003C\u002Fcode> is converted to seconds since midnight and does plot\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Blank fields:\u003C\u002Fstrong> RealDash leaves GPS fields blank until it gets a fix. Those rows carry the previous value forward rather than dropping to zero mid-log\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Not the same as the MegaSquirt CSV:\u003C\u002Fstrong> TunerStudio&#39;s comma-delimited CSV export is handled by the MegaSquirt parser above. Both are supported; UltraLog picks the right one automatically\u003C\u002Fli>\n\u003C\u002Ful>\n",null,[],1792894560233]