This new firmware is still in development so expect issues and bugs.
This is the list of current issues/bugs: https://github.com/apertus-open-source-cinema/axiom-beta-firmware/issues
If you find a new bug or have ideas for improvement please add it as github issue (please first check it has not been reported yet).
axiom_(for example to run
axiom_set_gain.sh). These scripts/binaries are now executable from anywhere. To find their actual location you can use:
which axiom_set_gain.shor if you want to use the script without caring about where its actually stored you can use:
$(which axiom_start.sh)for example to show the content:
cat $(which axiom_start.sh).
kick_manual.shwas renamed to
halt_manual.shwas renamed to
cmv_snap3was renamed to
axiom_sequencer-start.shstarts the continuous image acquisition (HDMI output).
axiom_sequencer-stop.shstops the continuous image acquisition (HDMI output).
./cmv_snap3 -e 20ms -zis now done by typing
sudo axiom_snap -e 20ms -z
/boot/devicetree.dts. To recompile it after any changes use
dtc -O dtb -o /boot/devicetree.dtb /boot/devicetree.dts
Ctrl-Cover serial quickly after a boot / reboot (try holding it down)
axiom_file_check.shdoes an integrity check of /usr, /etc and /opt
/opt/axiom-firmwarecontains scripts and binaries
/usr/lib/firmwareand softlinked to from
/opt/axiom-firmware/makefiles/in_chroot/to_raw_bitstream.py -f input_file.bit output_file.binand copied to
sudo su) and not with
echo $BITSTREAM_NAME | sudo tee /sys/class/fpga_manager/fpga0/firmware
Create a copy of axiom_start.sh with a new name eg. axiom_start30.sh
cp $(which axiom_start.sh) axiom_start30.sh
In it replace this line:
echo axiom-fpga-main.bin > /sys/class/fpga_manager/fpga0/firmware
by this line (choosing appropriate files: _30 for 25P/30p or _60 for 50p/60p modes):
echo cmv_hdmi3_dual_30.bin > /sys/class/fpga_manager/fpga0/firmware
copy /opt/bitstreams/cmv_hdmi3_dual_30.bin to /lib/firmware:
sudo cp /opt/bitstreams/cmv_hdmi3_dual_30.bin /lib/firmware
execute the new script:
There is a command-line tool available on the camera called axiom_snap that allows you to capture still images and takes various parameters. The still images are captured in a raw image format called RAW12 or raw16 (deprecated - the CMV12000 only provides 12 bit so using raw16 is not recommended) which is basically just raw pixel data dumped into a file plus an optional metadata block containing image sensor configuration (it is recommended to always store the metadata as it can be useful for the DNG conversion with raw2dng - also its just a tiny amount of data [128x16bit] and might come in handy at a later image processing step.) Note that axiom_snap cannot be utilized via serial console (minicom, screen, etc.). If you want to write images to your host computer, use SSH connection instead.
The following parameters are available:
axiom_snap -h This is axiom_snap cmv_snap3 V1.11 options are: -h print this help message -8 output 8 bit per pixel -2 output 12 bit per pixel -d dump buffer memory -b enable black columns -p prime buffer memory -r dump sensor registers -t enable cmv test pattern -z produce no data output -e <exp> exposure times -v <exp> exposure voltages -s <num> shift values by <num> -S <val> writer byte strobe -R <fil> load sensor registers
Images can be written directly to the cameras internal micro SD card like this (10 milliseconds exposure time, 12bit, include metadata registers):
axiom_snap -e 10ms -r -2 > image.raw12
You can also use axiom_snap to change exposure time (to 5 milliseconds in this example) without actually capturing an image, for the that -z parameter is used to not produce any data output:
axiom_snap -z -e 5ms
That axiom_snap writes data to STDOUT makes it very versatile, we can for example capture images from and to a remote Linux machine connected to the Beta via Ethernet easily (lets assume the AXIOM Betas camera IP is set up as: 192.168.0.9 - SSH access has to be set up for this to work with a keypair - this does not work over the serial/USB console)
ssh firstname.lastname@example.org "axiom_snap -2 -r -e 10ms" > snap.raw12
To pipe the data into a file and display it at the same time with imagemagick on a remote machine:
ssh email@example.com "axiom_snap -2 -r -e 10ms" | tee snap.raw12 | display -size 4096x3072 -depth 12 gray:-
Use imagemagick (tested with Version 6 and 7) to convert raw12 file into a color preview image:
cat test.raw12 | convert \( -size 4096x3072 -depth 12 gray:- \) \( -clone 0 -roll -1-1 \) \( -clone 0 -roll -1+0 \) \( -clone 0 -roll +0-1 \) -sample 2048x1536 \( -clone 2,3 -average \) -delete 2,3 -swap 0,2 -combine test_color.png
Use imagemagick (tested with Version 6 and 7) to convert raw12 file into a color preview image (swapped lines from a bug in an earlier version of cmv_snap3):
cat test.raw12 | convert \( -size 4096x3072 -depth 12 gray:- \) \( -clone 0 -roll -1-1 \) \( -clone 0 -roll -1+0 \) \( -clone 0 -roll +0-1 \) -sample 2048x1536 \( -clone 2,3 -average \) -delete 2,3 +swap -combine test_color.png
With raw2dng compiled inside the camera you can capture images directly to DNG, without saving the raw12:
axiom_snap -2 -b -r -e 10ms | raw2dng snap.DNG
Note: Supplying exposure time as parameter is required otherwise axiom_snap will not capture an image. The exposure time can be supplied in "s" (seconds), "ms" (milliseconds), "us" (microseconds) and "ns" (nanoseconds). Decimal values also work (eg. "15.5ms").