The Theremin Gets A Voice

Every once in a while, we come across a project that adds a ridiculously good twist on an existing design. This is exactly what [Xiao Xiao] and the team at LAM research group at the Institut d’Alembert in Paris have done. Their project T-VOKS is a singing and Speaking Theremin that is sure to drive everyone in the office crazy. (YouTube link, embedded below for your viewing pleasure.)

For the uninitiated, the Theremin is an electronic music instrument that does not require physical contact. Instead, it uses two antennas to sense the distance of the operators hands and uses that to modulate the pitch and volume of the output audio. From music concerts to movie background music to even scaring the neighbours, this instrument can do it all.

T-VOKS is a different take on the instrument, and it interfaces with a voice synthesizer to sing. There is an additional sensor that is used for the syllable sequencing, and the video below shows the gadget in operation. The icing on the cake is the instrument playing, or should that be singing in an actual concert. There is also a research paper detailing the operation on Dropbox[PDF] if you need the nitty-gritty.

We wonder how a TTS engine would work with this idea and hope to see some more projects like it in the future. Fore those looking to get started, have a look at the build guide for a DIY theremin.

Continue reading “The Theremin Gets A Voice”

Making An Update Server For PythonAnywhere And GitHub

Cloud based IDEs and development tools have grown over the years, though most have limitations in their free tiers and may not be fully compatible with other services such as GitHub. [Aadi Bajpai] loved using PythonAnywhere and to collaborate using GitHub, so he made a update server that automatically updates the running code once you make a push to Github

PythonAnywhere gives you access to a python shell over a web browser, and also lets you run a web app that can be accessed via a custom sub-domain. Even though it does not have direct integration with GitHub, you can drop to the bash shell to and get access to a git client.

For this hack, [Aadi Bajpai] utilizes the webhooks from GitHub that are triggered when a push event is detected. A flask server running on PythonAnywhere is written such that once triggered by the get POST request, it locally executes a git pull from the repository. There a bit more work that allows adding a bit of security sauce to the recipe but it is a pretty elegant solution and can be used for other cases as well.

Setting up alert notifications has been demonstrated to be an interesting task, though integrating Discord or Slack for notifications adds a little more bragging rights.

Captivating ESP32 Camera Hack

You can never have enough DIY devices at home, so when you look at an ESP32 module that comes with the camera, you automatically start getting ideas. [Daniel Padilla] wanted a way to deploy DIY camera modules without the hassle of configuring them so he made one that looks like an access point and starts streaming as soon as you connect to it.[GitHub]

The code he provides allows the ESP32 to appear as an Open Access Point which you can connect to from a PC or smartphone. The awesome sauce here is that the ESP32 resolves all DNS requests to a redirect in a similar manner to what happens when someone connects to an open Wi-Fi access point in a mall, Instead of a captive portal page that asks the user to authenticate or accept terms and conditions, [Daniel Padilla]’s code instead redirects to the streaming page et voila! Instant camera stream, and it is that simple.

We love this project because it is an elegant way to solve a problem, and it also teaches newbies about captive portals and their implementation. We covered a cheap ESP32 Webcam in the past and this project also comes with code for you to get started. We would love to see what you come up with next.

C++ Reverbs From A Matlab Design

The guitar ‘Toing’ sound from the ’70s was epic, and for the first time listener it was enough to get a bunch of people hooked to the likes of Aerosmith. Reverb units were all the rage back then, and for his DSP class project, [nebk] creates a reverb filter using Matlab and ports it to C++.

Digital reverb was introduced around the 1960s by Manfred Schroeder and Ben Logan. The system consists of essentially all pass filters that simply add a delay element to the input signal and by clubbing a bunch together and then feeding them to a mixer. The output is then that echoing ‘toing’ that made the ’80s love the guitar so much. [Nebk]’s take on it enlists the help of the Raspberry Pi and C++ to implement the very same thing.

In his writeup, [nebk] goes through the explaining the essentials of a filter implementation in the digital domain and how the cascaded delay units accumulate the delay to become a better sounding system. He also goes on to add an FIR low pass filter to cut off the ringing which was consequent of adding a feedback loop. [nebk] uses Matlab’s filter generation tool for the LP filter which he includes the code for. After testing the design in Simulink, he moves to writing the whole thing in C++ complete with the filter classes that allows reading of audio files and then spitting out ‘reverbed’ audio files out.

The best thing about this project is the fact that [nebk] creates filter class templates for others to play with. It allows those who are playing/working with Matlab to transition to the C++ side with a learning curve that is not as steep as the Himalayas. The project has a lot to learn from and is great for beginners to get their feet wet. The code is available on [GitHub] for those who want to give it a shot and if you are just interested in audio effects on the cheap, be sure to check out the Ikea Reverb Plate that is big and looks awesome.

CPU Made From 74HC Chips Is A Glorious Mess

Did you ever start a project that you felt gained a life of its own? This project by [Paulo Constantino] is an entire CPU named dreamcatcher on breadboards, and is a beautiful jungle of digital. On top of that, it works to connect to an analog VGA display. How cool is that!

Designing an ALU and then a CPU is a typical exercise for students of digital design and is done using VerilogHDL or VHDL. It involves creating an ALU that can add, subtract etc while a control unit manages data moves and the like. There is also a memory fetch and instruction decode made up of de-mulitiplexers and a bunch of flip-flops that make up registers and flags. They are as complex as they sound if not more.

[Paulo Constantino] went ahead and designed the whole thing in Eagle as a schematic using 74HC logic chips. To build it though instead of a PCB he used breadboards. Everything from bus decoders to controlling an external VGA display is done using jumper wires. We did cover a video on the project a while back, but this update adds a video card interface to the build.

The CPU updates the display buffer on the VGA card, and in the video below shows the slow and steady update. The fact that the jungle of wires can drive a display is awesome. He has since started working on a 16-bit version of the processor and we’d love to see someone take it up a notch.

For those more accustomed to the PCB, the Z80 membership card project is a great build for 8-bit computer fans.

Thanks to [analog engineer] for the tip.

Continue reading “CPU Made From 74HC Chips Is A Glorious Mess”

Wandel Weaponizes Waste With Lego And A Raspberry Pi

Before 3D printers, there was LEGO. And the little bricks are still useful for putting something together on the quick. Proof is YouTuber [Matthias Wandel]’s awesome bottle cap shooter build that uses rudimentary DIY computer vision to track you and then launch a barrage of plastic pieces at you.

This is an amazing project that has a bit of something for everyone. Lets start with the LEGO. [Matthias Wandel] starts with making a crossbow designed launcher and does an awesome job with showing us how it works in a video. The mechanism is an auto reloading and firing system that can be connected to a stepper motor. Next comes the pan and tilt mechanism which allows the turret to take better aim at moving targets: more LEGO and stepper motors.

The target tracker uses color matching in a program that curiously uses no OpenCV. It compares consecutive frame and then filters out red objects – the largest red dot is it. Since using a fisheye lens on the Raspbery Pi camera adds distortion, [Matthias Wandel] uses a jig made with more Legos to calibrate the image.

The final testing involved having his own child walk around the room being hunted but the autonomous machine. Kids do love toys even if they are trying to shoot bottle caps at them.

Want more Lego inspiration? Check out the Lego Quadcopter Mod and the Lego Tank with the ESP8266.

Continue reading “Wandel Weaponizes Waste With Lego And A Raspberry Pi”

Color-Tunable LEDs Open Up Possibilities Of Configurable Semiconductors

The invention of the blue LED was groundbreaking enough to warrant a Nobel prize. For the last decade, researchers have been trying to take the technology to the next level by controlling the color of emission while the device is in operation. In a new research paper, by the guys over Osaka University, Lehigh University, the University of Amsterdam and West Chester University have presented a GaN LEDs that can be tuned to emit different colors from the same substrate.

GaN or Gallium nitride is a wide band-gap semiconductor that has been employed in the manufacturing of FETs that are known to have higher power density due to its high thermal capacity while increasing efficiency. In the the case of the tunable LED, the key has been the doping with Europium for creating energy bands. When an electron jumps from a higher band to a lower band, it emits energy in the form of light and the wavelength or color depends on the gap of energy jumped as per Plank-Einstein equation.

By controlling the current density and duty cycle, the energy jumps can be controller thereby controlling the color being emitted. This is important since it opens up the possibility of control of LEDs post production. External controllers could be used with the same substrates i.e. same LEDs to make a lamp of different intensity as well as color without needing different doping for R,G and B emissions. The reduction in cost as well as size could be phenomenal and could pave the way for similar semiconductor research.

We have covered the details of the LED in the past along with some fundamentals on the control techniques. We are hoping for some high speed color accurate displays in the future that don’t break the bank on our next gaming build.

Thanks for the tip [Qes]