So, it is turned out, that C270 does not implement the MJPEG format properly. As a result, ANY library using libjpeg will tell you about it every time when it is trying to decode a frame.
- https://stackoverflow.com/questions/15533338/opencv-error-on-ubuntu-webcam-logitech-c270-capture-highgui-error-v4l-v4l2
- https://answers.opencv.org/question/176388/logitech-c270-webcamera-gives-me-this-error-outputcorrupt-jpeg-data-3-extraneous-bytes-before-marker-0xd5-illegal-instruction-what-can-be-the-solution/
- https://github.com/Motion-Project/motion/issues/65
- ...
The issue can be easily suppressed if you patch your libjpeg with a single line change, but in that case you have to patch exactly the same library that is used by your other libraries, or you might have a problem like this:
- https://github.com/opencv/opencv/issues/23315
- https://forum.qt.io/topic/52899/solved-wrong-jpeg-library-version-library-is-90-caller-expects-80
- ...
These complications are solvable every time, but the project is meant to be build easily (or at least as easy as possible), so I've dug into other simple solutions. The result is simple - replace C270 but with what? As I discovered. Logitech has several cameras with a similar PCB design which makes them mechanically interchangeable. They are C270, C310, C505 and probably Brio 100 plus Brio 105:
C270 | C310 | C505 | Brio 100 | Brio 105 |
So I can suggest you to try any of them besides C270, but I've bought C310 and got a super simple update. In the future I might to replace it with something else with FullHD. Here are two PCB near each other:

The assembly manual is updated https://www.hackster.io/an-dr/remotion-robotic-platform-0e8301#toc-extension-module---camera--logitech-c310---c505--brio-100-4
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.