I think you're right in expecting that you should only see a portion of the 1332x990 camera mode, so not the full FoV. If you have a display attached, we can perform an experiment to check the behaviour:
The second time the camera starts, the image should suddenly "zoom out" a bit. But if you have set scaler crops, remember that these are in full resolution coordinates so that you can switch between camera modes and there _won't_ be a visible jump (so long as that part of the image is fully visible in both modes).
In the above script, when you first start the camera you should see a line likeconfirming that you have the 1332x990 mode. The second time you'll seeshowing that you've got the 2x2 binned full FoV mode.
Generally, I would recommend going with the largest full FoV mode that gives you an acceptable framerate. Obviously this depends on your application, but for many people the 2028x1520 mode is a sweet spot. If you want higher quality large zoom factors then you can of course switch to the full 4056x3040 mode, though at the expense of a "hiccup" during the switch-over, and then a slower framerate (though I note the 10-bit version of the mode should give decent quality at 14fps).
Just a super-minor final point - in your example your scaler crops are off by one. Strictly they should be (1622, 1248, 812, 544) so that 2*1622+812 = 4056 (and similarly for the height). Not that the difference will be noticeable!
Code:
import timefrom picamera2 import Picamera2picam2 = Picamera2()config1 = picam2.create_video_configuration({'size': (640, 480)})config2 = picam2.create_video_configuration({'size': (640, 480)}, sensor={'output_size': (2028, 1520)})picam2.start_preview(True)picam2.start(config1) # not full FoVtime.sleep(2)picam2.stop()picam2.start(config2) # full FoVtime.sleep(2)In the above script, when you first start the camera you should see a line like
Code:
[66:58:57.270990371] [115108] INFO RPI vc4.cpp:620 Sensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 1332x990-SBGGR12_1X12/RAW - Selected unicam format: 1332x990-pBCC/RAWCode:
[66:59:16.489028908] [115108] INFO RPI vc4.cpp:620 Sensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12/RAW - Selected unicam format: 2028x1520-pBCC/RAWGenerally, I would recommend going with the largest full FoV mode that gives you an acceptable framerate. Obviously this depends on your application, but for many people the 2028x1520 mode is a sweet spot. If you want higher quality large zoom factors then you can of course switch to the full 4056x3040 mode, though at the expense of a "hiccup" during the switch-over, and then a slower framerate (though I note the 10-bit version of the mode should give decent quality at 14fps).
Just a super-minor final point - in your example your scaler crops are off by one. Strictly they should be (1622, 1248, 812, 544) so that 2*1622+812 = 4056 (and similarly for the height). Not that the difference will be noticeable!
Statistics: Posted by therealdavidp — Thu Feb 19, 2026 10:10 am