forked from autosportlabs/RaceCapture-Pro_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGELOG
232 lines (182 loc) · 9.48 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
=== 2.8.4 ===
* Background streaming switch only affects telemetry link; Wireless (Bluetooth) link always streams
* Fixed duplicate log file issue
* Fixed filtering of 500 and 1000 Hz sample rates when config is applied
* Improved tolerance and recovery to SD card write/eject/reinsertion
* Reset CPU after we load factory defaults
* Reduce MK1 firmware size by over 15K by removing unneeded symbols in LUA lib.
* Fixed handling of extended CAN IDs
* Added Lua serial api for initializing serial port and character based reading / writing
* Added getUptime LUA method to get system uptime
* Added getDateTime LUA method to get date and time info. Returns in format
year, month, day, hour, minute, second, millisecond.
* Fixed invalid data print out bug during slow SD Card init
* Fixed meta fields in log file being corrupted during printout.
* Fixed no SPI lock issue on MK1 hardware for f_write call.
=== 2.8.3 ===
* Read cell module stats before checking if on network
* Extend heartbeat timeout to 60 seconds to allow more margin
* Correctly handle threshold for bad telemetry messsages, preventing unnecessary re-connects
=== 2.8.2 ===
* Improved reliability of GPS initialization
=== 2.8.1 ===
* Improved reliability of BT initialization process
=== 2.8.0 ===
* Refactor stage logic to support multiple stage runs without restarting unit.
* Add support for predictive timing in stage runs (same restrictions & rules
apply as in circuit racing).
* Replace start/finish cool off timer with geoTrigger to prevent false start/finish
events when driver is stuck at start/finish for whatever reason.
* Add the elapsed channel. This channel provides the time elapsed since the lap
first began in minutes. Useful for seeing current lap time of the driver.
* Add the CurrentLap channel. Increments when lap timing starts; as opposed to
LapCount which increments when the lap completes.
* Configure GPS module to select native upate rate to match selected sample rate
* Lua script automatically re-runs when re-written and flashed
* Fixed virtual channel name overrun
* Enhanced re-connection logic via heartbeat message
===2.7.9===
* Improved GPS processing performance, reduced chances of dropped packets from module.
* Bumped fast-link telemetry (i.e. Bluetooth link) to 50Hz.
* Reduced delay between PID querying for MK2
* Fixed OBD-II PID configuration message handling for PID counts > 8. PIDs limited to 10 until app supports sending PID configuration in batches
* IMU calibration correctly accounts for physical channel re-mapping
* Guard against floating point overflow for setting configuration options
* Fixed issue where writing IMU config caused subsequent errors in IMU output
===2.7.8===
* Fixed start/finish line detection for MK1
* Added getGpsSats as a Lua function
* Make max virtual channels configurable betwen MK1 (10 max) and MK2 (30 max)
* Fix sector bug so sector now goes to 0 when start/finish is crossed the first time.
===2.7.7===
* Allow cell module to connect to roaming network (roaming charges may apply)
* MK1: fix RPM stuck at zero if RPM signal is applied before RCP unit is powered up
* PWM clock frequency now settable via Lua script, was fixed at 20KHz before.
===2.7.6===
* Ensure timestamps show on every sample, regardless of sample rate combinations
* Fixes / updates for MK1 release
* 2nd CAN channel not set correctly via API
* IMU channel filtering was resetting Pitch and Roll physical mappings to Yaw channel
===2.7.5===
* Allow watchdog reset to prevent Lua from running script in case lua script was responsible for watchdog
* Adjusted USB and I2C interrupt priority to reduce the chance of hard faults
* Virtual Channel: encoding of sample rate incorrect, preventing SD logging in many cases
* Virtual Channel: if re-adding a virtual channel with the same name, update the standing channel with updated settings
===2.7.4===
* Fixed addChannel() return value upon successful creation of channel
===2.7.3===
* Padded all OBDII PID requests with 0x55 to the full 8 byte message for maximum ECU compatibility.
* Corrected Lua initCAN() api call to match documentation
* Fixed GPS Distance bug. Now provided in Miles instead of Km (Because I get 40 rods to the Hogs head and that's the way I likes it...)
===2.7.2===
Only disconnect telemetry upon sustained (10) malformed API message. Resend metadata if telemetry connection is restarted.
===2.7.1===
Initial release of MK2 firmware
=======MK2 Release=======
===2.0.8===
Switched Analog Raw mode to a more meaningful 0-5v mode
Cellular telemetry mode off with default config
===2.0.7===
Updates for UNIX epoch timestamp initialization
Fixed default script flashing
===2.0.6===
Source Code organization
===2.0.5===
If Lua Script crashes firmware and watchdog timer resets, prevent script from running again enabling a recovery mode. When recovery mode is activated, Red LED is activated.
===2.0.4===
removed trivial optimization that prevented correct logging at 10Hz and possibly other Hz.
===2.0.0===
Major release - new JSON API, predictive timing, virtual channels, CAN and OBD2 support.
===1.2.7===
RPM/Timer input value now goes to zero when input signal goes away (i.e. when internal timer counter overflows)
Fixed problem where zero values in log file were not being recorded (treated as nulls)
Optimized code that read channels and populated the sample record object.
Auto file recovery attempt if file write error occurs; falls back to creating a new log file if it cannot auto-recover.
Improved SD performance/reliability when writing at high logging rates (>=100Hz)
Updated to ChanFS 0.10
===1.2.6===
Fixed problem where saving an empty lua script caused garbage script to be saved
Trimmed clock frequency to make logging more accurate (was about 1% off)
Fixed error around omitting samples if samples did not fall on even sample boundaries (specific problem with 30Hz sampling rate)
Implemented experimental 200Hz logging rate
Switched OS preemption tick rate from 300Hz to 200Hz (performance optimization)
Only poll the ADCs when the sample record needs to be written (performance optimziation)
Removed AccelInstalled configuration feature (Accelerometer is always installed)
===1.2.5===
Implemented smoothing algorithm for accelerometer channels using Exponential Moving Average IIR filter
Continuous streaming via connectivity port - added start/stop logging messages
Implemented rate limiting for cellular telemetry & bluetooth - bluetooth limited to 50Hz, Cellular 10Hz. SD still logs at configured rate.
Various code improvements / internal architecture
===1.2.4===
Bluetooth provisioning only attempts once before falling through - to deal with cases if Bluetooth is already connected and can't respond to AT commands
===1.2.3===
Added support for RaceCapture Mobile app and Petrel Data Solo Storm
Redesigned Bluetooth / telemetry streaming API to 2.2
===1.1.14===
Added - and : characters as allowed characters in filtered text fields
===1.1.13===
Fixed 10% too fast logging rate (improved dramatically but still seems about 0.5 - 1% off; needs measurement on scope for fine tuning)
Fixed analog scaling divide by zero issue with raw values outside of configured scaling map
Fixed accelerometer mappings for invert settings and changed mapping to match industry standards
More JSON APIs implemented
===1.1.12===
Fixed regression in cellular APN initialization
Additional JSON API
Additional fixes around scaling value on timer channels
===1.1.11===
Fixed issue where timer scaling was not being recalculated upon changes to pulse per revolution
Work in progress for new JSON API to enable mobile app
Initial work for making cellular modem APN configurable
===1.1.10===
Fixed periodic glitch in accelerometer readings
Fixed periodic SD card file corruption
Disabled accelerometer averaging based on user feedback
Added beginning of logging infrastructure
===1.1.9===
Fixed corrupted data in analog and timer channels when logging precision is zero
===1.1.8===
PWM fixes (logical -> hardware channel mapping was wrong) and general refactoring
Various changes to support testability
Fixed up modp_ftoa temporarily to deal with overflow condition (0xDEADBEEF)
Added lua garbage collect before processing interactive command
===1.1.7===
added metadata preamble to telemetry stream
expanded default GPS target radius to 0.0004 degrees
===1.1.6===
fixed bug in split time data logging (float vs int)
===1.1.5===
removed gps quality field
added split time configuration, detection and logging field
fixed usb comm race issue
===1.1.3===
Fixed lua binding range check issues
===1.1.2===
Fixed accelerometer calibration issues
===1.1.1===
* changed to use new bootloader. install bootloader using SAM-BA then use bootloader to flash
RaceCapture/Pro firmware
* Fixed SD card compatibility issue
* added metadata in header for CSV file format
===0.4.0===
* added bluetooth module telemetry/connectivity
* fixed yaw sensor calibration
* other fixes
===0.3.4===
- Handles no telemetry authorizations scenario correctly
===0.3.3===
- Added wait for telemetry authorization in cellTelemetry.c
===0.3.2===
- Fixed bug where telemetry task would not start
===0.3.1===
- Select telemetry logging mode at strup based on configuration
- Fixed SD card detection / init bug
- Removed extraneous debug code
- Removed activation of LED3 during cellular initialization
===0.3.0===
- initial cut of cellular telemetry
- refactored P2P telemetry into it's own module
- removed a stray debug output in the SD writing routine
===0.2.0===
- Various fixes/ updates to support RaceAnalyzer application
- Fixed script flashing routine
- Added sample runtime channels