Code Craft – Embedding C++: Classes

For many embedded C developers the most predominate and questionable feature of C++ is the class. The concern is that classes are complex and therefore will introduce code bloat and increase runtimes in systems where timing is critical. Those concerns implicate C++ as not suitable for embedded systems. I’ll bravely assert up front that these concerns are unfounded.

When [Bjarne Stroustrup] created C++ he built it upon C to continue that language’s heritage of performance. Additionally, he added features in a way that if you don’t use them, you don’t pay for them.

Continue reading “Code Craft – Embedding C++: Classes”

Retrotechtacular: Cold War-Era Hardware Keyloggers

As Cold War tensions increased throughout the 1970s, the Soviets pulled out all the stops when it came to digging up information from US diplomats. This NSA memo from 2012 explains how several IBM Selectric typewriters used in the Moscow and Leningrad offices were successfully bugged with electromechanical devices that could possibly have been the world’s first keyloggers.

The Selectric prints with a ball that is spun and tilted to select the desired character. Two mechanical arms control the ball’s spin and tilt, and the keylogger read out the position of those arms. Thus, each character on the Selectric’s type element ball has its own signature. The sensing part of the keylogging mechanism was buried in part of the typewriter chassis, a metal bar that spans the width of the machine, and were so well hidden that they could only have been detected by complete dissassembly or x-ray.

Continue reading “Retrotechtacular: Cold War-Era Hardware Keyloggers”

Fail Of The Week: OpenMV Kickstarter Project Hits Manufacturing Snag

Making stuff is hard, especially when you are making lots of stuff. The OpenMV Cam project knows this, because it has hit a problem while putting together their cheap machine vision module. The problem is with the BGA solder balls that connect the image sensor to the main board.

openmv-thumbWe’ve covered this intriguing project before: the aim is to build a small, cheap module that can run image processing algorithms to easily give robots sight. The sensor is a Ball Grid Array (BGA) package, which means there are a grid of small solder balls on the back that form the electrical connections. It seems that some of these solder balls are oxidized, preventing them from melting and fusing properly with the board. This is called a head-in-pillow defect, because the ball behaves like your head when you lie down in bed. Your head squishes the pillow, but doesn’t merge into it. There are 38 balls on the OV26040 image sensor and even a single bad link means a failure.

The makers of the project have tried a number of solutions, but it seems that they may have to remake the ball links on the back of each sensor. That’s an expensive process: they say it will cost $7 for each, more than the actual sensor cost initially.

A few people have been posting suggestions in the comments for the project, including using solvents and changing the way the sensors are processed before mounting. We’d like to see them overcome this hurdle. Anybody have any suggestions to quickly and cost effectively move the manufacturing process forward?

Continue reading “Fail Of The Week: OpenMV Kickstarter Project Hits Manufacturing Snag”

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!