Commit Graph

2967 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
Kwabena W. Agyeman
5d7f52bf44 common: Change linker variable to uint32. 2024-07-31 14:35:46 -07: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
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
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
d7042349b5 tools/tflite2c: Support converting Vela models on the fly. 2024-07-23 10:40:39 +03:00
iabdalkader
2d6bc18e9b misc/common: Reserve JPEG buffer only if defined. 2024-07-22 11:03:19 +03:00
iabdalkader
f9cbe170eb misc/common: Add nosys stubs. 2024-07-22 10:43:06 +03:00
iabdalkader
574fc72c35 misc: Bump firmware version. 2024-07-20 11:13:43 +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
Ibrahim Abdelkader
f922b76ae3
Merge pull request #2228 from kwagyeman/kwabena/fix_missing_invalidates
imlib/draw: Add missing speculative read invalidates.
2024-07-19 18:15:34 +02:00
iabdalkader
02888706c0 boards/ARDUINO_PORTENTA_H7: Enable Open-AMP. 2024-07-19 12:29:33 +03:00
Ibrahim Abdelkader
4a036f6059
Merge pull request #2299 from openmv/common_ld_fix
misc: Update common linker script.
2024-07-19 10:17:07 +02:00
iabdalkader
75c75b50ee misc: Update common linker script.
Align core and shm to 32.
2024-07-19 11:13:29 +03:00
Kwabena W. Agyeman
87e8cbba0e modules/py_tv: Improve cache display update cache efficency. 2024-07-18 17:46:16 -07:00
Kwabena W. Agyeman
9848eed128 modules/py_image: Replace unpack with ndarray creation. 2024-07-18 16:36:16 -07:00
Kwabena W. Agyeman
8b38f38378 modules/py_ml: Make predict output a numpy array. 2024-07-18 16:36:16 -07:00
Kwabena W. Agyeman
6ce27c910a boards: Enable 4 dims in ulab and disable haar cascades. 2024-07-18 16:36:16 -07:00
Ibrahim Abdelkader
e02bc63552
Merge pull request #2214 from kwagyeman/kwabena/update_morph
modules/py_image: Update morph() to use arg parse.
2024-07-19 00:40:46 +02:00
Kwabena W. Agyeman
919d3379d2 modules/py_image: Update morph() to use arg parse. 2024-07-18 12:27:10 -07:00
iabdalkader
17ff43d882 boards/ARDUINO_PORTENTA_H7: Set CYW43 Bluetooth firmware header. 2024-07-18 16:31:03 +03:00
iabdalkader
2a39d6690d boards/ARDUINO_NICLA_VISION: Set CYW43 Bluetooth firmware header. 2024-07-18 16:31:03 +03:00
iabdalkader
368d8af133 boards/ARDUINO_GIGA: Set CYW43 Bluetooth firmware header. 2024-07-18 16:31:03 +03:00
iabdalkader
1600c3a15f boards/ARDUINO_GIGA: Switch the CYW43 to firmware W4343WA1_45_98_102. 2024-07-18 16:31:03 +03:00
iabdalkader
269313c0ee boards/ARDUINO_PORTENTA_H7: Switch the CYW43 to firmware W4343WA1_45_98_102. 2024-07-18 16:31:03 +03:00
iabdalkader
24db2052ca boards/ARDUINO_NICLA_VISION: Switch the CYW43 to firmware W4343WA1_45_98_102. 2024-07-18 16:31:03 +03:00
Kwabena W. Agyeman
ddc1de8fb9 ports/stm32/jpeg: Add missing speculative read invalidates. 2024-07-16 13:49:14 -07:00
Kwabena W. Agyeman
4110022e5d imlib/draw: Add missing speculative read invalidates. 2024-07-16 13:49:12 -07:00
iabdalkader
e6f4afd661 misc: Fix DMA memory alignment. 2024-07-16 23:02:09 +03:00
iabdalkader
3b197a770d boards: Increase TinyUSB ring buffer size.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2024-07-16 14:33:48 +03:00
iabdalkader
3e61aa8933 misc/usbdbg: Increase text buffer size in GET_STATE. 2024-07-16 14:15:15 +03:00
Ibrahim Abdelkader
547859cb00
Merge pull request #2283 from kwagyeman/kwabena/fix_mlx90640
ports/mimxrt: Fix I2C for the MLX90640 driver.
2024-07-16 12:04:19 +02:00
Ibrahim Abdelkader
5b85cee97c
Merge pull request #2286 from openmv/ml_model_addr
modules/py_ml: Add tensor area memory address to model object.
2024-07-16 11:50:12 +02:00
iabdalkader
d66aaa8b35 modules/py_ml: Add tensor area memory address to model object.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2024-07-16 12:44:38 +03:00
Kwabena W. Agyeman
b7e0b40058 ports/mimxrt: Fix I2C for the MLX90640 driver. 2024-07-15 12:55:16 -07:00
Kwabena W. Agyeman
38d930ab65 sensors/hm0360: Enable HM0360 to work on GIGA. 2024-07-14 19:45:42 -07:00
Ibrahim Abdelkader
357b6f9b07
modules/py_ml: Fix model kwargs. (#2280)
* modules/py_ml: Fix model kwargs.
2024-07-14 23:44:37 +02:00
Kwabena W. Agyeman
d24d2136ea modules/py_ml: Fully vectorize all input and output scaling/datatypes. 2024-07-13 11:33:09 -07:00
Ibrahim Abdelkader
e9a6cbac34
Merge pull request #2263 from kwagyeman/kwabena/fix_ml_scaling
modules/py_image: Change scale argument to (min,max) range.
2024-07-13 18:50:45 +02:00
Kwabena W. Agyeman
8b1b548ed2 scripts/examples: Add regression example. 2024-07-12 15:35:44 -07:00
Ibrahim Abdelkader
abe54df3e7
Merge pull request #2274 from openmv/ml_updates
modules/py_ml: ML updates and fix.
2024-07-12 23:40:55 +02:00
iabdalkader
4506682c2d modules/py_ml: Save labels in model object. 2024-07-13 00:33:27 +03:00
iabdalkader
dd1474e22e misc: Export common environment variables from top Makefile. 2024-07-12 23:06:32 +03:00
iabdalkader
0fbc6f114e modules/py_ml: Fix ndarray ndims check. 2024-07-12 22:01:57 +03:00
Ibrahim Abdelkader
829bbc5cf8
Merge pull request #2264 from kwagyeman/kwabena/buffer_check
modules/py_image: Add buffer length sanity check.
2024-07-11 18:42:49 +02:00
Ibrahim Abdelkader
9a67079fd6
Merge pull request #2272 from openmv/tinyusb_debug
misc: Tinyusb debug updates.
2024-07-10 11:38:30 +02:00
Ibrahim Abdelkader
4aab0f1aa4
Merge pull request #2271 from kwagyeman/kwabena/fix_input_buffer_size
modules/py_ml: Fix the size of the input bytearray.
2024-07-10 11:38:20 +02:00
iabdalkader
9c1283c58e ports/all: Wrap more CDC functions.
Just to ensure tud_task is not call by other code while debugging
is enabled.
2024-07-10 12:35:08 +03:00
iabdalkader
0a69b3df16 misc: Update TinyUSB debug code.
* Wrap-up more CDC functions. Note these were moved to common code
upstream, so in the future we'll only need to wrap one or two functions.
* Recover from text ringbuf overflow by resetting it.
* More efficient text ringbuf read/write.
2024-07-10 12:35:05 +03:00
Kwabena W. Agyeman
454fab7448 modules/py_ml: Fix the size of the input bytearray. 2024-07-09 22:19:15 -07:00
iabdalkader
2a3be63d41 misc: Fix malloc heap memory typo. 2024-07-10 00:20:01 +03:00
iabdalkader
0cef6239e0 misc/usbdbg: Add GET_STATE command.
The GET_STATE command is a command that returns flags, frame width,
height, size, and the text buffer (up to 40 bytes), in a single 64
bytes packet to reduce the bandwidth/overhead of the protocol.
The packet format is:
word    word    word    word    2 words     40 bytes
<flags> <width> <height> <size> <reserved>  <null-terminated text>

The flags are mostly reserved, only the following bits are defined:
0x001 script running
0x010 text buffer valid.
0x100 JPEG frame buffer ready.
2024-07-09 19:18:51 +03:00
Kwabena W. Agyeman
a36ac2db06 modules/py_image: Add buffer length sanity check. 2024-07-08 23:03:07 -07:00
Kwabena W. Agyeman
7b79fb4c77 modules/py_image: Change scale argument to (min,max) range. 2024-07-08 22:32:57 -07:00
Kwabena W. Agyeman
3f8491cb0e scripts/libraries: Move nms to python. 2024-07-07 23:02:15 -07:00