Commit Graph

3928 Commits

Author SHA1 Message Date
Kwabena W. Agyeman
fa00c38780 drivers/genx320: Add Prophesee genx320 stm32f7 driver. 2024-09-22 16:58:40 -07:00
Kwabena W. Agyeman
7736b0a4cf common: Restore original 2bpp behavior for any framebuffer. 2024-09-22 16:57:40 -07:00
iabdalkader
88ee3bf830 lib/tflm: Update submodule. 2024-09-18 21:15:41 +02:00
Kwabena W. Agyeman
72a3439745 imlib/draw: Optimize set_pixel_aa. 2024-09-13 19:56:22 -07:00
Kwabena W. Agyeman
898038af55 micropython: Update documentation for v4.5.9. 2024-09-05 13:29:11 -07:00
iabdalkader
0937bc8a05 misc/common: Support overriding the resolution table.
Fixes #2385
2024-09-04 21:14:29 +02:00
iabdalkader
ccda403500 misc: Bump firmware version. 2024-09-04 15:24:16 +02:00
iabdalkader
05d40bf497 boards/ARDUINO_NICLA_VISION: Compile user modules with -Os. 2024-09-04 10:08:56 +02:00
iabdalkader
85db1a229c modules: Use the default optimization level for all user C modules.
By appending the optimization level to modules CFLAGS. Note this
works because according to the man page: If you use multiple -O
options, with or without level numbers, the last such option is
the one that is effective.
2024-09-04 10:08:41 +02:00
iabdalkader
4ad64c4698 lib/tflm: Use GC's free memory for the temporary tensor arena.
On some boards, FB memory can become less than the available GC memory
for example with 3 frame buffers or a big frame. In this case the first
pass allocation (the one used to get the tensor arena's actual size)
can fail, even though GC has enough memory to allocate the arena.
This patch uses GC's free memory in the first pass to get the arena
size.
2024-09-03 19:32:21 +02:00
iabdalkader
c39e7740c4 micropython: Update submodule.
* Fix libmetal's rules.
* Revert gc max_size.
2024-09-03 08:52:34 +02:00
iabdalkader
0138cdf403 misc: Move Haar cascades. 2024-09-01 18:57:19 +02:00
iabdalkader
1d63716872 misc: Move Haar cascades. 2024-09-01 18:35:36 +02:00
Ibrahim Abdelkader
73a30f19db
Merge pull request #2401 from kwagyeman/kwabena/parameterize_apriltags
imlib/apriltag: Disable unused TAG families by default.
2024-09-01 11:41:04 +03:00
Kwabena W. Agyeman
c0d4759f85 imlib/apriltag: Switch apriltag object to attributes. 2024-08-31 21:19:37 -04:00
Kwabena W. Agyeman
effe12f2cc imlib/apriltag: Disable unused TAG families by default. 2024-08-31 04:04:50 -07:00
iabdalkader
fdc8a07a33 micropython: Update submodule.
* Revert optimization levels.
* Allow boards to update TinyUSB CDC buffer sizes.
* Fix libmetal's build rule.
* Fix gc's max_free size.
2024-08-31 11:53:13 +02:00
iabdalkader
6513276c1d scripts/libraries: Remove ble_advertising.
aioble should be used instead. There's an example for the temperature
using aioble.
2024-08-30 20:38:06 +02:00
iabdalkader
f03c2658e7 drivers: Optimize IMU drivers for size.
Those don't need to be fast.
2024-08-30 20:18:36 +02:00
iabdalkader
7259a33411 imlib/apriltag: Switch to libm's sin/cos. 2024-08-30 20:14:56 +02:00
iabdalkader
0f8b852356 ports/stm32: Fix CM4 boot memory. 2024-08-30 13:40:11 +02:00
Ibrahim Abdelkader
00f71413b7
Merge pull request #2391 from openmv/makefile_update
misc/Makefile: Remove uninitialized flag.
2024-08-28 14:44:31 +03:00
iabdalkader
e727de1408 misc/Makefile: Remove uninitialized flag. 2024-08-28 13:28:37 +02:00
iabdalkader
bf4e7e4513 modules/py_image: Fix implicit float conversion. 2024-08-28 13:20:41 +02:00
Kwabena W. Agyeman
13b68a3ee8 sensors/ov7725.c: Fix sensor bayer pattern. 2024-08-23 18:30:31 -07:00
Kwabena W. Agyeman
f9e79d1d7b imlib: Optimize debayering with Helium. 2024-08-23 18:00:24 -07:00
iabdalkader
83804c9444 github/workflows: Fix LLVM path. 2024-08-23 16:02:39 +03:00
iabdalkader
13e6573c46 ports/all: Refactor sensor flags. 2024-08-23 15:36:31 +03:00
iabdalkader
436f226c6e misc: Add support for building specific imlib files with clang. 2024-08-21 11:39:30 +03:00
iabdalkader
ca48b8c262 misc/common: Fix profiling macro.
Now it can be called multiple times in the same function and
can be nested.
2024-08-17 22:02:37 +03:00
Ibrahim Abdelkader
bad9342552
Merge pull request #2377 from openmv/tflite_vela_update
tools/tflite2c: Set Vela optimization per model.
2024-08-17 18:55:49 +03:00
iabdalkader
4e3ec807f2 tools/tflite2c: Set Vela optimization per model. 2024-08-17 18:37:34 +03:00
iabdalkader
7b36e4ef67 imlib: Fix automatic vbuffer count.
Before this patch, a 1.5MB framebuffer used a single vbuffer for VGA
and smaller resolutions, causing the sensor driver to restart with
every snapshot. With this patch, a 1.5MB frame buffer uses 2 vbuffers
for VGA/RGB and 3 vbuffers for VGA/grayscale **by default**.
In the case of 2 vbuffers, it should leave the rest for `fb_alloc`, so
`fb_alloc` still gets some extra space, but only if there's any left.

`set_buffers` now replaces `auto_adjust`. Passing `-1` to `set_buffers`
will attempt to use 3 vbuffers, each with a size of `frame_size` if
they fit; otherwise, the maximum possible buffers will be used.
Passing `1` will use the whole framebuffer. In this case, `frame_size`
is ignored. Additionally, `set_buffers` is now more efficient with buffer
sizes. For example, if the source is 1bpp (Bayer) and the destination is
1bpp (grayscale or Bayer), the vbuffer size will be `w*h`, instead of
assuming that everything is 2bpp, which allows for more vbuffers.
2024-08-15 17:26:00 +03:00
iabdalkader
25756429e0 micropython: Update submodule.
Sync upstream Open-AMP changes.
2024-08-14 11:24:25 +03:00
iabdalkader
bcef3e7156 micropython: Update submodule.
Open-AMP fixes from upstream.
2024-08-13 12:00:35 +03:00
iabdalkader
d1a20fb89d misc/common: Implement usb_cdc_reset_buffers for TinyUSB. 2024-08-12 23:19:18 +03:00
iabdalkader
a11635b03b misc/common: Fix usb_cdc_reset_buffers prototype. 2024-08-12 23:18:59 +03:00
iabdalkader
b2aa7db192 micropython: Update submodule.
Fix CDC debug buffer issue.
2024-08-12 23:17:26 +03:00
iabdalkader
c5e4297bef common/usbdbg: Revert changes to usbdbg/framebuffer.
This reverts commit afcd12cb6a.
2024-08-12 22:19:49 +03:00
iabdalkader
bf2e22614b boards/OPENMV4P: Set HW crop flag.
This should have been enabled in 51e6fd2912.
2024-08-12 17:25:41 +03:00
iabdalkader
bbc48aa0b2 drivers/dave2d: Add license file. 2024-08-07 20:17:22 +03:00
iabdalkader
da4c686dc3 sensors/ov7725: Set bayer format. 2024-08-06 17:43:41 +03:00
iabdalkader
b93b43f506 imlib: Fix raw framebuffer size. 2024-08-06 17:42:01 +03:00
iabdalkader
6508282562 misc/sensor: Add RAW flag.
For sensors that only support bayer output.
2024-08-06 17:35:52 +03:00
Kwabena W. Agyeman
afcd12cb6a common/usbdbg: Enable RAW binary mode streaming. 2024-08-05 18:43:24 -07:00
Kwabena W. Agyeman
6e705114f1 imlib/framebuffer: Fix RAW streaming call to draw_image. 2024-08-05 18:43:23 -07:00
Kwabena W. Agyeman
50639050fb imlib/draw: Move bilinear offset after GPU call. 2024-08-05 14:20:47 -07:00
iabdalkader
18bc05d132 imlib: Add support for sending raw preview frames.
This allows boards that don't have a hardware JPEG encoder, but
do have fast scaling, to bypass JPEG encoding and send down-scaled
raw frames. The raw preview frames are capped at a configurable max,
but should not exceed ~60KBs.
2024-08-05 17:53:19 +03:00
iabdalkader
dbe6ae9f18 misc/linker: Update linker script variables.
* Add start/end to JPEG buffer. This allows board config files to
define them using linker script syntax (K, M etc..).
* Rename variables more consistently.
2024-08-05 16:23:34 +03:00
iabdalkader
dfd62f4606 imlib/jpeg: Minor clean-up.
Remove STORECODE macro and just use write_bits. This has absolutely
no effect on performance, but makes the code easier read.
2024-08-04 17:17:44 +03:00
iabdalkader
529fc489b4 misc/common: Fix profile macro. 2024-08-04 15:14:39 +03:00
iabdalkader
aad37c9c85 misc/common: Add arg to profile macro.
This way it can be called multiple times in the same function.
2024-08-04 12:55:47 +03:00
iabdalkader
a096b149ea misc/common: Add timing macros.
Those can be used for timing functions. To enable build with PROFILE=1.
2024-08-03 19:35:49 +03:00
iabdalkader
bc34796b26 micropython: Update submodule. 2024-08-03 11:56:53 +03:00
iabdalkader
ead787a2e5 micropython: Update submodule. 2024-08-03 10:46:28 +03:00
iabdalkader
8b7bb8bdb6 boards/all: Remove USB packet size define. 2024-08-03 10:46:28 +03:00
iabdalkader
d34a2eae55 ports/wifidbg: Update WiFi debug code.
Note this feature will be replaced soon.
2024-08-03 10:46:28 +03:00
iabdalkader
f306d07b03 misc/usbdbg: Add CDC read/write callbacks.
These callbacks allow the debug code to read/write directly from
the stack, if possible, to avoid the extra memcpy.
2024-08-03 10:46:26 +03:00
Ibrahim Abdelkader
6b1308fcc5
Merge pull request #2342 from openmv/stm32_boot_uvc
ports/stm32: Move stm32-specific bootloader and uvc to port dir.
2024-08-01 21:05:32 +02:00
iabdalkader
9a3a8c4eb2 ports/stm32: Move stm32-specific bootloader and uvc to port dir.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2024-08-01 21:58:50 +03:00
iabdalkader
2de29c369b drivers/dave2d: Fix video memory bug. 2024-08-01 21:40:45 +03:00
Ibrahim Abdelkader
a5421c661b
Merge pull request #2339 from kwagyeman/kwabena/fix_mpu_uint32
common: Change linker variable to uint32.
2024-07-31 23:49:37 +02:00
Kwabena W. Agyeman
5d7f52bf44 common: Change linker variable to uint32. 2024-07-31 14:35:46 -07:00
iabdalkader
c1b20c2f7b drivers/dave2d: Remove license for now.
Apparently this is the wrong license, will update when I have
the right one.
2024-07-31 22:56:40 +03:00
Ibrahim Abdelkader
1fa077ffbe
Merge pull request #2334 from openmv/add_dave2d_driver
drivers/dave2d: Add D/AVE 2D GPU driver.
2024-07-31 20:05:06 +02:00
iabdalkader
20896add5b drivers/dave2d: Add D/AVE 2D GPU driver. 2024-07-31 21:01:48 +03:00
iabdalkader
d6b3b5a02f imlib: Fix framebuffer_get_buffer_size().
If the frame size is set, the memory for each buffer can be reduced,
freeing up space for fb_alloc(). However this can only be done if
the camera interface supports hardware cropping, i.e., the actual
frame size will match the specified window size, otherwise the
frame buffer size needs to stay the same.
2024-07-31 20:22:22 +03:00
iabdalkader
51e6fd2912 boards/All: Set hardware cropping flag for all st/nxp boards. 2024-07-31 20:15:14 +03:00
iabdalkader
14fbe44d4a misc: Bump firmware version. 2024-07-31 20:09:18 +03:00
Ibrahim Abdelkader
7a90254aac
Merge pull request #2329 from kwagyeman/kwabena/add_uint16_support
modules/py_ml: Add uint16 support to match ndarrays.
2024-07-31 18:56:43 +02:00
iabdalkader
ab62a038bf micropython: Update submodule. 2024-07-31 17:41:47 +03:00
iabdalkader
8b9a9aeafc misc: Bump firmware version. 2024-07-31 12:09:39 +03:00
Kwabena W. Agyeman
d48832c77c ports/stm32: Fix MPU region protection bug. 2024-07-30 22:35:12 -07:00
Ibrahim Abdelkader
51511ecb10
Merge pull request #2189 from kwagyeman/kwabena/line_op_update
modules/py_image: Update all lineops to use the draw_image backend.
2024-07-30 19:01:16 +02:00
Ibrahim Abdelkader
d2b9b57b47
Merge pull request #2332 from kwagyeman/kwabena/add_model_address
modules/py_ml: print model address location too.
2024-07-30 15:34:23 +02:00
Kwabena W Agyeman
4dbc7dc2fe
imlib/draw: Refactor draw_image to support gpu offload. (#2328)
* imlib/draw: Refactor draw_image to support gpu offload.

* misc/common: Fix GPU deinit.

---------

Co-authored-by: Ibrahim Abdelkader <i.abdalkader@gmail.com>
2024-07-30 09:38:42 +02:00
Kwabena W. Agyeman
9811006ca6 modules/py_ml: print model address location too. 2024-07-29 12:57:11 -07:00
Ibrahim Abdelkader
8f81c2f328
Merge pull request #2330 from kwagyeman/kwabena/add_pag7920
modules/py_sensor: Add missing PAG7920 enum.
2024-07-29 18:23:09 +02:00
iabdalkader
ac1e0a2663 misc/common: Add GPU memory section to common ld. 2024-07-29 10:50:05 +03:00
Kwabena W. Agyeman
cb1f63a95e modules/py_sensor: Add missing PAG7920 enum. 2024-07-28 21:00:54 -07:00
Kwabena W. Agyeman
b90b10dd1a modules/py_ml: Add uint16 support to match ndarrays. 2024-07-28 20:54:01 -07:00
Larry Bank
e54ed443cf imlib/jpegd: Fix for JPEG decoder boundary problem. 2024-07-26 12:03:04 -07:00
iabdalkader
6fb115a74c lib/tflm: Update submodule. 2024-07-25 23:11:17 +03:00
Kwabena W. Agyeman
1915bf2657 modules/py_image: Update all lineops to use the draw_image backend. 2024-07-25 11:43:19 -07:00
iabdalkader
6beb16d3a8 boards/OPENMV3: Revert imlib config. 2024-07-25 12:32:45 +03:00
iabdalkader
27e308fadc misc: dummy commit. 2024-07-25 03:12:27 +03:00
iabdalkader
96006c8eeb micropython: Update submodule. 2024-07-23 20:04:18 +03:00
iabdalkader
31c9280c68 lib/tflm: Fix Makefile rules to generate files once.
Files were generated twice.
2024-07-23 13:31:44 +03:00
iabdalkader
d7042349b5 tools/tflite2c: Support converting Vela models on the fly. 2024-07-23 10:40:39 +03:00
iabdalkader
1d48fe128a lib/tflm: Remove Vela models.
These will be generated on the fly.
2024-07-22 23:06:08 +03:00
Michael Paul Coder
9a881d477c
misc/README: Create toolchain parent directory. 2024-07-22 21:00:59 +10:00
Michael Paul Coder
9c938e045b
misc/README: Update builld instructions. (#2307)
misc/README: Update builld instructions.
2024-07-22 12:24:40 +02:00
iabdalkader
2d6bc18e9b misc/common: Reserve JPEG buffer only if defined. 2024-07-22 11:03:19 +03:00
Ibrahim Abdelkader
7e1be46202
Merge pull request #2305 from openmv/nosys_stubs
misc/common: Add nosys stubs.
2024-07-22 09:51:58 +02:00
iabdalkader
f9cbe170eb misc/common: Add nosys stubs. 2024-07-22 10:43:06 +03:00
Michael Paul Coder
0783a26761
misc: Update GCC toolchain installation instructions. 2024-07-20 22:40:46 +10:00
iabdalkader
574fc72c35 misc: Bump firmware version. 2024-07-20 11:13:43 +03:00
iabdalkader
bf64608f47 micropython: Update submodule. 2024-07-20 10:57:29 +03:00
Kwabena W Agyeman
b7800f1c8b
misc: Add back original licenses. (#2298)
misc: Add back original licenses.
2024-07-20 09:28:22 +02:00
Ibrahim Abdelkader
5df4e84699
Merge pull request #2293 from kwagyeman/kwabena/pack_unpack_2
modules/py_ml: Make predict output a numpy array.
2024-07-19 18:17:19 +02:00