Virtual Reality is finally coming of age. Hackers, Makers and Engineers have dreamed of creating immersive interfaces for years. From the first flight simulators to today’s cellphone powered head mounted displays, VR has always been an exciting field. Many of the advances today are being created by hackers who were inspired by systems like Virtuality from the early 1990’s. Now 25 years on, we’re seeing amazing advances – not only in commercial systems, but in open source VR projects. This week’s Hacklet is all about the best VR projects on Hackaday.io!
We start with [j0nno] and D.I.Y Virtual Reality. [J0nno] has become interested in VR, and decided to build his own head mounted display. His goal is to create a setup with full head tracking and an open source software stack. He’s hoping to do this within a budget of just $200 AUD. [J0nno] started with the Ritech3d-V2 VR Goggles, which are a plastic implementation of Google’s project cardboard. For display he’s using a 5.6 inch 1280 x 800 TFT LCD. Tracking is optical, using IR LEDs and a PS3 Eye camera. [J0nno’s] background is in software, so he’s doing great setting up OpenVR and Perception. The hardware side is a bit new to him. This isn’t stopping [J0nno] though! In true hacker spirit, he’s learning all about resistors and driving LEDs as he works on D.I.Y Virtual Reality.
Next up is [Josh Lindsay] with Digitabulum: The last motion-capture glove. Digitabulum is a motion capture glove designed to be able to emulate most other motion capture systems. It is also designed to be relatively low-cost. At $400 per hand, it is less expensive than most other offerings, though we’d still love to see something even cheaper. [Josh] is going with inertial sensors, and a lot of them. Specifically he’s using no less than 17 LSM9DS1 Inertial Measurement Unit (IMU) sensors from ST Microelectronics. IMU sensors like this combine multiple rate gyros, accelerometers, and magnetometers into a single unit. Essentially every segment of every finger has its own sensor suite. As you might imagine, that is quite a bit of data to crunch. An Altera Max II CPLD and an ST Arm processor help boil down the data to something which a VR engine can process. [Josh] has been working on this project for over a year now, and he’s making great progress. The prototype glove looks terrific!
[Thomas] brings augmented reality to the table with Oculus Rift featured Crane control. What started as a hobby experiment became [Thomas’] major project at university. He’s connected an Oculus Rift to a toy crane. A stereo camera on the crane sends a video image to the operator. The camera is mounted on a pan/tilt mechanism driven by the Rift’s head tracking unit. Simple joystick controls allow [Thomas] to move the boom and lower the line. On-screen displays show the current status of the crane. The use of the Rift makes this an immersive demonstration. One could easily see how moving this system into the real world would make crane operations safer for crane operators.
Finally we have [Arcadia Labs] with DIY Augmented Reality Device. This project, which is the [Arcadia Labs] entry in the 2015 Hackaday Prize, uses two 320 x 240 screens to create an augmented reality head mounted display. While the resolution can’t match that of the Oculus Rift or HTC Vive, [Arcadia Labs] is ok with that. They’re going for a lower cost open source alternative for augmented reality. Tracking is achieved with an IMU, while a PS3 Eye camera provides the video. A Raspberry Pi controls the show. [Arcadia Labs] was able to get 50 frames per second on the displays just using the Pi’s SPI interface, however the USB PS3 Eye camera limits things to around 10 FPS. This project is under heavy development right now, so follow along with us to see where [Arcadia Labs] ends up!
If you want VR goodness, check out our new virtual reality projects list! Did I miss your project? Don’t be shy, just drop me a message on Hackaday.io. If you’re on the left coast of the USA, check out SOCAL Virtual Reality Conference and Expo. Hackaday is a sponsor. The event happens on July 12 at the University of California Irvine.
That’s it for this week’s Hacklet, As always, see you next week. Same hack time, same hack channel, bringing you the best of Hackaday.io!
Filed under: Hackaday Columns
Over the last few weeks, we’ve had a lot of fun running the Community Voting for The Hackaday Prize. We’ve been offering up a $1000 gift card for The Hackaday Store to a random person on Hackaday.io if they have voted in the latest round of community voting. Unfortunately all of our weekly random drawings for someone on Hackaday.io has come up empty-handed.
Now we’re changing it. Due to popular demand, someone who has voted in the latest round of Community Voting will win a $1000 gift card. We will draw a winner this week! We’re giving away a thousand dollar gift card to a random person who has voted in the latest round of community. It’s the change you’ve asked for.
Next Wednesday, July 8th at around 22:00 UTC, I’m going to find a random person on Hackaday.io. If that person has voted, they get $1000. If not, I’m going to choose someone who has voted and give them a $1000 gift card. It’s really that simple. If you vote in the current round of Community Voting, you have a good chance at winning a thousand dollar gift card for the Hackaday Store.
What do you need to do to get in on the action? Go here and choose the most Amazingly Engineered project. You will be presented with two projects. Pick the project that is the more ‘amazingly engineered’ project. That’s it. That’s all you have to do. Show up and vote!
Filed under: The Hackaday Prize
In this post on the Arduino.cc forums and this blog post, [Majek] announced that he had fooled the AVR microcontroller inside and Arduino into writing user data into its own flash memory during runtime. Wow!
[Majek] has pulled off a very neat hack here. Normally, an AVR microcontroller can’t write to its own flash memory except when it’s in bootloader mode, and you’re stuck using EEPROM when you want to save non-volatile data. But EEPROM is scarce, relative to flash.
Now, under normal circumstances, writing into the flash program memory can get you into trouble. Indeed, the AVR has protections to prevent code that’s not hosted in the bootloader memory block from writing to flash. But of course, the bootloader has to be able to program the chip, so there’s got to be a way in.
The trick is that [Majek] has carefully modified the Arduino’s Optiboot bootloader so that it exposes a flash-write (SPM) command at a known location, so that he can then use this function from outside the bootloader. The AVR doesn’t prevent the SPM from proceeding, because it’s being called from within the bootloader memory, and all is well.
The modified version of the Optiboot bootloader is available on [Majek]’s Github. If you want to see how he did it, here are the diffs. A particularly nice touch is that this is all wrapped up in easy-to-write code with a working demo. So next time you’ve filled up the EEPROM, you can reach for this hack and log your data into flash program memory.
Thanks [Koepel] for the tip!
Filed under: Arduino Hacks
Most processes designed to join two pieces of what-have-you together are consumptive of something, whether it’s some material acting as a third party to work piece and the tool, or the tool itself. In the wonderful world of friction stir welding, the material of the two pieces under union gets swirled together through friction as the tool traverses the join path. There are, of course, professional machines that perform this with relative ease, but with a large amount of beer on the line, [skookum_choocher] was determined to make his own.
In the first video, he machines a friction welding tool by shaping a tungsten carbide button from a drill bit using a diamond grinder. Once he has a rough shoulder and protuberance going, it’s time to let her rip. Despite issues with clamping and the geometry of his tool, the weld is ultimately successful at the tail end.
Undeterred, he has another go at it after making some adjustments to the tool shoulder, changing the belt on his poor old Bridgeport, and increasing the clamping strength by a factor of four. You clamp sixteen tons, and whaddya get? A slightly better butt weld than the first time, it turns out. Fearing this weld is insufficient to win the bet, he goes for the lap weld with the work pieces stacked together in a sandwich. We prefer pizza with beer, but nevertheless congratulate him.Part One
Filed under: tool hacks
The Intel Edison is out, and that means there’s someone out there trying to get a postage-stamp sized x86 machine running all those classic mid-90s games that just won’t work with modern hardware. The Edison isn’t the only tiny single board computer with an x86 processor out there; the legends told of another, and you can connect a graphics card to this one.
This build uses the 86Duino Zero, a single board computer stuffed into an Arduino form factor with a CPU that’s just about as capable as a Pentium II or III, loaded up with 128 MB of RAM, a PCI-e bus, and USB. It’s been a while since we’ve seen the 86Duino. We first saw it way back at the beginning of 2013, and since then, barring this build, nothing else has come up.
The 86Duino Zero only has a PCI-e x1 connector, but with an x16 adapter, this tiny board can drive an old nVidia GT230. A patch to the Coreboot image and a resistor for the Reset signal to the VGA was required, but other than that, it’s not terribly difficult to run old games on something the size of an Arduino and a significantly larger graphics card.
Thanks [Rasz] for sending this one in.
Filed under: hardware
Back in the old days of 2014 when Radio Shack still existed, you could drive up to any strip mall in America and buy D-sub connectors that were made all the way back in 1972. Yes, connectors for all those SCSI, serial, parallel, and other weird ports you’d find on old computers could be bought for less than five dollars. For some reason or another, [yesnoio] has a ton of these connectors. Not just the connectors, but also those little plastic shells that clip onto the connectors. What to do with them? Retro Modules! It’s basically LittleBits if LittleBits were invented in 1987.
The goal of Retro Modules is to be able to put prototypes into your backpack without tearing a wire or two out of a breadboard. The basic foundation is to have a specification that outlines the pinout of DB-25 and DE-9 connectors, using these signals for power, an I²C bus,. analog lines, and SPI lines. Put a microcontroller in one of these plastic shells, a sensor in another, and a display in a third; you have an electronics prototyping platform that was designed in the backroom of a Radio Shack.
[yesnoio] has a Getting Started guide that takes you through the creation of the first three Retro Modules. The first is an Arduino nano or micro stuffed into a plastic shell with one female DA-15 connector. The second module is just a LED and resistor, and the third is just a servo. These can be connected together, and controlled because of the specification lined out. It’s brilliant, a little bit crazy, and something that has the potential to be much, much cooler than any electronics prototyping platform you’ll find at Maker Faire.The 2015 Hackaday Prize is sponsored by:
Filed under: The Hackaday Prize
16A lot of engineers, scientists, builders, makers, and hackers got their start as children with LEGO. Putting those bricks together, whether following the instructions or not, really brings out the imagination. It’s not surprising that some people grow up and still use LEGO in their projects, like [Steve] who has used LEGO to build an optics lab with a laser beam splitter.
[Steve] started this project by salvaging parts from a broken computer projector. Some of the parts were scorched beyond repair, but he did find some lenses and mirrors and a mystery glass cube. It turns out that this cube is a dichroic prism which is used for combining images from the different LCD screens in the projector, but with the right LEGO bricks it can also be used for splitting a laser beam.
The cube was set on a LEGO rotating piece to demonstrate how it can split the laser at certain angles. LEGO purists might be upset at the Erector set that was snuck into this project, but this was necessary to hold up the laser pointer. This is a great use of these building blocks though, and [Steve] finally has his optics lab that he’s wanted to build for a while. If that doesn’t scratch your LEGO itch, we’ve also featured this LEGO lab which was built to measure the Planck constant.
Filed under: laser hacks, toy hacks
Have a project that moves? Then get it entered this week for your chance at one of 15 quadcopters. We’ll award a Crazyflie 2.0 to each of 15 fantastic examples of projects that move with wings, wheels, or propellers (the kind on boats or on flying things). Here’s what you need to do before Thursday, 7/9/15:
- Officially enter your project in the 2015 Hackaday Prize
- Go to this discussion and leave a comment requesting that your project to be added to the list
That’s all you need to do to be considered. But there’s a lot you can do to help improve your chances of winning. We love to see images, so make sure you have a least one picture in the main gallery. Start your project documentation with a clear and concise description of what you’re doing with the project and how you plan to accomplish that. And a components lists is always helpful!
We had a great time judging the manufacturer sponsor contests this week. We’ll be announcing the 200 winners of those contests over the next few days.
Oh yeah, one last time… you’re going to want to make sure you VOTE right away, because someone’s going to win big this week. [Brian] will tell you more about that tomorrow ;-)The 2015 Hackaday Prize is sponsored by:
Filed under: Featured, The Hackaday Prize
Forget the soup cans connected by a piece of string. There’s now a way to communicate wirelessly that doesn’t rely on a physical connection… or radio. It’s a communications platform that uses lasers to send data, and it’s done in a way that virtually anyone could build.
This method for sending information isn’t exactly new, but this project is one of the best we’ve seen that makes it doable for the average tinkerer. A standard microphone and audio amplifier are used to send the signals to the transmitter, which is just a typical garden-variety laser that anyone could find for a few dollars. A few LEDs prevent the laser from receiving too much power, and a solar cell at the receiving end decodes the message and outputs it through another amplifier and a speaker.
Of course you will need line-of-sight to get this communications system up and running, but as long as you have that taken care of the sky’s the limit. You can find incredibly powerful lasers lying around if you want to try to increase the communication distance, and there are surprisingly few restrictions on purchasing others that are 1W or higher. You could easily increase the range, but be careful not to set your receiving station (or any animals, plants, buildings, etc) on fire!
Filed under: laser hacks
For the last few years, the people in the know have been wondering about the memristor. The simplest explanation of what a memristor is comes from the name itself – it’s a memory resistor. In practice it’s a little more complex, but this basic understanding is enough to convey the fact that it’s a resistor that changes its resistance based on how much current has gone through it. The memristor was first described in the 70s by [Leon Chua], the idea sat in journals for nearly forty years, and in 2008 a working memristor was created by HP Labs.
Now you can buy one. Actually, you can buy eight in a 16-pin DIP package. It will, reportedly, cost $240 for the 16-pin DIP. That’s only $30 per memristor, and it’s the first time you can buy them.
These memristors are based on a silver chalcogenide (Ge2Se3). When a circuit ‘writes’ to this memristor and applies a positive voltage, silver ion migrate to the chalcogenide, forming what the datasheet (PDF) calls dendrites. This lowers the resistance of the memristor. When a negative voltage is applied to the device, these dendrites are removed, the memristor is ‘erased’, and the memristor returns to a high-resistance state.
This silver chalcogenide memristor is different from the titanium oxide memristors developed by HP Labs that is most frequently cited when it comes to this forgotten circuit element. This work is from [Kristy Campbell] of Boise State University. She’s been working on it for more than a decade now, with IEEE publications, conference proceedings (that one’s full text), and dozens of patents.
As far as applications for memristors go, there are generally two schools of thought on that. The most interesting, in terms of current computer technology, is storage. Memristors can hold either a binary 0 or a 1 in a fraction of the space NAND Flash or old-fashioned magnetic hard drives ever will. That means greater storage density, and bigger capacity hard drives with lower power requirements. These memristors have a limit of how many times they can be cycled – ‘greater than 2000 times’ according to the datasheet. That’s nearly an order of magnitude less than MLC Flash, and something wear leveling can’t reasonably compensate for. This is a new technology, though, so that could change.
The second major expected use for memristors is neural nets. Neural nets are just a series of inputs, a few neurons, outputs, and connections between all three. These connections are weighted, and the variable resistance of memristors puts them in a unique position to emulate in hardware at the most basic level what was once done with software and custom ASICs. The trade name for these memristors – Neuro-Bit – and the company name – Bio Inspired Technologies – give you a clue at what the intended use is.
As with all new technologies, there’s always something that is inevitably created that was never imagined by the original designers. What these new applications are is at this point just speculation. Now that anyone can buy one of these neat new chips, it’s going to be interesting to see what can be made with these parts.
Filed under: chemistry hacks, Hackaday Columns
So far on Logic Noise, we’ve built up a bunch of sound-making voices and played around with sequencing them. The few times that we’ve combined voices together, we’ve done so using the simplest possible passive mixer — a bunch of resistors. And while that can work, we’ve mostly just gotten lucky. In this session, we’ll take our system’s output a little bit more seriously and build up an active mixer and simple stereo headphone driver circuit.
For this, we’ll need some kind of amplification, and our old friend, the 4069UB, will be doing all of the heavy lifting. Honestly, this week’s circuitry is just an elaboration of the buffer amplifiers and variable overdrive circuits we looked at before. To keep things interesting we’ll explore ping-pong stereo effects, and eventually (of course) put the panning under logic-level control, which is ridiculous and mostly a pretext to introduce another useful switch IC, the 4066 quad switch.
At the very end of the article is a parts list for essentially everything we’ve done so far. If you’ve been following along and just want to make a one-time order from an electronics supply house, check it out.
If you’re wondering why the delay in putting out this issue of Logic Noise, it’s partly because I’ve built up a PCB that incorporates essentially everything we’ve done so far into a powerhouse of a quasi-modular Logic Noise demo — The Klangorium. The idea was to take the material from each Logic Noise column so far and build out the board that makes experimenting with each one easy.
Everything’s open and documented, and it’s essentially modular so you can feel free to take as much or as little out of the project as you’d like. Maybe you’d like to hard-wire the cymbal circuit, or maybe you’d like to swap some of the parts around. Copy ours or build your own. If you do, let us know!
OK, enough intro babble, let’s dig in.DC Bias Voltage
We perceive compression waves in the air as sound when they reach our ears. We make these compressions by pushing and pulling a speaker cone back and forth. And to make the cone move, we need to get current to flow one way and then the other through the speaker’s magnet windings.
Why the return to fundamentals? Because it’s important to think of the voltages and currents that we want to amplify as being bi-polar, oscillating around some central voltage level. When the signal voltage is higher than neutral, current flows one way and the cone gets pushed. When the signal is lower, current flows the other way and the cone is pulled. The neutral voltage around which we’ll oscillate is called a DC bias (or level) voltage.
In the course of Logic Noise we’ve ignored DC bias voltage whenever possible, but in mixing several signals together, we can’t do that anymore, because signals only add up correctly if they’re generated with respect to the same bias voltage.
We’ve gotten away without blocking DC voltages before because our square wave and triangle wave signals were biased around VCC/2, just like an amplifier with feedback built from a 4069UB inverter is. It all worked fine until we introduced the drum and cymbals circuits, which are so strange that they don’t really even have a well-defined DC level.
Blocking DC voltage is simply done by passing the signal through a capacitor. How large? Large enough that combined with the input resistance of the next stage in the audio chain, it doesn’t cut too much into our low frequency components. In the case of the 4069UB output amplifier stage, a 1 microfarad capacitor will do nicely.
So for now, let’s assume that we first pull the DC level off of any signals that we’d like to mix together, noting that we can “get away with it” for full-swing square waves. Now it’s time to get down to the mixing.Mixers: Passive and Active Passive Mixers
“Passive mixer” is a two-dollar name for combining signals together by passing them through resistors. The higher the resistor value, all other things equal, the quieter the contribution to the overall mix.
It’s the simplest way to add a few signals together, and you should play around with passive mixing anyway, just to get the feel for it. The key to making a passive mixer work is using relatively large resistors for all of the mix inputs.
The downside of the simple passive mixer is that because all of the signals combine at the junction, one signal can influence the others. Essentially, each input signal can pull the junction’s voltage higher or lower than the neutral voltage, and this can feed back out to the other “inputs” through their input resistor. Passive resistor mixers are tremendously simple, but they don’t isolate the signal sources well from each other.Active Mixers
The trick to active mixing is adding negative feedback. Otherwise, it’s just the same circuit as the passive mixer, but it’s a whole lot better.
Remember from the session on filters that the inverter acts as if it were trying to zero out any net incoming signal current that shows up on the input pin; the logic is that if the voltage on the input rises up above the switching point, the output goes low and fights it back down again through the feedback path.
How much resistance is present in the feedback determines how hard the inverter needs to work to cancel out the input signal. More feedback resistance leads to larger voltage swings on the inverter’s output, which end up as louder tones in our headphones, so the feedback path is a great place to add in a master volume control knob.
In the passive mixer example, when one input was high, it raised the voltage at the junction which could then flow “backwards” to the other connected circuits through their input resistors. In an active mixer, when one input is high the inverter cancels it out by lowering the overall mixed output voltage until the input to the inverter sits at its neutral point again. By the negative feedback mechanism, the junction of all the summing resistors is held at a constant midpoint voltage, and none of the inputs can affect each other. Only the output voltage swings around.
Here we see the need to remove the DC level from the input signals — the 4069UB will do whatever it can to hold its input at roughly VCC/2 by pushing current through the feedback loop. A 1uF capacitor before each input resistor will take care of that.
Beyond isolating the inputs from one another, we can also control the gain of an active mixer by changing the value of the feedback resistor. This gives us a simple place to insert a master volume control just by replacing the feedback resistor with a potentiometer. The convenience of a master volume knob should not be underestimated.
If you’re mixing signals, and you have electricity at your disposal, you almost always want an active mixer.Multiple Input Volumes
The main function of a mixer is to make a bunch of sounds with different volume levels play nicely together. For instance, the square wave output of a 40106 oscillator swings fully from GND to VCC, while the (unbuffered) triangle wave coming from the input of the same oscillator is a lot quieter. The bass drum circuit is also by nature fairly quiet, and the output of the VCA that gave the cymbal its percussive envelope swing only a few volts. Aesthetically, you’ll want to tweak the volume of each different sound source.
A studio’s mixing console is dominated by an impressive array of faders that fine-tune the volumes of the individual tracks. But before we end up investing in hundreds of dollars of fancy potentiometers, let’s see how far we can get with a bunch of one-cent resistors.
Let’s think about this like an engineer for a second. We want around one volt peak-to-peak of output signal, either for line-level inputs or for headphones. That means that if we’re seeing 9V peak-to-peak square waves, we’ll want to cut them down by about a factor of ten. On the other hand, the one or two volts peak-to-peak that we get out of the low-level signals can plausibly be run through with simple unity-gain buffering. (Bear in mind, this is all before the global output volume control knob.)
If we’re using a 100k potentiometer for the variable feedback resistance (and overall volume), this means that we can use something around 1M Ohm for the high-volume digital signals to knock the amplitude down by at least a factor of ten. Using a 100k Ohm resistor for the quieter signals means that they’ll pass through with unity gain when the channel’s volume knob is turned up to maximum. Of course, you can tweak these values to fit your exact preferences by picking different resistor values.
So round up a bunch of noise-making devices and pick some input resistor values that make them sound good together. (Remembering to remove the DC level with a capacitor if necessary.) If the end result works, nobody will know that you didn’t spend hundreds or thousands on a mixing board.Headphone Out and Line Out
We saw DC bias issues on the input side, and DC bias raises its ugly head again on the output. Our amplifier’s output is centered around VCC/2, but for headphones (or other speakers) we ideally want no current to flow at this neutral voltage level. This suggests two solutions. First is to create a constant “virtual ground” voltage level at VCC/2 and feed the headphones with our signal and the virtual ground. The other is to strip the DC bias off of the signal and connect the downstream headphones or amplifier to real ground.Virtual Ground
The clever way to create a virtual ground at the 4069UB’s neutral voltage (roughly VCC/2) is to set up an inverter with negative feedback as usual but with no input signal. The output of this inverter will be constant and exactly at the inverter’s switching midpoint, so we can use this voltage as the symmetric voltage midpoint that we need for the headphone’s “ground” connection. In the circuit here, a big (100uF) capacitor keeps the VCC/2 level steady. If you’re only going to be driving headphones, or if you’ll only be running the circuit on batteries, this is the hi-fi way to go.
The virtual ground solution runs into trouble when our circuit and the amplifier share a ground connection, as can happen when both are powered by (switching) AC adapters. Then the output’s virtual ground (around VCC/2, remember) gets connected directly to actual ground, and that’s not good. The 4069UB will struggle trying to pump out VCC/2 into a short to ground, probably get hot, and certainly not work so well. The moral of the story: if you use a virtual ground voltage, don’t connect it to actual ground.Output Capacitors
If you might have this shared-ground situation, the simple solution is to include DC-blocking capacitors on the output for each of the two stereo channels. While it was easy enough to just say “1uF capacitors” on the input side, the size of output caps should probably be larger but this depends on the load resistance and the amount of current we’ll need to drive into the load.
For example, I have a pair of headphones with 32 Ohm drivers inside, which puts the cutoff frequency of a 100uF capacitor at 1/(2*pi*C*R) = 1/(2*pi*100uF*32 Ohms) = 50 Hz — a low pitch, but one I’d like to hear. Maybe 220uF would be better for low impedance headphones. On the other hand, a less-demanding pair of 600 Ohm headphones will run fine with a 100uF cap down to around 3 Hz which is way below human hearing, and more like a fast tempo than a low note. You could probably get away with 10uF in this case.
In sum, the capacitor-based solution won’t end up shorting to ground, but requires a fairly big capacitor to pass bass notes. The virtual ground solution is clever and works perfectly well with headphones or when battery powered. Shorting the virtual ground to actual ground is to be avoided.(Discrete) Stereo Mix
Stereo audio is nothing more than a right and left channel, that is two inverters on the 4069UB instead of one, but it’s a great step forward for our synth devices. You can either send all of one instrument voice to the left or right channel, or connect a single voice to both channels through different input resistors.
It’s nice to have a simple stereo jack breakout board at this point — something you can simply clip or plug into your circuit and then connect up to your headphones or amplifier. Ours was made by soldering a 3.5mm stereo jack to a scrap of copper-clad, traces hand-drawn with a Sharpie, and etched. We tossed on some small wire loops to serve as nice ‘scope test points, because it’s nice to see as well as hear what’s going on.
Let’s take a break from all this theory and build up two capacitor-decoupled mixer circuits.The 4066 Quad Switch
We’ll play around with ping-pong stereo just to show off, and use the 4066 quad switch chip to do it. Just above, we plugged a given voice into either the left or right channel, or both, and then swapped them around. Now, we’ll use the 4066 switch IC to do the plugging and unplugging for us.
The 4066 quad switch is both as useful and as simple as it sounds — it’s four logic controlled single-pole, single-throw switches in a package. If you want to connect and disconnect stuff, naturally under logic control, this IC is a great solution.
Previously we’ve looked at the 4051 8-way switch and used it to select one from eight possible inputs. The limitation with the 4051 is that it’s only possible to select one from the eight inputs at a time. The 4066, on the other hand, is just a set of four switches. This lets us build setups where more than one input channel is active at a time.
Here, we’ll be using the 4066 to route two sound inputs each into one or both of our right and left outputs. Take one voice, say a quiet one like the drum or cymbal circuit, and connect it through two 100k resistors into two switches from the 4066. The other side of each switch is connected to the left and right 4069UB amplifier circuits, respectively. When only the “left” switch is active our drum sound comes out the left side, and vice-versa. When neither is active, the drum is silenced, and when both are active the drum will be centered in the stereo field, and a bit louder because you’ve got two drum signals in place of one.
We can repeat the same hookup for a second voice. Let’s assume that the second voice is a loud one, like a VCC-to-GND square wave or similar. For comparable volume level with the quieter sound, we’ll need to run this loud input through a larger resistor, say 1 MOhm. Any of these input resistors can be substituted with a potentiometer if you’d like smooth control of the volume level. And again, if any of the input signals are not centered around VCC/2, pass them through a 1uF cap on their way into this circuit and don’t forget to de-couple the output or use a virtual ground.
Now we can turn on and off the left and right channels for inputs A and B with logic-level voltages at the four inputs.Getting Fancy
Now don’t forget our sequencing tricks from previous sessions. For instance, adding a 4017 counter to the mix would allow us to trip the different 4066 switches in order by tapping off of the counter stages. Panning two similar sounds (triangle wave and square wave in the demo below) between the two stereo channels in sequence or in pairs can make a neat, evolving sound texture out of very simple sources.
The 4066 switch makes a great general-purpose control for turning on and off a given voice. We’re using it here for panning effects, but you could also imagine hooking up four different pitch oscillators to the four switches and playing a simple tune just by selecting which notes make it through the switches at a given time.
And as you can hear in the videos, the 4066 switch works fast enough to be fed audio signals into the switch control port. Every time a jumper wire is pulled out of the board, it couples with the 50 Hz power-line frequency and makes more overtones as the input frequency and the 50 Hz switching frequency mix with each other, for a sound that’s not unlike what you’d get by running both signals through an XOR.
An on-off switch seems like a humble device, but it’s very broadly useful. So have some fun switching elements on and off in the stereo field here, but don’t think that you’ve seen the last of the 4066.Next Session
As promised previously, next session we’ll start getting into a little more advanced Logic Noise circuits, and in particular getting into voltage control. The 4046 phase-locked loop IC has a small voltage controlled oscillator inside it (among other parts) so it’ll be our first stop. We’ll make sweeping pitches without turning knobs. Stay tuned!PS: Parts List
A number of folks have asked for a parts list for the Logic Noise series. Here goes.
I’ve tried to keep the variety of parts used as low as possible, for instance by using 100k resistors as a standard value whenever they’ll work. All potentiometers we’ve used so far are also 100 kOhms. Capacitors have been between 10nF and 10uF, a fairly normal range, and we’ve used 100nF caps for almost all of pitch-determining applications. The point of all this is that you can buy these parts in large enough volume to hopefully get a discount.ICs / Actives:
All of the 4000-series ICs are available under different names from different manufacturers. Most of the chips in my drawer are from TI or Fairchild, but I’ve got a bunch from ON and NXP. Most of the time, they’re interchangeable:
CD4xxx from TI and Fairchild Semiconductor
MC14xxx from ON Semiconductor
HEF4xxx from NXP
In buying ICs, I almost never buy one, and for most of these parts the volume discounts start at 10 pieces. Take the quantites below to be rough suggestions. You can never have too many useful parts.
- 10x 40106 hex inverter (you’ll use these everywhere)
- 10x 4069UB inverter, amplifier (UB is crucial)
- 4x 4051 eight-way switch
- 4x 4066 quad single-pole switch
- 2x 4040 binary counter
- 2x 4017 decimal counter
- 2x 4015 shift register (or 4094 if you won’t use the dual-clock functionality)
- 2x 4070 XOR
- 2x 2N3904/2N2222/BC548 or similar NPN signal transistors
- 2x 4046 PLL
- 2x 4007 misc gates
- 100x signal diodes, e.g. 1N4148.
- 100x 100k Ohm resistors (our mainstay)
- 100x 10k Ohm resistors (also useful)
- A handful of odd-value resistors here and there. Get an assortment if you don’t already have one.
- 100x 0.1uF (100nF) capacitors. Ceramic/MLCC is fine.
- 100x 1uF capacitors. ditto
- 10x 10nF capacitors, ditto
- 10x 10uF capacitors, electrolytic, 16v is fine.
- 10x 100uF capacitors, electrolytic, ditto.
- 10x 100k Ohm linear potentiometers (this is where most of your budget will go, and honestly 20 wouldn’t be too many)
- 1x 100k stereo / dual potentiometer for bass drum circuit
- Some pushbuttons, but again you’ll never have too many
- Breadboard and a lot of breadboarding wires
- 9V battery and clips to connect to breadboard, or power supply
- Powered computer speakers or amp and speaker
- 3.5mm audio jack / stereo cable for output
Filed under: Featured, hardware, misc hacks, slider
Hackaday has been expanding into all kinds of new areas. We find ourselves stretched a bit thin and it’s time to ask for help. Want to lend a hand while making some extra dough to plow back into your projects? These are work-from-home (or wherever you like) positions and we’re looking for awesome, motivated people to help guide Hackaday forward!Applying as a Contributor
Contributors are hired as private contractors and paid for each post. You should have the technical expertise to understand the projects you write about, and a passion for the wide range of topics we feature. If you’re interested, please email our jobs line, start your subject with [Contributor], and include:
- Details about your background (education, employment, etc.) that make you a valuable addition to the team
- Links to your blog/project posts/etc. which have been published on the Internet
- One example post written in the voice of Hackaday. Include a banner image, at least 150 words, the link to the project, and any in-links to related and relevant Hackaday features
Social Media positions are hired as private contractors. You should have at least some technical understanding of the type of material which Hackaday revolves around. This position has huge growth potential and we’re looking for someone who will keep a social media schedule full and ensure conversations are happening. If you’re interested, please email our jobs line, start your subject with [SocialMedia], and include:
- Details about your background (education, employment, etc.) that make you a valuable addition to the team
- Links to social media accounts you have driven (this may be your own or a company account)
- Two example Tweets and one example Facebook post which have been written specifically for this application
What are you waiting for? Ladies and Gentlemen, start your applications!
Filed under: Featured
[Gavin Munro] is turning the standard paradigm of furniture making on its head. Instead of harvesting trees and slicing them up into boards – or worse, turning them into sawdust to be used for particle board – [Gavin] is literally growing furniture.
Supple young willow saplings are pruned and trained using wire and plastic form work. The trees are encouraged to grow in the right directions to form legs, arms, seat and back, and eventually the individual pieces are grafted together to continue growing into one solid piece. When the chair is mature, the leaves are removed, the chair is cut free from the ground, and with a little seasoning and finishing, you’ve got a unique and functional chair. And what’s more, since it’s a solid piece of wood, there are no joints to loosen over time.
You’ve got to admire the dedication that goes into these chairs. The current crop is about nine years old and still a few years from harvest. There’s a lot to be learned from the organization of a project like this – planning a production line where the first finished pieces are a decade or more from the showroom is no mean feat. Looks like [Gavin] has thought that through as well, by starting a line of lamps that will be turning a profit sooner. The video after the break demonstrates not only [Gavin’s] chairs and lamps, but also features his first harvest of tables.
Thanks to [Sascho] for the tip.
Filed under: green hacks, home hacks
“You can’t put new wine in old bottles” – so the saying goes. But you would if you’re a hacker stuck with a radio built in 2005, which looked like it was put together using technology from 1975. [Marcus Jenkins] did just that, pulling out the innards from his old radio and converting it to an Arduino FM radio.
His cheap, mains powered radio was pretty bad at tuning. It had trouble locating stations, and tended to drift. One look at the insides, and it was obvious that it was not well engineered at all, so any attempts at fixing it would be pointless. Instead, he drew up a simple schematic that used an Arduino Nano, an FM radio module based on the TEA5767, and an audio amplifier based on the LM386.
A single button on the Arduino helps cycle through a range of preset frequencies stored in memory. The Arduino connects to the FM radio module over I2C. The existing antenna was connected to the TEA5767 module. The radio module outputs stereo audio, but [Marcus] was content with using just a mono channel, as it would be used in his workshop. The audio amplifier is pretty straightforward, based on a typical application found in the data sheet. He put it all together on proto-board, although soldering the FM radio module was a bit tricky. The Arduino code is quite simple, and available for download (zip file).
He retained the original tuning knob, which is no longer functional. The AM-FM selector knob was fitted with a micro-switch connected to the Arduino for selecting the preset stations. Almost everything inside was held together with what [Marcus] calls “hot-snot” glue. The whole exercise cost him a few Euros, and parts scavenged from his parts bin. A good radio could probably be had for a few Euros from a yard sale and much less effort, but that wouldn’t be as cool as this.
Go deeper and explore how FM signals are modulated and demodulated for playback.
Filed under: radio hacks
E-cigarettes are increasingly popular, with weird hipster head shops popping up in towns around the globe. While you can buy this e-juice at gas stations and just about anywhere else analog cigarettes are sold, there are inevitably people who want to mix their own propylene glycol, glycerin, water, and nicotine. For them, [conklinnick] is building The End Of An Evil Industry, an e-juice printer that automates the entire process.
This ‘e-juice printer’ is designed to mix the basic ingredients of the consumables for e-cigarettes. These ingredients are propylene glycol and/or glycerin, water, flavorings, and nicotine. [conklinnick]’s project is using different ‘stations’ and a camera slider to dispense these ingredients into a small vial. It’s effectively a barbot dispensing ingredients for silly putty instead of alcohol.
It’s a great project, and although it’s not for everybody – nor should it be for everybody – it’s a great application of homebrew tech we already have for new uses.
The 2015 Hackaday Prize is sponsored by:
Filed under: The Hackaday Prize
[Giorgos] wanted to build a pneumatic solder paste application tool but needed an air compressor to power it. Instead of going out and buying a compressor, he decided to build one himself. It sure is an ugly duckling but we’re impressed with it’s performance.
The air tank is an old spent fire extinguisher. The stock valve was removed and the insides were cleaned out. Out of curiosity, [Giorgos] figured out the volume by filling the tank with water, then measuring how much water came out. It turned out to be 2.8 liters. Two holes were drilled and threaded bungs were welded on to attach inlet and outlet lines.
The compressor portion is straight out of a refrigerator. Besides the compressor being free, the other benefit is that it is super quiet! Check the video after the break, you’ll be astonished. [Giorgos] did some calculations and figured out that his solder paste applicator needed about 8 bar (116 psi) of pressure. The refrigerator compressor easily handles that, filling the tank in 1 minute, 25 seconds.
On the output side of the tank resides a pressure switch for automatically filling the tank and a regulator for ensuring the solder paste applicator gets the required pressure. This isn’t the first time we’ve seen a refrigerator compressor used as an air compressor. Check out this dual setup capable of 400 psi.
Filed under: tool hacks
Signal generators are a useful piece of kit to have on your electronics bench. The downside is that they tend to be rather expensive. If you have $100 to drop on a new toy, the MHS-5200A is a low cost, two channel, 25 MHz generator that can be found on eBay.
The downside is the software. It’s an ugly Windows interface that’s a pain to use. The good news is that [wd5gnr] reverse engineered the protocol so you don’t have to. This means other software can be developed to control the device.
When connected to a computer, this function generator shows up as a virtual USB serial port. The documentation that [wd5gnr] assembled lists all the serial commands you can send, and what they do. If you aren’t into manually setting waveforms from a serial terminal (who is?) there’s a tool for doing that automatically on Github. This takes in a CSV file describing a waveform, and programs the generator to make it for you.
The software is also compatible with Waveform Manager Plus, a free GUI tool for defining waveforms. Putting this all together, you can have a pretty capable waveform generator for less than $100.
Filed under: tool hacks
This is your 3-hour warning. We’re kicking off our first ever Collabatorium and you’re invited. To join in just click the “Request to join this project” found on the left sidebar of the Hacker Channel page.
Once you’ve joined you can open up the Group Messaging for that project, one of the many awesome collaboration features on Hackaday.io. Starting at 6:30pm PDT (UTC-7) we’ll launch the Collabatorium to celebrate, discuss, encourage, and find partners for 2015 Hackaday Prize Entries. This edition of the live event is hosted by [Sophi Kravitz] and [Jasmine Brackett].
While we have your attention, here’s another reminder to head on over and Vote in Astronaut or Not. Each week we draw a random hacker number for a $1000 giveaway, but only if you have voted!. The next drawing is Tomorrow so get at least one vote in right away to qualify.The 2015 Hackaday Prize is sponsored by:
Filed under: The Hackaday Prize
There’s a big problem with the Internet of Things. Everything’s just fine if your Things are happy to sit around your living room all day, where the WiFi gets four bars. But what does your poor Thing do when it wants to go out and get a coffee and it runs into a for-pay hotspot?
[Yakamo]’s solution is for your Thing to do the same thing you would: tunnel your data through DNS requests. It’s by no means a new idea, but the combination of DNS tunneling and IoT devices stands to be as great as peanut butter and chocolate.
DNS tunneling, in short, relies on you setting up your own DNS server with a dedicated subdomain and software that will handle generic data instead of information about IP addresses. You, or your Thing, send data encoded in “domain names” for it to look up, and the server passes data back to you in the response.
DNS tunneling is relatively slow because all data must be shoe-horned into “domain names” that can’t be too long. But it’s just right for your Thing to send its data reports back home while it’s out on its adventure.
Oh yeah. DNS tunneling may violate the terms and conditions of whatever hotspot is being accessed. Your Thing may want to consult its lawyer before trying this out in the world.
Filed under: internet hacks, Network Hacks, wireless hacks
In the cult classic Dune, there’s this fictional device called the “Pain Box”. If you touch it, you’ll feel like your hand is burning, but in reality, no tissue is being damaged. In the real world this is called the Thermal Grill Illusion, which was discovered back in 1896. Much to our chagrin, [Adam Davis] has just finished building a working prototype.
Sound familiar? We covered a similar project a few months ago — but unfortunately it didn’t work very well. Luckily, and boy do we love it when this happens, [Adam] saw the post, and got inspired to try it himself. He had actually designed a system years back but never got around to building it. Upon seeing the post — and the difficulties in making it work — he just had to figure it out.
So how does it work? The Thermal Grill Illusion uses alternating warm and cool bars which stimulate the temperature receptors in your skin — and confuse them. Neither the warm or cool bars are extreme enough in temperature to do any harm, but your confused little temperature receptors make it feel like you’re either burning or freezing your skin off!
To do this, [Adam] is using thermoelectric coolers (TEC’s) which use the Peltier effect to cause a temperature differential between two sides of the device. Some temperature PID controllers make sure everything stays in the safe temperature range — TEC’s can get super hot, or cold! The resulting system works well, and really shows off the effect nicely; just take a look at the following demonstration.
Filed under: misc hacks