6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 9490
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: What features/issues to address?

Wed Aug 06, 2014 9:46 am

Momoko_Fan wrote:Just gonna mention Periodic Intra Refresh again, in case anything changed or became possible since April.
One of the modes in MMAL_VIDEO_INTRA_REFRESH_T, maybe MMAL_VIDEO_INTRA_REFRESH_CYCLIC or MMAL_VIDEO_INTRA_REFRESH_PSEUDO_RAND. Could help with achieving true CBR and interference mitigation if the video is transmitted over wireless or networks where packet loss is possible.
Sorry, any major changes on that front are very unlikely - if it's not there already, then it'd be a fair chunk of work to add it, and not an area of code I'm familiar with.

The settings for MMAL_VIDEO_INTRA_REFRESH_CYCLIC, MMAL_VIDEO_INTRA_REFRESH_ADAPTIVE and MMAL_VIDEO_INTRA_REFRESH_BOTH appear to plumbed in to do something.Curiously there are IL settings for OMX_VIDEO_IntraRefreshPseudoRand and OMX_VIDEO_IntraRefreshCyclicMrows.
...
Having just spoken to the codecs guys, he recalls CyclicMrows to actually be the one actively used for a previous product to split the I-frame into about 5. I'll add pseudo random and cyclic mrows to MMAL, but you're on your own working out useful settings, and may not achieve 1080P30 if pushed too far.

edit: So MMAL_VIDEO_INTRA_REFRESH_CYCLIC_MROWS and MMAL_VIDEO_INTRA_REFRESH_PSEUDO_RAND are defined. Not sure why I missed them before. So the advice was for MMAL_VIDEO_INTRA_REFRESH_CYCLIC_MROWS and cir_mbs set probably to 5 (at a guess).
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 9490
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: What features/issues to address?

Wed Aug 06, 2014 11:48 am

waveform80 wrote:Eurgh - correction to the above (and a lesson for others: don't try and think about double negatives at a quarter to 1 in the morning...)! Denoise is definitely enabled on initialization, and the operation of the setting is sort-of-correct (it *doesn't* return the wrong value until set explicitly, it returns the correct setting at all times). However, the sense of the setting is backward: instead of MMAL_PARAMETER_VIDEO_DENOISE_DISABLED it should be MMAL_PARAMETER_VIDEO_DENOISE_ENABLED; I flipped the meaning of the setting in the new picamera attribute and then got horribly confused when setting video_denoise to True made the image more noisy! In other words, you might've *tried* to be lazy when labelled it DISABLED, but you actually did the right thing (but with the wrong name! ;)
Yes my bad in the MMAL mapping :oops: The IL parameters are OMX_IndexConfigStillColourDenoiseEnable and OMX_IndexConfigVideoColourDenoiseEnable. I do have some IL parameters which are OMX_Index....Disable, and suspect I saw the "able" at the end and didn't read the rest. It is controlled in the normal sense, and is enabled by default.

Seeing as it has only just been released and not used except in your unreleased code, I propose to rename it and replace the badly named MMAL parameters. I will nudge Dom tonight to do another release soon, so it shouldn't be wrong for too long.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

User avatar
waveform80
Posts: 359
Joined: Mon Sep 23, 2013 1:28 pm
Location: Manchester, UK
Contact: Website Twitter

Re: What features/issues to address?

Wed Aug 06, 2014 12:08 pm

6by9 wrote: ...
Seeing as it has only just been released and not used except in your unreleased code, I propose to rename it and replace the badly named MMAL parameters. I will nudge Dom tonight to do another release soon, so it shouldn't be wrong for too long.
Hehe - good plan, I'll keep an eye out for the changes and get them into picamera for 1.7. Thanks!


Dave.
Author of / contributor to a few pi related things (picamera, Sense HAT emulator, gpio-zero, piwheels, etc.), and currently a software engineer at Canonical responsible for Ubuntu Server and Core on the Raspberry Pi.

shuckle
Posts: 565
Joined: Sun Aug 26, 2012 11:49 am
Location: Finland

Re: What features/issues to address?

Wed Aug 06, 2014 12:12 pm

That next firmware release then includes the mjpeg "fix" also?

Code: Select all

- MJPEG codec and framework modified to allocate a 4MB output FIFO. 

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 9490
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: What features/issues to address?

Wed Aug 06, 2014 1:11 pm

shuckle wrote:That next firmware release then includes the mjpeg "fix" also?

Code: Select all

- MJPEG codec and framework modified to allocate a 4MB output FIFO. 
Yes, it will be in the next release.
I haven't tested it extensively but it's about the only thing I can think of that could wedge the encoder that thoroughly.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

User avatar
jbeale
Posts: 3707
Joined: Tue Nov 22, 2011 11:51 pm
Contact: Website

Re: What features/issues to address?

Thu Aug 07, 2014 12:49 am

Having just tried "sudo rpi-update" I see that something seems to have been released today, 6-Aug-2014:

Code: Select all

pi@rpi10 ~ $ uname -a
Linux rpi10 3.12.26+ #702 PREEMPT Wed Aug 6 17:43:49 BST 2014 armv6l GNU/Linux

pi@rpi10 ~ $ /opt/vc/bin/vcgencmd version
Aug  6 2014 17:51:37
Copyright (c) 2012 Broadcom
version 3da89bd3cdef7980b684f48fe60944aff4502f50 (tainted) (release)

lowflyer
Posts: 78
Joined: Sat Jun 01, 2013 2:27 pm

Re: What features/issues to address?

Thu Aug 07, 2014 7:08 am

Sorry, only just seen this. Good luck @6by9 for whatever you do next and many thanks!!

Can we assume that your fix for the line count reset issue http://www.raspberrypi.org/forums/viewt ... 28#p576146 is included?

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 9490
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: What features/issues to address?

Thu Aug 07, 2014 7:50 am

lowflyer wrote:Can we assume that your fix for the line count reset issue http://www.raspberrypi.org/forums/viewt ... 28#p576146 is included?
Yes, that actually went in a release or two back, but just not at the point where you all claimed it started working. Should all be good now.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 9490
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: What features/issues to address?

Thu Aug 07, 2014 7:54 am

jbeale wrote:Having just tried "sudo rpi-update" I see that something seems to have been released today, 6-Aug-2014:

Code: Select all

pi@rpi10 ~ $ uname -a
Linux rpi10 3.12.26+ #702 PREEMPT Wed Aug 6 17:43:49 BST 2014 armv6l GNU/Linux

pi@rpi10 ~ $ /opt/vc/bin/vcgencmd version
Aug  6 2014 17:51:37
Copyright (c) 2012 Broadcom
version 3da89bd3cdef7980b684f48fe60944aff4502f50 (tainted) (release)
Yes, Dom did his magic. Bottom half of the commit text:
MMAL: Correct parameter names for denoise control
H264 encode: Sort inline headers for VBR.
Implements vc_image_fill for VC_IMAGE_YUV_UV images
Add vc_image_atext support for YUV_UV images
ncrease memory reservation for annotate stage
Add annotate stage to Raspberry Pi Full variant. Allow config
Add control of the annotate stage to the debug tuner
Add YUV_UV support to Camplus annotate stage
Add AF metadata before postproc stage,Refactor annotate plots
Add lens position plot to annotate state.Add frame no. Tidy up code a bit.
MJPEG: Rework so that it can have a 4MB output FIFO
OV5647: Tidy up unused tuning data
AGC: If gain/threshold are 0, initialise them
Pull latest vcos_msgqueue from vc4/DEV
OV5647: Fix for incorrectly selecting 0.16-1fps mode
which is all the stuff I've been mentioning as fixed. There's also a kernel release bump (3.12.26+)
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

User avatar
AndrewS
Posts: 3625
Joined: Sun Apr 22, 2012 4:50 pm
Location: Cambridge, UK
Contact: Website

Re: What features/issues to address?

Thu Aug 07, 2014 11:06 am

jbeale wrote:Having just tried "sudo rpi-update" I see that something seems to have been released today, 6-Aug-2014:
https://github.com/raspberrypi/firmware/commits/master has all the details...

ethanol100
Posts: 650
Joined: Wed Oct 02, 2013 12:28 pm

Re: What features/issues to address?

Fri Aug 08, 2014 9:57 am

Thank you for the nice new features, they are really nice!

If someone wants to play with the annotation feature, I have modified my userland to be able to play with it (https://github.com/ethanol100/userland/tree/annotation). For stills we can use the same way the timestamps for the exif tags are generated, but how can we create a changing annotation for video? Would it be possible to add something similar to the "MMAL_PARAMETER_CHANGE_EVENT_REQUEST" for each frame to be captured? Then we could change the annotation for each frame in the callback, or is there a way to run something for every frame already?

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 9490
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: What features/issues to address?

Fri Aug 08, 2014 10:58 am

ethanol100 wrote:Thank you for the nice new features, they are really nice!

If someone wants to play with the annotation feature, I have modified my userland to be able to play with it (https://github.com/ethanol100/userland/tree/annotation). For stills we can use the same way the timestamps for the exif tags are generated, but how can we create a changing annotation for video? Would it be possible to add something similar to the "MMAL_PARAMETER_CHANGE_EVENT_REQUEST" for each frame to be captured? Then we could change the annotation for each frame in the callback, or is there a way to run something for every frame already?
Tricky. The sensor and ISP hardware are actually running asynchronously to the buffer delivery (it's the only way to maintain the framerate), so by the time you have the buffer the next frame is likely to already be part way through. Settings are "latched" on the frame start from the sensor, so you really are likely to have missed the chance.
There may be an option to make the stage automatically do the timestamping, although the GPU doesn't know the real time so will need a starting time. That probably wouldn't be difficult to add, but not today. I also remember someone adding just a frame count to the annotation - I might try to track that down too.

Seeing as the settings are latched at frame start, you could probably have a timestamp showing seconds which the app just punts down once a second on a timer. Not frame accurate, but sufficient for many things.
If you want a callback on each frame, then don't use a mmal_connection and handle passing the buffers from camera to encode yourself. No new event needed.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

User avatar
jbeale
Posts: 3707
Joined: Tue Nov 22, 2011 11:51 pm
Contact: Website

Re: What features/issues to address?

Fri Aug 08, 2014 6:58 pm

ethanol100 wrote:If someone wants to play with the annotation feature, I have modified my userland to be able to play with it (https://github.com/ethanol100/userland/tree/annotation).
Thanks for that, trying it out now! ...I am not a github expert, my first try got me older main-branch code without annotation; maybe this is the right command?

Code: Select all

git clone -b annotation --single-branch git://github.com/ethanol100/userland.git
also, anyway to avoid downloading large files I don't need, like https://github.com/ethanol100/userland/ ... /test.h264 (size = 31 MB) ?
-but anyway, the new "annotate date" function works!

raspistill -w 640 -h 480 -and -o date-test.jpg

gives me the image below. I just need to make sure the top center background is dark, so white letters are visible. I was happy to see it also works alongside the -tl timelapse option to give the current time/date on each frame.

Image
the gain and shutter values as live graphs on raspivid are really neat, as well.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 9490
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: What features/issues to address?

Fri Aug 08, 2014 8:53 pm

jbeale wrote:gives me the image below. I just need to make sure the top center background is dark, so white letters are visible. I was happy to see it also works alongside the -tl timelapse option to give the current time/date on each frame.
Adding a border to the characters may be tricky, but I can probably add an option to fill the background area. I'll have a look on Monday. It may also be possible to add options other than just centred text, but I haven't looked at that code for ages.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

User avatar
gagle
Posts: 82
Joined: Fri Feb 14, 2014 6:54 pm
Contact: Website

Re: What features/issues to address?

Sat Aug 09, 2014 3:12 pm

Wow! thanks 6by9, those are too many changes. Thanks for mentioning the IL mapping.

gordon77
Posts: 5164
Joined: Sun Aug 05, 2012 3:12 pm

Re: What features/issues to address?

Sun Aug 10, 2014 8:54 am

jbeale wrote:

Code: Select all

git clone -b annotation --single-branch git://github.com/ethanol100/userland.git
Hi ,

I am trying to build this but my linux skills are limited !. What commands do I need to build this ?

I've dug out my notes on previous builds I've done with guidance, eg 'git checkout master' and './buildme' but all achieve nothing !

Thanks

gordon77

ethanol100
Posts: 650
Joined: Wed Oct 02, 2013 12:28 pm

Re: What features/issues to address?

Sun Aug 10, 2014 2:52 pm

gordon77 wrote: I am trying to build this but my linux skills are limited !. What commands do I need to build this ?
I think you need to run

Code: Select all

git clone -b annotation http://github.com/ethanol100/userland
cd userland
./buildme

You need to get my branch "annotation", which is selected with "-b annotation".

ethanol100
Posts: 650
Joined: Wed Oct 02, 2013 12:28 pm

Re: What features/issues to address?

Sun Aug 10, 2014 3:08 pm

6by9 wrote: Tricky. The sensor and ISP hardware are actually running asynchronously to the buffer delivery (it's the only way to maintain the framerate), so by the time you have the buffer the next frame is likely to already be part way through. Settings are "latched" on the frame start from the sensor, so you really are likely to have missed the chance.
There may be an option to make the stage automatically do the timestamping, although the GPU doesn't know the real time so will need a starting time. That probably wouldn't be difficult to add, but not today. I also remember someone adding just a frame count to the annotation - I might try to track that down too.

Seeing as the settings are latched at frame start, you could probably have a timestamp showing seconds which the app just punts down once a second on a timer. Not frame accurate, but sufficient for many things.
If you want a callback on each frame, then don't use a mmal_connection and handle passing the buffers from camera to encode yourself. No new event needed.
Ok, I will think of using the userland side to change the timestep every second. Which should be enough for a simple time annotation. For the userland the code would be to confusing, if I would change the connected ports to self delivery of buffer for a single feature, I guess. Thank you for your good explaination.

User avatar
jbeale
Posts: 3707
Joined: Tue Nov 22, 2011 11:51 pm
Contact: Website

Re: What features/issues to address?

Sun Aug 10, 2014 4:58 pm

6by9 wrote:I also remember someone adding just a frame count to the annotation.
Frame count by itself would be quite useful. If you know the starting time, that plus the frame count means you can at least figure out the time for each frame later, if you need to. Presuming the interval between frames (-> frame rate) doesn't change during recording.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 9490
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: What features/issues to address?

Wed Aug 13, 2014 2:32 pm

@waveform80 and @ethanol100: Back on the 5th Aug you you'd mentioned black frames with burst capture. Do either of you still have the command-line that you were using at that point?

I'm seeing something similar with V4L2 and YUUV (uses the stills pipe), and I think I know what the issue is (insufficient input buffering, so still having to stop and restart the sensor, but not dropping a frame at that point), but want to confirm whether my proposed fix is going to work in your cases.
Proposed fix is for the client to have to ask for some more memory for the input buffers - not elegant, but pragmatic at this point. The alternative is that I set the flag to say that you have to drop a frame every time the sensor restarts, and that will halve the burst shot performance again :(
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

ethanol100
Posts: 650
Joined: Wed Oct 02, 2013 12:28 pm

Re: What features/issues to address?

Wed Aug 13, 2014 2:57 pm

6by9 wrote:@waveform80 and @ethanol100: Back on the 5th Aug you you'd mentioned black frames with burst capture. Do either of you still have the command-line that you were using at that point?
I have tested it with this strange command:

Code: Select all

cd /run/shm
raspistill -w 320 -h 240 -bm -tl 150 -t 30000 -o %04d.jpg 
With this every second frame is black.

Hmm, found a bug in the gains included in the jpegs, if resized they are both 1 but the "-set" options report values different from 1. (i.e. seen with "strings 0001.jpg | grep gain") i.e.:

Code: Select all

#raspistill -w 1024 -h 768 -o a.jpg:
ev=-1 mlux=-1 exp=1285 ag=256 focus=255 gain_r=1.000 gain_b=1.000 greenness=0 ccm=0,0,0,0,0,0,0,0,0,0,0,0 md=0 tg=261 261 oth=0 0 b=0 f=261 261 fi=0 ISP Build Date: Aug  6 2014, 17:48:15 VC_BUILD_ID_VERSION: 3da89bd3cdef7980b684f48fe60944aff4502f50 (tainted) VC_BUILD_ID_USER: dc4 VC_BUILD_ID_BRANCH: dev 
#raspistill -o b.jpg:
ev=-1 mlux=-1 exp=1285 ag=256 focus=255 gain_r=1.558 gain_b=1.191 greenness=16 ccm=8058,-3508,-252,-1236,5570,-234,84,-2722,6740,0,0,0 md=0 tg=260 260 oth=0 0 b=0 f=260 260 fi=0 ISP Build Date: Aug  6 2014, 17:48:15 VC_BUILD_ID_VERSION: 3da89bd3cdef7980b684f48fe60944aff4502f50 (tainted) VC_BUILD_ID_USER: dc4 VC_BUILD_ID_BRANCH: dev 

User avatar
waveform80
Posts: 359
Joined: Mon Sep 23, 2013 1:28 pm
Location: Manchester, UK
Contact: Website Twitter

Re: What features/issues to address?

Wed Aug 13, 2014 8:02 pm

6by9 wrote:@waveform80 and @ethanol100: Back on the 5th Aug you you'd mentioned black frames with burst capture. Do either of you still have the command-line that you were using at that point?
With picamera 1.6 or above, the following script typically produces a few very-dark frames. I say very-dark rather than black as I've found if I try it at night when the desk-lamp is on (which the Pi's camera faces so it's looking directly at a light source), the bulb of the lamp is just about visible in the resulting very-dark frames (suggesting they're extremely under-exposed rather than completely devoid of data):

Code: Select all

import time
import picamera

with picamera.PiCamera() as camera:
    camera.resolution = (640, 480)
    camera.framerate = 30
    time.sleep(1) # warm-up delay
    camera.capture_sequence(['image%02d.jpg' % i for i in range(10)], burst=True)
The script will let the camera settle for a second, then grab 10 images from the still port using the burst mode. It's usually easy to spot the dark frames from the normal ones in a directory listing as they've got a significantly smaller size. In my thoroughly unscientific tests I've noted more dark frames in the evening than in the daytime, and that the first frame is always fine but I can't seem to discern any particular patterns in which of the subsequent frames turn out dark.


Dave.
Author of / contributor to a few pi related things (picamera, Sense HAT emulator, gpio-zero, piwheels, etc.), and currently a software engineer at Canonical responsible for Ubuntu Server and Core on the Raspberry Pi.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 9490
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: What features/issues to address?

Wed Aug 13, 2014 8:30 pm

Thanks both. That sort of tallies with my hunch. I'll give it a whirl tomorrow - I really don't want to have to set that restart drop frame count, but I think I may have to to get the correct behaviour, even if there is then a workaround to avoid having to trigger it.

Dodgy EXIF on smaller images - I'd seen that one too. Now i just need to remember what it was that was the cause! I seem to recall it being that it's trying to pull the data from the wrong image, but can't remember for sure.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 9490
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: What features/issues to address?

Thu Aug 14, 2014 10:55 am

Burst mode issue resolved so that all images are correct - as suspected it was the first frame after a restart being invalid that was the issue. Fixing that drops the frame rate dramatically (drops 2 out of 3 based on raspistill's reporting, but I was also seeing 1 good and then 2 bad frames with ethanol100's commandline. I am on a debug build though which may change things significantly), so I need to come up with a better way of specifying the buffering parameters. There's no such thing as a free lunch - we need extra input buffers if we're to avoid stopping the sensor.

The only way I can do it at the moment is to set .max_preview_video_w and .max_preview_video_h in MMAL_PARAMETER_CAMERA_CONFIG_T to 2592x1944, but that then also allocates huge output buffers. I think I'll add a MMAL_PARAMETER_CAMERA_CONFIG_V2_T structure that allows specifying the input buffer counts too.

Now to see if I can do a quick fix on the dodgy EXIF....

Other things that have been worked on in the last couple of days are:
- emboss and blur image effects working on video encode. I looked at a couple of the others and they vary in complexity. I may come back to them.
- stereoscopic for the compute module now has the basics working. I'm trying to work out what the limits are, and whether we have to stick with half/half mode or can we do full res. H264 encode will have to be half/half due to hardware limits - it won't go above 1080P33 anyway unless we start overclocking anyway. The display side should cope at 720P full res side/side, but I haven't tried it as yet. If display can cope, then JPEG should be able to do full res stereoscopic (I'm not currently going to look at the JPS signalling via APP3 though, end left/right eyes may be swapped). There are going to be a few other limitations creeping out of the woodwork I'm sure.
- starting to have a look at annotate improvements - nothing releasable as yet.

I'll see how things go today, but I'll probably see if Dom will do a release tomorrow.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

picamuser
Posts: 10
Joined: Mon Jul 21, 2014 9:21 pm

Re: What features/issues to address?

Thu Aug 14, 2014 7:28 pm

6by9

How did you just modify a custom image effect in openMAX or MMAL? It would help to know which part of the source (if its open source) holds the algorithms for doing the image effects and modifying it on the GPU.

Thanks for your time. Some of the improvements (especially the recent framerate improvement) are really helpful.

Return to “Camera board”