An open, modular platform for building custom camera arrays.
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.
Features & Specifications
- System on Chip (SoC): Freescale i.MX 6 Dual ARM Cortex A9 1.2GHz
- Operating System (OS): Yocto Linux
- Sensors: 1.2 MP mono/RGB (global), 3.0 MP mono/RGB (global), 16 MP RGB (rolling)
- Lenses: 41°, 47°, 82°, 220° HFOV (based on sensor selection)
- Filters: RGB, NDVI (Red+NIR), 850 nm, 808 nm, 720 nm, 650 nm, 548 nm, 450 nm, etc.
- Interfaces: Serial/UART, UAVCAN, PWM, USB, I2C, Ethernet, GPIO, HDMI & SD Video
- Positional Sensor: Inertial Measurement Unit (IMU) – 3xAcceleration, 3xAngular, 3xMagnometer (ST Micro LSM9DS1TR )
- Trigger: PWM (camera and direct sensor), internal intervolometer, GPS distance
- Storage: removable microSDXC (max 128 GB)
- Power (Kernel): 5.0 VDC, 4.2 W (max)
- Power (array): 11.1 – 22.2 VDC (3S-6S), 8.4-50.4 W (max, 2-12 Kernels)
- Dimensions (Kernel): 34 mm x 34 mm x 56 mm (length x width x height)
- Weight (Kernel): 55 g
We listened to you and built the camera you wanted:
- Swappable Lenses: easily change the camera’s field of view
- Swappable Filters: easily change spectral bands for vegetative and other analysis
- Swappable Mounts: options for mounting to many drones
- Native Geo-referenceing: no need to extract the drone’s log file
- Global Shutter: no more image jello
- Batteries Not Required: tap into the drone’s power to reduce payload weight
- Simultaneous Triggers: trigger multiple cameras with no delay
- Replacement Parts: don’t throw the whole thing away because you broke one part
- Fast Image Capture: fly your drone faster and cover more area
- Upgradeable: no need to buy an entirely new system
If your vehicle is recording sensor data, so will Kernel.
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 theMavlink 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.
How fast can Kernel capture images? FAST
Kernel can quickly capture RAW+JPG images and save the flight computer’s sensor metadata (EXIF):
- 17fps 1.2MP RAW+JPG Photos
- 13fps 3.0MP RAW+JPG Photos
- 3fps 16MP RAW+JPG Photos
As we finalize the software prior to shipping Kernel we will be trying to get these image capture rates even higher.
Simultaneously triggering multiple cameras has never been easier.
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:
- An application that has the master Kernel meter the lighting conditions and then locks the camera settings of the other cameras in the array with various bracket adjustments to simultaneously capture a set of images, which can be then combined into an HDR image.
- An application that allows you to adjust the master Kernel’s camera settings which are then copied by the other cameras in the array of your choosing.
- An application that adjusts the other cameras when the master Kernel identifies various QR codes (or similar patterns). We’ll use this capability for our reflectance ground target detection.
An open camera platform that evolves with you.
Interactive 3D Model
Kernel consists of only three main boards today, but in the future new boards can be designed to add additional functionality:
- Need to rotate the sensor 90 degrees? Easy, just add a small board between the SoC and power board to rotate the sensor ribbon connector.
- Need to add on larger C/CS or Micro4/3rd lenses? Easy, install the new lens mount over the sensor board.
- Need to add an auto-focusing or zoom lens? Easy, just plug in the necessary cables and boards.
- Need to add more media storage? Easy, just add another board with built in SSD or additional removable storage.
- Need to add Wi-Fi, Bluetooth, GPS, a battery, more buttons, Ethernet, or LCD? Easy, simply snap the new board into the bottom 60-pin expansion connector.
The bottom expansion port (outlined in red below) allows for easy future module support. You can see details in this full pin-out listing.
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.
One view to align them all.
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.
The Kernel Port: 30 pins of open I/O.
The 30-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:
- USB OTG
- PWM (In/Out)
- HDMI Video
- SD Analog Video
- 5 V Power
Modular in itself… and with itself.
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:
LinkM: Master Link Board
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.
LinkS: Slave Link Board
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.
Link Board Power Distribution
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.
Kernel Camera Arrays
|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|
|Link Boards||1xLinkM||1xLinkM + 1xLinkS||1xLinkM + 2xLinkS||1xLinkM + 5xLinkS||1xLinkM + 4xLinkS||1xLinkM + 3xLinkS|
Filter options for Kernel cameras
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.
Drone GPS receivers supported directly on-camera.
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.
|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|
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.
Designed to be taken apart.
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.
Risks & Challenges
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).
Kernel Array Link Board
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.
Slide Mount: Bottom
Default mount provides secure array linking. Photo coming soon.
GoPro Hero Mounts: Bottom and Side
Tripod Mounts: Bottom and Side
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.
Kernels with 1.2 MP Sensor + 6.0 mm Lens (left) and 3.0 MP Sensor + 9.6 mm Lens (right)
Kernels with 16 MP Sensor and 1.21 mm, 3.97 mm, and 8.25 mm Lenses (left to right)
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.
Kernel Port Cable
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.
Kernel Port Breakout Board
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.
Kernel Camera Arrays
Kernel Sensor Options
1.2 MP Sensor
- Manufacturer: ON Semiconductor
- Part Number: AR0134CS
- Sensor Dimension: 1/3” (6 mm)
- Active Pixels: 1280 x 960 (1.2 MP)
- Pixel Size: 3.75 um x 3.75 um
- Version Option: RGB (bayer), Mono
- Photo Mode: RAW+JPG
- Datasheet: PDF
3.0 MP Sensor
- Manufacturer: Sony
- Part Number: IMX265LQR-C (RGB), IMX265LLR-C (Mono)
- Sensor Dimension: 1/1.8” (8.9 mm)
- Active Pixels: 2064 x 1544 (3.19 MP)
- Pixel Size: 3.45 um x 3.45 um
- Version Option: RGB (bayer), Mono
- Photo Mode: RAW+JPG
16 MP Sensor
- Manufacturer: Sony
- Part Number: IMX206CQC
- Sensor Dimension: 1/2.3” (7.77 mm)
- Active Pixels: 4632 x 3492 (16.17 MP)
- Pixel Size: 1.34 um x 1.34 um
- Version Option: RGB (bayer)
- Photo Mode: RAW+JPG
Kernel Port Details
|GROUP||SIGNAL||ROW 1 PIN||ROW 2 PIN||SIGNAL||GROUP|
|Analog video out||DAC1||33||34||GND||Power|
Kernel Expansion Port Details
|Pin||Label||I/O Voltage||Default||Alt. Function 1||Alt. Function 2|
|22||ENET_RXD1||1.8 V||ENET_1588_ EVENT3_OUT||GPIO6_IO26|
|36||DAC||Analog Video out|
|Power||SPI (Primary + Alt.)||italic||UART/CAN|
|GPIO||RGMII (Gig. Eth.)||BOLD||GROUND|
|12S Audio input/outputs|