-
Notifications
You must be signed in to change notification settings - Fork 7
/
version_history.txt
216 lines (180 loc) · 9.81 KB
/
version_history.txt
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
Version 0.20
Fixed bug in td5comm.cpp which meant incorrect values were being used for injection quantity
Reduced minimum poll intervals for ODB PIDs related to fuel consumption - the previous values had meant that the code could not query RPM, Speed, Inj quantity in one screen refresh period - resulting in a zero value output.
Tidied up the fuel consumption code to introduce 55ms delay between PID polls (as expected by the ECU).
Version 0.18-0.19
Removed Menus
Removed ESP support
Re-added OBD code for fuel consumption
Version 0.17
Cleaned up some drawing code
Removed OBD code - simply not going to be used
Added a vertical bar graph
Cleaned up menus
ESP support currently broken - needs interupt code adding for encoder
Fixed 4bar boost sensor code
Version 0.16
Added F401CC & F303CC support
Changed input to a clickable rotary encoder
Version 0.15
Fix Schematic - pulldowns not pullups
Version 0.14
Fix analogue resolution on STM Core
Overhauled the sensor structure and how sensors are referenced - substituted definitiosn for hardcoded sensor id's - this makes added new sensors much simpler, and lays the foundation for dynamic menu handling. Also allows OBD to be an optional compile time definition.
Minor schematic fix (not functionally different).
Version 0.13
SPI2 now utlised for MAX31856 on all variants (exclusing ESP32, TBD).
FK407M1 support added (this still in PR stage on STM Core)
Kicad Schematic added
Fixed Maple_mini pin assignment bug - Boost moved to A0 (PA0)
Version 0.12
Fixed some drawing issues exiting the menu.
Fixed flicker issue in menu.
Change GPIO pinout: MAX is now on SPI2, OLED DC, CS, RES on different pins, buttons on different pins.
BlackPill support added for STM core.
MAX31856 enabled for all screen types
KNOWN ISSUE - SSD1331 does not function on F4 boards, this due to a SPI setup problem in Adafruit_GFX
SD_CS pin correctly initialised
Version 0.11
Code restructured
Cleaned up some warnings
Now Eclipse/Sloeber compatible
Removed some data that deprecated sensors required
Removed some unused variables
Simplified SDIO defs
Removed an equivalence bug
Tested with BlackPill - using https://github.com/rogerclarkmelbourne/Arduino_STM32
Graphics output overhauled so it is proportional to screen width & only updates what has changed - some display glitches to work out yet
SSD1331 & SSD1351 support added
Version 0.10
Corrected a MAX31856 setup issue (register 0x04 written to twice)
ESP32 ADC resolution set to 12 bits
BLACK407ZE & ZG support added
DIYMROE Support added
Fix ADC resolution for STM core based F4 devices
CDC Serial for STM core based devices
Fixed issue where analog pins were being redefined as Ax, this does not work on STM's core (gives an incorrect pin mapping)
Version 0.09
Bluepill support added
ESP32 initial support added - Only tested on NodeMCU-32S, ADC not yet tested
Compilation will now fail on unsupported hardware
Remapped VET6 K-line to Serial3
Cleaned up pin definitions
Version 0.08
Sensor presets broken out into separate header file
Compatible with latest Adafruit SSD1306 library (1.2.9 at time of writing)
Fixed inverted naming of sensor hiding states
Updated code so will compile against:
Maple Mini using core: https://github.com/rogerclarkmelbourne/Arduino_STM32
Black 407VET6 using core: https://github.com/stm32duino/Arduino_Core_STM32
Black 407VET6 - datalogging is not functional at this time.
Version 0.07
Changed logic so that inactive sensors CANNOT be made active using the menu system - new .hidden property added
Calibrated Chinese 100psi sensors in 'readpress' - these can be used for oil, fuel, generic pressure. These are NOT absolute pressure sensors and read relative to atmospheric pressure.
Version 0.06
Simplified to 1 OLED screen - lowers starting bar
Removed MUX154
Removed i2C devices (compass, 6 axis - these were too strongly influenced by iron in the vehicle)
Version 0.0.5
Updated to work with ArduinoMenu 4 (requires use of a bogus Serial stream)
Version 0.04
CS lines for screens now provided via a 74HC154 demux - see MUX154 forked library in my guthub.
Modified adafruit library included to drive the SSD_1306 CS lines via the demux.
More OBD sensors added (disabled)
Menus updated for added sensors
Extraneous code removed from td5comm.cpp
Version 0.03
Forked project from LRDuino (ELM327 based) to LRDuinoTD5
Removed ELM327 code
Added TD5 opencomm ISO14230-1 code
Version 0.02
Thinned down the inclinometer animation frames to save memory
Added datalogging to SD (works but requires a GPIO pin - will be adding CS multiplexing soon to free this up)
Enable/disable & Warning Menus now work
Added 'Connect to ECU' option to initialise OBD if it failed at startup time
Any OBD read errors disable all OBD sensors (re-enable menu items become disabled).
5s Menu timeout
Version 0.01
Renumbered versioning - oops, should've thought longer about this in the first place.
Included Arduino Menu 3.0 system.
Removed some unused OBD sensors.
Added 'Buttons' library & updated user interaction.
Version 0.99
Functions renamed
Main loop altered to update certain sensors readings based on frequency of change, this speeds up the main loop when OBD is enabled.
Added left & right rotations
Changed some of the pinouts
Fixed bug where display rotation broke if there were less sensors active than screens.
Fixed draw position of sensor images in drawbig
Added pressure sensor code
Version 0.98
Various bugfixes
Version 0.97
OBD Support added - at this stage it is using a modified version of -> https://github.com/irvined1982/arduino-ELM327 Main changes are to filter out all non alpha chars & the ELM prompt '>' to allow interfacing with obdsim running on a windows xp virtual machine in virtualbox via a bluetooth com port.
Large font OBD sensor drawing fucntion added for RPM, MPH
Version 0.96
Moved MAX31586 & SSD1306 devices to shared HW SPI bus. This incorporates several pin wiring changes.
Ditched Adafruit_31586 library in favour of custom code
Now uses 8 OLED displays
Prelimary bluetooth code included & OBD2 sensors using ELM 327 library.
OBD sensors added to sensor structure - this will expand to cover most common PID's
Pins are now initialised to correct state and input/ouput definition.
Added units 'rpm' & 'mph'
Various formatting changes for readability
Version 0.95
Added compass graphic
Added sensor pairing
Consolidated display drawing to 1 function, this means that each sensor occupies 1 screen with a graph unless it is 'paired'
Updated posrot and active sensor counting functions to account for pairing
functionised test drawing.
Version 0.94
Removed Arduino nano/uno support - they don't have enough ram/gpio (version 0.93 will be kept in a 'legacy' folder for anyone wanting to hack against uno/nano)
Added magnetometer support & a compass graphic HMC5883
Moved all the sensor config into an array of structs
Moved the audible warning code out of the display routine - this way alarms not on screen can be heard (at a higher beep rate)
Expanded to 20 sensors (will define the most standard OBD PIDs here)
Added pitch meter and associated animation gfx
Version 0.93
STM32 support added
Pins abdstracted to defines
Added 'DIVISOR' definition - STM32 ADC is 12 bit so returns values 0-4095 whereas Nano/Uno is 10 bit with values 0-1023. Sensor reading fucntions updated to use this.
Version 0.92
Moved barchart drawing into a function, this can be called from any of the display drawing fuctions with a reference to the OLED object
Made it so that sensors can be enabled/disabled at compile time - new array senseactive[] The posrot function now populates based on active sensors only.
Version 0.91
Changed font used for values & errors to FreeSansBoldOblique12pt7b - nice TTF font, code amended to reflect baseline change in this font from standard.
Tidied some repetetive fault checking code nto a helper function.
Changed some of the comments to hopefully make the code easier to follow.
Fixed a bug where warning faulted sensors were displaying warning values - not really necessary to do this.
Fixed a bug where display1 was drawing the sensor twice - meant that warnings/faults would not animate.
Version 0.90
Moved gfx to seperate .h file
Added animation to the roll icon
Added low warning values and code
Version 0.89
Overhauled the display code to look much prettier
Reduced some memory usage by breaking out some of the display code into functions
Version 0.88
Version history broken out into seperate file
Added Sensor data for the adxl345 to the array
Added a graphic for roll
Added a graphic for coolant level
Updated the rotation code so that all sensors now rotate around the displays (1 extra OLED would mean all 7 could be shown at once)
Updated the 'units' code so that boolean types (LOW, OK for coolant level) degrees are now catered for * not happy with this yet, think it needs some sensor description in the array of sensors
Changed from square() function to sq() - compatability with STM32
Version 0.87
Switched to Fabo ADXL345 library, this saves 1766 bytes of Progmem, and 223 bytes of Dyn mem!
Version 0.86
Decoupled sensor input pins from array index - read functions now need to also be passed the array index to store data
Moved some pins around to accomodate i2c on a4,a5
Added initial support for ADXL345 Accelerometer
Version 0.85
Fault signals now reset max recorded values to the minimum of the scalerange
Fixed bug with screen rotation - it's not a good idea values outside of the bounds of and array! "if (faultWARN(6)==1)"
Fixed bug analogue inputs need to correspond to their analogue pin, this is because the code implicitly expects them on those...
Version 0.84
Added low coolant warning, &assoicated variables & functions - shows on display1 only
fixed bug in doWarnings() where we were directly referencing display 1 & 3 rather than passing in a reference to the display that we wanted to draw on
reverted scalerange change to int back to float - graph was drawing only at left
Version 0.83
Initial upload to github