diff --git a/.gitignore b/.gitignore index 640c904..5dd7492 100644 --- a/.gitignore +++ b/.gitignore @@ -52,4 +52,5 @@ Module.symvers Mkfile.old dkms.conf -.ccls-cache/ \ No newline at end of file +.ccls-cache/ +build/ \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index a80ed8f..df4deee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,9 @@ cmake_minimum_required(VERSION 3.12) +include($ENV{PICO_SDK_PATH}/pico_sdk_init.cmake) +project(arducam_firmware_uvc C CXX ASM) +set(CMAKE_C_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) +pico_sdk_init() add_executable(arducam_firmware_uvc) diff --git a/README.md b/README.md index 952a708..4d3ca16 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,20 @@ A very simple firmware for the arducam hm01b0 & raspberry pi pico that uses usb uvc protocol. -It honestly barely works, but the tinyusb implementation of uvc is still a work in progress so theoretically this will get better as tinyusb's uvc develops. +It honestly barely works, but the [tinyusb](https://github.com/hathach/tinyusb/tree/master) implementation of uvc is still a work in progress so theoretically this will get better as tinyusb's uvc develops. -One consistant way to get this to work is using OBS Studio's virtual camera, a lot of other webcam programs do not play nice with it. +One consistant way to get this to work is using [OBS Studio's](https://obsproject.com/) virtual camera, a lot of other webcam programs do not play nice with it. + +Another issue is that beacuse the image exported is 150x150px, some Voip programs will not be able to detect your output so you will need to scale the output to at least 1024x1024px This has only been tested on linux, although it should work anywhere that the tinyusb uvc library works. -Also, during testing I had this weird issue where pipewire would randomly eat up all of my ram, so I decided to keep the shell script in this repo for reference in case you run into the same issue. +Also, during testing I had this weird issue where pipewire would randomly eat up all of my ram, so I decided to keep the [shell script](./pipewire_reset.sh) in this repo for reference in case you run into the same issue. -Might have to mess with the CMakeLists a bit to get it to work in a standalone way but pulling the [pico-examples](https://github.com/raspberrypi/pico-examples) repo and sticking it in `pico-examples/usb/device/` will for sure make it work. +### building + +```sh +mkdir build && cd build && cmake .. && make +``` + +The output file is called `arducam_firmware_uvc.uf2`