DIY Portable Video Conference, Sharing and Teaching Device

COVID-19 is by far not over, and in Switzerland the infection rate is going up again (2nd wave?). During the spring 2020 semester university lock-down we moved pretty much everything to a ‘distance learning’ setup. With that experience and with the request to prepare for the fall semester, I have constructed a DIY conference and teaching device which should make things simpler and easier: a combination of video camera, speaker phone and a muting device:

Desk with Communicator

Desk with Communicator C2020

Everything is inside a laser cut box which serves as a stand and transportation box:

Cover

Cover

Overview

Overview

Outline

The motivation behind this DIY device is the remote teaching experience during the lock-down the past spring semester: wearing a head-set nearly a full day has been painful. I missed the ability to draw something on a white (or black) board. The notebook built-in camera is not flexible enough (positioning, focus). Muting/Unmuting was difficult, it happens that I talk and I’m on mute, same for video streaming.

Around the third week of the look-down the university organized the Optoma document camera DC450:

Optoma presenter with headset

Optoma DC450 presenter with headset

While the Optoma is ‘better than nothing’, I found it less than ideal: it requires an external power supply, has no speaker, the microphone is barely usable, the camera (8 MP) barely works under normal light conditions, and the LED lights were just OK. Because it was rather heavy and bulky, I wanted a smaller, portable and more versatile alternative for the upcoming semester.

So far three different scenarios are under consideration for the next semester lab and classroom teaching:

  1. Normal: everyone is on campus, mandatory masks with extra rules
  2. Grouping: to keep the distance rules, students are either in group A or B. One week group A is on the campus and group B is remote, while the following week group B is on the campus and group A is remote. For the remote group everything gets streamed/recorded.
  3. Remote: lock-down, campus closed, everything from remote (again 😦 )

I believe scenario 2 is the most likely. So I wanted something portable (moving between labs, classrooms, university and home), with a good speaker and microphone, with good camera to record the white/black board, with a camera to show boards/hardware/lab infrastructure.

Desk Camera usage

Desk Camera usage

Features

The box is a lightweight portable DIY USB audio/video device with following main features:

  • Small: 290x150x40 mm size, only requires 290×40 mm on the desktop (upright usage)
  • Portable: foldable and 560 g weight
  • USB powered, single USB port with built-in 4-port Hub
  • Camera: auto-focus 4 or 8 MPixel
    • ‘eye-contact’ videos
    • USB Microscope function
    • ‘white board’ functionality
  • Speakerphone (Jabra Speak 410)
    • omnidirectional microphone, clear sound with echo cancellation
    • buttons for volume, audio mute, accept and hang-up calls
  • Mute/Unmute Buttons
    • audio mute
    • video mute
    • push-to-talk
    • programmable shortcuts, working even if application is running in the background
    • Status LEDs
    • USB HID device
  • No drivers/software needed on the host (Mac, Linux, Windows), works with standard OS drivers and apps
  • Works with Zoom, Skype or Microsoft Teams
  • Each component (mute buttons, camera, speakerphone) can be detached and used independently
  • Costs: less than $200 with high quality components
  • Open Source, DIY, customizable in size, shape, color, …

The camera can be moved and rotated 360° within seconds from a down-looking camera to a face-looking camera or for a white board recording camera:

Camera Degree of Freedom

Camera Degree of Freedom

For the camera there are 5 different connection points in the base:

Camera Connection Points

Camera Connection Points

Using the upright position needs the least space on the desktop and extends the camera height for a larger viewing area:

Upright position

Upright position

The camera can be positioned in front of the screen to allow eye-contact during a video call. The camera might cover a small portion of the screen, but it is not much noticeable.

Eye Contact Camera Position

‘Eye-Contact’ Camera Position

Using the camera in down-looking mode enables the desk to be used as ‘white board’ to show hardware, drawings and diagrams:

Downlooking Camera

Down Looking Camera

Typical size of view is 30×20 cm or A4:

Sharing Content on Desktop

Sharing Content on Desktop

Minimal distance of the camera is 50 mm.

Microscope Usage

Microscope Usage

This way it can be used as a USB microscope. I use it to show hardware details to the class. Beside of that it is a great helper for soldering small parts on a board too :-).

Microscope Camera

Microscope Camera

The unit only needs a single USB connection, and all pieces are stored inside the box for easy transportation:

All parts inside the box

All parts inside the box

BOM/Material

I used a 3D printer (Ultimaker 2+) and a laser cutter. Below is the list of used parts:

  • Jabra Speak 410: https://www.jabra.com/business/speakerphones/jabra-speak-series/jabra-speak-410
  • 8 MP auto-focus USB camera module, e.g. from AliExpress. Alternatively a lower cost 4 MPixel one could be used too if the microscope application is not needed.

    8MP Camera

    8MP Camera (Aliexpress)

  • USB capable micro-controller board (I used the tinyK20 with the NXP K20DX128), any USB enabled NXP ‘FRDM’ board could be used too).
  • 4 mm plywood sheets A3 (pack of 5 sheets)
  • M3 and M2.5 brass insert nuts, at least 4 or each

    Brass insert nuts

    Brass insert nuts (Aliexpress)

  • 4port internal USB hub PCB:

    4port internal USB Hub

    4port internal USB Hub

  • 1 hollow aluminum rod 8 mm external diameter
  • 3D printer filament (I used black PLA)
  • 2 USB extension cables
  • 4 M2.5Sx8 screws
  • 4 M3x12 screws
  • 4 M3x16 screws
  • 2 USB mini/micro USB cables

Camera (~$65) and Jabra (~$90) are the most expensive parts, but worth the money. Software and CAD files are available on GitHub.

Main Enclosure

The enclosure is made of laser cut plywood with stacked sheets.

Enclosure Inside

Enclosure Inside

4 3D printed ‘press-fit’ parts are used to close the top cover:

Enclosure PressFit Cover holder

Enclosure PressFit Cover holder

All the components and cables fit inside the box:

Box Cover Removed

Box Cover Removed

 

Mute Box

The ‘Mute Box’ is used to mute video and or audio using a push button. The Mute Box can be used ‘standalone’ too using a USB connection to the host.

Audio Video Mute Box

Each button has a LED to show if muted (flashing) or not (LED on).

tinyK20

tinyK20

Inside the laser cut Mute Box is a NXP Kinetis K20DX128 microcontroller (tinyK20) which runs FreeRTOS and enumerates as USB HID (Keyboard) device on the host.

Inside Mute Box

Inside Mute Box

The software project is available on GitHub and supports keyboard short-cuts for muting audio, muting video and the ‘push-to-talk’ (long press on the button) functionality.

The button handling is done with a FreeRTOS task. Below the code used for Zoom:

 
static void UsbTask(void *pv) {
  bool camIsMuted = FALSE;
  bool micIsMuted = FALSE;

  USB1_Init();
  for(;;) {
    if (HIDK1_App_Task()==ERR_OK) { /* run the USB application task: this will send the buffer */
      /* connected */
    } else {
      /* disconnected */
    }
    if (sendMicMute) {
      sendMicMute = FALSE;
      micIsMuted = !micIsMuted;
      LED_Mic_Off();
     /* Send <Alt>+<A> to start/stop mic in Zoom */
      HIDK1_Send(MODIFERKEYS_LEFT_ALT, KEY_A); /* press key */
      HIDK1_Send(MODIFERKEYS_NONE, KEY_NONE); /* release key */
      /* or: send <space> to temporarily unmute */
    }
    if (sendCamMute) {
      sendCamMute = FALSE;
      camIsMuted = !camIsMuted;
      LED_Cam_Off();
      /* send <Alt>+<V> to start/stop video in Zoom */
      HIDK1_Send(MODIFERKEYS_LEFT_ALT, KEY_V);
      HIDK1_Send(MODIFERKEYS_NONE, KEY_NONE); /* release key */
    }
    if (sendPushToTalkOn) {
      /* send <SPACE> as push-to-talk in Zoom */
      sendPushToTalkOn = FALSE;
      HIDK1_Send(MODIFERKEYS_NONE, KEY_SPACEBAR); /* send <space> */
    } else if (sendPushToTalkOff) {
      sendPushToTalkOff = FALSE;
      HIDK1_Send(MODIFERKEYS_NONE, KEY_NONE); /* release <space> */
    }
    if (micIsMuted) {
      LED_Mic_Neg();
    } else {
      LED_Mic_On();
    }
    if (camIsMuted) {
      LED_Cam_Neg();
    } else {
      LED_Cam_On();
    }
    vTaskDelay(pdMS_TO_TICKS(100));
  }
}

By default the shortcuts will only reach the application (Zoom, Skype, …) if the application is running in the foreground. For Zoom it is possible to make the shortcuts ‘global’: that way I can mute/unmute if zoom is not active:

Zoom Enabled Global Shortcuts

Zoom Enabled Global Shortcuts

Camera

4 2.5 mm screws with two 3D printed parts build the enclosure for the camera:

Camera Enclosure

Camera Enclosure

With a small 2.5 cm rod it gets attached to the horizontal rod: that way the camera can be rotated on two different axes:

Camera Enclosure Back Side

Camera Enclosure Back Side

Each rod has a 3D printed cap at the end:

Closure Caps

Closure Caps

The camera mount consists of 3 pieces of hollow aluminum rods (1.5 cm, 20 cm and 27 cm):

Camera Holder

Camera Holder

3D printed movable cable clips keep the camera USB cable in position.

Rod and Cable Clips

Rod and Cable Clips

To connect and secure the rods, two 3D printed connectors are used:

AluRodConnector

AluRodConnector

The rod connectors are 3D printed with two brass inserts each:

brass insert nut

brass insert nut

3D printed knurled screws are used to fix the aluminum rods:

knurled screw

knurled screw

USB Hub

To have a single external USB connection, a 4-port USB hub usually inside desktop PCs is used with a 3D printed enclosure. 3 of the 4 ports are used:

Internal USB Hub

Internal USB Hub (draft version printed with white PLA)

To make everything detachable USB extension cables have been used for the camera and speakerphone. To make things more compact a dedicated PCB could be designed instead, but I leave this to a next version.

Summary

I’m really happy with the capabilities of the device. The box could be even more compact (maybe I do a re-design) but serves my needs very well: I can easily carry it with my laptop, it is reasonable fast to build up (less than a minute for a full deployment), and I can use in multiple ways. I don’t need a headset and I can record or stream things on the black board or on the desk. I hope that there won’t be a 2nd COVID wave: but if there will be one, I have a useful tool to teach both locally and from remote.

Happy Zooming 🙂

Links

 

16 thoughts on “DIY Portable Video Conference, Sharing and Teaching Device

  1. Nice project.
    Some questions on the 3D printer. I have problems printing out the press fit covers. What printer do you use? What type of plastic? Extrusion temp? Feed rate?

    Like

  2. Nicely done Erich, it reminds me of some of the video conferencing systems you see on Dystopian movies such as 1984 and Bladerunner ( set in 2019 ) . It would be interesting to try to replicate those, at least the theme would be appropriate for these times.

    Like

    • Hi Chad,
      thank you :-). Bladerunner: did not think about this idea, but a good one. I don’t have a specific scene in mind, would have to watch the movies again. But I guess I’m on the right track with using black as color.
      Or do you have a specific scene in mind?

      Like

  3. a bit overengineered, I used a long (50cm) flexible smartphone holder clipped to my desk holding a usb webcam instead of a phone…

    Like

  4. Looks good. Our classes don’t start for another 27 days, and we’ll be fully online, so I won’t even be going to campus (haven’t been to my office for 5–6 months now). I set up my 2011 27″ iMac as my video recording space, with a green screen, tabletop USB mic, and Ipevo document camera. I’ve been recording videos using OBS and uploading them to YouTube. I’ll be trying to use Zoom with breakout rooms for running lab sessions in the fall.

    Like

    • Thanks! We are going to start the main classes Monday in a week. I already had two ‘out of order’ classes 4 hours each this week. So we will be back on campus, with mandatory mask wearing except in a sitting environment with more than 1.5m distance. So we could do kind of normal labs again with streaming everything in parallel for the ones who could not be on site for whatever reason. I have most of my material online and electronic too. But I saw that with the online model in the last semester the study/learning success was not good: the self-motivated students did even grade better: they were motivated, had an efficient learning and did very well. About a third of the students I consider the ‘middle’ part: they struggled to some extend because the did not had the ‘pull’ and ‘extra push’ with the direct interaction or with all the social interactions. But the biggest problem had the ‘lower end’ ones: they really need the motivation/interaction and presence on the campus to learn things. At the end, As a result, I saw a big discrepancy in performance between say the ‘good’ and ‘not so good’ students: the grading and exam results clearly showed that. And it seems that some studies do tell the same about a remote learning setup. Not sure if you have seen such a pattern with the exam results?

      Like

  5. Pingback: Mobile Teacher Tool, Rev 2 by Gerhard | MCU on Eclipse

What do you think?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.