Blog - Sketching with Hardware

Team 7 -Sketching with Hardware 2017b- DJHS (Disc Jockey Home System)

Published on: | Author: Dario Casadevall Tejedor | Categories: 2017b, Projects

Introduction and Idea

Thinking of old, unused objects and adding or creating new functionality proved as a topic with vast possibilities for creative outcome. The challenge rather lied within finding an appropriate path of suitable ideas for the given time frame.

Or less diplomatically phrased this was our first reaction:

„Cool topic…buuuuut I have no idea what we could do.“

„Neither do I.. WUAH!! Only 5 days left until presentation!“

„What to do? How do we come up with something?“

„As students we should know..hmm“


„You got something?“

„YES! Let’s brainstorm!! At least that’s what they taught us in university, right?“


Side note: I assume (probably) every generation of Sketching With Hardware goes through similar emotional phases.

What followed was an iteration through different ideas including speakers made from grandmas tableware or a fishing rod made from Kendama (Google it. It’s the toy that should not be called a toy..)

Finally we decided on a DJ interface build from an old VHS.


Our idea was simple: The main functionality was the use of -previously learned- emulated keyboard controls to command software on a connected computer. In this case DJ-Software, preferably (We used VirtualDJ). Certain Hotkeys on the DJ-Software could be set up to deal with typical and common sound-output.

Therefore the main concern was the interpretation of hardware input and the translation and emulation of a pressed key of a keyboard. The DJ-Software would deal with the sound-output.

The most important feature should be the possibility to scratch, as that’s the most fun when you are DJing (at least that’s what we thought). Additional features like the use of pitch- and crossfaders or several buttons for additional sound-output should be included as well. The look and feel should also resemble a typical turntable interface.

Consequently three main working areas resulted from these requirements:

  1. Casing and interface design
  2. Hardware and electronics
  3. Software

Casing and interface design


In order to stay true to the design of a typical DJ interface, the two iconic turntables needed to be included in our approach (also that’s what you need to scratch). Our idea was to open up the VHS and remove the two wheels the film is wound up on. These two wheels were subsequently be placed on top of the VHS and give the wanted impression of turntables. However, the wheels needed to actually turn and react to input (in the interest of scratching, of course). That’s why we used a stepper motor (for turning motion) and a rotary encoder (for input possibility). These devices were placed on the former position of the film wheels inside the VHS. The two wheels where placed on top of the devices from the outside. To do that we cut out two gears that fit on the motor or rotary encoder and also fit inside the wheels of the VHS.

Furthermore we were planning on using several buttons and linear slide potentiometers to provide additional input possibilities (also cool looking crossfaders are helping on giving the impression of a DJ interface). It quickly became apparent, that the number of planned integration of different devices became to big as to fit them in the sole corpus of the VHS. To counter this problem we constructed a box the VHS can be placed on top of.

For more clarification of the overall construction the pictures help immensely (way easier to understand).

The tools we used:

  • Laser Cutter
  • Compressed Wood
  • Drill
  • Lots of Glue
  • Duct tape
  • … and the sharp mind of two brilliant students (and our supervisors)

img_7283 img_7256

Hardware and electronics

A full list of used components:

  • 1 Stepper Motor
  • 1 Rotary Encoder
  • 2 Piezo Speaker
  • 3 Arcade Push Buttons
  • 2 ws2812 LED strips (built in resistor)
  • 1 Linear Slide Potentiometer
  • 1 Arduino MEGA 2560
  • 1 Breadboard (mini)
  • Several Jump wires
  • 1 PS/2 to USB adapter (Connection to Computer)


As already stated, the core devices of our project were the stepper motor and a rotary encoder. Especially latter was to be used to create the common sound of scratching and was therefore our main focus, which is also represented in our source code. Certain rotary input information is translated into emulated keyboard commands which are send to a computer via a PS/2 port. The way to connect the PS/2 port with wires with the arduino can be seen here: wikipedia.

Other devices are mainly controlled without or less software. For instance buttons are integrated as pull-downs that -when pressed- will trigger a code snippet to either turn on the piezo speakers or the DJ interface itself.



To emulate keyboard controls the library ps2dev is in use. This gave us the chance to collect input information from the rotary encoder and translate these into an emulation of a pressed key by a keyboard. In our case a turn to the right of the rotary encoder translates into a pressed ‚K‘. A turn to the left translates into a pressed ‚J‘. In VirtualDJ hotkeys were set up to scratch 50 milliseconds backwards when pressing ‚J‘ and 50 milliseconds forward when pressing ‚K‘. This way we got the iconic scratching sound with the original sound file.

This logic and other smaller parts can be found here: source code.

Set up and final DJHS


After putting everything together our final DJHS can react on scratching input on one turntable, while turned on. The other turntable is moved by the stepper, while LEDs inside the case are blinking creating a visual party atmosphere. The fader controls the other LED strip. Two buttons control the sound-output from piezo speakers. However those are just example of output possibilities. The DJHS is therefore customizable. For instance the fader could be set up to control the pitch or the speed of the song.


DJHS in action

Final remarks and thoughts

As in every project problems will occur along the way, with a somewhat shaky library for keyboard emulation being our biggest hurdle. This led to us not using most of our input devices as planned and just having them have hardware output. Using a MIDI-interface could turn out as a more successful approach.

Also our additional box should have turned out bigger, as it still was quite a hustle to fit in all electronic devices and wires.

Last but not least the process of putting together the electronic parts with the casing was quite nerve-racking, as we used a lot of glue which led to several buttons being unusable because the glue got into their system. Future reminder: When dealing with glue and buttons the german proverb „less is more“ suits perfectly.


linked categories 2017b, Projects


Write a comment