Logic Noise: Digital To Analog With An R-2R DAC

Making sound with digital logic usually calls for a Digital to Analog converter. Building one can be very simple, and the sound quality out of an R-2R Ladder is actually pretty good.

In the last edition of Logic Noise, we built up a (relatively) simple VCO — voltage-controlled oscillator — that had roughly one-volt-per-octave response. I even demonstrated it working mostly in tune with another synth’s keyboard. But what if you don’t have a control-voltage keyboard sitting around or you want to combine all of the logic-based circuits that we’ve been building with other circuits under voltage control? That’s where the digital to analog (DAC) voltage converter comes in.

Continue reading “Logic Noise: Digital To Analog With An R-2R DAC”

No Pascal, Not A SNOBOL’s Chance. Go Forth!

My article on Fortran, This is Not Your Father’s FORTRAN, brought back a lot of memories about the language. It also reminded me of other languages from my time at college and shortly thereafter, say pre-1978.

At that time there were the three original languages – FORTRAN, LISP, and COBOL. These originals are still used although none make the lists of popular languages. I never did any COBOL but did some work with Pascal, Forth, and SNOBOL which are from that era. Of those, SNOBOL quickly faded but the others are still around. SNOBOL was a text processing language that basically lost out to AWK, PERL, and regular expressions. Given how cryptic regular expressions are it’s amazing another language from that time, APL – A Programming Language, didn’t survive. APL was referred to as a ‘write only language’ because it was often easier to simply rewrite a piece of code than to debug it.

Another language deserving mention is Algol, if only because Pascal is a descendant, along with many modern languages. Algol was always more popular outside the US, probably because everyone there stuck with FORTRAN.

Back then certain books held iconic status, much like [McCracken’s] black FORTRAN IV. In the early 70s, mentioning [Nicolas Wirth] or the yellow book brought to mind Pascal. Similarly, [Griswold, (R. E.)] was SNOBOL and a green book. For some reason, [Griswold’s] two co-authors never were mentioned, unlike the later duo of [Kernighan] & [Ritchie] with their white “The C Programming Language”. Seeing that book years later on an Italian coworker’s bookshelf translated to Italian gave my mind a minor boggling. Join me for a walk down the memory lane that got our programming world to where it is today.

Continue reading “No Pascal, Not A SNOBOL’s Chance. Go Forth!”

Hackaday Links: November 1, 2015

It seems almost compulsory that we start off with a dose of Star Wars. Here’s an epic AT-ST build that motorizes the iconic walker.

That two-legger isn’t going to be lonely. It bigger-slower brother, the AT-AT got a bit of motorized love as well.

What? You were expecting a BB8 build? We have one of those too. [DrYerzinia] has begun a design that hides a quadcopter inside of the BB8. The four 17″ DJI propellers fold up when not in use, extending through hatches in the outer shell when it’s time to take flight. This retains the rolling design you’ve already come to love in the BB8 and we’re going to keep our eyes on it!

Do you have a Teensy and some extra WS2812 strips hanging out on your bench? [etix] put his to use with an ambilight clone. This works really well: simple hardware which connects via USB to communicate with VLC. We applaud [etix’s] choice of Kung Fury as a demo video… a truly bizarre and entertaining short movie. +1000 for its use of VHS tape artifacts.

We just missed Halloween, but this set of wings is far too great of a build to be reserved for that one day. Alas, there is only the demo video but seeing the huge feathered structures fold and unfold is really impressive!

[Truebass] added an artistic accent to one of the walls in his home. He had several cellphone chargers from old phones in his junk bin. These were used to regulate power for some white LEDs. The finished sconces are made from chip-board covered in cherry veneer, all leftover from previous projects.

Want to drink your beer out of beer-byproducts? How about your coffee out of coffee-byproducts. It sounds strange, but 3DOM is marketing it that way, encouraging you to print your beer stein with this beer-byproduct-based 3D printer filament. They also offer coffee filament and have plans for future oddball building materials. Printer inception?

We ran a post about the secret computer of the New York subway system. There wasn’t a ton of information there, but that could change. The New York Historical Society is running a Kickstarter to expand their Computing History made in NY.

Hacklet 82 – Halloween Hacks 2015

Halloween is when the ghouls start haunting and the hackers start hacking. All hallows eve is the perfect holiday for eerie blinking LEDs, spooky audio oscillators, and wild animatronics. We had a double dose of Halloween hacks last year on the Hacklet. This year we’re bringing you even more of the best Halloween hacks on hackaday.io!

eyes1We start with [dougal] and Halloween Blinky Eyes. [Dougal] wanted to create the effect of creatures peeking at you from the dark corners of the room, and he’s certainly nailed it. A strip of WS2812 LEDs is the trick here. Pairs of LEDs light up, blink, and fade away like spooky eyes. The Strip is controlled by a Particle Core using Adafruit’s NeoPixel Library, though [Dougal] plans to move to the FastLed library. Everything is powered by a USB power pack. This hack isn’t much to look at with the lights on, so check out the video to see these eyes really shine!

 

witch1Next up is [controlmypad] with Blair the Witch Project. A normal trip to Home Depot turned paranormal when [controlmypad] spotted an awesome witch decoration. The free-standing mannequin had some basic animatronics and the all important manual trigger. [controlmypad] already had a discarded electric wheelchair. After replacing the chair batteries he modified it with a Sabertooth 2×32 Motor Controller and a standard radio control receiver. A spare channel was connected to Blair’s manual trigger. An aluminum tube joins the witch and the scooter. The hardest part of this hack was keeping Blair’s skirt out of the scooter wheels. Home Depot to the rescue! A simple hoop made of lawn edging plastic keeps the fabric and wheels apart.

 

tweet-trick

[Alex Cordonnier] and his team participated in Boilermake 2015, a 24 hour Hackathon at Purdue University. The fruit of their labor is Trick or Tweet, the tweeting Jack-o’-lantern. Yes folks, we now have the internet of gourds. Hiding inside Trick or Tweet is a Raspberry Pi and a Pi Camera. The pumpkin itself is also a giant capacitive touch switch. Touching the pumpkin triggers a count down after which Trick or Tweet snaps a photo. It then adds some spooky Halloween overlays, a pun or two, and throws the whole thing up on twitter @PumpkinPiPics. [Alex] hasn’t uploaded the code yet, but we’re guessing it consists of a few Python scripts. Pretty awesome for 24 hours of work!

 

hariSometimes Halloween hacks take on a life of their own. That’s exactly what happened when [Hari Wiguna] sat down with a few parts he ordered from China. Happy Halloween 2015 is the result. [Hari’s] order included some potentiometers, a two color OLED display, and some Arduino clones. In no time [Hari] had three pots wired up to the Arduino’s analog inputs. The OLED quickly followed, displaying graphics via the Arduino’s I2C bus. He really wanted a Jack-o’-lantern though. It took a bit more tweaking, but eventually [Hari] was successful. The first pot sets eye size.  The second controls eye rotation. The third pot changes the width of Jack’s mouth. [Hari] has all the code for this hack up on his most recent project log.

Not spooked enough? If you want to see more Halloween projects, check out our newly updated Halloween hacks list! Did I miss your project? Don’t be shy, just drop me a message on Hackaday.io. 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!

Developed On Hackaday – HaDge Is Back To The Drawing Board

A couple of days back, we wrote about the HACK – a prototyping platform designed by [Michele Perla] based on the Atmel SAM R21 MCU. It’s one of the new breed of devices consisting of an ARM Cortex-M0 MCU + IEEE 802.15.4 Wireless radio bundled together. This was exciting since we could pack a lot of punch in the HaDge hardware. We planned to use the same design later to power the HaDge. Building HACK would have allowed us to get it in the hands of the software team, while the hardware folks worked on the real HaDge layout.

The HACK design was ready for review and we asked around to verify the antenna layout, which was the part we were not too sure about.  We asked Atmel for help with verifying the layout. That’s when we had the facepalm moment. They asked us – “What about FCC certification?” Since we plan to build the badges in quantities of a few hundred at the very least, it’s obvious we cannot escape from FCC certification. A design based around the R21 is ruled out – the cost of obtaining approval is pretty high. This means we need to punt the R21 and instead use an off-the-shelf radio module which is already FCC certified. Sigh.

Now the good news. This is a setback in terms of time, and effort put in by [Michele]. But beyond that, we’re good to go back to the drawing board and start afresh. First off, we decided to revert back to the Atmel D21 as the main controller. It’s a fairly decent MCU, and there’s a fairly robust tool chain available that a lot of people are familiar with. For the Radio, we are looking at some of these available options :

The last one from Microchip looks quite promising. But we’re open for better and cheaper suggestions, so please chime in with your comments.

Code Craft: Using Eclipse For Arduino Development

As we work on projects we’re frequently upgrading our tools. That basic soldering iron gives way to one with temperature control. The introductory 3D printer yields to one faster and more capable. One reason for this is we don’t really understand the restrictions of the introductory level tools. Sometimes we realize this directly when the tool fails in a task. Other times we see another hacker using a better tool and realize we must have one!.

The same occurs with software tools. The Arduino IDE is a nice tool for starting out. It is easy to use which is great if you have never previously written software. The libraries and the way it ties nicely into the hardware ecosystem is a boon.

When you start on larger projects, say you upgrade to a Due or Teensy for more code or memory space, the Arduino IDE can hamper your productivity. Moving beyond these limitations requires a new, better tool.

Where do we find a better tool? To begin, recognize, as [Elliot] points out that There is no Arduino “Language”, we’re actually programming in C or C++. We chose which language through the extension on the file, ‘c’ for C and ‘cpp’ for C++. An Arduino support library may be written in C or C++ depending on the developer’s preference. It’s all mix ‘n match.

Potentially any environment that supports C/C++ can replace the Arduino IDE. Unfortunately, this is not easy to do, at least for inexperienced developers, because it means setting up the language tool chain and tools for uploading to the board. A developer with that much experience might eschew an integrated development environment altogether, going directly to using makefiles as [Joshua] describes in Arduino Development; There’s a Makefile for That.

The reality is the Arduino IDE is not much more than a text editor with the ability to invoke the tools needed to compile and download the code to the Arduino. A professional IDE not only handles those details but provides additional capabilities that make the software development process easier.

Continue reading “Code Craft: Using Eclipse For Arduino Development”

Embed With Elliot: Going ‘Round With Circular Buffers

Why Buffer? Because buffers cut you some slack.

Inevitably, in our recent series on microcontroller interrupts, the question of how to deal with actual serial data came up. In those examples, we were passing one byte at a time between the interrupt service routine (ISR) and the main body of code. That works great as long as the main routine can handle the incoming data in time but, as many people noted in the comments, if the main routine takes too long the single byte can get overwritten by a new one.

The solution? Make some storage room for multiple bytes so that they can stack up until you have time to process them. And if you couple this storage space with some simple rules for reading and writing, you’ve got yourself a buffer.

So read on to see how to implement a simple, straightforward circular buffer in C for microcontrollers (or heck, for anything). Buffers are such a handy tool to have in your programming toolkit that you owe it to yourself to get familiar with them if you’re not already.

Continue reading “Embed With Elliot: Going ‘Round With Circular Buffers”