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]

The Cloak Of Invisibility Against Image Recognition

Adversarial attacks are not something new to the world of Deep Networks used for image recognition. However, as the research with Deep Learning grows, more flaws are uncovered. The team at the University of KU Leuven in Belgium have demonstrated how, by simple using a colored photo held near the torso of a man can render him invisible to image recognition systems based on convolutional neural networks.

Convolutional Neural Networks or CNNs are a class of Deep learning networks that reduces the number of computations to be performed by creating hierarchical patterns from simpler and smaller networks. They are becoming the norm for image recognition applications and are being used in the field. In this new paper, the addition of color patches is seen to confuse the image detector YoLo(v2) by adding noise that disrupts the calculations of the CNN. The patch is not random and can be identified using the process defined in the publication.

This attack can be implemented by printing the disruptive pattern on a t-shirt making them invisible to surveillance system detection. You can read the paper[PDF] that outlines the generation of the adversarial patch. Image recognition camouflage that works on Google’s Inception has been documented in the past and we hope to see more such hacks in the future. Its a new world out there where you hacking is colorful as ever.

Continue reading “The Cloak Of Invisibility Against Image Recognition”

Teardown: The Guts Of A Digital Sentry

I have a home alarm system that has me wondering if I can make it better with my maker Kung-fu. Recently we had to replace our system, so I took the time to dissect the main controller, the remote sensors, and all the bits that make a home security system work.

To be precise, the subject of today’s interrogation is a Zicom brand Home Alarm that was quite famous a decade ago. It connects to a wired telephone line, takes inputs from motion, door, and gas sensors, and will make quite a racket if the system is tripped (which sometimes happened accidentally). Even though no circuits were harmed in the making of this post, I assure you that there are some interesting things that will raise an eyebrow or two. Lets take a look.

Continue reading “Teardown: The Guts Of A Digital Sentry”

Howto: Docker, Databases, And Dashboards To Deal With Your Data

So you just got something like an Arduino or Raspberry Pi kit with a few sensors. Setting up temperature or motion sensors is easy enough. But what are you going to do with all that data? It’s going to need storage, analysis, and summarization before it’s actually useful to anyone. You need a dashboard!

But even before displaying the data, you’re going to need to store it somewhere, and that means a database. You could just send all of your data off into the cloud and hope that the company that provides you the service has a good business model behind it, but frankly the track records of even the companies with the deepest pockets and best intentions don’t look so good. And you won’t learn anything useful by taking the easiest way out anyway.

Instead, let’s take the second-easiest way out. Here’s a short tutorial to get you up and running with a database backend on a Raspberry Pi and a slick dashboard on your laptop or cellphone. We’ll be using scripts and Docker to automate as many things as possible. Even so, along the way you’ll learn a little bit about Python and Docker, but more importantly you’ll have a system of your own for expansion, customization, or simply experimenting with at home. After all, if the “cloud” won’t let you play around with their database, how much fun can it be, really?

Continue reading “Howto: Docker, Databases, And Dashboards To Deal With Your Data”