Skip to main content

Electronics

Update #1 for Electronics

Date: 7 November

Goal

Project a live feed of a colored video from a camera to a phone app

Hardware Limitations

Video is difficult to manipulate. For instance, if we wanted a 640×480 frame of a black and white video at 24 frames per second that is 

640*480 pixels = 307,200 pixels

At 8 bits per pixel = 307,200 kilobytes per frame

At 24 frames per second = 7,372,800 bytes per second 

~7.37 megabytes per second

That calculation is the baseline for data throughput for a camera outputting raw frames that does not include sound or color. It is very difficult to send out raw frames so the data needs to be formatted and packetized in some way.

We can do so by encoding the video stream which requires a lot of processing power, specialized hardware, or FPGA. Unfortunately off-the-shelf Arduino microcontrollers do not have the power to do all of this work. In fact, Ardunios do not have enough RAM to fit encoded frames of still photos. 

Therefore, we need something that is more powerful than Arduinos for our intermediate between our camera and phone app. 

Bluetooth Limitations

It is very difficult to send raw data of our livestream through Bluetooth. Currently, Bluetooth has a peak raw data rate of 1-3 Mbps which is a fraction of what we need. In order to compress this our data to this rate, we will need some sort of digital signal processing (DSP) chip to compress our data on the fly so that it can be transmitted via Bluetooth. 

Furthermore, low power alternatives such as BLE is unsuitable as well because it is designed to transfer few and small data packets with a lot of sleeping time in between. So we will be experiencing more lag time in our feed which will make this design difficult to implement.

Overall Limitations

It will be much easier to use components that we find off-the-shelf because they come with open-source documented software and user-friendly guides. However, these components do not have the specifications that we need. 

Components that meet our specifications do not come with tutorials so using these devices have a large learning curves.

Possible Work-Arounds

  1. Use Arduinos but produce output low quality video at low frames through Bluetooth connectivity. Video has significant lag and are most likely black and white
  2. Use Arduino and somehow offload all video processing to a DSP board that has its own wireless connectivity module. Then transmit data through WiFi so that we don’t need to compress data images. However some low-resource areas may not have access to WiFi and DSP boards that can perform the following maybe large and expensive
  3. Use an Arduino camera module that has wireless connectivity that delivers data directly to a server. This produces decent quality video but has lag and requires a pre-existing WiFi network. In addition, this is a modular chip so it may be difficult for us to put this in a bronchoscope. 
  4. USB connection from microprocessor to phone

Our Current Solution

Use a microprocessor to take in data information from camera and use a USB connection from the processor to phone to transmit data

Camera

  • Try and see if OH02A10 works in our use – good starting point because they are frequently used for endoscopic purposes

Microprocessor

  • BeagleBone Black: 32-bit ARM-based BeagleBone Black microcontroller
  • Raspberry Pi

A solution is to have the microprocessor chip as an external device and have the camera from the bronchoscope connect to the chip. Then we have a usb connection from chip to phone. We eliminate the need to include the microprocessor inside the handle. 

Paper Supplement

Embedded Microcontroller with a CCD Camera as a Digital Lighting Control System https://www.mdpi.com/2079-9292/8/1/33

  • A low-cost embedded control system
  • Controls a machine vision camera through an Ethernet port.
  • The system development was based on a microcontroller board that supports real time.
  • The proposed camera control system contains most of the essential modules for video capture, video analytics, and host communication.