Monocle Image

StreamLogic supports Monocle as a target platform. Monocle is a open wearable device that features:

  • Forward-facing camera
  • Microphone
  • Heads-up display
  • RAM and Flash memory
  • FPGA and MCU compute
  • Bluetooth radio

The FPGA is used to interface with the camera, display and microphone. The MCU firmware runs MicroPython and controls the FPGA. You can use StreamLogic to build your own custom camera and display pipelines for the FPGA.

The StreamLogic fork of the MicroPython firmware allows you to control any pipeline you build with StreamLogic from the MCU.

Getting Started

Any design using the camera or display on Monocle will require the use of a frame buffer, so a good place to start is understanding frame buffers. The camera captures images at a constant rate, and the FPGA continuously captures that data. There is no flow control when working with cameras, so the FPGA must always be ready to accept the camera data, and that's where the frame buffer comes in.

The frame buffer is a component that writes images it receives from the camera directly to memory. Downstream components that consume those images can then operate independently, reading from memory as needed and at their own pace. You can configure the frame buffer size to hold any number of images at once, but it needs to be at least two: one buffer to hold the last complete image received for consumers to read, and a second to receive the incoming image.

From the StreamLogic menu, you can import the monocle-minimal pipeline from the examples. This pipeline is show below.

Monocle Minimal

This pipeline displays the live image from the camera on the heads up display. As you can see, images from the camera are piped into the frame buffer. The FBOut node is configured to continuously read the most recent complete image in the frame buffer and send it to the OLED for display.

A short walk-through is available from the github repository README page that describes how to import and build this pipeline.

The sections below describe the various functions that are available to build your pipelines in StreamLogic. These are also documented within the environment itself.