update documentation

This commit is contained in:
Lorow 2022-07-04 23:20:03 +02:00 committed by Zdzislaw Goik
parent b3c4930934
commit d7844aa949
2 changed files with 33 additions and 16 deletions

View File

@ -27,7 +27,7 @@ int OpenIris::CameraHandler::setupCamera()
if (psramFound())
{
log_d("Found psram, setting the 176x144 image quality");
log_d("Found psram, setting the 240x240 image quality");
config.frame_size = FRAMESIZE_240X240;
config.jpeg_quality = 5;
config.fb_count = 3;
@ -43,6 +43,7 @@ int OpenIris::CameraHandler::setupCamera()
esp_err_t err = esp_camera_init(&config);
camera_sensor = esp_camera_sensor_get();
// fixes corrupted jpegs, https://github.com/espressif/esp32-camera/issues/203
camera_sensor->set_reg(camera_sensor, 0xff, 0xff, 0x00); // banksel
camera_sensor->set_reg(camera_sensor, 0xd3, 0xff, 5); // clock
camera_sensor->set_brightness(camera_sensor, 0);

View File

@ -1,24 +1,28 @@
#OpenIris
#OpenIris
OpenIris is the firmware part of the [EyeTrackVR Project](https://github.com/RedHawk989/EyeTrackVR).
The aim of this project is to provide a fast and performant firmware for streaming the eye data back to the PC for further processing and actual tracking.
# **NOTE**
This is a work in progress project, things in the main branch are tested and should work just fine, but as it is in its very early stages it might not "just work".
Nonetheless, pull requests and issues are welcome, let's get this cracking!
Nonetheless, pull requests and issues are welcome, let's get this cracking!
# Features
### Working right now
- [x] Basic stream in 60FPS at 248x248px in MJPEG in greyscale
- [X] A basic HTTP server with API
- [x] A basic HTTP server with API
- [x] Basic control of the camera though API
- [x] Health checks
- [X] OTA updates
- [X] ROI selection for eye area
- [X] MDNS - so that the server itself will detect and communicate with the tracker without you doing anything. No need to configure IPs and stuff, it's automagic
- [x] OTA updates
- [x] ROI selection for eye area
- [x] MDNS - so that the server itself will detect and communicate with the tracker without you doing anything. No need to configure IPs and stuff, it's automagic
### TODO
- [ ] Implementation of littleFS for saving camera and ROI settings
- [ ] LED status patterns - so that you know what's going on without plugging the tracker in to the PC
- [ ] FEC encoding with packet injection for even faster streams!
@ -31,26 +35,29 @@ Nonetheless, pull requests and issues are welcome, let's get this cracking!
[IndexEyeTrackVR](https://github.com/rrazgriz/IndexEyeTrackVR) - An OpenCV version of the EyeTrackVR with a mount for Valve Index made by one of the community members - Razgriz!
[VrEyeToolbox](https://github.com/SummerSigh/VrEyeToolbox) - A compilation of different AI/ML methods and models for eye tracking in VR, made by Summer from CFVR!
[VrEyeToolbox](https://github.com/SummerSigh/VrEyeToolbox) - A compilation of different AI/ML methods and models for eye tracking in VR, made by Summer from CFVR!
# Additional equipment and software:
Below is a list of parts, mounts, etc
## Electronics
Currently, the following hardware is being used for testing. There is no guarantee these will be the final parts, and everything is heavily in flux. Links to AliExpress and Digikey listings for some items are included - these are for reference, and do not represent endorsements.
- [ESP32CAM Development board with ESP32-CAM-MB programmer](https://www.aliexpress.com/item/1005001900359624.html)
- [OV2640 Camera Module, 75mm Cable, 160 degree lens, 850nm "Night Vision" - no IR cut filter](https://www.aliexpress.com/item/1005003040149873.html)
- [IN-P32ZTIR IR Diode](https://www.digikey.com/en/products/detail/inolux/IN-P32ZTIR/10384796), run at 35 mA - 5V w/ 100ohm resistor
- [IN-P32ZTIR IR Diode](https://www.digikey.com/en/products/detail/inolux/IN-P32ZTIR/10384796), run at 35 mA - 5V w/ 100ohm resistor
## Mounts
[IndexEyeTrackVR](https://github.com/rrazgriz/IndexEyeTrackVR) - A PoC version of an index mount made by Razgriz
Mounts for the Oculus Quest 2.
# Now, how do I get it running?
# Now, how do I get it running?
In the future, all you would have to do would be to push a flash/update button in the server and everything would be set up.
In the future, all you would have to do would be to push a flash/update button in the server and everything would be set up.
But we're not there yet so here's how to get it running manually:
@ -61,17 +68,26 @@ But we're not there yet so here's how to get it running manually:
5. Open the cloned project in VSC
6. Set your own credentials in ESP/include/credentials.h **NOTE: special characters are not supported by the ESP**
7. Connect the esp to the pc via a micro usb cable. Make sure that it can transfer data, otherwise this will **not** work
8. Click on the Ant's head icon on the left and from the menu select **build**, wait till it finishes and then click on **upload and monitor**
8. Click on the Ant's head icon on the left and from the menu select a build environment and then click on **build**, wait till it finishes and then click on **upload and monitor**
# Hold on, an environment, what do you mean?
Thanks to [DaOfficialWizard](https://github.com/ZanzyTHEbar) we now have a couple of options letting us decide how we want to build the firmaware.
- Debug - Has a lot of logging, useful for getting everything setup for the first time and to see what is going on. I recommed starting with this one.
- Release - Has a lot less debugging, may also be missing some things availible only in debug for debug purposes, this should be flashed when everything is working.
- OTA - Just like release, but it will upload your firmare to your esp wirelessly. NOTE: You need to change to the IP to which it should upload, it's the upload_port option under [env:OTA]
# Aight, I want to help, what should I do?
That's great to hear, I'm not a cpp dev, nor am I good with embedded so help is more than welcome.
That being said:
That's great to hear, I'm not a cpp dev, nor am I good with embedded so help is more than welcome.
That being said:
1. Fork and clone the project
2. Set up Visual Studio Code or Clion with the platformio plugin
2. Set up Visual Studio Code or Clion with the platformio plugin
3. Take a look at the project board - that's where I note everything I'm working on, I've finished and what I'm planning to do
4. Make a PR and / or ping me in the EyeTrackVR discord
# Questions, help, bugs, suggestions, blames?
# Questions, help, bugs, suggestions, blames?
Ping me in the EyeTrackVR discord, I'm - lorow#6600