Commit Graph

3848 Commits

Author SHA1 Message Date
iabdalkader
27be6e1f98 ports/All: Update Makefiles to support MicroPython 1.23. 2024-07-03 15:39:59 +02:00
iabdalkader
3a8f1bb540 modules: Switch to the new mp_obj_malloc_with_finaliser. 2024-07-03 14:42:18 +02:00
iabdalkader
f57c2f5e56 misc: Replace deprecated STATIC with static. 2024-07-03 14:42:18 +02:00
iabdalkader
4488f778f5 modules: Update ulab to 6.5.2. 2024-07-03 14:42:18 +02:00
iabdalkader
66a6177fbe micropython: Update to MicroPython v1.23.0. 2024-07-03 14:42:15 +02:00
iabdalkader
be03021258 boards/All: Update memory configs.
* DMA buffers regions are automatically rounded up to the next power of 2 via
the linker script. This ensures that these buffers, when rounded up, can actually
fit into their respective memories. It also ensures that when/if the MPU is used
to configure these regions, it will not round up the regions sizes, which may cause
the MPU to configure a region bigger than the DMA buffer.
* GC blocks can be rearranged in any order, including the main heap/first block.
This is very important for boards with limited RAM to avoid fragmenting the contiguous
large heap early before it's actually needed.
* Moved VOSPI memory to its own section. The offset is no longer required, and the
linker script can detect overlaps.
* Renamed GC heap memory to allow more than one heap to exist, and added support for
it in the common linker script. This change allows adding a second heap for malloc/libc
easily if needed.
* For STM32 boards, the domain-specific DMA buffers can now be located anywhere within
their memory regions, as their MPU regions' base addresses and sizes are all set via
linker script variables. Previously, this was defined in headers, and sections could
have easily overlapped without warning.
2024-06-30 17:58:59 +02:00
iabdalkader
c28aea9ea4 misc: Fix first additional GC block name. 2024-06-30 17:32:13 +02:00
iabdalkader
c9de724be0 misc: Rename JPEG buffer size. 2024-06-30 17:32:13 +02:00
iabdalkader
ab92e46edd ports/nrf: Use the common linker script. 2024-06-30 17:32:13 +02:00
iabdalkader
c7a87bce8e ports/stm32: Use the common linker script. 2024-06-30 17:32:13 +02:00
iabdalkader
f06eb8e72e ports/stm32: Add MPU helper function. 2024-06-30 17:32:13 +02:00
iabdalkader
2f8977a5ac ports/mimxrt: Use the common linker script. 2024-06-30 17:32:13 +02:00
iabdalkader
9062a51d31 misc: Add common pre-processor linker script. 2024-06-30 17:32:09 +02:00
iabdalkader
40710a3573 ports/stm32: Support setting audio module samples at runtime. 2024-06-28 16:32:04 +02:00
iabdalkader
54104039b4 boards/All: Freeze the ML extension module for boards with ML support. 2024-06-28 16:32:04 +02:00
iabdalkader
c7228cbb48 modules/py_tf: Refactor TensorFlow module.
This patch decouples the MicroPython TF module from the TensorFlow library,
allowing support for more DL/ML libraries and engines in the future.

The ML backend has been completely redesigned; the model object can now be
passed directly to the backend, allowing it to initialize the model internally.
Additionally, the backend's state/memory is now persistent (surviving across
invocations), which improves inference speed by around 20% and supports models
that require persistent memory, such as LSTM.

Finally, the ML module has been mostly rewritten to handle model input/output
shapes and data properly, and to support models with multiple outputs
2024-06-28 16:32:04 +02:00
iabdalkader
13c99c6332 boards/All: Optimize flash/memory usage to support the new TFLM. 2024-06-28 16:32:04 +02:00
iabdalkader
13cc273318 boards/all: Enable built-in TFLM models.
The new built-in model system allows fine-grained control over which models
get built into the firmware image. This patch enables FOMO for all boards
and audio processing models for boards with mics.
2024-06-28 16:32:04 +02:00
iabdalkader
073b161309 modules/py_image: Export py_image_type for use by other modules. 2024-06-28 16:32:04 +02:00
iabdalkader
491fc1bd06 ports/nrf: Fix build. 2024-06-28 16:32:04 +02:00
iabdalkader
f4c91cbf6c ports/stm32: Update linker script.
Add more GC blocks, and separate the main GC heap from main memory.
2024-06-28 16:32:02 +02:00
iabdalkader
7a62df38e3 ports/stm32: Update port Makefiles to support the new TFLM. 2024-06-28 16:31:42 +02:00
iabdalkader
d51a11edbf ports/mimxrt: Update linker script.
Add more GC blocks, and separate the main GC heap from main memory.
2024-06-28 16:31:39 +02:00
iabdalkader
c79b3aecbb ports/mimxrt: Update port Makefiles to support the new TFLM. 2024-06-28 14:13:46 +02:00
iabdalkader
5e9453974e lib/tflm: Add TFLM submodule.
This submodule replaces the old libtf with a libraries built from
the TFLM upstream. The new libraries are faster and smaller than
the previous libtf.
2024-06-28 14:13:46 +02:00
iabdalkader
d1756b4b61 ports/stm32: Remove the obsolete micro speech C module.
This module no longer works with the updated TFLM since feature generation
has been removed and replaced by another audio preprocessor model. This
module will be replaced with a pure Python module or example.
2024-06-28 14:13:46 +02:00
iabdalkader
d0c85de2fe lib/libtf: Remove obsolete libtf. 2024-06-28 14:13:46 +02:00
iabdalkader
18caf947b9 ports/all: Fix RWX warning in linker scripts. 2024-06-28 14:13:46 +02:00
Ibrahim Abdelkader
235c337da0
Merge pull request #2232 from kwagyeman/kwabena/fix_cache_invalidation_issue
ports: Fix accidental CPU cache invalidation.
2024-06-28 14:09:28 +02:00
iabdalkader
112c753bb5 ports/stm32: Add support for additional GC blocks. 2024-06-22 17:02:53 +02:00
iabdalkader
7aa40047a7 ports/mimxrt: Add support for additional GC blocks. 2024-06-22 17:02:23 +02:00
iabdalkader
4dd63ce6e0 ports/nrf: Switch to mp_utils to initialize GC/Stack. 2024-06-22 17:02:23 +02:00
iabdalkader
df3e885d6b ports/rp2: Switch to mp_utils to initialize GC/Stack. 2024-06-22 17:02:23 +02:00
iabdalkader
79019cce0d misc: Add MicroPython GC helper functions. 2024-06-22 17:02:15 +02:00
Kwabena W. Agyeman
7bf5b3fa7e modules/py_image: Add support for turning lists/tuples into Images. 2024-06-21 22:05:11 -07:00
Kwabena W. Agyeman
7697a84e8f modules/py_tf.c: Remove old methods/functions. 2024-06-21 10:41:09 +02:00
Kwabena W. Agyeman
a4d97c5723 modules/py_tf.c: Fix bug with S128_127 scaling. 2024-06-21 10:41:09 +02:00
Kwabena W. Agyeman
3e37f46db4 modules/py_tf: Remove detect() and segment() in favor of predict(). 2024-06-21 10:41:09 +02:00
Kwabena W. Agyeman
3863c38228 modules/py_tf: Remove classification object. 2024-06-21 10:41:09 +02:00
Kwabena W. Agyeman
54e31b163b modules/py_tf: Merge model output object with model object. 2024-06-21 10:41:04 +02:00
Kwabena W. Agyeman
36610e8530 modules/py_tf: Refactor NMS code into it's own object. 2024-06-21 10:37:38 +02:00
Kwabena W. Agyeman
13ab81c0ee imlib/collections: Add support for moving items between lists. 2024-06-20 14:36:28 -07:00
Kwabena W. Agyeman
e3ceea4a6c modules/py_tf: Fix log buffer free-order. 2024-06-19 17:17:20 -07:00
Kwabena W. Agyeman
cc823e2fbb ports: Fix accidental CPU cache invalidation. 2024-06-18 22:04:31 -07:00
iabdalkader
6c212409ce modules/py_tf: Refactor py_tf module.
- Implement log handler.
- Remove all extra load functions: load, load_builtin_model, and the newly added tf.Model(),
  now all call the same function.
- Remove module-level functions. Code should load the model first, the use model.predict().
  This is a breaking change, but loading models on the fly was never a good feature.
- Model FB memory will be free'd in finalizer. The model's fb_memory is automatically
  free'd when it's delete (i.e., del model).
2024-06-16 17:23:58 +02:00
iabdalkader
51ed29b501 lib/libtf: Update libtf. 2024-06-16 16:42:09 +02:00
iabdalkader
6373e0d708 ports/stm32: Fix Audio module's root pointers. 2024-06-15 14:24:00 +02:00
iabdalkader
668959d5c0 modules/fir: Fix root pointer usage. 2024-06-15 13:32:24 +02:00
Ibrahim Abdelkader
854afd9915
Merge pull request #2227 from kwagyeman/kwabena/new_tf_method
modules/py_tf: Add generic CNN processing support.
2024-06-12 15:10:09 +02:00
Kwabena W. Agyeman
8c69b09f4f modules/py_tf: Add generic CNN processing support. 2024-06-11 22:11:32 -04:00
Ibrahim Abdelkader
8c8c7dbde1
Merge pull request #2190 from kwagyeman/kwabena/refactor_get_similarity
modules/py_image: Refactor get_similarity() to use draw_image backend.
2024-06-09 14:34:52 +02:00
iabdalkader
4e84b3eabb boards/ARDUINO_GIGA: Enable HIMAX sensors. 2024-05-30 20:46:15 +02:00
iabdalkader
d330c73bce misc: Bump firmware version. 2024-05-26 14:56:56 +02:00
Ibrahim Abdelkader
4759398742
Merge pull request #2207 from openmv/sensor_delay_pwdn_reset
misc: Increase delay after reset/power-down.
2024-05-25 20:47:18 +02:00
Ibrahim Abdelkader
48801fbc5c
Merge pull request #2210 from kwagyeman/kwabena/remove_pooling
imlib/pool: Remove obsolete pooling functions.
2024-05-25 15:08:18 +02:00
Ibrahim Abdelkader
1959b724e1
Merge pull request #2212 from kwagyeman/kwabena/fix_erode_mask
imlib/binary: Fix erode mask check.
2024-05-25 10:32:03 +02:00
iabdalkader
88027a9e27 boards/PORTENTA_H7: Override default reset and power delays. 2024-05-25 10:29:37 +02:00
iabdalkader
17ac3180b9 misc: Increase delay after sensor reset/power-down. 2024-05-25 10:29:25 +02:00
Ibrahim Abdelkader
44e92b4c0d
Merge pull request #2215 from kwagyeman/kwabena/ksize_fix
modules/py_image: Move ksize to be pos_arg.
2024-05-21 20:34:09 +02:00
Ibrahim Abdelkader
28d5fdfa1c
Merge pull request #1610 from openmv/invalidate_vbuffers
imlib: Invalidate vbuffers before returning them.
2024-05-21 20:33:42 +02:00
Ibrahim Abdelkader
0851f59300
Merge pull request #2220 from openmv/mimxrt_dma_fix
ports/mimxrt: Retry transfer if the DMA is still busy.
2024-05-21 20:33:24 +02:00
Ibrahim Abdelkader
fb86074477
Merge pull request #2221 from openmv/stm32_sensor_bug
ports/stm32: Reset vbuffer state when dropping frames.
2024-05-21 20:32:10 +02:00
iabdalkader
64b2708754 ports/stm32: Reset vbuffer state when dropping frames.
When dropping a frame the current vbuffer state was Not reset, which
caused the following frame(s) to be corrupted, probably also overwriting
the next vbuffer.
This bug is what caused transposed high-resolution frames to be corrupted.
If the DMA is not keeping up you should simply just see slower FPS or no
frames at all but definitely never corrupted frames, since they're dropped.
2024-05-21 20:15:34 +02:00
iabdalkader
75a934de0d ports/mimxrt: Retry transfer if the DMA is still busy.
Retry to submit the transfer a few times if the DMA is busy,
before dropping the frame.
2024-05-21 19:15:10 +02:00
iabdalkader
80fce781ab imlib: Invalidate vbuffers before returning them.
* Fixes #2216
2024-05-20 22:59:35 +02:00
Kwabena W. Agyeman
08ca21fd1b imlib/pool: Remove obsolete pooling functions. 2024-05-19 20:06:37 -07:00
Ibrahim Abdelkader
99c3ddd7fc
Merge pull request #2208 from kwagyeman/kwabena/minor_draw_line_cleanup
imlib/draw: Cleanup drawline code.
2024-05-19 09:55:14 +02:00
Ibrahim Abdelkader
c21472a1cd
Merge pull request #2213 from kwagyeman/kwabena/fix_morph_spelling
modules/py_image: Fix morph spelling.
2024-05-15 23:50:14 +02:00
Ibrahim Abdelkader
b2e90e6c47
Merge pull request #2191 from kwagyeman/kwabena/clean_to_x
modules/py_image: Update py_image_to with mp_arg_parse_all.
2024-05-13 16:51:08 +02:00
Kwabena W. Agyeman
f928965896 modules/py_image: Move ksize to be pos_arg. 2024-05-12 21:54:46 -07:00
Kwabena W. Agyeman
b7eda7d932 modules/py_image: Fix morph spelling. 2024-05-12 21:24:08 -07:00
Kwabena W. Agyeman
0638c936c6 imlib/binary: Fix erode mask check. 2024-05-12 21:16:27 -07:00
Kwabena W. Agyeman
3fee02ffb5 modules/py_image: Update py_image_to with mp_arg_parse_all. 2024-05-12 21:12:17 -07:00
Kwabena W. Agyeman
3776924659 imlib/draw: Add AA support for draw_circle. 2024-05-10 18:54:18 -07:00
Kwabena W. Agyeman
7d4f70e9ef imlib/draw: Cleanup drawline code. 2024-05-09 20:48:39 -07:00
Ibrahim Abdelkader
b4f1461e23
Merge pull request #2205 from kwagyeman/kwabena/change_arm_math
imlib: Change ARM_MATH_CM4/CM7 to DSP.
2024-04-22 15:27:05 +02:00
Kwabena W. Agyeman
12831c1f73 imlib: Change ARM_MATH_CM4/CM7 to DSP. 2024-04-21 12:49:29 -07:00
iabdalkader
42fc57f3f8 misc: Bump firmware version. 2024-04-20 14:53:32 +02:00
Ibrahim Abdelkader
7662201790
Merge pull request #2204 from openmv/giga_gc_rotate
boards/ARDUINO_GIGA: Enable OMV_GC2145_ROTATE.
2024-04-19 12:22:14 +02:00
iabdalkader
fe25639d66 boards/ARDUINO_GIGA: Enable OMV_GC2145_ROTATE. 2024-04-19 12:18:48 +02:00
Ibrahim Abdelkader
4c45079bc2
Merge pull request #2203 from openmv/giga_csi_reset
boards/ARDUINO_GIGA: Enable RESET/PEN pin.
2024-04-19 09:09:13 +02:00
iabdalkader
0dac743ace boards/ARDUINO_GIGA: Enable RESET/PEN pin. 2024-04-19 09:02:02 +02:00
Ibrahim Abdelkader
dfe701e03f
Merge pull request #2201 from kwagyeman/kwabena/cleanup_set_pixel_aa
imlib/draw: Fix out of bound crash issue with set_pixel_aa.
2024-04-18 20:55:48 +02:00
Ibrahim Abdelkader
f947977c5c
Merge pull request #2199 from PixArt-Imaging-Inc/master
sensors/PAG7920: Support PixArt image sensor PAG7920.
2024-04-18 20:55:28 +02:00
FU CHEN-WEI
b3f9d70003 sensors/PAG7980: Support PixArt image sensor PAG7920.
1. Add a sensor driver for PAG7920.
2. Add PAG7920-related definitions.
2024-04-18 16:59:12 +08:00
Kwabena W. Agyeman
11acce5865 imlib/draw: Fix out of bound crash issue with set_pixel_aa. 2024-04-17 20:04:02 -07:00
Ibrahim Abdelkader
0a2773ca9a
Merge pull request #2160 from kwagyeman/kwabena/erode_dilate_speedup
imlib/binary: Improve erode/dilate performance using SIMD.
2024-04-06 15:13:47 +02:00
Kwabena W. Agyeman
f7ed570231 modules/py_image: Refactor get_similarity() to use draw_image backend. 2024-04-02 17:31:43 -07:00
Ibrahim Abdelkader
b2b62dbac8
Merge pull request #2146 from kwagyeman/kwabena/simplify_binary
modules/py_image: Update binary to use mp_arg_parse_all.
2024-03-31 15:13:11 +02:00
Ibrahim Abdelkader
7b1468ce89
Merge pull request #2154 from kwagyeman/kwabena/subsample_speedup
imlib/jpege: Improve jpeg YUV422/420 UV sub-sampling speed.
2024-03-30 12:30:32 +02:00
Ibrahim Abdelkader
d8a42359e5
Merge pull request #2180 from kwagyeman/kwabena/fix_spi_cs_slave_mode
ports/stm32: Don't control CS pin in slave mode.
2024-03-25 19:52:54 +02:00
Ibrahim Abdelkader
ef78972ffe
Merge pull request #2186 from openmv/bootloader_fix
bootloader: Fix GPIO clock macros.
2024-03-21 18:50:24 +02:00
iabdalkader
240332d30b bootloader: Fix GPIO clock macros. 2024-03-21 17:44:21 +01:00
Kwabena W. Agyeman
3dd93c4ffb ports/stm32: Don't control CS pin in slave mode. 2024-03-20 10:50:33 -07:00
Kwabena W. Agyeman
b037b2208a modules/py_image: Add support to control jpeg subsampling. 2024-03-20 10:33:56 -07:00
Kwabena W. Agyeman
31f58cc99a ports/stm32: Add support for YUV422 hardware JPEG compression. 2024-03-16 10:51:06 -07:00
Kwabena W. Agyeman
e7f78b29ab micropython: Turn crypto lib for mimxrt back on. 2024-03-15 10:50:44 -07:00
Kwabena W. Agyeman
ed0822ba62 imlib/binary: Improve erode/dilate performance using SIMD. 2024-03-11 17:03:14 -07:00
Ibrahim Abdelkader
dbe5187558
Merge pull request #2161 from kwagyeman/kwabena/update_macros
imlib: Update min/max usage to clamp and sat.
2024-03-11 09:06:53 +02:00
Kwabena W. Agyeman
99d22d4eb0 imlib/fmath: Fix fmath function inlining. 2024-03-10 15:29:25 +01:00
Ibrahim Abdelkader
3a2ffc5106
Merge pull request #2148 from kwagyeman/kwabena/erode_dilate_cleanup
modules/py_image: Use mp_arg_pasrse_all for erode/dilate.
2024-03-10 09:15:14 +02:00
Kwabena W. Agyeman
e63fbc7c29 modules/py_image: Update binary to use mp_arg_parse_all. 2024-03-09 18:58:32 -08:00
Kwabena W. Agyeman
f523602719 modules/py_image: Use mp_arg_pasrse_all for erode/dilate. 2024-03-09 18:56:28 -08:00
iabdalkader
34189ba51f boards/OPENMV_RT1060: Fix BLE baudrate.
The new UART dividers merged from upstream can't support an exact
3Mbits it seems. Reduce the baudrate to 2.5Mbits to fix BLE for now.
2024-03-08 09:37:08 +01:00
iabdalkader
09de3847b5 micropython: Update docs. 2024-03-05 18:49:08 +01:00
iabdalkader
caedd26f51 misc: Bump firmware version. 2024-03-04 18:38:30 +01:00
iabdalkader
c7d40f6af7 ports/mimxrt: Set the default WiFi AP's security mode. 2024-03-04 12:32:36 +01:00
iabdalkader
55cab8733f ports/stm32: Set the default WiFi AP's security mode. 2024-03-04 12:32:36 +01:00
iabdalkader
9244c61771 modules/winc1500: Activate the NIC on connect.
Activate the NIC on connect/config if it's not active, to allow
config to be called before the NIC is activated.
2024-03-04 12:32:36 +01:00
iabdalkader
03c56592df micropython/ninaw10: Activate the NIC on connect.
Activate the NIC on connect/config if it's not active, to allow
config to be called before the NIC is activated.
2024-03-04 12:32:36 +01:00
iabdalkader
070dd51e92 micropython: Add security mode constants for CYW43. 2024-03-04 12:32:19 +01:00
Kwabena W. Agyeman
83e12de2b0 sensors/gc2145: Fix hmirror and vflip. 2024-02-26 11:45:42 -08:00
Ibrahim Abdelkader
fcf0d8f15a
Merge pull request #2164 from openmv/gc_chip_id
sensors/GC2145: Fix chip id bug in sensor probe.
2024-02-26 13:43:58 +02:00
iabdalkader
834d157008 sensors/GC2145: Fix chip id bug in sensor probe. 2024-02-26 12:33:26 +01:00
Kwabena W. Agyeman
591bf1ce2d lib/libtf: Add model operator order hash support. 2024-02-25 12:19:41 -08:00
Kwabena W. Agyeman
3705652b23 imlib: Update min/max usage to clamp and sat. 2024-02-24 13:46:04 -08:00
Ibrahim Abdelkader
47da5ec07c
Merge pull request #2145 from kwagyeman/kwabena/optimize_math_ops
imlib: Optimize math ops.
2024-02-23 09:25:28 +02:00
Kwabena W. Agyeman
a1b484f378 imlib: Optimize math ops. 2024-02-22 12:21:10 -08:00
Kwabena W. Agyeman
e1aeef49fa imlib: Optimize binary ops. 2024-02-19 21:30:03 -08:00
Ibrahim Abdelkader
7084effc7f
Merge pull request #2139 from kwagyeman/kwabena/optimize_invert
modules/py_image: Optimize invert and negate.
2024-02-18 11:21:07 +02:00
Kwabena W. Agyeman
5b993fa765 imlib/jpege: Fix jpeg timing code. 2024-02-17 23:20:48 -08:00
Ibrahim Abdelkader
9b8e39c608
Merge pull request #2156 from kwagyeman/kwabena/update_lib_tf_again
lib/libtf: Fixed missing tensorflow operators crash.
2024-02-18 09:13:49 +02:00
Ibrahim Abdelkader
c0ee9a967f
Merge pull request #2068 from kwagyeman/kwabena/add_user_spi_display_control
modules/py_display: Add user SPI LCD register control.
2024-02-18 00:39:25 +02:00
Kwabena W. Agyeman
bee933d9d2 lib/libtf: Fixed missing tensorflow operators crash. 2024-02-17 14:32:10 -08:00
Kwabena W. Agyeman
59fea5bc52 imlib/jpege: Improve jpeg YUV422/420 UV sub-sampling speed. 2024-02-16 16:51:12 -08:00
Kwabena W. Agyeman
4fe7fb63b9 imlib: Remove mul(). 2024-02-16 11:49:19 -08:00
Kwabena W. Agyeman
179888f233 modules: Add controller and bus write support to spi display. 2024-02-15 13:45:42 -08:00
Kwabena W. Agyeman
7d1f378a08 modules: Change dsi read/write to generic bus read/write. 2024-02-15 13:43:03 -08:00
iabdalkader
694e783f14 boards/ARDUINO_GIGA: Enable GC2145 driver. 2024-02-15 21:06:19 +01:00
Ibrahim Abdelkader
17412e544c
Merge pull request #2151 from openmv/ov5640_gc2145_fix
misc: Support using GC2145 and OV5640 at the same time.
2024-02-15 22:05:33 +02:00
Ibrahim Abdelkader
3f1b71cb48
Merge pull request #2147 from kwagyeman/kwabena/remove_cartoon
imlib: Remove cartoon() method.
2024-02-15 22:02:33 +02:00
iabdalkader
a62d606467 misc: Support using GC2145 and OV5640 at the same time.
Both sensors have the same I2C address, so can't be enabled at the
same time. This patch tries to read a byte-sized address first,
if GC2145 chip id is not read back, then it retries reading wide
address. I tested this with RT1060 and H7 and I can detect the OV5640
fine.
2024-02-15 21:01:47 +01:00
Kwabena W. Agyeman
c017cde2bb ports/stm32: Move instances to init functions. 2024-02-14 17:02:29 -08:00
Kwabena W. Agyeman
567cc08281 ports/stm32: Fix setting freq to zero bug. 2024-02-14 16:57:43 -08:00
Kwabena W. Agyeman
c5cf3cf498 ports/stm32: Fix xclk duty cycle to 50%. 2024-02-14 16:53:57 -08:00
Ibrahim Abdelkader
78c7d1aa43
Merge pull request #2140 from kwagyeman/kwabena/remove_slow_stuff
modules/py_image: Remove div() method.
2024-02-14 09:39:17 +02:00
Ibrahim Abdelkader
82b61a8553
Merge pull request #2138 from kwagyeman/kwabena/move_ksize_helper
imlib: Add ksize helper.
2024-02-14 09:37:58 +02:00
Kwabena W. Agyeman
055a468b83 imlib: Remove cartoon() method. 2024-02-12 20:27:41 -08:00
Kwabena W. Agyeman
31847bdac7 imlib: Simplify binary mask and zero code. 2024-02-12 18:19:31 -08:00
Ibrahim Abdelkader
32b7075bc6
Merge pull request #2141 from openmv/sensor_utils_reconfigure
ports/all: Add a sensor function to reconfigure hardware if/when needed.
2024-02-12 22:30:19 +02:00
Ibrahim Abdelkader
afe7087b5e
Merge pull request #2123 from kwagyeman/kwabena/enable_edma
ports/mimxrt: Enable edma memcpy.
2024-02-12 22:30:01 +02:00
Kwabena W. Agyeman
63edb776c3 ports/mimxrt: Enable edma memcpy. 2024-02-12 12:05:24 -08:00
iabdalkader
ebc4c6c831 ports/all: Add a sensor function to reconfigure hardware if/when needed.
sensor_dcmi_config function was called every time the pixel format changed,
and typically reconfigured the capture interface. This originated from the
stm32 port, which required reconfiguring the DCMI if the pixel format changed.
However, most ports only require configuring the capture interface once
during initialization (for example nrf, rp2 and mimxrt ports).
The new sensor_config function is called after a setting that may require
reconfiguring the hardware changes, such as such as window size, frame size,
or pixel format. The exact setting that has changed is passed to the function,
allowing ports to decide whether to do a full reconfiguration of the hardware,
or just ignore it based on the changed setting.
2024-02-12 18:32:36 +01:00
Ibrahim Abdelkader
262eb98e43
Merge pull request #2133 from kwagyeman/kwabena/tensor_flow_update_2_2024
modules/py_tf: Refactor regression() code to handle arrays correctly.
2024-02-11 21:37:05 +02:00
Kwabena W. Agyeman
84cca7c6ca modules/py_image: Optimize invert and negate. 2024-02-10 11:54:26 -08:00
Kwabena W. Agyeman
7c932602e2 modules/py_image: Remove div() method. 2024-02-10 11:49:17 -08:00
Kwabena W. Agyeman
70ea77c044 imlib: Add ksize helper. 2024-02-10 11:24:57 -08:00
Kwabena W. Agyeman
61ec9006bb hal/sensor_utils: Allow DMA memcpy fallback to CPU. 2024-02-10 10:42:30 -08:00
Kwabena W. Agyeman
7c6105e54c ports/mimxrt: Use hardware byteswap support. 2024-02-10 10:31:52 -08:00
Kwabena W. Agyeman
c5ec576c11 modules/py_tf: Refactor regression() code to handle arrays correctly. 2024-02-09 11:43:37 -08:00
iabdalkader
b69f9306d4 boards/NICLA_VISION: Reduce flash usage. 2024-02-09 16:50:16 +02:00
iabdalkader
602530c5fd imlib: Add config options for find_features. 2024-02-09 16:08:12 +02:00
iabdalkader
1b58433320 imlib: Refactor collections linked list.
- Remove unused linked list functions.
- Remove iterator functions and replace them with a list_for_each macro.
Note the smaller iterator functions may Not have been inlined because
we -fno-inline-small-functions is used.
- Replace iterator_get which used memcpy, with a cast.
- Add list_insert and list_remove functions.
2024-02-07 13:25:00 +02:00
Ibrahim Abdelkader
3803e7d5fa
Merge pull request #2131 from openmv/refactor_boardconfig
misc: Refactor board config files.
2024-02-06 21:23:40 +02:00
iabdalkader
bc5222df03 misc: Refactor board config files.
- Rename options more consistently.
- Add OMV prefix to every config option.
- Replace the ST-specific DCMI prefix with CSI.
- Remove the clock source defined in every header to a common enum.
- Remove obsolete board config options.
2024-02-06 21:20:56 +02:00
Ibrahim Abdelkader
4d22163733
Merge pull request #2082 from kwagyeman/kwabena/pure_termal_example_update
scripts/examples: Add working Pure Thermal OpenMV example.
2024-02-04 11:38:13 +02:00
Ibrahim Abdelkader
bd3aa0494e
Merge pull request #2089 from kwagyeman/kwabena/fix_yuv_shift
ports: Add yuv shift to match bayer shift.
2024-02-04 11:37:29 +02:00
iabdalkader
e7087367e3 misc: Add custom board reset function. 2024-02-04 11:07:24 +02:00
Kwabena W. Agyeman
b57864ea11 scripts/examples: Add working Pure Thermal OpenMV example. 2024-02-03 12:06:04 -08:00
iabdalkader
725dcdd5cf boards/all: Enable OMA_ENABLE_DMA_MEMCPY for boards that support it. 2024-02-03 09:07:06 +02:00
iabdalkader
345b80358d ports/all: Refactor frame buffer line copying code. 2024-02-03 09:07:02 +02:00
Ibrahim Abdelkader
27161405b4
Merge pull request #2129 from openmv/nrf_sensor_format
misc: Code formatting.
2024-02-03 09:03:47 +02:00
iabdalkader
ae54a50663 misc: Code formatting. 2024-02-03 09:01:04 +02:00
iabdalkader
db65ab81d8 ports/all: Refactor frame rate control. 2024-02-03 08:59:52 +02:00
Ibrahim Abdelkader
f1f1bd1258
Merge pull request #2126 from openmv/update_micropython_fork
micropython: Update fork to fix shared TinyUSB HS config.
2024-02-02 10:37:21 +02:00
iabdalkader
759b4e05d8 micropython: Update fork to fix shared TinyUSB HS config. 2024-02-02 10:31:58 +02:00
Kwabena W. Agyeman
9b0dc3458a common/sensor: Add comments about bayer patterns. 2024-02-01 18:12:17 -08:00
Kwabena W. Agyeman
b5d9bbca30 ports: Move first_line and drop_frame to sensor.c. 2024-02-01 17:57:25 -08:00
Kwabena W. Agyeman
018f2eaed1 ports: Move copy_transposed_line to sensor.h. 2024-02-01 17:40:23 -08:00
iabdalkader
cec66374fb ports/stm32: Scan devices once per scan.
This saves boot time and also fixes an issue with some image
sensors.
2024-01-31 22:15:24 +02:00
iabdalkader
d04209e083 hal/omv_i2c: Update I2C flags. 2024-01-31 17:25:14 +02:00
Kwabena W. Agyeman
7a33d891b2 modules/py_fir: Fix mlx data root pointer. 2024-01-30 22:30:32 -08:00
Ibrahim Abdelkader
fce8e44989
Merge pull request #2098 from xue-singtown/master
imlib/draw: Add anti aliasing in draw_line.
2024-01-30 20:49:44 +02:00
xue-singtown
25f760991e imlib/draw: Add anti aliasing in draw_line. 2024-01-30 17:39:42 +08:00
Ibrahim Abdelkader
a3be7d6fa8
Merge pull request #2088 from kwagyeman/kwabena/fix_bayer
ports: Fix sensor bayer image with cropping and transpose.
2024-01-27 11:16:59 +02:00
Ibrahim Abdelkader
b792c592b2
Merge pull request #2117 from bitbank2/master
imlib/jpegd: Fix jpeg decode for non-multiple of 8.
2024-01-26 20:16:49 +02:00
Laurence Bank
19d1b11eef imlib/jpegd: Fix jpeg decode for non-multiple of 8. 2024-01-26 18:08:47 +00:00
Ibrahim Abdelkader
0afc4c6574
Merge pull request #2116 from openmv/sensor_abort_args
ports/all: Allow sensor_abort() to be called from different contexts.
2024-01-26 19:47:32 +02:00
iabdalkader
d478f19326 ports/all: Allow sensor_abort() to be called from different contexts.
This patch removes the duplicated `sensor_abort()` logic in the stm32 and mimxrt ports.
This is done by adding a `flush_fifo` argument, which controls the flush operation, and
a `in_irq` argument , which indicates whether `sensor_abort()` is called from within an
IRQ context or not.
2024-01-26 19:42:48 +02:00
iabdalkader
955c8ae42e micropython: Update Arduino boards pins. 2024-01-26 10:37:42 +02:00
iabdalkader
9999e0a9ea imlib: Combine framebuffer reset and flush.
To simplify the API, a single function is now used to flush old
frames only, or reset and drop all frames.
2024-01-26 09:05:45 +02:00
Ibrahim Abdelkader
609a882c68
Merge pull request #2114 from kwagyeman/kwabena/fix_comment
ports: Fix sensor abstraction layer comment.
2024-01-26 08:40:19 +02:00
Kwabena W. Agyeman
91250fba30 ports: Fix sensor abstraction layer comment. 2024-01-25 12:56:15 -08:00
Kwabena W. Agyeman
78a0d03ab3 port/mimxrt: Add sensor.JPEG support. 2024-01-24 18:44:56 -08:00
Kwabena W. Agyeman
01c2a8417c boards/OPENMV_RT1060: Update line buffer size to handle max image resolution. 2024-01-24 18:44:56 -08:00
Kwabena W. Agyeman
1f4bbd32a1 boards/OPENMV_RT1060: Update framebuffer size to maximum. 2024-01-24 18:44:56 -08:00
Kwabena W. Agyeman
6d640d8a9a ports/mimxrt: Fix mimxrt sensor.set_windowing(). 2024-01-24 18:44:56 -08:00
Kwabena W. Agyeman
391c1752f6 ports/mimxrt: Add frame_callback support. 2024-01-24 16:58:11 -08:00
Kwabena W. Agyeman
b4a57ffca2 ports/mimxrt: Add set_framerate support. 2024-01-24 16:58:11 -08:00
Ibrahim Abdelkader
baa8a4ee58
Merge pull request #2113 from kwagyeman/kwabena/fix_gamma_bug
modules/py_image: Fix bug with gamma arguments.
2024-01-24 20:57:06 +02:00
Kwabena W. Agyeman
64a02db1c7 micropython: Add back IMXRT CAN Driver. 2024-01-24 10:13:24 -08:00
Kwabena W. Agyeman
8540d44aa2 modules/py_image: Fix bug with gamma arguments. 2024-01-24 10:11:33 -08:00
Kwabena W. Agyeman
ab7f4323fa sensors/paj6100: Fix driver for RT1062. 2024-01-23 17:20:34 -08:00
Kwabena W. Agyeman
29076f597e board/OPENMV_RT1060: Enable ISP Ops. 2024-01-23 12:31:03 -08:00
Kwabena W. Agyeman
49dc731344 boards/OPENMV_RT1060: Enable ulab. 2024-01-22 21:48:33 -08:00
Kwabena W. Agyeman
11c1862345 micropython: Fix deepsleep on mimxrt1062. 2024-01-22 14:34:41 -08:00
iabdalkader
f42fa85873 ports/all: Remove custom pendsv prototypes. 2024-01-20 10:18:47 +02:00
iabdalkader
8da2436c05 ports/all: Refactor PendSV code.
All ports use common PendSV code now, with port-specific
PendSV entries defined in pendsv.h files.
2024-01-20 10:02:56 +02:00
Kwabena W. Agyeman
3b263c3a68 boards: Enable OV5640 Autofocus firmware and add example. 2024-01-19 16:21:04 -08:00
iabdalkader
eec8640d7e misc: Use LD wrap for redirecting serial data to TinyUSB debug code.
Prior to this update, each port had to be patched to call TinyUSB
debugging function. Now these wrappers will call the port's functions
if debugging is not enabled.
2024-01-19 18:09:49 +02:00