* big pch energy
* put back ramdisk stub
* tests are happy
* h743 nucleo
* kinetis
* I love deleting code!
* make stepper happy
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* update test framework
* eh
* hey look it's fewer warnings
* unwind
* fix
* config
* configs
* logic
* even java had some
* no need to be a typedef
* paste in actual cylinder count
* min oil pressure for crank
* do it time-based
* rename field
* include
* fix existing test
* tests
* fix logic
* more test
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* tle6240: fix Matt's trap
* map: report some default value if no map sensor configured
Othervise user will get "unexpected MAP value" warning
Thread 2 hit Breakpoint 1, validateMap (mapKPa=3121.66162) at ./controllers/sensors/map.cpp:126
126 if (cisnan(mapKPa) || mapKPa < CONFIG(mapErrorDetectionTooLow) || mapKPa > CONFIG(mapErrorDetectionTooHigh)) {
(gdb) bt
0 validateMap (mapKPa=3121.66162) at ./controllers/sensors/map.cpp:126
1 0x002717dc in getMap () at ./controllers/engine_cycle/map_averaging.cpp:334
2 0x0028175a in GetMapWrapper::getMap (this=0x2004214c <mapWrapper>) at ./init/sensor/init_map.cpp:12
3 0x0028177c in operator() (__closure=0x0) at ./init/sensor/init_map.cpp:20
4 0x002817a8 in _FUN () at ./init/sensor/init_map.cpp:21
5 0x002811de in FunctionPointerSensor::get (this=0x20042150 <mapSensor>) at ./controllers/sensors/function_pointer_sensor.h:24
6 0x002651c0 in SensorRegistryEntry::get (this=0x2003ddf0 <s_sensorRegistry+48>) at ./controllers/sensors/sensor.cpp:111
7 0x002653e2 in Sensor::get (type=SensorType::Map) at ./controllers/sensors/sensor.cpp:208
8 0x00261f38 in updateTunerStudioState (tsOutputChannels=0x2003d2e8 <tsOutputChannels>) at ./console/status_loop.cpp:637
9 0x00262e48 in prepareTunerStudioOutputs () at ./console/status_loop.cpp:900
10 0x00260914 in TunerStudio::cmdOutputChannels (this=0x20021a64 <tsInstance>, tsChannel=0x2003d4dc <usbChannel>, offset=0, count=340) at ./console/binary/tunerstudio_commands.cpp:24
11 0x00260584 in TunerStudioBase::handleCrcCommand (this=0x20021a64 <tsInstance>, tsChannel=0x2003d4dc <usbChannel>, data=0x2003d4e1 <usbChannel+5> "", incomingPacketSize=5)
at ./console/binary/tunerstudio.cpp:701
12 0x0025fb3c in tsProcessOne (tsChannel=0x2003d4dc <usbChannel>) at ./console/binary/tunerstudio.cpp:537
13 0x0025fbe2 in TunerstudioThread::ThreadTask (this=0x2003d608 <usbConsole>) at ./console/binary/tunerstudio.cpp:554
14 0x0025f094 in ThreadController<1200>::StaticThreadTaskAdapter (thread=0x2003d608 <usbConsole>) at ./controllers/system/thread_controller.h:37
15 0x0020035e in _port_thread_start () at ChibiOS/os/common/ports/ARMCMx/compilers/GCC/chcoreasm_v7m.S:201
* engine math: extrant getFiringOrderTable for reuse
* engine math: getNextFiringCylinderId helper
* introduce knock_logic: first member is getCylinderKnockBank()
moved from software_knock.cpp
* hip9011: support two inputs/banks
* fix CI
* Board Subaru EG33: populated with TPIC8101 with Advanced mode
* hip9011: test communication in advanced mode
* hip9011: handle situation when chip is already in advanced mode
* Board Subaru EG33: cylinder to knock bank mapping
* hip9011: count spi transactions in advansed mode too
* hip9011: reset incalid responce counter after chip initialization
* hip9011: make debug output more structured
* start cleaning
* disabled feature means don't print that it's disabled
* cli
* usages
* printMsg -> scheduleMsg
* this is alllll dead now
* no crlf please
* all hope is lost if you manage to hit this line
* tests
* tests
* ok we did actually need that part
* sim
* d
* kinetis
* it did ifdef, not if
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* hip9011: move hipCs out of EnginePins to hip9011 driver
* hip9011: cleanup debug output, save few RAM bytes
* Supress few signed vs unsigned warnings
* injector model, test
* new math
* inject fuel based on new math
* tests
* fix
* it should work like this
* format
* update TPS AE even when we're cutting fuel
* comment
* conversion factor
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* status loop just asks limp mgr
* put logic in limp manager
* don't need that function any more
* bye
* TIL these bits already exist in the configuration
* gpios: isBrainPinValid helper
* LCD HD44780: do not touch pins if DM_NONE or invalid gpio
* Fix isEnabled checks for GPS and Joystick
* LCD HD44780: writePad use this method wider
* Guard define argument
* ADC: isAdcChannelValid
Check for both <= EFI_ADC_NONE and >= EFI_ADC_LAST_CHANNEL
Also check for value out of enum range (corrupted settings)
* Fix unit tests
* compute rpm rate of change
* fix units on gauge
* oops
* correct order
* scaling and limits
* correct for engine cycle length
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* move rev limit to limp manager
* call fatal error
* include order
* fix bug
* tests
* comment
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* round rpm instead of truncating
* efiround is expensive
* Revert "efiround is expensive"
This reverts commit e5690f89e1b1988aacf5ced1f024d576465a7cd6.
* round is better than rintf
* testing
* it works now?!
* comment
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* switch to CriticalSectionLocker
* that's just about all
* clean up last usage
* include hpp for sim
* need the cpp wrappers in the makefile too
* include dir
* include
* avoid 64b on hot path
* no tooth log when fast
* use crit section locker
* final
* only flip pins if not also self stim
* only trace if doing work
* slightly drop lateDelay
* trace if not bailing out
a) removing more of stack validating - one validation within the deepest method would be enough
b) un-wrapping main callback loop for explicit order of execution
* Update tachometer.cpp
Initial implementation of E30 M3 Tach output solution #907, unit_test plus debugging next
* tacho unit tests
First successfull unit test for tachometer
* RAM adjustment so it would link
* refactoring tacho, broken!
* starting to make some progress...still fails after a few seconds
* Rework with SW PWM
* Update after code review
* unit_test update
* First working unit_test
* Update .gitignore
* Update engine_controller.cpp
* Update engine_controller.cpp
* Update tachometer.h
* Update test_tacho.cpp
* Switched UART DMA on
* Revert "Switched UART DMA on"
This reverts commit 4a23974c431e0e7fd760595d2161e74e6854897e.
* enable launch control
make use of already existent code + integration
* Delete compile_frankenso_all.sh
remove it since it is not part of the project
* Update main_trigger_callback.cpp
broke unit_Tests
Co-authored-by: rusefi <rusefi@users.noreply.github.com>
* s
* science
* set pin mode
* turn stuff off so it fits
* filtering maybe
* filtering actually works
* generate filter parameters internally
* shorter window
* guard behind enable flag
* use checked in filter
* add biquad reset
* tracing
* const
* exec order
* do it from a thread
* smaller buffer, comment
* configure with header
* only for proteus
* oops
* unused
* not needed
* guards
* pin config
* don't need that include
* precook filter steady state
* define sample rate
* multi cylinder knock
* TS
* only sense when running
* s
* science
* set pin mode
* turn stuff off so it fits
* filtering maybe
* filtering actually works
* generate filter parameters internally
* shorter window
* guard behind enable flag
* use checked in filter
* add biquad reset
* tracing
* const
* exec order
* do it from a thread
* smaller buffer, comment
* configure with header
* only for proteus
* oops
* unused
* not needed
* guards
* pin config
* don't need that include
* precook filter steady state
* define sample rate
* config enable switch
* advance_map
* tests
* unneeded
* idle
* use driver intent instead
* and obd and lcd
* engine load
* ve lookup
* unused
* oops we needed that
* oops needed that too
* mocking
* test mocks
* oops
* helps to use the right sensor
* and cylinder cleanup
* fuel math
* typo
* old tests
* kill dead stuff
* cleanup
* more
* fix
* test
* s
* fix signature
* fix test
* comment
* priming pulse
* remove mock tps
* remove more dead
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* multispark prototype
* only multispark if not cut
* typo
* do some reasonableish math
* consume cfg
* todo
* bad merge
* move math out of engine2.cpp
* engine state config
* consume generated
* use new
* hand generate
* doc, debugging
* debug channel names
* don't depend on rpmcalc
* safer, fix math
* tests
* default multispark config
* remove todo
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* injection
* injectors
* add edge timestamp to ShaftPositionListener
* scheduleByAngle require edgeTimestamp
* schedule with nt not us
* fix all schedulers
* schedule spark based on edge timestamp
* aux valves too
* update comments
* schedule dwell with new stamp
* format
* injection
* injectors
* add edge timestamp to ShaftPositionListener
* scheduleByAngle require edgeTimestamp
* schedule with nt not us
* oops, these were missing from this branch
* change action
* consumers
* fix test
* didn't mean to add those
* simplify
* fix simulator
* fix sim for real
* oy
* maybe this time the simulator will actually be fixed, for real
* don't rely on undefined behavior