A80 Teardown
The newer A80 with QHD at 30 fps and 4K24p capabiltiy (20MP still frames) has a lens shroud that is tucked under the front cover (left), which needs careful persuasion for its clips to release without breaking. The short sides appeared to be the best to attack first.
Next, the lens shroud (right) can be removed.
The structural plate (bottom) makes the thread locking adhesive hard to access, but it can be removed by removing all 7 screws. Note there are 3 different types of screws.
It is recommended to un-solder the power button wires to prevent wire breakage, otherwise the structural plate is always in the way.
To further improve access, the WiFi module can be peeled off the internal walls, and its flat flex cable can be unplugged from the mainboard.
The lens in the A80 was fixed with a clear adhesive around the top of the threads. An Ersa 0102CDLF04 soldering iron tip at 150-160°C was pushed into the joint makes it soft and crumbly. If the lens does not unscrew after the the glue bond has been broken all around the top end of the lens holder, the camera body can be covered with 2-3 layers of Al foil, and 120-140°C hot air can be blown against the aluminium lens housing to pre-heat it to 60-80°C, after which another attempt to unscrew it can be made. It is recommended to protect the plastic enclosure from coming into contact with the soldering iron, as this will easily melt into and ruin the plastic.
What looked like uncured adhesive or grease on the M12x0.5 threads was removed with mineral spirits.
More time was spent to clear the threads with the fine soldering tip.
Infrared Filter
Next, a Proxxon 28846 diamond cutting disc is needed:
Addendum
The Apeman A80 is said to use a Sony IMX078CQK sensor (capable of 60 fps at 1920x1080 and 42 fps at its native 4072x3044 (12.4 MP)) and Novatek N96660 chipset . From a product brief one can glean the spectral sensitivity. Unfortunately, this 2009 era sensor for consumer electronics isn't fully characterized to 1000 nm or beyond
ffmpeg -i video.avi -filter_complex 'extractplanes=y+u+v[y][u][v]' -map '[y]' y.avi -map '[u]' u.avi -map '[v]' v.avi
To work in with rgb values, rgb24 is set as the new pixel format.
To attempt to subtract some of B from R, colorchannelmixer is used. It receives the 4x4 matrix elements to mix r, g, b, a. They're specified as rr:rg:rb:ra:gr:gg:gb:ga:br:bg:bb:ba:ar:ag:ab:aa . The end can be truncated and missing elements are populated with defaults.
A first attempt to produce a new red channel with far-red information, along with a blue channel deeper in the NIR. It mostly worked, save for green artifacts and smearing. This may be fixed in future releases of ffmpeg.
ffmpeg -i "INPUT.MP4" -filter_complex "format=rgb24,colorchannelmixer=2:0:0:1:0:0:0:1:0:0:1.5:1,extractplanes=r+b[iR][iB],[iR]eq=contrast=1:brightness=0:saturation=1:gamma=1,scale=640:-1[cR],[iB]eq=contrast=1:brightness=0:saturation=1:gamma=1,scale=640:-1[cB]" -map "[cR]" NR.mp4 -map "[cB]" B.mp4
To create a false color represenation of the input video, the following steps were configured:
- format=rgb24
- colorchannelmixer=2:0:-0.8:1:0:1.8:0:1:0:0:0.75:1
- eq=contrast=1.8:brightness=0.4:saturation=1.75:gamma=1:gamma_r=0.8:gamma_g =1.05:gamma_b=0.37
- scale=1280:-1
The input stream is "h264 (High) (avc1 / 0x31637661), yuv420p, 2560x1440, 19875 kb/s, 30 fps, 30 tbr, 60k tbn, 60 tbc", so initially, the pixel format is converted from yuv420p to rgb. colorchannelmixer and eq settings depend on the filter, sensor type, white balance (cloudy or tungsten, but necessarily not auto) and camera-side color profile. It would be preferable to have more control or raw data, but this is not possible on simple, closed-source action cameras.
Final commandline:
ffmpeg -i "INPUT.MP4" -filter_complex "format=rgb24,colorchannelmixer=2:0:-0.8:1:0:1.8:0:1:0:0:0.75:1,eq=contrast=1.8:brightness=0.4:saturation=1.75:gamma=1:gamma_r=0.8:gamma_g =1.05:gamma_b=0.37,scale=1280:-1" -c:v h264_qsv -b:v 5M falsecolor.mp4
The result: all you see looked green. Well, not anymore :)
Footnote: The Competition
DJI Mavic 3e features a linear array of monochrome 5MP camera sensors:
Customized narrowband filters are available at moderate cost (1€ for standard types, 35€ for any other.
Note that the the dielectric filters are narrow-band and the large spacing relies on a great observation distance.
While the monochrome sensors should have a leg up even 12 or 20 MP RGB sensors with a Bayer matrix pattern, this design has two shortcoming which might become a challenge at different working distances:
- parallax error betweeen NIR / RE and green
- no ability to zoom at greater stand-off distance
The Mavic drone will give the better out-of-the-box experience and integration for mapping and post-processing in proprietary software. Utilizing a modified A80 camera can give access to more "FPV"-style features, beginning with a 5-50 mm zoom lens:
The rear side of the zoom lens assembly shows the extended envelope for the switchable IR bandpass assembly which will have to be replaced with a compact lens mount.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.