FPGA Clocks for Software Developers (or Anyone)

It used to be that designing hardware required schematics and designing software required code. Sure, a lot of people could jump back and forth, but it was clearly a different discipline. Today, a lot of substantial digital design occurs using a hardware description language (HDL) like Verilog or VHDL. These look like software, but as we’ve pointed out many times, it isn’t really the same. [Zipcpu] has a really clear blog post that explains how it is different and why.

[Zipcpu] notes something we’ve seen all too often on the web. Some neophytes will write sequential code using Verilog or VHDL as if it was a conventional programming language. Code like that may even simulate. However, the resulting hardware will — at best — be very inefficient and at worst will not even work.

Continue reading “FPGA Clocks for Software Developers (or Anyone)”

The Longest Tech Support Call: Apollo 14 Computer Hack

Deep-voiced and aptly named [Scott Manley] posted a video about the computer hack that saved Apollo 14. Unlike some articles about the incident, [Scott] gets into the technical details in an entertaining way. If you don’t remember, Apollo 14 had an issue where the abort command button would occasionally signal when it shouldn’t.

The common story is that a NASA engineer found a way to reprogram the Apollo guidance computer. However, [Scott] points out that the rope memory in the computer wasn’t reprogrammable and there was no remote way to send commands to the computer anyway.

Continue reading “The Longest Tech Support Call: Apollo 14 Computer Hack”

Spray Paint Goes DIY Virtual with a Vive Tracker

Here is a virtual spray painting project with a new and DIY twist to it. [Adam Amaral]’s project is an experiment in using the Vive Tracker, which was released earlier this year. [Adam] demonstrates how to interface some simple hardware and 3D printed parts to the Tracker’s GPIO pins, using it as a custom peripheral that is fully tracked and interactive in the Vive’s VR environment. He details not only the custom spray can controller, but also how to handle the device on the software side in the Unreal engine. The 3D printed “spray can controller” even rattles when shaken!

There’s one more trick. Since the Vive Tracker is wireless and completely self-contained, the completed rattlecan operates independently from the VR headset. This means it’s possible to ditch the goggles and hook up a projector, then use the 3D printed spray can to paint a nearby wall with virtual paint; you can see that part in action in the video embedded below.

Continue reading “Spray Paint Goes DIY Virtual with a Vive Tracker”

Another Day, Another Air Gap Breached

What high-tech, ultra-secure data center would be complete without dozens of video cameras directed both inward and outward? After all, the best informatic security means nothing without physical security. But those eyes in the sky can actually serve as a vector for attack, if this air-gap bridging exploit using networked security cameras is any indication.

It seems like the Cyber Security Lab at Ben-Gurion University is the place where air gaps go to die. They’ve knocked off an impressive array of air gap bridging hacks, like modulating power supply fans and hard drive activity indicators. The current work centers on the IR LED arrays commonly seen encircling the lenses of security cameras for night vision illumination. When a networked camera is compromised with their “aIR-Jumper” malware package, data can be exfiltrated from an otherwise secure facility. Using the camera’s API, aIR-Jumper modulates the IR array for low bit-rate data transfer. The receiver can be as simple as a smartphone, which can see the IR light that remains invisible to the naked eye. A compromised camera can even be used to infiltrate data into an air-gapped network, using cameras to watch for modulated signals. They also demonstrated how arrays of cameras can be federated to provide higher data rates and multiple covert channels with ranges of up to several kilometers.

True, the exploit requires physical access to the cameras to install the malware, but given the abysmal state of web camera security, a little social engineering may be the only thing standing between a secure system and a compromised one.

Continue reading “Another Day, Another Air Gap Breached”

Hackaday Prize Entry: Post Stroke Spasticity Rehab Helper

A stroke is caused when poor blood flow to the brain causes cell damage, causing that part of the brain to stop functioning. Common causes are either blood vessel blockage or internal bleeding, and effects depend on the part of the brain that is affected. In most cases, spasticity (muscle contraction), poor motor control and the inability to move and feel are common after effects. Recovery is often a long, slow process and involves re-learning the affected lost skills. This is where physical therapy using assistive technologies becomes important. Rehabilitation must start as early as possible since the first few weeks are critical for good recovery. [Sergei V. Bogdanov] is building a cheap and simple Post-Stroke Spasticity Rehab Helper to address this problem.

He’s using ten hobby micro servos connected to an Arduino Nano, all mounted on a kitchen chopping board, with a few other bits thrown in to round out the build. There’s one pair of servos for each finger. A five bar linkage converts the servo rotations to two-dimensional motion. The end of the linkage has a swiveling metallic disk. Patient fingers are attached to these discs via magnetic metal pads that are attached to the end of the fingers using adhesive plaster tape. Two push buttons cycle through a large number of exercise modes and two potentiometer’s help adjust the speed and smoothness (the number of points calculated for the desired motion). Two 7-segment LED display modules connected to the Arduino provides a visual interface showing program modes, speed, number of cycles and other relevant information. Replicating the project ought to be very straightforward since the device uses off-the-shelf parts which are easy to put together using the detailed build instructions, photos and code posted on [Sergei]’s project page. Check out the videos below to see the rehab helper in action.

Continue reading “Hackaday Prize Entry: Post Stroke Spasticity Rehab Helper”

Linux Fu: X Command

Text-based Linux and Unix systems are easy to manipulate. The way the Unix I/O system works you can always fake keyboard input to another program and intercept its output. The whole system is made to work that way. Graphical X11 programs are another matter, though. Is there a way to control X11 programs like you control text programs? The answer to that question depends on exactly what you want to do, but the general answer is yes.

As usual for Linux and Unix, though, there are many ways to get to that answer. If you really want fine-grained control over programs, some programs offer control via a special mechanism known as D-Bus. This allows programs to expose data and methods that other programs can use. In a perfect world your target program will use D-Bus but that is now always the case. So today we’ll look more for control of arbitrary programs.

There are several programs that can control X windows in some way or another. There’s a tool called xdo that you don’t hear much about. More common is xdotool and I’ll show you an example of that. Also, wmctrl can perform some similar functions. There’s also autokey which is a subset of the popular Windows program AutoHotKey.

Continue reading “Linux Fu: X Command”

Load Cells Tell You to Lay Off the Donuts

Our old algebra teacher used to say, “You have to take what you know and use it to get what you don’t know.” That saying always reminds of us sensors that convert physical quantities into things our microcontrollers can measure. Sometimes the key to a project is knowing what kind of sensor will read the physical properties of the system you are interested in. If that physical property is weight, you can use what is known as a load cell. [DegrawSt] uses four 50 kg load cells to create a bathroom scale using an Arduino.

Load cells typically contain strain gauges that change resistance when deformed. This actually measures force, but if you mount them so they measure the force exerted by you standing on a platform, you get a scale. A load cell usually has four strain gauges in a bridge configuration. This causes a voltage across the bridge, although the output can be noisy and on the order of millivolts.

Continue reading “Load Cells Tell You to Lay Off the Donuts”