Commit Graph

2408 Commits

Author SHA1 Message Date
Matthew Kennedy 3a980634b7 init adc 3 2024-11-29 13:16:38 -08:00
Matthew Kennedy eea931760b more accurate SD card rate 2024-11-23 23:19:02 -08:00
Matthew Kennedy 101ba2b3e9
H7 knock (#515)
* blind h7 knock implementation

* proteus/atlas sampling config
2024-11-23 02:49:05 -08:00
Matthew Kennedy 4a2877c2db knock include order 2024-11-18 11:52:36 -08:00
Matthew Kennedy 2b3db0b21e s 2024-11-18 11:43:41 -08:00
Matthew Kennedy ad3bb2ab99 modularize knock adc for h7 2024-11-18 11:36:41 -08:00
Matthew Kennedy 5554303ae9 h7 sdmmc clocking 2024-11-18 02:55:09 -08:00
Matthew Kennedy 35c1b8bc9f h7 adc3 2024-11-18 02:45:45 -08:00
Matthew Kennedy ed9420d9f1 better name 2024-11-08 01:15:45 +00:00
Matthew Kennedy 2155f3c019 extract some implementation details of fast ADC out to port 2024-11-08 00:58:07 +00:00
Matthew Kennedy e7f8033e32 these functions can now be static 2024-11-08 00:51:08 +00:00
Matthew Kennedy 4266c04c65 dead function 2024-11-08 00:46:55 +00:00
Matthew Kennedy d3110cde42 missed a line 2024-11-08 00:20:07 +00:00
Matthew Kennedy 6b26a4e427 dead feature: sensor chart fast ADC 2024-11-08 00:12:37 +00:00
Matthew Kennedy 69baa28b48 sdmmc1 2024-11-07 11:41:56 -08:00
Matthew Kennedy 9ab55a1ed3 mmc 2024-11-06 19:46:09 -08:00
Matthew Kennedy 0dba68be8d make chconf.h more similar to each other 2024-10-31 16:19:47 -07:00
Matthew Kennedy 09c855c3ed min stepper voltage feature 2024-10-29 14:03:27 -07:00
Matthew Kennedy d037aed2cd cleanup 2024-10-11 17:34:40 -07:00
Matthew Kennedy 8455a3c050 format 2024-09-25 14:05:08 -07:00
Matthew Kennedy 48d25544f9 min/maxF -> std::min/max 2024-09-25 14:02:00 -07:00
Matthew Kennedy 084a1d0dfd std::abs 2024-09-24 23:47:37 -07:00
Matthew Kennedy 9e3126a920 aux serial cleanup/removal #61 2024-09-18 22:38:16 -07:00
Matthew Kennedy 01a397094d
execute critical tasks on one big thread (#462)
* wire up main loop

* remove PeriodicTimerController

* patch up defines, comments

* happy simulator

* format

* simulator

* ETB runs via main loop

* happy tests

* protection against invalid LoopPeriod

* stack size

* ccm

* fix |= operator

* move perf trace

* ordering

* ordering
2024-09-17 15:27:38 -07:00
Matthew Kennedy 9ccaded0a1 lps25 multi byte read 2024-09-13 01:10:08 -07:00
Matthew Kennedy d2bf9ab9e9 SD log file names are fome_x.mlg 2024-09-13 00:09:25 -07:00
Matthew Kennedy d0e4a0c644 cleanup 2024-09-03 13:34:36 -07:00
Matthew Kennedy e20908704d print friendly pin names for "pins" command 2024-09-03 13:31:49 -07:00
Matthew Kennedy 761efd862c
MAP avg uses engine module callbacks (#475)
* use engine module callbacks

* happy tests

* happy small-can-board

* interact with map avg via module

* simplify map avg init

* tweaks

* omit module to disable it instead!

* unnecessary guard

* minor cleanups

* unnecessary branch - lookups for these tables are fine at 0 rpm

* oop
2024-08-29 22:38:30 -07:00
Matthew Kennedy 12321d4325 map averaging includes 2024-08-29 13:29:53 -07:00
Matthew Kennedy bd7f8f2bb6 remove trigger input debug pins 2024-08-28 02:06:02 -07:00
Matthew Kennedy 0b31777623 adc inputs cleanup 2024-08-12 18:13:51 -07:00
Matthew Kennedy b6ccc9b33f let's move away from PeriodicTimerController 2024-08-12 17:55:18 -07:00
Matthew Kennedy 48b8f08cb8 EFI_ACTIVE_CONFIGURATION_IN_FLASH 2024-08-07 12:09:30 -07:00
Matthew Kennedy e4e0824f57 misc format/comment cleanups 2024-08-07 12:01:08 -07:00
Matthew Kennedy 0b5b441982 minor reorder 2024-08-06 23:23:37 -07:00
Matthew Kennedy 08c878dbb9 sorry ADC trigger, your performance was never proven and you're in the way now 2024-08-06 23:21:36 -07:00
Matthew Kennedy 2e7425d037 fast adc skip 2024-08-06 23:07:34 -07:00
Matthew Kennedy 4b4d2ac4d5
ethernet console as engine module (#453)
* infrastructure for engine modules in the build

* fully move fuel pump

* fan

* gear detector

* gear detect

* fan control cleanup

* trip odometer

* shuffle makefiles around a little

* move ethernet console to engine module

* oops

* s

* final

* dead line
2024-07-23 20:52:37 -07:00
Matthew Kennedy b36474888b Merge branch 'master' of https://github.com/fome-tech/fome-fw 2024-07-22 10:39:45 -07:00
Matthew Kennedy 3f2450056a use CriticalSectionLocker 2024-07-22 10:39:39 -07:00
Matthew Kennedy bd808552ee typo 2024-07-21 23:25:04 -07:00
Matthew Kennedy 1245ddcc21 adc clarity 2024-07-21 23:23:52 -07:00
Matthew Kennedy c5b9f53808 cleanup 2024-07-21 22:28:51 -07:00
Matthew Kennedy aeec11078c adc cleanup 2024-07-21 13:22:28 -07:00
Matthew Kennedy 591b8446fe minor adc_inputs cleanup 2024-07-21 13:21:02 -07:00
Matthew Kennedy 1f1ace4ced do the math once instead of per-sample 2024-07-21 13:10:22 -07:00
Matthew Kennedy dd8dea61c0 rename Executor -> Scheduler 2024-07-11 17:03:13 -07:00
Matthew Kennedy adb5773c5f don't use scheduleForLater 2024-07-11 16:22:08 -07:00
Matthew Kennedy 4554e099f4 if you need this command you need a debugger 2024-07-03 01:06:28 -07:00
Matthew Kennedy 7936c5d90d dead console commands save 2k of flash 2024-07-03 00:31:44 -07:00
Matthew Kennedy f4ddf26313 for loop formatting 2024-07-03 00:26:17 -07:00
Matthew Kennedy 83e5738a96 actually reset the timer in case of <2US timing 2024-06-10 01:35:51 -07:00
Matthew Kennedy e7d2b1c17c compile-time enforcement of printf strings 2024-06-10 01:15:39 -07:00
Matthew Kennedy 1e2cd76a9d only check on firmware for now? 2024-06-10 01:00:23 -07:00
Matthew Kennedy cf87e64119 compile-time enforcement of printf strings 2024-06-10 00:51:14 -07:00
Matthew Kennedy efc74d9975 debounce init 2024-04-25 16:40:08 -07:00
Matthew Kennedy 1c354c08c3 smart gpio init 2024-04-25 16:39:56 -07:00
Matthew Kennedy cbed1af4ba default inits in trigger adc 2024-04-25 16:32:32 -07:00
Matthew Kennedy d8b2d3c329 debounce efidur_t 2024-04-25 14:38:21 -07:00
Matthew Kennedy 8d1029314a delete efitimems_t 2024-04-25 13:52:34 -07:00
Matthew Kennedy 5b51317585 get rid of efitimems_t 2024-04-25 13:51:16 -07:00
Matthew Kennedy e332b32ed1 distinguish between "timestamp" and "duration" 2024-04-25 12:57:10 -07:00
Matthew Kennedy 3f8931f341 we often mean inline when we say static 2024-03-28 18:20:40 -07:00
Matthew Kennedy a49de26ea9 the endianness was right the first time 2024-03-18 15:50:37 -07:00
Matthew Kennedy fb398cddb2 endianness was REALLY a mistake 2024-03-18 14:53:15 -07:00
Matthew Kennedy 85a031c20d endianness was a mistake 2024-03-17 11:50:43 -07:00
Matthew Kennedy a34f7b3ad2 max31855 uses polled exchange 2024-03-15 20:21:39 -07:00
Matthew Kennedy a358aa963f prep for #381 blocking factor 2024-03-15 11:34:06 -07:00
Matthew Kennedy c9d4befc4d
WiFi tweaks (#374)
* batch all wifi in to one write

* writeCrcPacket already chunks the response, so we don't really need it, but limit maximum TCP write size

* format cleanup

* don't cache wifi stuff (for now)

* h7 fiddling
2024-03-12 16:14:04 -07:00
Matthew Kennedy 498824eff4 tabs 2024-03-12 15:28:52 -07:00
Nathan Schulte bfb8cf1f89
GCC 13 simulator build, console->simulator on Linux (#378)
* engine: variable engine is: constexpr Engine

* can: rename CanRead::start to not hide

* console: support launching simulator on Linux

* console: fully encapsulate simulator binary name

* console: simplify simulator binary wrangling

* console: cleaner java code-style
2024-03-09 00:11:20 -08:00
Matthew Kennedy da1ad5b34f scripts should fail harder when they fail 2024-03-07 22:17:37 -08:00
Matthew Kennedy 2436e7c105
implement TS console over ATWINC1500 WiFi (#373)
* experimenting with atwinc1500

* rename to cpp

* if/else without curly braces

* nullptr

* static asserts

* unused params

* stub basic bsp and wifi console

* misc c++ fixes

* it appears to compile?

* enable/disable ISR

* idk why this needs to get commented

* dead code

* more wifi plumbing

* move wifi init after hardware init

* wifi bsp

* bsp handles empty SPI read/write, pin init

* build spi_flash.cpp

* don't double-enable interrupts

* maybe no need for extern "C"

* faster SPI

* socket kinda connects?

* wifi updater tool?

* log wifi stuff to efiPrintf

* I'm not sure why you have to skip the reboot it says you have to do

* working tcp implementation

* use lock instead of actually cycling interrupts

* improve socket receive performance

* add firmware info

* avoid locking for spi select/unselect

* allow larger SPI ops

* wifi thread priority

* hooks for pins and SPI device

* guard

* build atlas with wifi

* don't unconditionally define EFI_WIFI, oops

* only build wifi if wifi

* typo

* H7 SPI

* typo
2024-03-01 12:37:55 -08:00
Matthew Kennedy c0489d8591 oops, some boards needed spi prescaler func 2024-02-27 16:56:32 -08:00
Matthew Kennedy 4b02b7d46d
spi cleanup, add 4/5/6 to pickers 2024-02-27 13:42:19 -08:00
Matthew Kennedy 04b48de598 I don't think we need SPI pin mode any more at all 2024-02-26 17:26:59 -08:00
Matthew Kennedy 2c021cfd2e oops I thought I committed this 2024-02-26 16:12:07 -08:00
Matthew Kennedy 921e205d6d stop spi 2024-02-26 11:32:48 -08:00
Matthew Kennedy 9c2a6420b4 support spi4/5/6 2024-02-26 11:30:08 -08:00
Matthew Kennedy afe8b23787 put all backup data in SRAM, not in RTC registers 2024-02-06 11:43:13 -08:00
Matthew Kennedy 13f9337d16 enum class-ify 2024-02-06 11:04:34 -08:00
Matthew Kennedy d3354310d6 dead backup sram enums 2024-02-06 11:03:42 -08:00
Matthew Kennedy 17c6a46e84 optimize for hot thread stacks and data in CCM 2024-01-06 19:37:35 -08:00
Matthew Kennedy 053e9daceb oops these don't fit either 2024-01-06 19:01:41 -08:00
Matthew Kennedy 7b46529dee move some stuff in to CCM 2024-01-06 18:52:37 -08:00
Matthew Kennedy 7e2097056c unused parameters 2024-01-06 18:31:18 -08:00
Matthew Kennedy c7cc2de16f sanity in IMU data names/ranges 2023-11-27 01:30:18 -08:00
rusefillc d6b5718ed1
no ini image on Cygwin or Mingw (#297)
Co-authored-by: rusefillc <sdfsdfqsf2334234234>
2023-11-09 09:32:58 -05:00
Matthew Kennedy 6dc6f89e71 H7 2023-11-03 15:30:15 -07:00
Matthew Kennedy 97c084cc24 fix simulator 2023-11-03 15:08:28 -07:00
Matthew Kennedy 61900c0f18 check for unused variables 2023-11-03 15:00:44 -07:00
Matthew Kennedy 3ef4d7c40e dead openblt files from the "old way" 2023-11-03 01:28:38 -07:00
Matthew Kennedy f293c679ce oops missed mcuconf 2023-11-02 13:33:42 -07:00
Matthew Kennedy 9dc183a173
we use small time units here in the future (#287) 2023-11-01 22:31:27 -07:00
Matthew Kennedy a9b866fff1 sent 2023-11-01 16:10:47 -07:00
Matthew Kennedy 0aee861107 gpio, thermistor, knock shadowing 2023-11-01 16:09:39 -07:00
Matthew Kennedy f4d442bcf3 adc 2023-11-01 14:31:25 -07:00
Matthew Kennedy 6a472b02f3 stepper shadowing 2023-11-01 14:31:21 -07:00
Matthew Kennedy e625684c91 ads1015 shadow 2023-11-01 14:24:06 -07:00
Matthew Kennedy 68ef36c5d0 adc inputs shadowing 2023-11-01 14:22:29 -07:00
Matthew Kennedy a987308055 shadow avoidance 2023-11-01 14:16:09 -07:00
Matthew Kennedy 408862d69f strongly type can bus index so we can't have the same bug again 2023-10-30 23:33:59 -07:00
Matthew Kennedy 39a54e5e93 require DLC on can TX 2023-10-30 18:50:49 -07:00
Stefan de Kraker 4e44e417b2
Fixed FOME CAN data bus selection (#275)
* Fixed FOME CAN data bus selection

* Made canChannel non-optional
2023-10-30 18:42:52 -07:00
Matthew Kennedy 1638f0177d zip was still called rusefi.ini.zip 2023-10-17 13:02:02 -07:00
Matthew Kennedy 41ed3bd6ce avoid stepper pin double init #265 2023-10-13 02:44:14 -07:00
Matthew Kennedy 8949404d54 don't store a copy of stepper pin modes 2023-10-13 02:38:47 -07:00
rusefillc 7ad5b00f2e
refactoring: vvt is not aux (#263)
* refactoring: vvt is not aux

(cherry picked from commit 6b4c4a583316a32d7723c2cfa16cda39fa9afb1b)

* this repo has VVT conditional at small-can-board
2023-09-27 00:59:04 -07:00
Matthew Kennedy 4b354f047b
trip odometer (#260) 2023-09-25 13:16:17 -07:00
Matthew Kennedy 3df1ee9c5f debug channel cleanups 2023-09-13 12:23:27 -07:00
Matthew Kennedy c41ebafc59 prep for small can board 2023-08-29 00:57:57 -07:00
Matthew Kennedy b14ca428fb #ifdef __cplusplus crust 2023-08-28 14:17:26 -07:00
Matthew Kennedy ee89ab88d6 H7 flash supports both banks! 2023-08-27 16:44:50 -07:00
Matthew Kennedy e859f65ef8 cherry pick hardfault volatile 2023-08-27 16:35:09 -07:00
Matthew Kennedy 2fb778145c forgot the h7 shared section 2023-08-27 16:32:46 -07:00
Matthew Kennedy 717aae8ce2 extract STM32 flash common 2023-08-27 15:31:29 -07:00
Matthew Kennedy bfad2e45a1 Split F4/F7 vs H7 flash controllers 2023-08-27 15:20:11 -07:00
Matthew Kennedy 12b9a3e477 H7 uses 128k pages 2023-08-27 11:35:14 -07:00
Matthew Kennedy c8c536d96c guard 2023-08-27 11:00:56 -07:00
Matthew Kennedy abf312213c extract CAN config to its own file 2023-08-27 10:50:39 -07:00
Matthew Kennedy 5813c20a32
OpenBLT-based USB serial bootloader (#228)
* flash layout

* bootloader builds

* output name

* hard fp

* strip out dfu

* bootloader gets hardfault

* loader gets USB but not MSD

* kinda usb?

* USB enumerates!

* cleanup

* shared params

* nonfunctional openblt

* stub flash

* flash.h

* openblt responds over USB!

* implement flash driver

* blt conf, linker

* boards no longer need specific openblt files

* no ccache

* common_make.sh

* cleanup

* delete bootloader crust

* simplifying linker logic

* script tweaks

* flash layout is handled entirely by FOME flash driver

* simplify memcpy

* format

* comment

* dead

* makefiles cleanup

* cleanup

* h7 linker script for bootloader

* h7 bootloader build

* build script
2023-08-27 10:30:02 -07:00
Matthew Kennedy 3e39abbfd3 this button isn't useful as it just bricks the ECU 2023-08-26 23:29:21 -07:00
Matthew Kennedy 342f704a4c null terminate usb strings 2023-08-25 12:19:13 -07:00
Matthew Kennedy a752508f35 typo 2023-07-25 15:56:54 -07:00
Matthew Kennedy e7fd8f3259 avoid null deref in sd tooth logger 2023-07-25 15:15:15 -07:00
Matthew Kennedy ad3ea57276 tooth_logger.h -> pch 2023-05-30 22:41:20 -07:00
Matthew Kennedy 349d3a9b48 completely unused CanCategory 2023-05-30 22:13:54 -07:00
Matthew Kennedy 2fd26e948a remove proteus legacy build -> none exist in the wild 2023-05-18 15:29:31 -07:00
Matthew Kennedy 94c33e9e38 pt2001 typo 2023-05-15 13:28:50 -07:00
Matthew Kennedy 5a833aede6 uncompressed image script too 2023-05-05 19:07:27 -07:00
Matthew Kennedy eea8b09534 oops 2023-05-05 19:04:12 -07:00
Matthew Kennedy 05dd332d18 update embedded usb drive files #69 2023-05-05 19:00:29 -07:00
Matthew Kennedy 45cb8f3607 re-enable ini drive on stm32f7 2023-05-05 16:33:23 -07:00
Matthew Kennedy d5f9479f28
ObdCode is enum class (#77)
* change ObdCode to enum class builds firmware

* test builds

* don't need this line at all

* can we go down to uint16_t?
2023-04-12 23:44:33 -07:00
Matthew Kennedy fa41247fde ancient history dead histogram 2023-04-11 17:02:56 -07:00
Matthew Kennedy d6534157a0 rename obd_code_e -> ObdCode 2023-04-11 16:32:47 -07:00
Matthew Kennedy 8b89860042 not on h7 though 2023-03-24 16:45:55 -07:00
Matthew Kennedy b59a592f94 everybody gets timer 3 pwm 2023-03-24 14:35:54 -07:00
Matthew Kennedy 84aa2aa780 misc console cleanups 2023-03-17 15:49:52 -07:00
Matthew Kennedy 5c7334f2e7 rename simulator 2023-03-15 22:26:49 -07:00
GitHub gen-configs Action 723795a232 Auto-generated configs and docs 2023-03-15 19:34:12 +00:00
Matthew Kennedy 718ad4a391 extract expected.h 2023-03-07 00:33:31 -08:00
Matthew Kennedy 5e238e5d26 volume name 2023-02-28 16:42:14 -08:00
Matthew Kennedy a2652d31dc invert vvt in one spot, like trigger 2023-02-28 13:13:29 -08:00
Matthew Kennedy 7b3b20f97f crust 2023-02-28 02:38:41 -08:00
Matthew Kennedy 4de3c86749 crusty dead things 2023-02-28 02:29:46 -08:00
Matthew Kennedy 30a85d82f5 SD error state cherry pick 2023-02-28 02:14:15 -08:00
Matthew Kennedy 329b668ed6 cherry pick cleanup 2023-02-28 02:12:47 -08:00
Matthew Kennedy 1e84c92b00 accel cleanup 2023-02-28 02:12:10 -08:00