The Beta Main Board is the camera's equivalent of a PC's motherboard. Two external medium-speed shield connectors and two high-speed plugin module slots provide ample opportunity to expand other constituent parts of the camera's hardware.
In the centre of the Main Board, and on both sides of the PCB, a 'solder-on' area for Beta CSOs has been incorporated. CSOs host chips capable of, for example, sensing the camera's orientation and acceleration (the same chips used to stabilise quad-copters and track head movements in VR headsets). Being situated directly behind the image sensor's centre means that these sensors are ideally positioned to supply data surrounding image stabilisation or metadata about the camera’s orientation and movement during a shot. Two Lattice FPGAs (the so called routing fabrics) handle all the low speed GPIO communications that are required for plugin modules, shields and CSOs without sacrificing valuable Zynq GPIOs.
The Main Board is positioned between the Interface Board and the Power Board in the camera's PCB stack (See Camera Structure).
Re: AXIOM Beta Main Board's use of Shields - Beta Debug Shield
The East shield has 4 Zynq LVDS pairs, the West shield 4 Lattice LVDS pairs (both East and West shields both have 10 North and 10 South GPIOs). LVDS paired directly from the Zynq can then be considered high speed, i.e. 1Gbit/s guaranteed and up to 1.5Gbit/s under good conditions. LVDS paired from one of the Lattice FPGAs means guaranteed up to 450Mbit, i.e. under good conditions probably around 600Mbit/s. Single ended GPIOs, regardless from where they originate, are below 300MHz at best.
Plugin Slots on the AXIOM Beta Main Board have 6 Zynq LVDS pairs and 8 GPIOs each, as well as one I2C bus for identification.
The CSO area has 2 x 4 GPIOs which can also be used as I2C or SPI buses.
Guide to program the PIC16s in Beta Main Board
Beta Main Board uses Microchip PIC16F1718 MCUs. We have two of these, West and East, to control Routing Fabrics West (RFW) and Routing Fabrics East (RFE) respectively.
To program the PIC16s, first make sure you are connected to your AXIOM Beta either via Serial or SSH. (See AXIOM Beta/Manual)
Run this script to prepare the MicroZed (upload a special FPGA firmware) to program the PIC16s via ICSP:
$ sudo /opt/axiom-firmware/software/bringup-scripts/prep_icsp.sh
Run the next python script specifying "A" for PIC West and "B" for PIC East, and also PIC's firmware hex file:
$ sudo python /opt/axiom-firmware/software/bringup-scripts/icsp_prog.py A /opt/axiom-firmware/peripherals/pic_firmware/PIC16/PIC16F1718/i2c_slave.hex $ sudo python /opt/axiom-firmware/software/bringup-scripts/icsp_prog.py B /opt/axiom-firmware/peripherals/pic_firmware/PIC16/PIC16F1718/i2c_slave.hex