Add Fiber-optic Control to Your CNC

CNC machines can be very noisy, and we’re not talking about the kind of noise problem that you can solve with earplugs. With all those stepper motors and drivers, potentially running at high-speed, electrical noise can often get to the point where it interferes with your control signals. This is especially true if your controller is separated from the machine by long cable runs.

But electrical noise won’t interfere with light beams! [Musti] and his fellow hackers at IRNAS decided to use commodity TOSLINK cables and transmitter / receiver gear to make a cheap and hackable fiber-optic setup. The basic idea is just to bridge between the controller board and the motor drivers with optical fiber. To make this happen, a couple of signals need to be transmitted: pulse and direction. They’ve set the system up so that it can be chained as well. Serializing the data, Manchester encoding it for transmission, and decoding it on reception is handled by CPLDs for speed and reliability.

The team has been working on this project for a while now. If you’d like some more background you can check out their original design ideas. Design files from this released version are up on GitHub. A proposed improvement is to incorporate bi-directional communications. Bi-directional comms would allow data like limit-switch status to be communicated back from the machine to the controller over fiber.

This optical interface is in service of an open-source plasma cutter design, which is pretty cool in itself. And if the IRNAS group sounds familiar to you, that may be because we recently ran a story on their ambitious gigabit ethernet-over-lightbeam project.

Logic Noise: The Switching Sequencer Has the Beat

Logic Noise is all about using logic circuits to make sounds. Preferably sound that will be enjoyable to hear and useful for making music. This week, we’ll be scratching the surface of one of my favorite chips to use and abuse for, well, nearly anything: the 4051 8-way analog switch. As the name suggests, you can hook up eight inputs and select one from among them to be connected up to the output. (Alternatively, you can send a single input to one of eight destinations, but we won’t be doing that here.)

Why is this cool? Well, imagine that you wanted to make our oscillator play eight notes. If you worked through our first installment, you built an abrasive-sounding but versatile oscillator. I had you tapping manually on eight different resistors or turning a potentiometer to eight different positions. This week, we’ll be letting the 4051 take over some of the controls, leaving us to do the more advanced knob twiddling.

Continue reading “Logic Noise: The Switching Sequencer Has the Beat”

MacGyvered Optoisolator is a Great Introduction

Sometimes the best way to learn about a technology is to just build something yourself. That’s what [Dan] did with his DIY optoisolator. The purpose of an optoisolator is to allow two electrical systems to communicate with each other without being electrically connected. Many times this is done to prevent noise from one circuit from bleeding over into another.

[Dan] built his incredibly simple optoisolator using just a toilet paper tube, some aluminum foil, an LED, and a photo cell. The electrical components are mounted inside of the tube and the ends of the tube are sealed with foil. That’s all there is to it. To test the circuit, he configured an Arduino to send PWM signals to the LED inside the tube at various pulse widths. He then measured the resistance on the other side and graphed the resulting data. The result is a curve that shows the LED affects the sensor pretty drastically at first, but then gets less and less effective as the frequency of the signal increases.

[Dan] then had some more fun with his project by testing it on a simple temperature controller circuit. An Arduino reads a temperature sensor and if the temperature rises above a certain value, it turns on a fan to cool the sensor off again. [Dan] first graphed the sensor data with no fan hooked up. He only used ambient air to cool things down. The resulting graph is a pretty smooth curve. Next he hooked the fan up and tried again. This time the graph went all kinds of crazy. Every time the fan turned on, it created a bunch of electrical noise that prevented the Arduino from getting an accurate analog reading of the temperature sensor.

The third test was to remove the motor circuit and move it to its own bread board. The only thing connecting the Arduino circuit to the fan was a wire for the PWM signal and also a common ground. This smoothed out the graph but it was still a bit… lumpy. The final test was to isolate the fan circuit from the temperature sensor and see if it helped the situation. [Dan] hooked up his optoisolator and tried again. This time the graph was nice and smooth, just like the original graph.

While this technology is certainly not new or exciting, it’s always great to see someone learning by doing. What’s more is [Dan] has made all of his schematics and code readily available so others can try the same experiment and learn it for themselves.

Dampen Workshop Noise with Paper Pulp and Kool-Aid — OH YEAH!

noise dampener

If you’re fortunate enough to have a garage and a workshop, you probably also have neighbors. The truly blessed must work within the confines of an HOA that restricts noise, porch couches, and most types of fun. [Mike] is among the truly blessed, and when he decided to design a cabinet for his CNC equipment, he took noise dampening into consideration.

[Mike]’s design isn’t a blanket noise dampener; it’s specifically designed for the high-pitch symphony of his router, compressor, and vacuum. He also sought to avoid vibrating the cabinet. To achieve this, the sound-dampening panels are hung on eye hooks with a 1/2″ gap between them and the frame. The backer boards are cut from 3/4″ plywood. [Mike] considered using cement board, but thought it might be overkill since he plants to shell the cabinet in a layer of 3/4″ plywood.

The deadening material is paper pulp made from various shredded papers. After soaking the shreds in water and blending the mixture to an oatmeal consistency, he drained most of the water through a cloth bag. Then he added just enough wood glue to hold the pulpy goo together. The tropical punch Kool-Aid powder isn’t just for looks; it provides visual confirmation of even glue distribution.

[Mike] made some tape walls around the edge of his backer boards to hold the mixture in place and painted on some wood glue to hold the pulp. He spread the tropical concoction to 1/2″ thickness with a tiling trowel to avoid compressing it. The peaks and valleys help scatter any sound that isn’t absorbed. Pudding awaits you after the jump.

Continue reading “Dampen Workshop Noise with Paper Pulp and Kool-Aid — OH YEAH!”

DCF77 signal filtering and decoding


[Udo] decided to build a clock using the DCF77 radio module seen above. This of course has been done before: the hardware draws a clock signal from the atomic clock in Braunschweig, Germany. So he grabbed a library for Arduino and got to work. But he was getting rather poor results and upon further investigation realized that the library had been written for 20 Hz modules and his operates at 300 Hz. This means better accuracy but the drawback is that the hardware is more susceptible to noise.

So began his journey to filter, process, and decode the DCF77 protocol. That link goes to the project overview. It will be in several parts all of which will be linked on that page. So far he has applied a low-pass filter and coded some exponential smoothing. He has yet to write the other four parts, but does mention that early testing shows that this technique will make the reception better than what is achieved with commercially available clocks. He was able to lock onto a signal that had more than 80% noise ratio. That’s impressive!

Just want to see a clock that uses a DCF77 module? Check out this PIC-based atomic clock.

Noise pollution tit for tat uses the Baha Boys as a weapon

Here [Matthew Br] explains the situation he’s in with the neighbors that share this wall of his apartment. When they listen to music they like it loud and so he gets to ‘enjoy’ the experience as well. But he can’t ignore it any longer, and has decided to use a sound volume detector to blast some tunes right back at them.

He taped a microphone to the wall and wired it up to his Arduino. It monitors incoming sound and, using an adjustable threshold, it will trigger when the neighbors are too loud. We think he was wise to include some time filtering that makes sure the loud noises are sustained and not just the result of someone bumping into the wall. When the system does detect loud music for a sustained period it triggers [Matthew’s] own CD player to pump out Who Let the Dogs Out? by the Baha Boys. It will play for a period of time, then shut off to listen and see if the neighbors are still rowdy.

He documents an actual run in the latter half of the clip after the break. We sure hope he’s living in a building with just two units, otherwise this will drive the rest of the neighbors batty as well!

Continue reading “Noise pollution tit for tat uses the Baha Boys as a weapon”

Real-time depth smoothing for the Kinect

[Karl] set out to improve the depth image that the Kinect camera is able to feed into a computer. He’s come up with a pre-processing package which smooths the depth data in real-time.

There are a few problems here, one is that the Kinect has a fairly low resolution, it is also depth limited to a range of about 8 meters from the device (an issue we hadn’t considered when looking at Kinect-based mapping solutions). But the drawbacks of those shortcomings can be mitigated by improving the data that it does collect. [Karl’s] approach is twofold: pixel filtering, and averaging of movement.

The pixel filtering works with the depth data to help clarify the outlines of objects. Weighted moving average is used to help reduce the amount of flickering areas rendered from frame to frame. [Karl] included a nice GUI with the code which lets you tweak the filter settings until they’re just right. See a demo of that interface in the clip after the break and let us know what you might use this for by leaving a comment.

Continue reading “Real-time depth smoothing for the Kinect”