6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 13546
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 7:34 pm

picamuser wrote: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.
Sorry, closed source, hence why I'm looking at it under this thread whilst I still can.
Software Engineer at Raspberry Pi Ltd. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

mikerr
Posts: 2829
Joined: Thu Jan 12, 2012 12:46 pm
Location: UK

Re: What features/issues to address?

Sun Aug 17, 2014 7:15 pm

Is there any way to distinguish a particular camera module has been connected ?
(does the OV5647 expose any UID ? )

E.g. programmatically knowing if the currently connected camera is a Pi Camera or Pi Noir...

Similar was asked here and it seems there is some OTP memory on the OV5647, but not in use ?
http://www.raspberrypi.org/forums/viewt ... 6&p=540009
Android app - Raspi Card Imager - download and image SD cards - No PC required !

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 31838
Joined: Sat Jul 30, 2011 7:41 pm

Re: What features/issues to address?

Sun Aug 17, 2014 7:37 pm

The only difference in the modules is the missing IR filter - there are, AFAIK, no distinguishing electronic differences· It would be possible to program the OTP but that would need to be done on the production line - I think that would be problamatic. I'll have a think. There is already software to test the cameras, it might be possible to modify it program the OTP as well. But that means the production line would need to be altered which may make it too expensive.
Principal Software Engineer at Raspberry Pi Ltd.
Working in the Applications Team.

rahlquist
Posts: 149
Joined: Tue Jan 21, 2014 1:02 pm

Re: What features/issues to address?

Mon Aug 18, 2014 6:35 pm

6by9

Thank you for all the hard work you have done. The addition of overlay to the still frames is especially great. From the way I read the comments in the thread, it sounds like overlay in the video portion would be difficult if not downright impossible in current hardware? Am I picking that up right?

Thanks!

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

Re: What features/issues to address?

Mon Aug 18, 2014 7:48 pm

rahlquist wrote:Thank you for all the hard work you have done. The addition of overlay to the still frames is especially great. From the way I read the comments in the thread, it sounds like overlay in the video portion would be difficult if not downright impossible in current hardware? Am I picking that up right?
I'd hope not. The same annotate parameter should work for both stills and video. Let me know if not as I'm still not going to be looking at userland code.

The thing I'd like to sort is doing a full on overlay component that allows doing overlaying a user provided image buffer onto the video stream. It's looking less and less likely though considering how time is going.
Software Engineer at Raspberry Pi Ltd. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

User avatar
waveform80
Posts: 377
Joined: Mon Sep 23, 2013 1:28 pm
Location: Manchester, UK

Re: What features/issues to address?

Mon Aug 18, 2014 9:55 pm

6by9 wrote:
rahlquist wrote:Thank you for all the hard work you have done. The addition of overlay to the still frames is especially great. From the way I read the comments in the thread, it sounds like overlay in the video portion would be difficult if not downright impossible in current hardware? Am I picking that up right?
I'd hope not. The same annotate parameter should work for both stills and video. Let me know if not as I'm still not going to be looking at userland code.

The thing I'd like to sort is doing a full on overlay component that allows doing overlaying a user provided image buffer onto the video stream. It's looking less and less likely though considering how time is going.
The text annotation is working nicely with image captures, video recordings, and the preview. Incidentally, thanks to your comments in another thread I've just finished adding support for arbitrary image overlays to previews for the next release; admittedly that's not for image/video output but it'll still be very handy for building user interfaces!

Incidentally, I've been having a play with the image effect parameters you kindly documented a couple of pages ago and I've run into a couple of weird hitches. I'm not sure if it's just me being stupid yet, but one thing did strike me as a bit odd: you've got colourbalance as having up to 6 parameters, but MMAL_MAX_IMAGEFX_PARAMETERS (which defines the size of the effect_parameter array in MMAL_PARAMETER_IMAGEFX_PARAMETERS_T) is defined as 5 in the mmal headers?

Many thanks,

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

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

Re: What features/issues to address?

Tue Aug 19, 2014 7:07 am

waveform80 wrote:The text annotation is working nicely with image captures, video recordings, and the preview. Incidentally, thanks to your comments in another thread I've just finished adding support for arbitrary image overlays to previews for the next release; admittedly that's not for image/video output but it'll still be very handy for building user interfaces!
Cool. That sorts it for a UI overlay which is useful in itself. My proposed overlay would be burnt into the image in the same way as annotate is, and hence could be encoded to H264 too. We'll just see if it happens.
waveform80 wrote:Incidentally, I've been having a play with the image effect parameters you kindly documented a couple of pages ago and I've run into a couple of weird hitches. I'm not sure if it's just me being stupid yet, but one thing did strike me as a bit odd: you've got colourbalance as having up to 6 parameters, but MMAL_MAX_IMAGEFX_PARAMETERS (which defines the size of the effect_parameter array in MMAL_PARAMETER_IMAGEFX_PARAMETERS_T) is defined as 5 in the mmal headers?
The effects have been updated recently on another branch. It's quite possible that the change to the headers to expose parameter 6 hasn't been pulled across. I'll check today for you and amend if necessary. I still haven't prodded Dom for a release so I'll try to get that in before I do so. Is that the only wierd one you've seen?
Software Engineer at Raspberry Pi Ltd. 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: 13546
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 20, 2014 1:59 pm

6by9 wrote:
waveform80 wrote:Incidentally, I've been having a play with the image effect parameters you kindly documented a couple of pages ago and I've run into a couple of weird hitches. I'm not sure if it's just me being stupid yet, but one thing did strike me as a bit odd: you've got colourbalance as having up to 6 parameters, but MMAL_MAX_IMAGEFX_PARAMETERS (which defines the size of the effect_parameter array in MMAL_PARAMETER_IMAGEFX_PARAMETERS_T) is defined as 5 in the mmal headers?
The effects have been updated recently on another branch. It's quite possible that the change to the headers to expose parameter 6 hasn't been pulled across. I'll check today for you and amend if necessary. I still haven't prodded Dom for a release so I'll try to get that in before I do so. Is that the only wierd one you've seen?
Hmm, no the other branch was still on a max of 5 parameters via IL and MMAL too. Looking at the only code to use colour balance (the one effect that can take 6 parameters), we've only actively used it with 3.
I have just pushed changes to extend the parameters to 6 to allow you to use the full range of them though.
Software Engineer at Raspberry Pi Ltd. 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: 13546
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 20, 2014 3:20 pm

I've spoken to Dom and he'll probably be doing a release later tonight.
Issues addressed:
  • Stereoscopic (see http://www.raspberrypi.org/forums/viewt ... 43&t=85012)
  • burst capture black images fixed. Unfortunately this is likely to have dropped the burst capture speed unless you increase the max_preview_w/h with the CAMERA_CONFIG parameter
  • 6 parameters to image effects
  • Hopefully fixed the RESET_STC timestamping mode (not actually tested that fix!)
  • emboss and blur image effects should work with video encode
Software Engineer at Raspberry Pi Ltd. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

User avatar
waveform80
Posts: 377
Joined: Mon Sep 23, 2013 1:28 pm
Location: Manchester, UK

Re: What features/issues to address?

Wed Aug 20, 2014 10:53 pm

6by9 wrote:...
The effects have been updated recently on another branch. It's quite possible that the change to the headers to expose parameter 6 hasn't been pulled across. I'll check today for you and amend if necessary. I still haven't prodded Dom for a release so I'll try to get that in before I do so. Is that the only wierd one you've seen?
I don't think this is me being stupid ... but I'm having some issues getting parameters for the image effects. Here's a little script which fires up the camera, starts a preview, sets the "blur" effect going and then tries to grab the current parameters for the effect:

Code: Select all

import ctypes as ct

import picamera
import picamera.mmal as mmal
from picamera.exc import mmal_check

with picamera.PiCamera() as camera:
    camera.start_preview()
    camera.image_effect = 'blur'
    # Try and grab the current parameters for the blur effect
    mp = mmal.MMAL_PARAMETER_IMAGEFX_PARAMETERS_T(
            mmal.MMAL_PARAMETER_HEADER_T(
                mmal.MMAL_PARAMETER_IMAGE_EFFECT_PARAMETERS,
                ct.sizeof(mmal.MMAL_PARAMETER_IMAGEFX_PARAMETERS_T),
                ))
    mmal_check(
        mmal.mmal_port_parameter_get(camera._camera[0].control, mp.hdr),
        prefix="Failed to get image effect parameters")
    print('Found %d parameters:' % mp.num_effect_params)
    print(', '.join(str(p) for p in mp.effect_parameter[:mp.num_effect_params]))
Now, I might be doing this wrong as I'm guessing quite a bit here. Specifically, I'm guessing the call should be against the camera's control port (on the basis that's the same port used to set the effect in the first place), and that I don't need to set the "effect" field in the MMAL_PARAMETER_IMAGEFX_PARAMETERS_T structure (I've tried setting it to MMAL_PARAM_IMAGEFX_BLUR as well, just in case, but it didn't seem to make any difference).

The result is that the call succeeds, the structure comes back with "num_effect_params" still 0, and then when the script tries to end, it appears the camera's locked up and the Pi needs a reboot to get it back. I seem to get similar results with several other effects (I've tried solarise, colourbalance, and emboss so far - the last to see what would happen with an effect without parameters). There doesn't seem to be anything terribly interesting in the vcdbg log - the tail of it's below but I don't think it's showing anything that looks like an error:

Code: Select all

003357.806: gpioman: gpioman_get_pin_num: pin LEDS_RUNNING not defined
003357.829: gpioman: gpioman_get_pin_num: pin LEDS_NAND_ACTIVITY not defined
003357.851: gpioman: gpioman_get_pin_num: pin LEDS_USB_ACTIVITY not defined
003357.872: gpioman: gpioman_get_pin_num: pin LEDS_FATAL_ERROR not defined
003357.894: gpioman: gpioman_get_pin_num: pin LEDS_APP_OK not defined
003357.915: gpioman: gpioman_get_pin_num: pin LEDS_APP_FAILED not defined
003357.935: gpioman: gpioman_get_pin_num: pin LEDS_HDCP_AUTH not defined
003357.957: gpioman: gpioman_get_pin_num: pin LEDS_HDCP_UNAUTH not defined
003357.979: gpioman: gpioman_get_pin_num: pin LEDS_HDMI_ON not defined
003358.000: gpioman: gpioman_get_pin_num: pin LEDS_DVI_ON not defined
003358.023: gpioman: gpioman_get_pin_num: pin LEDS_HDMI_HPD_UP not defined
003358.044: gpioman: gpioman_get_pin_num: pin LEDS_REMOTE_CONTROL not defined
003358.065: gpioman: gpioman_get_pin_num: pin LEDS_ARM_CONTROLLED not defined
003358.390: TV service:host side not connected, dropping notification 0x00000002, 0x00000002, 0x0000001c
085316.332: camsubs: Looking for camera 0: i2c_port = 0, led gpio = 5, power enable gpio = 21
085317.954: camsubs: Camera found OK
085320.037: gpioman: gpioman_get_pin_num: pin CAMERA_LED not defined
Is retrieval of parameters not possible at the moment? The fact the call port_parameter_get call succeeds suggested to me that it ought to be possible but perhaps something's missing in the firmware?


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

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 13546
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 21, 2014 6:52 am

waveform80 wrote:
6by9 wrote:...
The effects have been updated recently on another branch. It's quite possible that the change to the headers to expose parameter 6 hasn't been pulled across. I'll check today for you and amend if necessary. I still haven't prodded Dom for a release so I'll try to get that in before I do so. Is that the only wierd one you've seen?
I don't think this is me being stupid ... but I'm having some issues getting parameters for the image effects. Here's a little script which fires up the camera, starts a preview, sets the "blur" effect going and then tries to grab the current parameters for the effect:
It's not possible to read back the defaults, but if you set the parameters to something then you should be able to read it back.
Software Engineer at Raspberry Pi Ltd. 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

Re: What features/issues to address?

Sun Aug 24, 2014 5:40 pm

Seems to be another camera issue which has been identified here:
http://www.raspberrypi.org/forums/viewt ... 84#p602684

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 13546
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 28, 2014 3:36 pm

Just to say tomorrow is D-Day. I am still trying to address some issues, but time is so very nearly up.

- AGC unlock for successive stills captures may well sneak in - I'm hopeful on it.
- Lens shading is a total pain due to branch divergence, so is unlikely.
- 20s exposures was passed on to a colleague who hasn't managed to make much progress.
- Adding a black background to the annotate text is plausible. I'll probably lengthen the max text string length too seeing as it already does line wrapping.
All the others on my list aren't going to make it :(

There are discussions about ongoing support, so don't despair.
Software Engineer at Raspberry Pi Ltd. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

rahlquist
Posts: 149
Joined: Tue Jan 21, 2014 1:02 pm

Re: What features/issues to address?

Thu Aug 28, 2014 7:37 pm

6by9,

Thanks again for the dedication and good luck in all your future endeavors. Sorry that you are being forced to move on like this.

gregeric
Posts: 1509
Joined: Mon Nov 28, 2011 10:08 am

Re: What features/issues to address?

Thu Aug 28, 2014 9:54 pm

A big thanks to both of 6by9 & JamesH for all your paid & unpaid work on the Pi & its camera, and your contributions to this forum.

Hope you both find fulfilling future employment, yet somehow are given the means to continue to contribute here where you can!

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 31838
Joined: Sat Jul 30, 2011 7:41 pm

Re: What features/issues to address?

Fri Aug 29, 2014 7:50 am

I'm taking some time off to do all those jobs around the house that the other half wants done, but will also be spending some time at Pi towers, helping out with some stuff. Whether that involves camera stuff I don't know.

I'd like to spend a bit more time on the annotation stuff as there are some fairly easy improvements to make in there (might break API to make it better, but with few users that may be OK). Meant to do it this week, but there was someone wrong on the internet so I needed to sort that out.
Principal Software Engineer at Raspberry Pi Ltd.
Working in the Applications Team.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 13546
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 29, 2014 8:43 am

jamesh wrote:I'm taking some time off to do all those jobs around the house that the other half wants done, but will also be spending some time at Pi towers, helping out with some stuff. Whether that involves camera stuff I don't know.
I'm doing likewise, although haven't discussed details of Pi Towers with Eben yet.
jamesh wrote:I'd like to spend a bit more time on the annotation stuff as there are some fairly easy improvements to make in there (might break API to make it better, but with few users that may be OK). Meant to do it this week, but there was someone wrong on the internet so I needed to sort that out.
Just as I left last night I had annotate adding a black background to all the text, lengthened the string (though not tested that bit), plus allowing option to add the frame number to the annotation. You'll see it from the commit (when pushed), but I've kept the MMAL API supporting both old and new structure based on the param size, but the IL one has been updated as it isn't the official access to the camera so hopefully no one is using it.

I have just had an idea on allowing the sensor mode to be forced by the app, and it should be totally trivial to do (depends on a change being on the Pi tree, or being easy to cherry-pick). I'll see if I can sneak that in today too, though I would like to sort AGC on burst captures too.
Software Engineer at Raspberry Pi Ltd. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

User avatar
waveform80
Posts: 377
Joined: Mon Sep 23, 2013 1:28 pm
Location: Manchester, UK

Re: What features/issues to address?

Fri Aug 29, 2014 9:20 am

I'll add my sincere thanks to both JamesH and 6by9 for all their hard work on the camera firmware. I can confidently say my little picamera library wouldn't be half of what it is (or possibly anything!) without their excellent support.

I wonder, before you guys ride off into the sunset, if I could be terribly cheeky and post a last query, hopefully a simple one: a user of the picamera library noticed the crop element of the video port's format structure and wondered if it could be used as a general crop facility (i.e. to specify the portion of the frame that should be captured). I've experimented a little with it and my suspicion is that the answer is "no"; the (x, y) coordinates appear to be ignored, but the width and height aren't. My guess is that it's there to allow cropping unused pixels from the bottom and right of the image (as in when the resolution is rounded to 32x16 blocks)?

Anyway, many thanks again to both of you - here's hoping you both find something interesting to hack on in your next roles!


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

User avatar
DougieLawson
Posts: 42297
Joined: Sun Jun 16, 2013 11:19 pm
Location: A small cave in deepest darkest Basingstoke, UK

Re: What features/issues to address?

Fri Aug 29, 2014 9:28 am

Beware when Monday comes, the kids are back at school and your partner presents you with "the list" of things you can do. It'll keep you busy for months.

Best of luck to 6by9 & James for whatever turns up. Thanks for all your work with the RPi & the camera.
Languages using left-hand whitespace for syntax are ridiculous

DMs sent on https://twitter.com/DougieLawson or LinkedIn will be answered next month.
Fake doctors - are all on my foes list.

The use of crystal balls and mind reading is prohibited.

User avatar
RaTTuS
Posts: 10828
Joined: Tue Nov 29, 2011 11:12 am
Location: North West UK

Re: What features/issues to address?

Fri Aug 29, 2014 9:29 am

my thanks go out to both JamesH and 6by9 for their support on this forum [and all the others from broadcom that don't post].
good luck in your future stuff ...
How To ask Questions :- http://www.catb.org/esr/faqs/smart-questions.html
WARNING - some parts of this post may be erroneous YMMV

1QC43qbL5FySu2Pi51vGqKqxy3UiJgukSX
Covfefe

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 13546
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 29, 2014 10:19 am

waveform80 wrote:I wonder, before you guys ride off into the sunset, if I could be terribly cheeky and post a last query, hopefully a simple one: a user of the picamera library noticed the crop element of the video port's format structure and wondered if it could be used as a general crop facility (i.e. to specify the portion of the frame that should be captured). I've experimented a little with it and my suspicion is that the answer is "no"; the (x, y) coordinates appear to be ignored, but the width and height aren't. My guess is that it's there to allow cropping unused pixels from the bottom and right of the image (as in when the resolution is rounded to 32x16 blocks)?
Just this one last question as it is sunny outside, the company's laying on lunch later, and I've just got forcing the sensor mode working! ;)

You're pretty much there. The expectation is that crop.[width|height] define the size of the active image you want in the buffer. [width|height] define the size of the buffer, and hence the stride or pitch between the lines, and the offset between luma and chroma planes where appropriate. crop.[x|y] would allow the active image to not be at top left of the buffer.
The intent I believe was more for video decode where the buffers could be allocated for say 1080P and hence allow dynamic resolution changes to only partially fill the buffers.
I can't think of a place in IL that allows setting an x or y for crop (it does have nStride and nBufferHeight which map to width|height) so it would probably require native MMAL components instead of wrapped IL ones to allow this to actually to be fully implemented.


Thanks all for your best wishes. I will post a good bye later, but just to say that it has been a pleasure working with you all to develop the Pi camera to some new and useful places. I think that there are some things that the Pi can now do that even the phones we ship can't, and that is quite satisfying. But whilst I may expose the functionality in the firmware, it is the libraries that you have produced to make it more accessible that open up the camera world to many others, so thank you.
Software Engineer at Raspberry Pi Ltd. 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: 13546
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 29, 2014 8:30 pm

6by9 wrote:Just as I left last night I had annotate adding a black background to all the text, lengthened the string (though not tested that bit), plus allowing option to add the frame number to the annotation. You'll see it from the commit (when pushed), but I've kept the MMAL API supporting both old and new structure based on the param size, but the IL one has been updated as it isn't the official access to the camera so hopefully no one is using it.

I have just had an idea on allowing the sensor mode to be forced by the app, and it should be totally trivial to do (depends on a change being on the Pi tree, or being easy to cherry-pick). I'll see if I can sneak that in today too, though I would like to sort AGC on burst captures too.
All annotate changes got pushed, as did my idea of forcing the sensor mode seeing as it worked (http://www.raspberrypi.org/forums/viewt ... 43&t=85714).
AGC on burst captures didn't quite make it - the lure of free beer and BBQ won out :D The risks of introducing regressions also didn't bode well, so it was safer to leave well alone. I am intending to pop into Pi Towers in the next couple of weeks to sort it, so all is not lost.

Otherwise, it's time up. We may be able to sneak in a few things in spare time, but not major new projects.
Software Engineer at Raspberry Pi Ltd. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

Return to “Camera board”