Commit Graph

1240 Commits

Author SHA1 Message Date
rusefillc d199302b83 miata 94 2020-11-28 22:49:28 -05:00
rusefi 08c7849b29 it's weird 2020-11-27 16:41:11 -05:00
rusefi 93160c6abb LM_ALPHA_N_2 rename 2020-11-27 15:44:31 -05:00
rusefillc 42c56a47da dead engine config
one step back
2020-11-26 21:21:25 -05:00
rusefillc 0f39f37bba dead engine config 2020-11-26 21:07:34 -05:00
rusefillc 96ca95bd1e dead engine config 2020-11-26 20:26:12 -05:00
rusefillc f5f97d60df Starter is engaged on start-up in pull-up configuration #1969 2020-11-26 16:58:02 -05:00
rusefillc 0bd148d97d Starter is engaged on start-up in pull-up configuration #1969 2020-11-26 16:56:18 -05:00
rusefillc f63e3c68fd Starter is engaged on start-up in pull-up configuration #1969 2020-11-26 16:20:13 -05:00
rusefi 4d2265478d GDI Epic #1448 2020-11-22 01:14:34 -05:00
rusefi e7dfffe71d toyota89281_33010_pedal_position_sensor 2020-11-16 23:38:23 -05:00
rusefillc 851478f846 DC not ETB refactoring 2020-11-16 20:05:35 -05:00
rusefi 5b45f25f09 B6 2020-11-15 20:56:16 -05:00
rusefi ad9635b4ff GDI Epic #1448 2020-11-15 15:37:53 -05:00
rusefillc 6f56988469 https://rusefi.com/forum/viewtopic.php?p=38367#p38367
idle position/waste gate position sensor usability
2020-11-14 18:05:27 -05:00
Matthew Kennedy 605269c358 remove idle thread; just call from periodicSlowCallback (#1924)
* remove thread

* remove ui
2020-11-11 21:47:19 -05:00
rusefillc cf7c613ed8 GDI Epic #1448 2020-11-11 00:43:21 -05:00
Andrey G 2f891cc23a Tle8888 stepper (#1936)
* TLE8888: enable PP mode for OUT21..24 in case of useTLE8888_stepper

* Lada Kalina is a test mule for stepper idle
2020-11-10 14:16:46 -05:00
rusefi f353e5c7a3 debounce unintended auto-increment bug (was: Proteus TCU gear shift configuration) #1927 2020-11-07 00:35:56 -05:00
rusefi 34f887d6af v12 & dual-channel PPS 2020-11-06 15:30:11 -05:00
rusefi 7adde869d7 v12 Proteus 2020-11-06 14:18:54 -05:00
rusefi 69d233cc66 miata TCU 2020-11-04 12:42:30 -05:00
rusefi fdd183324e miata TCU 2020-11-03 23:59:00 -05:00
rusefi 457deea2e7 miata TCU 2020-11-03 23:21:47 -05:00
David Holdeman 77460ba6ae set solenoids (#1925) 2020-11-03 22:18:40 -05:00
rusefillc e384df96cc TCU 2020-11-03 20:17:47 -05:00
Matthew Kennedy 789926a61d convert cranking defaults to mg (#1921)
* convert cranking defaults to mg

* fix tests
2020-11-03 14:12:26 -05:00
rusefi d2d8b78073 B6 GDI 2020-11-01 00:33:18 -04:00
rusefi f16556bdc5 b6 2020-10-29 01:15:55 -04:00
rusefi b76cfa8ef1 b6 2020-10-28 18:53:30 -04:00
rusefillc 781cc3d326 [EPIC] [Feature Request] Transmission Control #1454 2020-10-28 01:23:05 -04:00
rusefillc 91afd62a53 GDI 2020-10-28 01:01:54 -04:00
Matthew Kennedy b8c2041467 Everything in lambda! (#1893)
* lambda

* default configs, fix build

* config, gauge, UI

* more digits

* change menu text

* fix that while I'm here

* doesn't need extra word

* todo note

* tests

* last test

* missed a config

* update java

* store target lambda

* more java

* format

* hopefully enough java for CI to pass
2020-10-26 18:15:17 -04:00
Andrey G 88e830d635 Tle8888 big update 1 (#1892)
* smart gpio: fix tle8888 direct pin mapping for MRE

* MRE: use TLE8888 pins instead of MCU gpios that drives TLE8888

* TLE8888: cleanup

* TLE8888: do not reset driver private data on WD/undervoltage reset

* TLE8888: diagnostic updates

* TLE8888 driver: BIG driver rework

* TLE8888: check SPI answers for abnormal states

Reply with other than requested register can be a sign of:
-Power-On-Reset, then OpStat0 will be replyed
-WatchDog reset, then FWDStat1 will be replyed
-Invalid communication frame, then Diag0 will be replyed

Keep tracking last accessed register and check with the next reply.

* TLE8888: debug clean-up

* TLE8888: implement spi array write

This reduce CS inactive state time between two consequent accesses
from 8.8 uS to 1.4 uS

* TLE8888: fix PP outputs in OD mode

* TLE8888: cleanup register definitions

* TLE8888: run separate driver thread for each chip instance

Calculating poll interval for few chips become more complex, avoid
this running thread for each device.

* TLE8888: fix cypress and kinetic compilation

Both platforms define its own MAX and cause redifination error if
common.h is included in driver.

* MRE: update mapping.yaml and fix direct pin mapping for TLE8888

* TLE8888: diagnnostic: disable switch off in case of overcurrent

For all output, use current limiting instead

* TLE8888: check for overvoltage on OUT8..OUT13

* TLE8888: add TODO note about how to recover from failure condition

Currently TLE8888 automaticly recovers only from overcurrent and
(may be) overtemperature conditions.
Short to bat cause output disable (bit in OECONFIG is reset) and
needs driver/host intervention.

* TLE8888: save few bytes of RAM

* TLE8888: Lada Kalina is test mule for IDLE stepper on TLE8888

Don't forget to enable PP mode for TLE8888 outputs 21..24:
uncomment line 1087 in tle8888.c

* TLE8888: reorder code, cleanup

* TLE8888: mode all debug/statisctic to per-chip struct

* TLE8888: rework poll interval calculation

* MRE: use TLE8888 pins instead of MCU gpios that drives TLE8888 #2
2020-10-23 12:25:30 -04:00
Matthew Kennedy dbdeca93b0 implement fuel pressure sensors (#1897)
* add

* remove old

* remove more old

* makefile

* fix init

* patch up other stuff

* actually fix it this time

* raw output channels

* gauges, UI

* scaled channel

* fix field ordering
2020-10-23 07:31:47 -04:00
rusefi 25189a70a8 B6 2020-10-23 00:39:22 -04:00
rusefillc 2a8a0f6af1 GDI Epic #1448 2020-10-22 01:48:28 -04:00
rusefi 4af1bad726 progress 2020-10-22 00:57:11 -04:00
rusefi 79d267eba0 VAG radiator control 2020-10-19 23:25:23 -04:00
rusefi 1be1f66edf GDI Epic #1448 2020-10-17 20:17:53 -04:00
rusefillc aec48c294e GDI Epic #1448 2020-10-17 14:53:56 -04:00
rusefillc 54c3d0f15c HW CI has failed 11 times since Oct 2 #1849 2020-10-16 13:54:12 -04:00
rusefillc a37880eb97 GDI Epic #1448 2020-10-13 00:35:04 -04:00
rusefi b4208f585c QC control mode to crash if RPM = 0 and to mark successful 3 minute test with self-stimulation RPM increase #1871 2020-10-11 19:16:41 -04:00
rusefi 4743718663 QC control mode to crash if RPM = 0 and to mark successful 3 minute test with self-stimulation RPM increase #1871 2020-10-11 19:05:56 -04:00
rusefillc 25d02f6356 SD enable 2020-10-06 01:15:17 -04:00
rusefillc d5d5bbba9f tachPulsePerRev needs a safer default, MRE config needs a value 2020-10-06 00:56:49 -04:00
Matthew Kennedy 3374db1658 Remove dead & useless config (#1834)
* remove dead config

* remove enum
2020-09-29 06:34:39 -04:00
David Holdeman e8e2cf2cfd DebounceButton A/C switch (#1782)
* change acSwitch name, add mode

* fix

* remove some adc stuff

* remove some adc stuff

* semicolon stupid

* left behind

* add readpinstate

* wrong var name

* add functions back

* fix name

* bool, not void, plus fix name

* move

* not sure what I broke

* try setMockValue

* namespace

* whoops missed one

* switch values because adc was set up for pullup

* try 5

* comment for now

* comment for now

* uncomment tests, add function to mock, add mock to efiReadPin

* fixes

* for F's sake

* if

* add defy

* pass params

* use ASSERT_TRUE/FALSE

* advance time

* remove ifdef from readPin

* try moving if

* move to separate func

* move extern

* move include

* try engine_test_helper

* am confuse

* move func to else

* include hal

* add efi prod check

* remove include

* try extern

* move include

* semicolon stupid

* move extern again

* include

* move mockPinStates

* size

* add if

* add comment

* clean on instantiation
2020-09-10 22:16:20 -04:00
Matthew Kennedy 7d7acc3e5f fix miata default (#1781) 2020-09-09 17:11:07 -04:00
Matthew Kennedy c2eb7c9f4a remove tach output pin (#1779)
* remove from cfg

* cfg

* rip out impl

* efi gpio
2020-09-09 16:52:23 -04:00
rusefi e3758d3790 microRusEFI used as Body Control Module BCM BCU 2020-09-07 17:59:59 -04:00
rusefi bc2aa6601e microRusEFI used as Body Control Module BCM BCU 2020-09-06 20:21:01 -04:00
rusefi 66af0565d8 microRusEFI used as Body Control Module BCM BCU 2020-09-06 20:09:26 -04:00
rusefi f55fee38b4 microRusEFI used as Body Control Module BCM BCU 2020-09-06 19:43:54 -04:00
Matthew Kennedy 4802a47d23 reorder ADC channel index (#1763)
* change config

* correct logic

* clearing these no longer needed

* test expected this to be set
2020-09-06 18:25:26 -04:00
rusefi 581d769227 blinking more LEDs 2020-08-31 17:15:04 -04:00
rusefi d7a63575b2 blinking more LEDs 2020-08-31 14:26:34 -04:00
rusefi 8a1244b7d7 blinking more LEDs 2020-08-31 13:44:58 -04:00
rusefi 1a87b6aa71 blinking more LEDs 2020-08-31 13:27:56 -04:00
rusefi 12abd6a81e B6 2020-08-29 19:01:44 -04:00
rusefi 4322f78591 verboseVVTDecoding 2020-08-29 17:05:54 -04:00
rusefi 8d024f4579 BCM 2020-08-29 14:29:34 -04:00
rusefi acf8031330 B6 2020-08-29 10:06:28 -04:00
rusefi 22f6063d9f VVT support for VAG trigger #883 2020-08-25 16:19:23 -04:00
rusefi 2e9da1387d v12 2020-08-23 15:09:23 -04:00
rusefi fdbdc6d495 docs 2020-08-21 14:59:24 -04:00
rusefi 7fef82742f v12 progress 2020-08-21 14:09:51 -04:00
rusefi 831d99ccee v12 2020-08-19 22:03:27 -04:00
rusefi de5c49d04f v12 2020-08-19 01:09:39 -04:00
rusefi 6439dce79f v12 2020-08-19 00:35:09 -04:00
rusefi 494aff334f 1.6 VAF tune 2020-08-11 22:17:53 -04:00
rusefi ae606a6380 trigger and VSS hw integrated testing #1668 2020-08-08 12:03:24 -04:00
rusefi 64a9440bc0 trigger and VSS hw integrated testing #1668 2020-08-08 11:45:02 -04:00
Matthew Kennedy 1a14c3cde7 no bins 2020-08-03 12:21:49 -07:00
Matthew Kennedy cd547ceb00 no more setFuelMap 2020-08-03 12:14:11 -07:00
Matthew Kennedy 519427cce2 defaults 2020-08-02 16:21:53 -07:00
rusefi 6930dc813f NA6 progress 2020-08-02 12:08:35 -04:00
rusefi 042f86863f NA6 progress 2020-08-02 11:09:18 -04:00
rusefi 5a2a47e4f6 NA6 progress 2020-08-02 10:18:14 -04:00
rusefi b20d7f7619 dropping legacy stuff 2020-08-01 19:17:58 -04:00
rusefillc cd9844132d Merge pull request #1632 from mck1117/remove-plain-maf
goodbye, plain maf
2020-08-01 09:16:38 -04:00
rusefi fae26e927b NA6 progress 2020-07-31 22:43:32 -04:00
Matthew Kennedy 90738127ea remove 2020-07-31 15:03:09 -07:00
Matthew Kennedy 7009c82993 Merge remote-tracking branch 'upstream/master' into remove-plain-maf 2020-07-31 14:56:29 -07:00
rusefi 611beeb32d NA6 progress 2020-07-31 14:20:50 -04:00
rusefi 965e99df0d NA6 progress 2020-07-31 14:06:30 -04:00
Matthew Kennedy 01988e607e guard 2020-07-30 21:39:12 -07:00
rusefi 56a0e532e8 NA6 progress 2020-07-30 00:04:18 -04:00
rusefi 40b392ad97 progress 2020-07-29 23:27:42 -04:00
rusefi 0c6c92c5bf reducing code duplication? 2020-07-29 23:01:55 -04:00
rusefi 6b2c1d4d59 NA6 progress 2020-07-29 22:48:41 -04:00
rusefi 98dbe34649 NA6 progress 2020-07-29 22:24:58 -04:00
rusefi a419e6a899 NA6 progress 2020-07-29 22:17:34 -04:00
rusefi 30ff2cf5d7 NA6 progress 2020-07-29 22:16:31 -04:00
rusefi a59f7736ec NA6 progress 2020-07-29 21:53:59 -04:00
rusefi 203b3ef1b2 NA6 progress 2020-07-29 21:04:17 -04:00
rusefi 6ebaa3dbf1 NA6 progress 2020-07-29 19:53:11 -04:00
rusefi 278cda992c NA6 progress 2020-07-29 14:53:36 -04:00
Matthew Kennedy 035c0e7281 configs 2020-07-29 01:35:39 -07:00
Matthew Kennedy b1747ea48b goodbye plain maf 2020-07-23 02:46:45 -07:00
rusefi d2997f3bf8 NA tune 2020-07-09 15:57:54 -04:00
rusefi e6a15f1325 MRE 0.5.1 2020-07-04 00:02:44 -04:00
rusefi 7c3d153b2c making debugTriggerSync more visible to users & removing from VVT defaults 2020-06-15 16:47:06 -04:00
rusefi bb90c1be23 u9 u10 2020-05-23 10:50:32 -04:00
rusefi 1c17011ab0 oooops :( 2020-05-22 13:24:04 -04:00
rusefi 8b00823a0f HW test progress 2020-05-21 21:45:01 -04:00
rusefi b6e784e310 MRE pre-sets 2020-05-21 21:00:34 -04:00
rusefi 4015c600e9 MRE pre-sets 2020-05-21 20:44:14 -04:00
rusefi 871cee3092 test fixture progress 2020-05-21 18:36:32 -04:00
rusefi 11b66a6713 toyota 2jz progress 2020-05-15 16:35:18 -04:00
rusefi 28d362d904 NB2 MAF 2020-05-12 23:37:30 -04:00
rusefi 2db29c7824 34-2 3 cam Toyota wheel progress 2020-05-10 18:03:11 -04:00
rusefi 14b63774fb that's embarrassing 2020-05-10 02:36:01 -04:00
rusefi b54a4116b8 34-2 3 cam Toyota wheel progress 2020-05-10 02:12:47 -04:00
rusefi db8d11739d removing some unneeded flexibility 2020-05-10 01:34:43 -04:00
rusefi 2f431d7079 34-2 3 cam Toyota wheel progress 2020-05-10 00:42:33 -04:00
rusefi 9c01614a46 34-2 3 cam Toyota wheel progress 2020-05-09 23:47:51 -04:00
rusefi edc5dbbc58 default engine make/code 2020-05-08 17:31:03 -04:00
Matthew Kennedy 10903c4659 remove "plain MAP" mode (#1398)
* consumers

* enums, input, config

* java

* default config cleanup
2020-05-05 15:04:55 -04:00
rusefi 460badec94 MRE adapter 2020-05-03 15:21:32 -04:00
rusefi a1b6807e66 unifying Frankenso and MRE defaults 2020-05-03 12:11:47 -04:00
rusefi 7689cfc2dd Attempting cj125 2020-05-01 17:52:25 -04:00
rusefi 93ee6c36e3 https://github.com/rusefi/rusefi_documentation/issues/37 2020-04-29 18:41:40 -04:00
rusefi 498374e7d3 https://rusefi.com/forum/viewtopic.php?p=36268#p36268 2020-04-26 23:03:50 -04:00
rusefi edd4e62b46 better defaults 2020-04-26 19:16:54 -04:00
Matthew Kennedy 39c84378eb don't store self stim in config (#1356)
* kill

* add bench test

* fix
2020-04-23 22:38:14 -04:00
rusefi b607400984 TLE8888 mode flexibility 2020-04-23 16:57:37 -04:00
rusefi 313b2685eb hardware continues integration needs a high RPM high tooth count test case
#1351
2020-04-23 01:26:30 -04:00
rusefi 510549332e Better handling in case of ETB idle without ETB #1332 2020-04-20 00:23:32 -04:00
rusefi 44a5840bcf dreaming about 63 volts 2020-04-15 21:28:44 -04:00
rusefi d5f3147c00 test pins are needed 2020-04-15 16:20:18 -04:00
rusefi d788348d7c mc33 fix 2020-04-14 19:36:25 -04:00
rusefi ae8936b93b MC restart 2020-04-14 19:23:53 -04:00
rusefi 59a007d21a docs 2020-04-14 08:34:51 -04:00
rusefi f6986e604f MC flag0 2020-04-13 19:01:22 -04:00
rusefi 0fc66f1598 progress 2020-04-10 20:31:58 -04:00
Matthew Kennedy 1a59950240 support ETB disable pin (#1273)
* config & hand gen

* board configs

* add dc motor support

* initialization

* also set duty to zero

* use disable in etb

* fix proteus default

* add TS fields

* I guess we needed 8 bytes

* :D

* comment

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-10 17:27:13 -04:00
rusefi 35f08f3958 progress 2020-04-10 13:32:06 -04:00
rusefi cb2b699db6 DBG_TRIGGER_SYNC merged into DBG_TRIGGER_COUNTERS 2020-04-10 13:19:54 -04:00
rusefi c98cdc9c0a cj125 progress 2020-04-08 23:14:21 -04:00
rusefi 6051c4dbff v12 2020-04-06 17:24:20 -04:00
rusefi a1b554638f clean-up 2020-04-06 12:58:04 -04:00
rusefi 5993a6a7f0 killing nbVvtIndex 2020-04-05 11:43:45 -04:00
rusefi 19a7a7adf6 v12 2020-04-03 17:44:55 -04:00
rusefi 9203f08072 flipped 60/2? 2020-04-03 00:44:54 -04:00
rusefi fd02a6dc8c v12 2020-04-03 00:19:04 -04:00
rusefi a228870915 v12 2020-04-02 22:59:01 -04:00
rusefi 939a00a4b9 isFasterEngineSpinUpEnabled 2020-04-02 21:49:31 -04:00
rusefi 42ddc885a1 no PPS in slave mode 2020-04-02 00:33:12 -04:00
rusefi cc35e8a9b0 code style 2020-04-01 19:00:56 -04:00
rusefi ffd262a7ba CAN progress 2020-03-31 20:23:40 -04:00
rusefi f2dafeefe0 CAN progress 2020-03-31 20:08:30 -04:00
rusefi fe604f71b8 CAN progress 2020-03-31 16:49:19 -04:00
rusEfi a3588f64fa v12 & dual-TPS 2020-03-30 01:13:02 -04:00
Matthew Kennedy 0ac3e06149 cleanup extern mess (#1237)
* cleanup

* move outside define
2020-03-29 19:06:03 -04:00
Matthew Kennedy 8642a0a6c7 TS cleanup pass (#1225)
* remove biquad config

* fuel pump clarity

* one code usage

* minimal generate for ci

* and don't build it either

* remove commented out code
2020-03-25 23:00:17 -04:00
rusEfi 5928cd486a pretty slow v12 progress 2020-03-24 23:17:54 -04:00
rusefi 4d617aa0fe random header clean-up 2020-03-23 09:00:57 -04:00
rusefi fb115578dc start/stop 2020-03-20 20:45:35 -04:00
rusEfi fbbac83010 v12 progress 2020-03-20 00:36:22 -04:00
rusEfi b9d6f33b82 v12 2020-03-18 17:46:46 -04:00
rusEfi f2b3fe281e v12 & ETB progress 2020-03-18 00:24:10 -04:00
rusEfi 5a21db41a4 v12 & ETB progress 2020-03-18 00:12:31 -04:00
rusEfi 0e3f8b1b5c docs 2020-03-16 16:39:42 -04:00
Matthew Kennedy 9a81b7d2c5 Move can_hw.cpp in to drivers folder (#1184)
* relocate

* include path

* simulator makefile

* fix mre while we're at it

* it would help if I fixed it right
2020-03-13 09:50:43 -04:00
rusEfi b089596641 v12 2020-03-12 00:16:32 -04:00
rusEfi cb37a6f51d v12 2020-03-11 20:48:09 -04:00
rusefi 2ae15b5bab hard-coding miata Nb2 VVT Ratio magic 2020-03-09 16:59:19 -04:00
rusEfi bf6082b828 slow v12 progress 2020-03-07 00:45:45 -05:00
rusefi a5fb0e44c1 code style 2020-03-06 01:26:33 -05:00
rusefi 4e03792b14 MRE PNP 2020-02-29 23:15:04 -05:00
rusefi e196e1c6b3 todo NB2 2020-02-27 21:28:31 -05:00
rusEfi e536bce7f2 v12 2020-02-27 03:29:03 -05:00
rusEfi c2ab5f4871 more mc33816 2020-02-25 22:38:08 -05:00
rusefi 6b3228b9f1 TEST_33816 2020-02-25 21:35:21 -05:00
Matthew Kennedy 6db8978667 Add single flag for omitting PnP configs (#1157)
* switch to single enable flag

* engine_configuration.cpp
2020-02-24 19:08:02 -05:00
rusefi d755e95768 v12 2020-02-24 00:20:36 -05:00
rusefi ebb1980b50 v12 2020-02-23 09:16:11 -05:00
rusefi 833f491f05 M73 2020-02-19 22:34:51 -05:00
rusEfi e9ac797ac9 reviving FRANKENSO_QA_ENGINE 2020-02-18 17:53:56 -05:00
rusefi 83d7085f40 code style & pleasing LGTM 2020-02-18 08:16:19 -05:00
rusEfi ce54ae9497 TLE8888 watchdog #917
window watchdog progress
2020-02-10 13:24:09 -05:00
rusefi 3d3c4c38f4 looking forward 2020-02-01 17:55:58 -05:00
rusefi 7fdd10b50c code style 2020-01-14 03:41:11 -05:00
rusefi a222ecdfe1 happy new year unification 2020-01-13 21:57:43 -05:00
rusefi 63e3e84e08 happy new year 2020-01-08 00:02:40 -05:00
Matthew Kennedy 6703705a33 Pass action_s instead of callback/param (#1084)
* 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
2020-01-07 00:41:18 -05:00
rusEfi 59f25e04fd improvements around weird engine types 2019-12-28 23:26:43 -05:00
rusEfi 499a39e88c improvements around weird engine types 2019-12-28 23:22:16 -05:00
rusefi 435928ca81 laughable gdi progress 2019-12-26 22:30:12 -05:00
rusefi 9e4df11063 Frankenso does not use ETB 2019-12-25 15:58:54 -05:00
rusefi 1f49803441 fixing build 2019-12-15 23:33:15 -05:00
rusefi d53f037f19 :( sad stuff 2019-12-15 23:21:38 -05:00
rusefi c94532a697 boring test mule stuff 2019-12-15 22:21:49 -05:00
rusefi f47a1a16d1 getting rid of boardConfiguration / binary compatible change 2019-12-11 17:48:55 -05:00
Matthew Kennedy 44fc8c466d copyArray helper (#1048)
* add functions

* uses

* use for proteus

* do it for warmup mult

* do it for cranking settings

* cleanup
2019-12-10 18:04:50 -05:00
rusefi ccf9acd32c v12 2019-12-01 23:45:45 -05:00
rusefi 5c05b2225c v12 2019-12-01 22:37:26 -05:00
rusefi c893bb9049 v12 2019-11-30 20:24:31 -05:00