Module 0366: Tak’s STEM classroom instructor workstation set up

Tak Auyeung

1 Hardware

1.1 Why bring my own laptop?

There are many reasons:

The laptop computer is a 2018 Lenovo Yoga x380. It has plenty of resources for what I do, especially during a lecture.

1.2 Why use a speaker/mic combo USB device?

The built-in mic does not work in conjunction with the HDMI audio output through the classroom speakers. This can lead to issues such as feedback and echoing. An “all-in-one” speaker/mic device has intelligent signal processing to eliminate feedback and echoing, while allowing full-duplex audio as much as possible.

1.3 Why is an HDMI-splitter necessary?

As of now, the HDMI cable for laptop only connects to “Wall Plate 2” of the A/V multiplexer. This means that if a laptop computer is configured to “split/extension screen” instead of “mirror/duplicate screen”, the screen that is projected is not visible to an instructor.

An HDMI-splitter (more appropriately called a 1-in-2-out duplicator) allows the HDMI output of a laptop computer to connect to both the workstation monitor via HDMI and the HDMI cable that connects to “Wall Plate 2.”

2 Software

2.1 Open Broadcaster Software (OBS)

OBS is an open source program that allows flexible screen recording/streaming. OBS works well in screen recording to local storage or streaming to YouTube or other streaming services.

OBS also allow flexible streamed video layout to combine multiple elements in addition to the actual screen being recorded/streamed.

2.2 Xournal

Xournal is an open source program that allows the use of a stylus to hand write or draw on a digital canvas. In addition, Xournal can also open and view PDF files. As a result, Xournal is very useful in a lecture because it can open a PDF as the “background”, then allow an instructor to hand write/draw over the background with annotations.

2.3 x11vnc

This is a Linux-only program, but I suspect there are equivalent programs for Windows and Mac OS.

x11vnc solves a unique problem that Xournal should run on the built-in display of a laptop computer, but it should also be projected and recorded/streamed. In other words, Xournal needs to be software duplicated to the screen that is being recorded/streamed.

x11vnc is a tool that turns any X11 screen into a VNC (virtual network computing) server. Users of Windows or Mac OS may find SharedAppVnc useful, but this project may be quite dated. Another possibility is TightVNC.

2.4 VNC viewer

Just about any VNC viewer will work to duplicate the window of Xournal to the projected screen.

2.5 A home-brew script

In Linux/X11, a split-screen automatically rescales the physical-to-screen position of a stylus. This means that X11 erroneously compute the mouse cursor position by scaling the physical position of a stylus to cover both the native screen and the extension.

As a result, a tiny script is needed to inform X11 that the stylus should only control the mouse pointer on the built-in screen and not the extension.

To do this, use xinput to display all the input devices, note the IDs of the ones corresponding to the stylus. Then, use xrandr to show all the displays, note the ID of the built-in screen. Then, finally, use xinput again to limit a stylus to just the built-in screen.

A slightly more complete answer explains how to use the commands.

Since the xinput IDs do not change (as long as no external keyboard/mouse is plugged in), and the ID of the built-in screen also does not change, it is possible to write a simple script once the IDs are determined.

2.6 Joplin

While Xournal is great for capturing hand written and drawn content, it is utterly inefficient when it comes to coding, equations and etc. Joplin uses Markdown (as a mark up language, funny name!!) to efficiently capture content that is typed, including math equations using \(\LaTeX\).

I use Joplin to capture my lesson plan (agenda) as well as in-class discussion that is text/equation oriented. Joplin is an excellent complement to Xournal.

3 Configuration

3.1 Built-in Screen

3.2 Projected Screen

Even if the project is capable of 1080p resolution (1920x1080), I generally use a 720p (1280x720) resolution for projection. This is because at full resolution, 1080p is not suitable for students who are further from the projection screen to discern details.

Furthermore, recording/streaming at 1080p can strain CPU and network bandwidth. 720p is significantly less demanding.

Components on the projected screen includes the following: