Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ESP32-P4 - Factory Demo / esp-ui-demo Camera App Missing (AEGHB-834) #110

Closed
3 tasks done
wezhunter opened this issue Oct 4, 2024 · 9 comments
Closed
3 tasks done

Comments

@wezhunter
Copy link

Answers checklist.

  • I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
  • I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
  • I have searched the issue tracker for a similar issue and not found a similar issue.

General issue report

Hi,
The ESP32-P4 factory demo original firmware build (p4_factory_v14_012.bin) includes a CSI camera app but the source hosted on here doesn't include it. The newer esp-ui-demo doesn't include it either.

Would it be possible to release the source for it please, even it its out of date, since it has LVGL, CSI and rendering all integrated?

Video of the original factory firmware is here:
https://youtu.be/sQvEbEkGLbs?t=98

Thanks

@github-actions github-actions bot changed the title ESP32-P4 - Factory Demo / esp-ui-demo Camera App Missing ESP32-P4 - Factory Demo / esp-ui-demo Camera App Missing (AEGHB-834) Oct 4, 2024
@Horion0415
Copy link
Contributor

Yes, the camera-related examples have not been released yet because the ISP driver and algorithms have not been fully optimized. Once they are ready, we will release the relevant code as soon as possible. If you urgently need to test the camera functions, you can refer to: https://github.com/espressif/esp-idf/tree/master/examples/peripherals/camera/camera_dsi. In the future, we will officially release examples integrating the LCD, as well as the camera code in the demo.

@wezhunter
Copy link
Author

Thanks for the prompt and detailed reply!

I understand there is optimisations due and it's pre-release hardware and software. I have seen the ECO2 comments and YUV422 notes in the idf codebase.

Purely in the interest of supporting future engineering, I'm interested to see how the camera app was implemented as a back buffer with LVGL overlays in the factory demo. I can only assume it's using a dma transfer of the ISP YUV bitstream output into the LVGL display buffer with an LVGL transparent bottom and active background? Would be really interesting to know!

If you could please provide a concrete example as to how this was done it would be greatly appreciated. In return I can help support longer term testing/validation, especially around some 1080p DSI outputs that I am working on.

Thanks

@Horion0415
Copy link
Contributor

There are two approaches to implementing this. The simple approach is to use the LVGL canvas widget, fill the canvas with the camera buffer, and then overlay the required LVGL widgets on top. However, this might result in frame rate loss. The more complex approach is to use the ESP32-P4's PPA (https://github.com/espressif/esp-idf/tree/master/examples/peripherals/ppa/ppa_dsi), but this requires complex buffer management. We will release related examples later, but currently, these examples are blocked by ISP driver and algorithm optimizations.

It’s also important to note that the examples in IDF are recommended only for driver testing purposes. For application-level implementations, it’s suggested to use the esp_video component (https://github.com/espressif/esp-video-components/tree/master/esp_video), although examples combining it with an LCD are still being integrated and will be released later.

@wezhunter
Copy link
Author

Thanks once again for the immediate response and your support!

Yes we've been experimenting the PPA Blend and LVGL and optimising for maximum frame rate at 1920x1080 resolutions with RGB565 data.

Regardless it's always useful to see a functional concrete example, even if at different resolutions and sub optimised pre-release, purely as a concept.

Will continue experimenting here to find which works best.

Thanks for the pointer regarding esp-video component, it's something we've just refactored for that given it's near seamless integration. It's great.

Do you happen to know what kind of timescales we might be looking at regarding a future release of an example camera app? Be insightful to understand what particular areas may require improvement that may be an impediment, as such.

Thanks

@Horion0415
Copy link
Contributor

It is expected that in October, examples of using esp_video in combination with an LCD will be released. At the same time, the optimization of ISP algorithms and drivers will be completed soon. Once this is done, we will first release the camera part of the development board’s factory firmware (this part of the code is actually just LVGL widgets overlaid). Following that, we will release examples of Camera + LVGL using PPA management, as well as examples related to AI (such as facial recognition and pedestrian detection). All of this is in the plan.

@wezhunter
Copy link
Author

Fantastic to hear. I'm sure others out there will be excited to hear this too!

Keep up the amazing work!

Thanks

@wezhunter
Copy link
Author

Closing this issue as it's been answered

@Horion0415
Copy link
Contributor

Hi, the ISP driver and algorithm for ESP32-P4 have been preliminarily completed. You can test it based on the esp_video v0.7.0 version (https://github.com/espressif/esp-video-components/tree/master/esp_video). In the future, we will gradually release examples that combine this component with LCD, as well as the factory firmware code for the development board.

@wezhunter
Copy link
Author

Thank you! I see the latest merge containing the camera app. Truly appreciated

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants