Commit Graph

314 Commits

Author SHA1 Message Date
Scott Smith c354d30a71 Use Valgrind to detect unitialized variable references. (#3555)
* Use Valgrind to detect unitialized variable references.

Fix the edge cases that pop up

* Comment and disable Mac run
2021-11-15 23:42:23 -05:00
Matthew Kennedy c1941f3a49 (void) -> () (#3550)
* static functions with (void)

* more

* Revert "more"

This reverts commit 246e53441f935451437df186ac92d7df26b62fb6.

* s

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-15 13:02:34 +01:00
Matthew Kennedy bd04dc8352 less macro, more c++ (#3549)
* less macro

* s
2021-11-15 12:44:40 +01:00
Scott Smith 93d31c6c9b Convert TriggerWaveform::wave to a pointer in preparation for code-defined sequences. (#3528)
It will eventually be class to support dynamic universal patterns in addition to ROM-based
tables.
2021-11-11 13:19:25 -05:00
Scott Smith aec887efc8 Change users of MultiChannelStateSequence to use the API (#3524)
Better than reaching into members that should be private. I didn't feel like actually making
them private though, as one user validates pinStates isn't NULL.
2021-11-11 09:19:22 -05:00
Scott Smith 1a299a3221 Move phaseCount into MultiChannelStateSequence (#3520)
We can them drop the field from a bunch of callers, simplifying the code.
2021-11-10 19:47:27 -05:00
Scott Smith 9b40e68155 Save ~2800 bytes of RAM by not caching angle->trigger mapping (#3506)
Memory seems more valuable than CPU; use the O(lg n) lookup by angle.  A side effect is that it
seems to fix trigger lookup for the second phase of TRIGGERTYPE 53 544 TT_TRI _TACH 0.00
2021-11-09 07:03:27 -05:00
Andrey e3355ab2d3 Remove Miata MX5 NB1 trigger #3488 2021-11-06 20:24:41 -04:00
Matthew Kennedy 4717210859 autoscale fields in generated structs (#3444)
* add to grammar

* parser

* parser

* example consumer

* build config tool

* commit the right jar
2021-11-02 18:59:19 -04:00
rusefillc 3d2e5be370 Override trigger gaps feature #2734 2021-10-30 11:09:10 -04:00
rusefillc 9cd1a2d55a generate java enum from C enum? generate both C and java from yaml? #2102 2021-10-24 11:40:47 -04:00
rusefillc 45e0a0403f very old very dead code 2021-10-20 12:57:07 -04:00
rusefillc bee1eb2c6b very old very dead code 2021-10-20 10:38:36 -04:00
Matthew Kennedy ea7187bb25 overdwell protection (#3220)
* cancel event

* looks like it works...

* some tests are happy

* add enable bit

* undo test changes

* Revert "add enable bit"

This reverts commit 000afadd3fc560867302557afe26f76cd9fc4ed6.

* enable bit in engine

* only turn off for one test

* Revert "undo test changes"

This reverts commit 106db49e291b5a531a94de6ac177c6584d5337f6.
2021-10-02 01:10:24 -04:00
Andrey 5dbb42b833 reducing crazy in unit tests 2021-10-01 22:33:06 -04:00
Andrey 8f46b8079e reducing crazy in unit tests 2021-10-01 22:29:44 -04:00
rusefillc bbcb82bf0f Complete fuel cut, maybe by wall wetting? Warning on decel (?) CUSTOM_OBD_SKIPPED_FUEL = 9010 fix #3225 2021-09-27 22:04:03 -04:00
Matthew Kennedy 98c4e71f03 enable address sanitizer (#3217)
* enable asan

* lua

* this is dead and leaky

* leaky nissan

* fix pwm generator use-after-stack

* initializers

* prevent problems in case of invalid trigger shape

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-09-05 05:56:59 -04:00
Andrey 8a4831b1dc Nissan 4 cylinder QR trigger wheel #3118 2021-08-08 07:04:18 -04:00
Matthew Kennedy d5155cfd86 don't "validate instant RPM" (#3095)
* don't "validate instant RPM"

* test actually tests the right thing

* test mode transition
2021-08-04 08:17:14 +03:00
Matthew Kennedy 4e6b61234f yet more pch (#3068)
* 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>
2021-08-03 22:05:01 -04:00
Matthew Kennedy 9a3d385ea5 call handleShaftSignal (#3097) 2021-08-02 07:02:45 -04:00
Matthew Kennedy 6eec2a1282 remove some noise from nb2 trigger log (#3078) 2021-07-30 08:19:16 -04:00
Matthew Kennedy e3e5e57eac instant rpm uses full engine cycle (#3077)
* instant rpm uses full engine cycle

* turn off fast spinup for this test
2021-07-30 08:18:24 -04:00
Matthew Kennedy d3ec2b21d1 Use pch in lots of files (#3066)
* most engine.h

* most engine_configuration

* more

* more

* more

* more

* more

* moooooore

* ok I'm done for now

* oops
2021-07-26 01:05:17 -04:00
rusefillc bc9f85ff31 safer NB2 progress (#3041)
* safer NB2 progress

* one step back
2021-07-23 16:43:24 -04:00
Andrey e8aef0dcd3 VVT position of first cam is off on first cycle fix #2987 2021-07-22 01:02:37 -04:00
Andrey fbf6ff05be Nissan VVT trigger decoder #2887 2021-07-21 23:26:40 -04:00
Andrey e8bbea21be Nissan VVT trigger decoder #2887 2021-07-21 23:24:23 -04:00
Andrey 2a07c3df27 Nissan VVT trigger decoder #2887 2021-07-21 23:08:56 -04:00
rusefillc 5648067489 Nissan VVT trigger decoder #2887 2021-07-21 22:41:37 -04:00
rusefi 58f01b7ce0 nissan logic cranking 2021-07-21 21:58:00 -04:00
Matthew Kennedy 3cbd983c93 adjust nb2 vvt sync (#3019)
* test existing implementation

* nb2 vvt pattern sync

* update test
2021-07-21 20:07:28 -04:00
Matthew Kennedy 3237b43d47 simplify quad vvt test (#3018)
* use single tooth in quad cam test

* mod == remainder

* now the test works without changes
2021-07-21 18:48:05 -04:00
Matthew Kennedy 4f692ebe48 test existing implementation (#3017) 2021-07-21 17:48:37 -04:00
Matthew Kennedy 2a4dfd0bf8 Fix prepareEventAngles for symmetrical crank triggers (#2982)
* fix and make code legible

* update test to check every tooth

* symmetrical crank

* simplify findTriggerPosition

* make getAngle intelligable
2021-07-17 23:27:20 -04:00
Andrey df522cf60e NB2 trigger shape does not seem to match JimStim #2980
only first steps of unit test
2021-07-17 19:43:17 -04:00
Andrey c9360448cc NB2 trigger shape does not seem to match JimStim #2980
only first steps of unit test
2021-07-17 17:47:32 -04:00
Andrey e9ea68e901 kaiju is asking for vq30de trigger wheel decoder #2974 2021-07-17 00:46:39 -04:00
Andrey c502239b45 FATAL on NB2 tune jim stim input signal #2965 2021-07-14 16:47:55 -04:00
Andrey 47f285c50c FATAL on NB2 tune jim stim input signal #2965 2021-07-14 16:03:00 -04:00
Andrey 36dce560cf cute example of a bug which only macoc unit test fails to compile 2021-07-13 18:15:22 -04:00
Andrey 970b315bcf NB2 hellen-72-rev-d something is off #2958 2021-07-13 15:04:30 -04:00
Andrey 093b3bda89 NB2 hellen-72-rev-d something is off #2958 2021-07-13 14:39:21 -04:00
Andrey 8afa24e7eb NB2 hellen-72-rev-d something is off #2958 2021-07-13 14:24:47 -04:00
rusefillc 75f3cff924 NB2 hellen-72-rev-d something is off #2958
export as is
2021-07-13 14:07:55 -04:00
rusefillc bda416fcbb NB2 hellen-72-rev-d something is off #2958
export as is
2021-07-13 13:27:47 -04:00
Andrey 94883a651e it's spelled 'resources' :( 2021-07-13 12:36:50 -04:00
Andrey 0b4a237897 it's spelled 'resources' :( 2021-07-13 12:35:43 -04:00
rusefi 63c5315620 NB2 hellen-72-rev-d something is off #2958 2021-07-13 11:57:18 -04:00
Matthew Kennedy ff9c14c239 fix vvt indication (#2926)
* wrap logic

* rename gauges

* names and ranges

* binary log

* we actually don't need that warning

* values auto wrap

* values auto wrap

* bye warnings

* comparison
2021-07-12 16:29:07 -04:00
Andrey 130efe0f14 restore testQuadCam #2911 2021-07-08 00:11:54 -04:00
Andrey 40f823662c Matt has CUSTOM_ERR_VVT_OUT_OF_RANGE warning #2921 2021-07-07 23:55:49 -04:00
Andrey bb181ac8fd Nissan VVT trigger decoder #2887
another bug - improper handling of three-times-symmetrical
2021-07-05 23:15:44 -04:00
Andrey 416cecc104 Nissan VVT trigger decoder #2887
that looks like one bug
2021-07-05 22:50:44 -04:00
Andrey 7ec3ef4b28 Nissan VVT trigger decoder #2887
that's all very strange
2021-07-05 22:17:26 -04:00
Andrey 59e33b3577 restore testQuadCam #2911 2021-07-05 21:04:09 -04:00
Andrey 87ecec5a35 restore testQuadCam #2911 2021-07-05 20:56:24 -04:00
Andrey c0cbe626b6 Nissan VVT trigger decoder fix #2887
TDD is amazing we are done here!
2021-07-03 12:43:01 -04:00
Andrey e34b04bd46 Nissan VVT trigger decoder #2887 2021-07-03 12:02:00 -04:00
Andrey 2ad22a262b Nissan VVT trigger decoder #2887 2021-07-03 11:08:22 -04:00
Andrey 9ad5ec8044 refactoring: getShaftSynchronized 2021-07-03 10:37:03 -04:00
Andrey 26fdfb1ab6 Nissan VVT trigger decoder #2887 2021-07-03 10:15:41 -04:00
Andrey 8689adcb95 Nissan VVT trigger decoder #2887 2021-07-03 09:43:54 -04:00
Andrey cd4842f2b8 Nissan VVT trigger decoder #2887 2021-07-02 20:28:15 -04:00
Andrey 2911e128d9 Nissan progress 2021-07-02 19:57:26 -04:00
Andrey a7075acbf1 Nissan progress 2021-07-02 19:23:52 -04:00
Andrey cb0ec0c78f Nissan progress 2021-07-02 18:33:32 -04:00
Andrey 96b2beff97 Nissan progress 2021-07-02 17:32:45 -04:00
Andrey 7ffe09aa96 Nissan progress 2021-07-02 16:31:10 -04:00
Andrey ab24b8e5f3 Nissan progress 2021-07-02 14:56:12 -04:00
Matthew Kennedy 9ae1ada582 Stricter miata sync (#2891)
* strict mazda trigger shape

* this is an even better gap

* sync point moved so things are different now

* fix

* update instantrpm in test

* s

* s

* this is safer

* test

* tests

* instant rpm

* cleanup
2021-07-01 21:29:04 -04:00
Matthew Kennedy 20937455a0 Fix pre sync timestamp copy (#2892)
* fix tests

* fix pre sync copy

* this fixes the issue
2021-07-01 18:58:28 -04:00
Matthew Kennedy 024c477be4 test multiple starts (#2888)
* test

* pi

* typo

* private

* test short gap too

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-07-01 17:29:31 -04:00
Matthew Kennedy 2cf2db8fb2 fix instant rpm (#2886)
* fix instant rpm

* this is what it should look like!

* warning

* comment issue link

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-07-01 09:19:16 -04:00
Matthew Kennedy d5481707d5 aggressively test rpm calculator (#2884)
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-07-01 00:05:24 -04:00
Andrey 84a9a423d2 VW warnings on cranking #2861 2021-06-27 13:01:56 -04:00
Andrey 43e71c12fa more minimal version of fix trigger replay #2874 2021-06-27 11:38:42 -04:00
Andrey cb9b1a7cbb crankDivider is asking for a new unit test 2021-06-27 00:51:14 -04:00
Andrey c1eda5dec8 VW warnings on cranking #2861 2021-06-26 16:05:43 -04:00
Andrey 8cfcdad536 VW warnings on cranking #2861 2021-06-26 01:37:55 -04:00
rusefillc 04096e57b8 VW warnings on cranking #2861 2021-06-26 01:31:50 -04:00
Andrey ec1c2fd50b VW warnings on cranking #2861 2021-06-26 00:51:09 -04:00
Andrey e2a95d566b progress 2021-06-26 00:33:28 -04:00
rusefillc 4e79ed0c72 VW warnings on cranking #2861 2021-06-25 22:24:41 -04:00
rusefillc f262be8c99 Minor change of Miata NA trigger shape #2855 #669 (#2856)
* Minor change of Miata NA trigger shape #2855 #669

* Minor change of Miata NA trigger shape #2855 #669
2021-06-25 14:12:18 -04:00
Andrey bb5500dbb3 Trigger: warning code on normal engine start up #669
better TDC unit test approach?
2021-06-25 13:19:16 -04:00
Andrey 2013a496ef Trigger: warning code on normal engine start up #669
better TDC unit test approach?
2021-06-25 13:02:37 -04:00
Andrey af014f9e37 Trigger: warning code on normal engine start up #669 2021-06-25 01:43:15 -04:00
Andrey f567c764ab giving unit tests a chance to use tdcMarkCallback 2021-06-25 01:31:53 -04:00
Andrey 3efd959da8 better test coverage 2021-06-24 23:38:16 -04:00
Andrey 13e93f8901 refactoring - better entity names 2021-06-24 23:19:31 -04:00
Andrey a0ea828093 docs 2021-06-24 23:12:16 -04:00
Andrey 0efbbe7344 raw files #669 2021-06-24 22:39:00 -04:00
Andrey 1269e7f4ea Minor change of Miata NA trigger shape #2855 #669 2021-06-24 22:21:30 -04:00
Andrey c19479fdad Trigger: warning code on normal engine start up #669 2021-06-24 21:58:40 -04:00
Andrey 8ba4b0ce1f Trigger: warning code on normal engine start up #669 2021-06-23 11:32:06 -04:00
Andrey feb56dad72 refactoring 2021-06-23 06:37:32 -04:00
Andrey 263bdb7eae global static not good, there shall be only one god object /s 2021-06-23 06:10:27 -04:00
Andrey 00c7b61387 Trigger: warning code on normal engine start up #669 2021-06-23 05:22:08 -04:00
rusefillc 42f0b0f0f5 one can dream about a well defined framework 2021-06-19 09:56:08 -04:00
Andrey 837beee828 Trigger: warning code on normal engine start up #669 2021-06-18 22:52:01 -04:00
Matthew Kennedy 322f69474f remove cranking dwell angle (#2814)
* config & impl

* settings

* engines & boards

* this test doesn't do anything interesting
2021-06-13 07:52:07 -04:00
Matthew Kennedy cc0547217c Cranking defaults (#2787)
* defaults

* more

* cranking fuel

* cranking timing

* cranking time digits

* ugh these tests shouldn't depend on defaults
2021-06-02 08:21:36 +03:00
Andrey 0d46d96e46 subaru 7/6 progress based on https://rusefi.com/forum/viewtopic.php?p=41021#p41021 2021-05-26 05:22:13 -04:00
Andrey e4497358f5 Override trigger gaps feature #2734 2021-05-25 17:19:20 -04:00
Andrey 9b7c9afb3b Trigger: warning code on normal engine start up #669 2021-05-24 06:03:58 -04:00
Matthew Kennedy 76f2f063d2 Maf in sensor model (#2672)
* init

* consumers

* hasMafSensor

* consumers

* remove

* remove

* s

* guard

* tiny bit of ram

* ram
2021-05-09 20:59:06 -04:00
Matthew Kennedy 5f0791f9fb Destroy all shared logger (#2574)
* most of shared logger

* a few more

* one more

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-04-21 14:28:48 -04:00
rusefillc 9c1aa580f1 WOW major scheduling drama on NB2 running with Proteus #2533 2021-04-15 19:12:09 -04:00
rusefillc f34bca916d CUSTOM_ERR_VVT_OUT_OF_RANGE warning false-positive fix #2534 2021-04-08 15:01:12 -04:00
rusefillc 9c26a84be9 trigger and VVT duty cycle integration into limp manager #2523 2021-04-07 01:21:28 -04:00
rusefillc a9e822f790 'displayLogicLevelsInEngineSniffer' on VVT input reports too much into engine sniffer fix #2528 2021-04-04 23:12:07 -04:00
rusefillc b378fcdb88 engine sniffer into unit tests 2021-04-04 22:48:48 -04:00
Matthew Kennedy 204aa33e9a goodbye ignitionOffset (#2503)
* remove

* set the timing map to do what the offset used to do

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-03-28 08:00:09 -04:00
Matthew Kennedy 4e1d30f86d plumbing for multiple vvt (#2488)
* plumb multiple vvt

* fix test

* s

* fix barra while we're at it

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-03-25 07:39:23 -04:00
Matthew Kennedy 89d71e4379 Compute injection duration later in the pipeline (#2175)
* 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>
2021-03-03 07:30:56 -05:00
Matthew Kennedy 55facb6613 use DECLARE_ENGINE_PTR for Engine class (#2365)
* engine cleanup

* do the cleanup

* one last spot

* expand_engine noop for firmware

* simulator
2021-02-16 16:58:54 -05:00
rusefi 6b848bf896 second bank vvt decoder unit test 2021-02-09 10:16:49 -05:00
rusefi 8a237fa800 M62T vanos support #2243 2021-02-08 22:41:31 -05:00
rusefillc 8fa1a6530b M62T vanos support #2243 2021-02-08 21:50:31 -05:00
rusefi aea4baecb4 M62T vanos support #2243 2021-02-08 21:07:43 -05:00
rusefi 1012b61e02 M62T vanos support #2243 2021-02-08 20:38:38 -05:00
rusefi 2ccb75a064 refactoring: naming consistency 2021-02-08 18:20:53 -05:00
rusefi 4b8a92ccc9 M62T vanos support #2243 2021-02-08 18:08:26 -05:00
rusefi d05edd2a3d M62T vanos support #2243 2021-02-08 16:16:26 -05:00
rusefi 3390bcf0ce refactoring: more structure 2021-02-08 15:59:40 -05:00
rusefillc 11aa253ae9 vvt/cam events to pass index 2021-01-31 22:24:45 -05:00
Matthew Kennedy fad3b07b8b Purge e34 config (#2127)
* remove

* enums

* s

* func test

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-12-24 07:31:25 -05:00
Matthew Kennedy 85f0621738 Purge rover v8 config (#2116)
* bye

* goodbye, rover v8

* that snuck in

* use a different config for that test
2020-12-22 10:05:54 -05:00
Matthew Kennedy a806053d52 round rpm instead of truncating (#2023)
* 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>
2020-12-06 00:11:57 -05:00
rusefillc 701f0b2e20 dead engine config 2020-11-26 20:53:44 -05: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
Matthew Kennedy 5189e0b1d9 fix double deadtime (#1904)
* move global correction factor to fuel mass

* tests

* the fix
2020-10-25 00:12:05 -04:00
rusefillc 54c3d0f15c HW CI has failed 11 times since Oct 2 #1849 2020-10-16 13:54:12 -04:00
Matthew Kennedy 060cfbd778 const ref-ify trigger (#1856)
* const ref-ify

* tests
2020-10-05 14:22:59 -04:00
Matthew Kennedy fc02c2bdf4 fix broken master, inject engine ptr to rpmcalculator (#1759)
* fix

* oops
2020-09-05 18:49:42 -04:00
rusefi c476cd3b95 refactoring 2020-09-03 19:29:15 -04:00
rusefi 24f12d2993 dead 2020-08-29 09:39:52 -04:00
rusefi 7d53f5859d VVT support for VAG trigger #883 2020-08-25 00:59:07 -04:00
rusefi 4e333dac1c VVT support for VAG trigger #883 2020-08-24 02:07:58 -04:00
rusefi bdbee0d38b VVT support for VAG trigger #883 2020-08-24 02:01:50 -04:00
rusefi 0f9e8bf83e VVT support for VAG trigger #883 2020-08-24 01:21:42 -04:00
rusefi d0705f14ee Allow negative VVT position feedback #1713 2020-08-23 11:49:46 -04:00
rusefi ae606a6380 trigger and VSS hw integrated testing #1668 2020-08-08 12:03:24 -04:00
Matthew Kennedy ca8083f4d1 these were testing nothing 2020-08-03 12:22:00 -07:00
Matthew Kennedy 2572809535 don't rely on periodicFastCallback 2020-07-31 22:09:23 -07:00
Matthew Kennedy 1f85c023a8 this test should have never called setTestBug299 2020-07-31 19:08:18 -07:00
Matthew Kennedy f502be0d8b mock airmass 2020-07-31 12:44:22 -07:00
Matthew Kennedy eabdd9f458 cleanup 2020-07-30 21:20:10 -07:00
Matthew Kennedy eea3f2cf36 fix tests 2020-07-28 14:27:34 -07:00
Matthew Kennedy d19e2b2499 refacto 2020-07-24 18:26:24 -07:00
Matthew Kennedy a79153bbea correct batch fuel cylinder pairing (#1595)
* correct batch fuel cylinder pairing

* param

* only change behavior on two wire batch

* Add tests for two wire batch & sequential

* improve testing a little bit

* comments

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-07-13 14:46:55 -04:00
Matthew Kennedy c95ed26d89 Remove old thermistor implementation (#1458)
* remove test clt/iat

* remove warning since this code is nearly dead

* remove old therm impl

* tests & live doc

* not quite right
2020-05-28 17:51:33 -04:00
Matthew Kennedy a2313a853c switch some firmware warnings to errors (#1465)
* warnings as errors

* throw instead of exit

* test massaging

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-05-23 10:46:28 -04:00
rusefi 93a3379fce Clean-up analog channels in "unit" tests #1456 2020-05-20 03:42:09 -04:00
rusefi 60bfb2d789 Clean-up analog channels in "unit" tests #1456 2020-05-20 03:38:55 -04:00
rusefi 8253f5b931 better VVT progress 2020-05-15 21:33:25 -04:00
rusefi 2878461d25 VVT_INACTIVE 2020-05-14 23:31:01 -04:00
Matthew Kennedy 7a41df6153 Fix 100% duty injection (#1431)
* skip turn-off for high duty

* mock executor injection

* test

* switch to hard cut

* test no longer relevant
2020-05-14 07:44:32 -04:00
rusefi 2db29c7824 34-2 3 cam Toyota wheel progress 2020-05-10 18:03:11 -04:00
rusefi b6f6d28ed4 removing some unneeded flexibility 2020-05-10 02:06:15 -04:00
rusefi bfe3b2c5fb 34-2 3 cam Toyota wheel progress 2020-05-10 01:21:54 -04:00
rusefi e4cfc39b68 docs & clean-up 2020-05-10 00:59:32 -04:00