DJ controller
I bring to your attention a device very similar to a full-featured DJ controller, assembled if not completely from scrap metal, then in any case, without these of your microcontrollers and other Arduino.

I did not stand for ten years at the DJ console. And then suddenly a light of a couple of my favorite tracks were desired, as they say, for the soul. Download Traktor and download tracks - a simple matter. But the coming joy was immediately overshadowed by the fact that working with this program with the mouse is a pleasure comparable to typing a long letter on a virtual keyboard. Then the keyboard went into business - Traktor is very flexibly configured for it, and any command can be assigned an arbitrary key. However, this decision was completely unsatisfactory.
It was then that the idea of the project was born and the technical task was formulated, or, if you like, the concept.
Since the program is completely keyboard-controlled, you can take the brains from the old USB keyboard and, simulating the keystrokes using a set of switches, implement a complete remote control at minimal cost.
The brains of the USB keyboard are, as you know, a small board with a set of contacts, huddling in a corner of the case. Here it is in the photo, though already soldered and installed in the controller case.

In addition, in the standard clave there are two transparent sheets superimposed on top of one another, with conductive tracks deposited on them and contact pads under each of the keys. When we press a key, the corresponding contacts are closed on these two sheets, leading to the closure of two contacts on the brains.
In my clave there were two groups of contacts: 8, which with black wires and the return 20 - with blue. By simply locking black to blue we achieve everything the keyboard can do.
“Wait a minute!” - the thoughtful reader will exclaim in this place, whom you are without a doubt, “But the DJ console is not only buttons, but also pens!” How to imitate the smooth rotation of the handle using the keyboard? ”The author should say something like“ Follow me, reader, and I will open the doors of the world of electrical engineering in front of you ... ”
Designing pens was the most interesting part of the project. If it weren’t for her, there would be nothing to write about.
So, Traktor offers several options: the simplest - when you hold down any button on the keyboard, a level will gradually increase or decrease. However, in this case, it is not possible to adjust the rotation speed. Therefore, I immediately rejected this option. It was not worth bothering with the handles, one could simply determine one button to increase, and the other not to decrease. Not interesting and not practical.
But Traktor is ready to change any parameter stepwise, each time the button is pressed, by 1%, 3%, 13%, 25% or 100%. Thus, the task was to design a simple mechanical device that can recognize the direction and speed of rotation, and fractionally closes a pair of contacts in accordance with them.
Of course, I immediately turned my eyes towards computer mice, namely their scrolling. Indeed, scrolling only does that it recognizes the direction and speed of rotation of the wheel. However, most modern mice are equipped with an optical system from an LED and a sensor. Obviously, it was pointless to look for a short circuit at the output there, and from the use of electronics, as you remember, I strictly refused for reasons close to ideological. Although in fact, it was just a sporting interest and the need to meet the minimum budget. And most importantly, the growing bouts of inspiration that led me in a very specific direction.
So, since the mice temporarily fell away, and other graceful and simple ideas stamped on the sidelines, embarrassed to look into my sad mind, it was decided to put together a primitive test bench to at least entertain myself.

Everything is simple here. Rotating, the gear deflects the central plate and shortens it to one of the side ones. When it slips through the gear teeth, the chain breaks.
Oddly enough, such a thing worked properly. Soldering it to the brains of the keyboard, you could type a word in two letters. For example, "BUT." Indeed, the “but” this option did not go to work because of its bulkiness and obvious insecurity. However, there was a positive point - I liked the material that was used for contacts. Galvanized sheet or something like that. Cheap, springy, stainless and perfectly soldered. We will meet with him later in the text.
Then I again turned my gaze, already much more closely, to the side of the mice. It turned out that many of the oldest and cheapest of the modern ones are still equipped with mechanical encoders. Like this:

However, upon closer inspection, it turned out that these encoders, by themselves, are not able to recognize the direction of rotation. If anyone is interested, I will tell you how they work. If you are not interested, feel free to skip the next paragraph, it does not apply to the DJ controller.
The encoder has two main positions: all three contacts are closed and all three are open. When the encoder rotates in a certain direction, there is a short circuit of one pair, and then the second. When rotating in the opposite direction, first the second pair closes for an instant, and then the first one joins it. In fact, the direction is recognized by the rather poor mouse brains, which, however, have enough of this short circuit to get on the corresponding lock.
Conclusion. Such a mechanical encoder is suitable for recognizing the speed of rotation of the handle (it will simply interrupt the circuit, creating a sequence of pulses), but you will need to add a key to it specially trained to determine the direction.
As a result, such a design was born, which, you see, is not devoid of some grace and beautiful due to its simple style.

The signal from the brain of the keyboard passes through the encoder (which, as you remember, will simply interrupt the circuit). Next, the signal goes to the red wiring soldered to the contact plate (the same galvanized sheet). The plate is glued into the cut on the rubber sleeve (in fact, this is not a sleeve, but a piece of an old gas hose). The sleeve is freely mounted on an aluminum shaft serving as an axis. The top of the sleeve is pressed by a spring, which provides a reliable connection with the encoder (bottom) and slightly prevents the free rotation of the sleeve on the axis.
From below, the rod is riveted, drilled, and a pipka is cut off from its wheel, which should subsequently decisively enter the hole on the encoder (since there weren’t enough original pipettes, three pieces were made ofold toothpicks).

Encoders are attached to the board, and on the sides of them you can observe the vertical racks of side contacts. The racks (ordinary steel wire) are wrapped in silver wire, in order to avoid misunderstandings during the passage of the signal.
So, the signal from the brain passes through the encoder and enters the contact plate. That, when the handle is rotated, rests against one of the side pillars and starts to turn on the axis, keeping the chain closed. From the side rack, the signal goes back to the brain.
All controls are installed:

Top view before installing controls:

Bottom view:

“Wait a minute,” the thoughtful reader will exclaim at this place for the second time, and, by the way, will be absolutely right, “but what will happen if, after the next adjustment, the encoder stops in the“ closed ”position and the plate touches one of the stands? »This position will be tantamount to sticking one of the keyboard buttons. And although the computer can ignore one or even several pressed buttons (otherwise high-speed printing would be impossible), there is still a limit to everything. If the clamped buttons are located in close proximity, the keyboard stops responding.
Honestly, I still could not find a simple and reliable solution to this problem. So I took the following two steps. He carried the side contact racks away from each other, promising himself that I would "roll back" the handle to the neutral position after the next adjustment. And the second: I brought up the osdHotkey window. It fits nicely over the unused portion of the Traktora window. The program can show the last key pressed, and if there suddenly runs a line of one letter, it will be a signal for me.
However, after several days of test testing, such a problem was not identified.
Here you can tell a funny story. Initially, I looked at the beautiful white buttons of a suitable design and value. However, bypassing all the shops in the town, I managed to collect only thirteen pieces from the thirty. (In parentheses, I note that I live in India and not in the capital at all. The choice of radio components here is very limited and this was an additional argument in favor of simplifying the design as much as possible).
The desired 17 white buttons promised to bring "tomorrow." But not tomorrow, but a week later the red buttons came, and I was strictly ordered to forget about the white forever. I had to buy red ones and change the design of the top panel. It turned out very nice and fun.
When I unzipped the buttons (and this operation was left for later, as the most trivial one) and connected the controller to my computer for a test test, an epic file was waiting for me. Nothing worked! Even what worked before. Not letting myself lose heart, I armed myself with a multimeter and after a few seconds I found out that the white buttons, unlike the red ones, meanly work to open ... I had to urgently buy red ones (fortunately, they were still on sale).
I quickly abandoned the original idea of making a wooden case in favor of aluminum. However, I did not smile at the prospect of cutting 30 square holes for buttons in an aluminum plate. And then I came across a wonderful material. Unfortunately, the seller did not speak any of the languages adopted for communication between peoples, so the exact name of the material remained a mystery to me. However, by googling, I came to the conclusion that this is a laminated finishing panel. For a long time and carefully I selected the color and shade. (And then, just in case, he painted the whole thing black.)
With the help of international gestures and sophisticated facial expressions, I managed to explain the desired result to the seller. After which he famously cut plastic on a circular, and then with the help of this, with permission, a jigsaw cut out the proper holes.

Next, aluminum corners and screws were used, and the case was ready. The interface of the top panel is printed on a laser printer.

Top view one second before screwing on the top panel:

We managed to collect the encoders from the mice by friends (thanks, friends!). The keyboard was found in the office. The caps of the adjustment knobs and buttons cost540 rupees ~ 10 dollars. The rest of the building materials are about $ 20. Total cost of the controller is about $ 30 (not counting the materials purchased but not gone and work).
Drawings and top panel design developed by InDesign. The decoding of the keyboard brains and the assignment to each button of a certain function were recorded in an Excel table. It is unlikely that these two files can be useful to anyone. But if necessary - write.
Demonstration of health (better in 720p HD):

Prehistory
I did not stand for ten years at the DJ console. And then suddenly a light of a couple of my favorite tracks were desired, as they say, for the soul. Download Traktor and download tracks - a simple matter. But the coming joy was immediately overshadowed by the fact that working with this program with the mouse is a pleasure comparable to typing a long letter on a virtual keyboard. Then the keyboard went into business - Traktor is very flexibly configured for it, and any command can be assigned an arbitrary key. However, this decision was completely unsatisfactory.
It was then that the idea of the project was born and the technical task was formulated, or, if you like, the concept.
Since the program is completely keyboard-controlled, you can take the brains from the old USB keyboard and, simulating the keystrokes using a set of switches, implement a complete remote control at minimal cost.
Keyboard
The brains of the USB keyboard are, as you know, a small board with a set of contacts, huddling in a corner of the case. Here it is in the photo, though already soldered and installed in the controller case.

In addition, in the standard clave there are two transparent sheets superimposed on top of one another, with conductive tracks deposited on them and contact pads under each of the keys. When we press a key, the corresponding contacts are closed on these two sheets, leading to the closure of two contacts on the brains.
In my clave there were two groups of contacts: 8, which with black wires and the return 20 - with blue. By simply locking black to blue we achieve everything the keyboard can do.
“Wait a minute!” - the thoughtful reader will exclaim in this place, whom you are without a doubt, “But the DJ console is not only buttons, but also pens!” How to imitate the smooth rotation of the handle using the keyboard? ”The author should say something like“ Follow me, reader, and I will open the doors of the world of electrical engineering in front of you ... ”
Infinitely adjustable knobs
Designing pens was the most interesting part of the project. If it weren’t for her, there would be nothing to write about.
So, Traktor offers several options: the simplest - when you hold down any button on the keyboard, a level will gradually increase or decrease. However, in this case, it is not possible to adjust the rotation speed. Therefore, I immediately rejected this option. It was not worth bothering with the handles, one could simply determine one button to increase, and the other not to decrease. Not interesting and not practical.
But Traktor is ready to change any parameter stepwise, each time the button is pressed, by 1%, 3%, 13%, 25% or 100%. Thus, the task was to design a simple mechanical device that can recognize the direction and speed of rotation, and fractionally closes a pair of contacts in accordance with them.
Of course, I immediately turned my eyes towards computer mice, namely their scrolling. Indeed, scrolling only does that it recognizes the direction and speed of rotation of the wheel. However, most modern mice are equipped with an optical system from an LED and a sensor. Obviously, it was pointless to look for a short circuit at the output there, and from the use of electronics, as you remember, I strictly refused for reasons close to ideological. Although in fact, it was just a sporting interest and the need to meet the minimum budget. And most importantly, the growing bouts of inspiration that led me in a very specific direction.
So, since the mice temporarily fell away, and other graceful and simple ideas stamped on the sidelines, embarrassed to look into my sad mind, it was decided to put together a primitive test bench to at least entertain myself.

Everything is simple here. Rotating, the gear deflects the central plate and shortens it to one of the side ones. When it slips through the gear teeth, the chain breaks.
Oddly enough, such a thing worked properly. Soldering it to the brains of the keyboard, you could type a word in two letters. For example, "BUT." Indeed, the “but” this option did not go to work because of its bulkiness and obvious insecurity. However, there was a positive point - I liked the material that was used for contacts. Galvanized sheet or something like that. Cheap, springy, stainless and perfectly soldered. We will meet with him later in the text.
Then I again turned my gaze, already much more closely, to the side of the mice. It turned out that many of the oldest and cheapest of the modern ones are still equipped with mechanical encoders. Like this:

However, upon closer inspection, it turned out that these encoders, by themselves, are not able to recognize the direction of rotation. If anyone is interested, I will tell you how they work. If you are not interested, feel free to skip the next paragraph, it does not apply to the DJ controller.
The encoder has two main positions: all three contacts are closed and all three are open. When the encoder rotates in a certain direction, there is a short circuit of one pair, and then the second. When rotating in the opposite direction, first the second pair closes for an instant, and then the first one joins it. In fact, the direction is recognized by the rather poor mouse brains, which, however, have enough of this short circuit to get on the corresponding lock.
Conclusion. Such a mechanical encoder is suitable for recognizing the speed of rotation of the handle (it will simply interrupt the circuit, creating a sequence of pulses), but you will need to add a key to it specially trained to determine the direction.
As a result, such a design was born, which, you see, is not devoid of some grace and beautiful due to its simple style.

The signal from the brain of the keyboard passes through the encoder (which, as you remember, will simply interrupt the circuit). Next, the signal goes to the red wiring soldered to the contact plate (the same galvanized sheet). The plate is glued into the cut on the rubber sleeve (in fact, this is not a sleeve, but a piece of an old gas hose). The sleeve is freely mounted on an aluminum shaft serving as an axis. The top of the sleeve is pressed by a spring, which provides a reliable connection with the encoder (bottom) and slightly prevents the free rotation of the sleeve on the axis.
From below, the rod is riveted, drilled, and a pipka is cut off from its wheel, which should subsequently decisively enter the hole on the encoder (since there weren’t enough original pipettes, three pieces were made of

Encoders are attached to the board, and on the sides of them you can observe the vertical racks of side contacts. The racks (ordinary steel wire) are wrapped in silver wire, in order to avoid misunderstandings during the passage of the signal.
So, the signal from the brain passes through the encoder and enters the contact plate. That, when the handle is rotated, rests against one of the side pillars and starts to turn on the axis, keeping the chain closed. From the side rack, the signal goes back to the brain.
All controls are installed:

Top view before installing controls:

Bottom view:

“Wait a minute,” the thoughtful reader will exclaim at this place for the second time, and, by the way, will be absolutely right, “but what will happen if, after the next adjustment, the encoder stops in the“ closed ”position and the plate touches one of the stands? »This position will be tantamount to sticking one of the keyboard buttons. And although the computer can ignore one or even several pressed buttons (otherwise high-speed printing would be impossible), there is still a limit to everything. If the clamped buttons are located in close proximity, the keyboard stops responding.
Honestly, I still could not find a simple and reliable solution to this problem. So I took the following two steps. He carried the side contact racks away from each other, promising himself that I would "roll back" the handle to the neutral position after the next adjustment. And the second: I brought up the osdHotkey window. It fits nicely over the unused portion of the Traktora window. The program can show the last key pressed, and if there suddenly runs a line of one letter, it will be a signal for me.
However, after several days of test testing, such a problem was not identified.
Button block
Here you can tell a funny story. Initially, I looked at the beautiful white buttons of a suitable design and value. However, bypassing all the shops in the town, I managed to collect only thirteen pieces from the thirty. (In parentheses, I note that I live in India and not in the capital at all. The choice of radio components here is very limited and this was an additional argument in favor of simplifying the design as much as possible).
The desired 17 white buttons promised to bring "tomorrow." But not tomorrow, but a week later the red buttons came, and I was strictly ordered to forget about the white forever. I had to buy red ones and change the design of the top panel. It turned out very nice and fun.
When I unzipped the buttons (and this operation was left for later, as the most trivial one) and connected the controller to my computer for a test test, an epic file was waiting for me. Nothing worked! Even what worked before. Not letting myself lose heart, I armed myself with a multimeter and after a few seconds I found out that the white buttons, unlike the red ones, meanly work to open ... I had to urgently buy red ones (fortunately, they were still on sale).
Body
I quickly abandoned the original idea of making a wooden case in favor of aluminum. However, I did not smile at the prospect of cutting 30 square holes for buttons in an aluminum plate. And then I came across a wonderful material. Unfortunately, the seller did not speak any of the languages adopted for communication between peoples, so the exact name of the material remained a mystery to me. However, by googling, I came to the conclusion that this is a laminated finishing panel. For a long time and carefully I selected the color and shade. (And then, just in case, he painted the whole thing black.)
With the help of international gestures and sophisticated facial expressions, I managed to explain the desired result to the seller. After which he famously cut plastic on a circular, and then with the help of this, with permission, a jigsaw cut out the proper holes.

Next, aluminum corners and screws were used, and the case was ready. The interface of the top panel is printed on a laser printer.

Top view one second before screwing on the top panel:

Budget
We managed to collect the encoders from the mice by friends (thanks, friends!). The keyboard was found in the office. The caps of the adjustment knobs and buttons cost
Bonuses
Drawings and top panel design developed by InDesign. The decoding of the keyboard brains and the assignment to each button of a certain function were recorded in an Excel table. It is unlikely that these two files can be useful to anyone. But if necessary - write.
Demonstration of health (better in 720p HD):