The Kernel camera is the first modular camera platform that can be easily connected together to form custom, compact camera arrays. No longer are you locked into a particular sensor, lens, or filter setup: with Kernal you can swap anything out in the field. With an open hardware and software design you can create new accessories and code to adapt Kernel to meet your project’s needs. Ideal for vehicle (e.g., aerial drone) manufacturers, integrators, and operators looking to build powerful, custom, multi-spectral, and varying field of view camera arrays.
Kernel is the first camera to support UAVCAN: "a lightweight protocol designed for reliable communication in aerospace and robotic applications via CAN bus." The CAN bus connects the flight controller or companion computer’s sensor readings with Kernel. Common values today include GPS location, GPS time, air-speed, compass, gyroscope, accelerometer and level horizon. All sensor data the user chooses to save will be hard-coded to each captured image’s metadata (EXIF) to assist with image post processing. The UAVCAN port is located on the side of Kernel and adheres to the UAVCAN and Dronecode standards.
The embedded metadata on the images follows the standards of the most popular post-processing point-cloud programs such as Pix4Dmapper and Agisoft Photoscan. In the case that some information is different between programs there will be templates you can select in the interface application to insure that media import runs smoothly, and all relevant data is able to be read properly by the application. The interface application will also be used to tell the camera what lens and filter is being used so that it can adjust the metadata accordingly.
This metadata creation is also supported via Kernel’s serial/UART connection, commonly utilizing the Mavlink protocol. With Mavlink installed on Kernel, you can connect directly to each camera with applications such as QGroundControl.
Other communications such as I2C and Ethernet are also available.
Kernel can quickly capture RAW+JPG images and save the flight computer’s sensor metadata (EXIF):
As we finalize the software prior to shipping Kernel we will be trying to get these image capture rates even higher.
Kernel supports both PWM (pulse wave modulation) in and out to accomplish some unique tasks. The main one is that the PWM can be received by both the camera stack or the sensor directly. This means that there is very little delay to capture a photo when the PWM signal is received by the sensor and the exposure event happens. Kernel also measures any delay that exists and includes this time in the image metadata so you can improve your GPS location accuracy. No hot-shoe or flash trigger cables are required.
PWM out can be used to set up a "master" Kernel to send a trigger signal out to the rest of the array. This may be a reaction from either the master Kernel receiving an external trigger signal, calculating the distance moved from a GPS receiver plugged into its side, or from its own internal intervolometer.
You can also take advantage of the PWM out when adding new expansion boards to the bottom of Kernel. For instance, using a WiFi or Bluetooth connection board in one Kernel lets you connect to it and then control the remainder of the array directly without needing to purchase connection boards for every camera.
With the ability to write your own code to run on Kernel there are endless possibilities for you to use the inter-array communications. Examples include:
See an exploded view of the MAPIR Kernel Camera.
Kernel consists of only three main boards today, but in the future new boards can be designed to add additional functionality:
The 40-pin Kernel Port (outlined in red above) provides an easy, standardized way of linking multiple Kernel modules together to form arrays in any shape. You can easily swap different Kernels depending on your project’s requirements. The link boards we’re launching with form linear arrays, but in the future we’ll offer link boards and cables in other orientations.
The Kernel Port uses an easily obtained TE CHAMP 2129260-2 docking connector (with available mating plugs 2129261-1 or 2129276-1) which allows for the main communications in and out of the Kernel. Here is the full pin-out.
The main functions of the Kernel Port are:
The bottom Kernel Expansion Port (outlined in red below) allows for easy future module I/O support. The plug is a Hirose DF40C-60DP-0.4V(51). You can see the Kernel pin details in the full pin-out listing.
{kernel-bottom-proto2-60pin} Advances in technology mean there will also be new sensors available in the future. You can upgrade by simply swapping in the new sensor boards to gain their new capabilities. Some new sensors or desired frame rates may require more computational power, so you can simply swap to a new SoC board as they become available.
Because you can mix and match various Kernels with different sensors inside, we knew we needed to offer similar lens field of views (FOV) so that surveying overlap calculations wouldn’t be more tedious than it already is.
For the 3.0 MP and 16 MP sensors we have matched 41° HFOV lenses, allowing you to capture beautiful 16 MP RGB color along with your 3.0 MP monoscopic multi-spectral images.
View more photos of Kernal arrays.
Each Kernel module can be customized with various sensors, lenses, and filters as you choose. This allows you to custom build each Kernel and swap them into your array depending on your current project’s requirements.
Instead of connecting each camera together with bulky cable harnesses, we’ve designed a unique link board system:
At the start of an array you’ll find the LinkM. On the vehicle connection end it has the same Kernel port found on the Kernel, so all cables and breakout boards work in both port locations. When a Kernel is plugged into the "master" slot of the LinkM it gains special abilities different than the other array locations.
Since HDMI is difficult to pass between boards without signal issues, and would require essentially a dedicated HDMI switch to function properly, the master slot is reserved for the camera you would like to receive an HD video out feed. The rest of the link slots support SD analog video out, which can be switched to see the video feeds from each camera.
The master slot of the LinkM also allows some unique control of the array. Since each Kernel supports both PWM in and out, the master Kernel can be setup to trigger the rest of the array. It can also be used to check exposure and adjust other camera settings of the other Kernels in the array accordingly.
We’re excited to see what interesting use cases you’ll come up with using this control layout.
To connect more than two Kernels to the LinkM you’ll need to plug in one LinkS for each pair of Kernels you wish to add. Since LinkS boards easily connect to each other, you can build arrays of up to 12 Kernels, which is the maximum that can be uniquely identified via USB per single LinkM. If you need to connect more than 12 Kernels you can combine two LinkM arrays.
Due to the fact that each Kernel is essentially a small Linux computer, the power draw of four watts (nominal) per Kernel at five volts is a bit much to distribute across the link boards. With the LinkM board we require an input voltage of at least a 3S (11.1 volts) battery rating, which is then stepped down (DC/DC) on each link board.
A. | B. | C. | D. | E. | F. | |
---|---|---|---|---|---|---|
Dimensions | 34 mm x 80 mm | 69 mm x 80 mm | 103 mm x 80 mm | 207 mm x 80 mm | 172 mm x 80 mm | 138 mm x 80 mm |
Weight | 123 g | 247 g | 370 g | 741 g | 617 g | 494 g |
Cost | $2,500+ | $5,000+ | $7,500+ | $15,000+ | $12,00+ | $10,000+ |
Kernel Cores | 2 | 4 | 6 | 12 | 10 | 8 |
Link Boards | 1xLinkM | 1xLinkM + 1xLinkS | 1xLinkM + 2xLinkS | 1xLinkM + 5xLinkS | 1xLinkM + 4xLinkS | 1xLinkM + 3xLinkS |
Kernel contains a holder that allows for easy swapping of the installed filter. Simply unscrew the top housing and lens mount to reveal the filter.
When you purchase a Kernel you have the option of which filter you want to use.
For the RGB sensors you can choose from the RGB (visible light) filter and the dual-band NDVI filter. The RGB filter is used to capture normal color images similar to the spectrum of light our eyes see. The dual-band NDVI filter captures reflected red light in the red sensor channel and reflected NIR light in the blue channel. Our post processing workflow properly calibrates the dual bands and creates an NDVI image.
For the monoscopic sensors you have the choice of which single band filter to purchase. Each one can be used to capture reflected light useful in calculating indices like NDVI, ENDVI, GDIV, RENDVI, etc.
As the Kernel product line expands we will be adding many more single band filters to our catalog.
Next to Kernel’s side UAVCAN port is the 6-pin GPS port which follows the same pin-out used by the Pixhawk 1 and Pixhawk 2 flight controllers. The 6-pin port supports existing and future drone GPS units for geo-referencing captured media if you do not want to connect to the vehicle’s main controller. Examples of some supported GPS units can be found on the Pixhawk GPS page.
Pin # | Name | Direction | Description |
---|---|---|---|
1 | VCC_5V | out | Supply to GPS from AP |
2 | MCU_TX | out | 3.3-5.0 V TTL level, TX of AP |
3 | MCU_RX | in | 3.3-5.0 V TTL level, RX of AP |
4 | SCL | out | 3.3-5.0 V I2C2 |
5 | SDA | in | 3.3-5.0 V I2C2 |
6 | GND | - | GND connection |
With so many possible combinations for building your Kernel, we wanted to create an easy system for you to identify them from one another. Our solution is a plastic band on the housing that can be purchased in multiple colors and easily written on with permanent markers to further catalog your array. As we come out with more sensor, lens, and filter options, we believe the personalized bands will become very useful.
Kernel is designed so that it can be easily taken apart with a common flat-head screwdriver down to each part without coming across any stubborn adhesive, easily broken tabs or uncommon screw types. This allows anyone to purchase OEM parts from us and repair their cameras themselves, saving costly shipping and import fees later in the product’s life.
We have already created prototypes of the main three-board camera stack and are ready to send the final design to manufacturing. After the final stack design is tested and meets our requirements, we will be able to proceed with certifications and production.
The sensor board prototypes are currently being tested with the camera stack. Once they’re fully functional, we’ll be able to produce them with the camera board stack.
The camera’s plastic part designs may change slightly as we finish the PCB designs and then we can commit to the plastic injection molds.
The biggest issue we’ve faced has been a shortage of the 3.0 MP and 16 MP sensors this year as Sony’s factories went down following the earthquake last Spring. This has delayed us getting sensors for our camera prototypes, but supply should hopefully increase to normal levels soon. We have no issues obtaining the 1.2 MP sensors which will likely be the first cameras available.
We’ve made the prototype housing using 3D-printed (SLS) nylon and there will likely be some design tweaks needed to move to injection molding.
After thermal testing we may need to expand the exposed surface area of the heatsink but we have plenty of options to do this without incurring a large amount of extra costs (per Kernel BOM).
A bare-bones Kernel camera stack, including the SoC, power, and I/O boards. Also comes with screws for assembly, a UAVCAN cable (four-pin GH to four bare wires), an aluminum heatsink, and thermal compound. Does not include a sensor, lens, filter, or housing (add to cart separately).
Connecting your Kernel cameras together is easy with Kernel Link Boards. A Kernel array typically starts with a LinkM (master) and then includes LinkS (slave) boards. Each Link Board connects two Kernels together. Free international shipping with purchase of a Kernel Core.
LinkM (left) and LinkS (right)
The Kernel housing includes top, lens protector, color ring (choose color below), shell, buttons, and bottom mount. All screw hardware is also included. Free international shipping with purchase of a Kernel Core.
Default mount provides secure array linking. Photo coming soon.
Choose color/monochrome, resolution, and shutter style. You will receive the sensor board and a sensor ribbon cable to connect to the camera stack. Free international shipping with purchase of a Kernel Core.
Not all lenses are compatible with all sensors. Free international shipping with purchase of a Kernel Core.
Not all filters are compatible with all sensors - whether a filter is compatible with RGB sensors or monochrome sensors is specified in brackets. Free international shipping with purchase of a Kernel Core.
One end of this cable connects to the Kernel port and the other end splits into different standard connectors, depending on the connectivity option you choose. Actual connectors used are listed in parentheses. Free international shipping with purchase of a Kernel Core.
Perfect for prototyping Kernel port accessories. This PCB breaks out all 40 pins of the Kernel Port. Free international shipping with purchase of a Kernel Core.
GROUP | SIGNAL | ROW 1 PIN | ROW 2 PIN | SIGNAL | GROUP |
Boot mode | BOOT_MODE0 | 1 | 2 | GND | Power |
Power | VCC_SYS_5V | 3 | 4 | VCC_5V | Power |
Boot mode | BOOT_MODE1 | 5 | 6 | GND | Power |
Power | VCC_SYS_5V | 7 | 8 | HDMI_DDC_SCL | HDMI |
USB OTG | USB_OTG_ID | 9 | 10 | HDMI_TX_DDC_SDA | HDMI |
UART | UART1_TXD | 11 | 12 | GND | Power |
Power | VCC_USB_OTG_VBUS | 13 | 14 | HDMI_MX_HP | HDMI |
UART | UART1_RXD | 15 | 16 | GND | Power |
Power | GND | 17 | 18 | OUT_TMDS_CLK_N | HDMI |
CAN | CAN1_L | 19 | 20 | OUT_TMDS_CLK_P | HDMI |
USB OTG | USB_OTG_N | 21 | 22 | GND | Power |
CAN | CAN1_H | 23 | 24 | OUT_TMDS_D0_N | HDMI |
USB OTG | USB_OTG_P | 25 | 26 | OUT_TMDS_D0_P | HDMI |
Power | GND | 27 | 28 | GND | Power |
Power | GND | 29 | 30 | OUT_TMDS_D1_N | HDMI |
Power | VCC3V3 | 31 | 32 | OUT_TMDS_D1_P | HDMI |
Analog video out | DAC1 | 33 | 34 | GND | Power |
Power | GND | 35 | 36 | OUT_TMDS_D2_N | HDMI |
PWM | PWM3_OUT | 37 | 38 | OUT_TMDS_D2_P | HDMI |
PWM | PWM4_IN | 39 | 40 | GND | Power |
** USB JTAG** | PORT | PORT | HDMI |
VCC_SYS_5V | 1 | 2 | VCC_SYS_5V |
VCC_SYS_5V | 3 | 4 | VCC_SYS_5V |
X | 5 | 6 | X |
iMX6_RGMII_RXCLK | 7 | 8 | GND |
iMX6_RGMII_RXD0 | 9 | 10 | iMX6_RGMII_TXCLK |
iMX6_RGMII_RXD1 | 11 | 12 | iMX6_RGMII_TXD0 |
iMX6_RGMII_RXD2 | 13 | 14 | iMX6_RGMII_TXD1 |
iMX6_RGMII_RXD3 | 15 | 16 | iMX6_RGMII_TXD2 |
iMX6_RGMII_RXDV | 17 | 18 | iMX6_TXD3 |
RGMII_RSTn | 19 | 20 | iMX6_RGMII_TXEN |
RGMII_MDIO | 21 | 22 | RGMII_INT |
RGMII_MDC | 23 | 24 | RGMII_REF_CLK |
GND | 25 | 26 | GND |
12C1_SCL | 27 | 28 | CSP15_MOSI |
12C1_SDA | 29 | 30 | CSP15_SCLK |
UART1_TXD | 31 | 32 | CSP15_MISO |
UART1_RXD | 33 | 34 | GND |
GND | 35 | 36 | DAC1 |
GND | 37 | 38 | GND |
X | 39 | 40 | GPIO_1 |
GPIO_2 | 41 | 42 | GPIO_3 |
DISP_DAT6 | 43 | 44 | DISP_DAT7 |
DISP_DAT4 | 45 | 46 | DISP_DAT5 |
DISP_DAT2 | 47 | 48 | DISP_DAT3 |
DISP_DAT0 | 49 | 50 | DISP_DAT1 |
DISP_DAT16 | 51 | 52 | DISP_DAT17 |
DISP_DAT18 | 53 | 54 | DISP_DAT19 |
DISP_DAT20 | 55 | 56 | DISP_DAT21 |
DISP_DAT22 | 57 | 58 | DISP_DAT23 |
GND | 59 | 60 | GND |
Pin | Label | I/O Voltage | Default | Alt. Function 1 | Alt. Function 2 |
---|---|---|---|---|---|
1 | VCC_SYS_5V | 5V Power | |||
2 | VCC_SYS_5V | 5V Power | |||
3 | VCC_SYS_5V | 5V Power | |||
4 | VCC_SYS_5V | 5V Power | |||
5 | X | NC | |||
6 | X | NC | |||
7 | RGMII_RXC | 1.8 V | RCMII_RXC | GPIO6_IO30 | |
8 | GND | Ground | |||
9 | RCMII_RD0 | 1.8 V | RCMII_RD0 | GPIO6_IO25 | |
10 | RCMII_TXC | 1.8 V | RCMII_TXC | GPIO6_IO19 | |
11 | RCMII_RD1 | 1.8 V | RCMII_RD1 | GPIO6_IO27 | |
12 | RCMII_TD0 | 1.8 V | RCMII_TD0 | GPIO6_IO20 | |
13 | RCMII_RD2 | 1.8 V | RCMII_RD2 | GPIO6_IO28 | |
14 | RCMII_TD1 | 1.8 V | RCMII_TD1 | GPIO6_IO21 | |
15 | RCMII_RD3 | 1.8 V | RCMII_RD3 | GPIO6_IO29 | |
16 | RCMII_TD2 | 1.8 V | RCMII_TD2 | GPIO6_IO22 | |
17 | RCMII_RX_CTL | 1.8 V | RCMII_RX_CTL | GPIO6_IO24 | |
18 | RCMII_TD3 | 1.8 V | RCMII_TD3 | GPIO6_IO23 | |
19 | ENET_CRS_DV | 1.8 V | RCMII_RSTN | ||
20 | RCMII_TX_CTL | 1.8 V | RCMII_TX_CTL | GPIO6_IO26 | |
21 | ENET_MDIO | 1.8 V | ENET_MDIO | GPIO6_IO22 | |
22 | ENET_RXD1 | 1.8 V | ENET_1588_ EVENT3_OUT | GPIO6_IO26 | |
23 | ENET_MDC | 1.8 V | RCMII_MDC | GPIO6_IO22 | |
24 | ENET_REF_CLK | 1.8 V | ENET_TX_CLK | GPIO6_IO23 | |
25 | GND | Ground | |||
26 | GND | Ground | |||
27 | EIM_D21 | 3.3 V | 12SCL | GPIO3_IO21 | |
28 | SD2_CMD | 3.3 V | GPIO3_IO21 | ||
29 | EIM_D28 | 3.3 V | I2C1_SDA | GPIO3_IO28 | |
30 | SD2_CMD | 3.3 V | GPIO1_IO11 | ||
31 | GPIO_7 | 3.3 V | UART_TX_DATA | GPIO1_IO07 | FLEXCAN1_TX |
32 | SD2_DAT0 | 3.3 V | GPIO_IO15 | ||
33 | GPIO_8 | 3.3 V | UART2_RX_DATA | GPIO1_IO08 | FLEXCAN1_RX |
34 | GND | Ground | |||
35 | GND | Ground | |||
36 | DAC | Analog Video out | |||
37 | GND | Ground | |||
38 | GND | Ground | |||
39 | X | NC | |||
40 | NANDF_D1 | 3.3 V | GPIO2_IO01 | ||
41 | NANDF_D2 | 3.3 V | GPIO2_IO02 | ||
42 | NANDF_D3 | 3.3 V | GPIO2_IO03 | ||
43 | DISP0_DAT6 | 3.3 V | ECSPI3_SS3 | GPIO4_IO27 | |
44 | DISP0_DAT7 | 3.3 V | ECSPI3_RDY | GPIO4_IO28 | |
45 | DISP0_DAT4 | 3.3 V | ECSPI3_SS1 | GPIO4_IO25 | |
46 | DISP0_DAT5 | 3.3 V | ECSPI3_SS2 | GPIO4_IO26 | |
47 | DISP0_DAT2 | 3.3 V | ECSPI3_MISO | GPIO4_IO23 | |
48 | DISP0_DAT3 | 3.3 V | ECSPI3_SS0 | GPIO4_IO24 | |
49 | DISP0_DAT0 | 3.3 V | ECSPI3_SCLK | GPIO4_IO21 | |
50 | DISP0_DAT1 | 3.3 V | ECSPI3_MOSI | GPIO4_IO22 | |
51 | DISP0_DAT16 | 3.3 V | GPIO4_IO10 | ECSPI2_MOSI | |
52 | DISP0_DAT17 | 3.3 V | GPIO4_IO11 | ECSPI2_MISO | |
53 | DISP0_DAT18 | 3.3 V | AUD4_RXFS | ECSPI2_SS0 | GPIO4_IO12 |
54 | DISP0_DAT19 | 3.3 V | AUD4_RXC | ECSPI2_SCLK | GPIO4_IO13 |
55 | DISP0_DAT20 | 3.3 V | AUD4_TXC | ECSPI1_SCLK | GPIO4_IO14 |
56 | DISP0_DAT21 | 3.3 V | AUD4_TXD | ECSPI1_MOSI | GPIO4_IO15 |
57 | DISP0_DAT22 | 3.3 V | AUD4_TXFS | ECSPI1_MISO | GPIO4_IO16 |
58 | DISP0_DAT23 | 3.3 V | AUD4_RXD | ECSPI1_SS0 | GPIO4_IO17 |
59 | GND | GROUND | |||
60 | GND | GROUND |
Color | Function | Color | Function | Color | Function |
---|---|---|---|---|---|
Power | SPI (Primary + Alt.) | italic | UART/CAN | ||
GPIO | RGMII (Gig. Eth.) | BOLD | GROUND | ||
12S Audio input/outputs |
Produced by MAPIR in San Diego, California.
Sold and shipped by Crowd Supply.
A completely assembled Kernel camera built according to the options selected below. Includes a UAVCAN + Power cable (4-pin GH to four bare wires) to wire directly to a 5 V power source. Add link boards below to connect the cameras into an array. Additional breakout cable and boards can also be added separately below.
Connecting your Kernel cameras together is easy with the Kernel Link Boards. A Kernel array typically starts with a LinkM (master) and then includes LinkS (slave) boards. Each Link Board connects two Kernels. Link Boards can be connected to form larger arrays. Free international shipping with purchase of a Kernel Core.
To build your custom Kernel, start with a Kernel Core and add the other parts to your cart. During fullfillment, we will send you a survey as to the configuration you would like us to send the complete camera in. The Kernel Core contains the camera stack, including the SoC, power, and I/O boards. It also comes with screws for assembly, a UAVCAN cable (4-pin GH to four bare wires), an aluminum heatsink, and thermal compound. Does not include a sensor, lens, filter, or housing (add to cart separately and they will be combined into a complete Kernel).
Perfect for prototyping Kernel port accessories. This PCB breaks out all 40 pins of the Kernel Port. Free international shipping with purchase of a Kernel Core.
Choose color/monochrome, resolution, and shutter style. You will receive the sensor board and a sensor ribbon cable to connect to the camera stack. Free international shipping with purchase of a Kernel Core.
Not all filters are compatible with all sensors - whether a filter is compatible with RGB sensors or monochrome sensors is specified in brackets. Free international shipping with purchase of a Kernel Core.
One end of this cable connects to the Kernel port and the other end splits into different standard connectors, depending on the connectivity option you choose. Actual connectors used are listed in parentheses. Free international shipping with purchase of a Kernel Core.
The Kernel housing includes top, lens protector, color ring (choose color below), shell, buttons and bottom mount (choose below). All screw hardware is also included. Free international shipping with purchase of a Kernel Core.
Not all lenses are compatible with all sensors - sensor compatibility is specified in brackets. Free international shipping with purchase of a Kernel Core.
MAPIR provides simple, turn-key, multi-spectral imaging solutions for our customers.
An open source FT2232H-based, multi-protocol, multi-voltage tool for hardware hacking
Everything you need to navigate the world's largest electronics market
The open-source stereoscopic camera based on Raspberry Pi with Wi-Fi, Bluetooth, and an advanced powering system