# Hackaday Prize Entry: HaptiVision Creates a Net of Vibration Motors

HaptiVision is a haptic feedback system for the blind that builds on a wide array of vibration belts and haptic vests. It’s a smart concept, giving the wearer a warning when an obstruction comes into sensor view.

The earliest research into haptic feedback wearables used ultrasonic sensors, and more recent developments used a Kinect. The project team for HaptiVision chose the Intel RealSense camera because of its svelte form factor. Part of the goal was to make the HaptiVision as discreet as possible, so fitting the whole rig under a shirt was part of the plan.

In addition to a RealSense camera, the team used an Intel Up board for the brains, mostly because it natively controlled the RealSense camera. It takes a 640×480 IR snapshot and selectively triggers the 128 vibration motors to tell you what’s close. The motors are controlled by 8 PCA9685-based PWM expander boards.

The project is based on David Antón Sánchez’s OpenVNAVI project, which also featured a 128-motor array. HaptiVision aims to create an easy to replicate haptic system. Everything is Open Source, and all of the wiring clips and motor mounts are 3D-printable.

Your first school. Your mother’s maiden name. Your favorite color. These are the questions we’re so used to answering when we’ve forgotten a password and need to get back into an account. They’re not a password, yet in many cases have just as much power. Despite this, they’re often based on incredibly insecure information.

Sarah Palin’s Yahoo account is perhaps the best example of this. In September 2008, a Google search netted a birthdate, ZIP code, and where the politician met her spouse. This was enough to reset the account’s password and gain full access to the emails inside.

While we’re not all public figures with our life stories splashed across news articles online, these sort of questions aren’t exactly difficult to answer. Birthdays are celebrated across social media, and the average online quiz would net plenty of other answers. The problem is that these questions offer the same control over an account that a password does, but the answers are not guarded in the same way a password is.

For this reason, I have always used complete gibberish when filling in security questions. Whenever I did forget a password, I was generally lucky enough to solve the problem through a recovery e-mail. Recently, however, my good luck ran out. It was a Thursday evening, and I logged on to check my forex trading account. I realised I hadn’t updated my phone number, which had recently changed.

Upon clicking my way into the account settings, I quickly found that this detail could only be changed by a phone call. I grabbed my phone and dialed, answering the usual name and date of birth questions. I was all set to complete this simple administrative task! I was so excited.

“Oh no.”

“The question is… Chutney butler?”

“Yes. Yes it is. Uh…”

“…would you like to guess?”

Needless to say, I didn’t get it.

I was beginning to sweat at this point. To their credit, the call center staffer was particularly helpful, highlighting a number of ways to recover access to the account. Mostly involving a stack of identification documents and a visit to the nearest office. If anything, it was a little reassuring that my account details required such effort to change. Perhaps the cellular carriers of the world could learn a thing or two.

In the end, I realised that I could change my security question with my regular password, and then change the phone number with the new security question. All’s well that ends well.

## How do You Deal with Security Questions?

I want to continue taking a high-security approach to my security questions. But as this anecdote shows, you do occasionally need to use them. With that in mind, we’d love to hear your best practices for security questions on accounts that you care about.

Do you store your answers in a similar way to your passwords, using high entropy to best security? When you are forced to use preselected questions do you answer honestly or make up nonsensical answers (and how do you remember what you answered from one account to the next)? When given the option to choose your own questions, what is your simple trick that ensures it all makes sense to you at a later date?

We’d love to hear your best-practice solutions in the comments. While you ponder those questions, one mystery will remain, however — the answer to the question that nobody knows: Chutney butler?

[Corey Harding] designed his business card as a USB-connectable demonstration of his skill. If potential manager inserts the card in a USB drive, open a text editor, then touches the copper pad on the PCB, [Corey]’s contact info pops up in the text box.

In addition to working as a business card, the PCB also works as a Tiny 85 development board, with a prototyping area for adding sensors and other components, and with additional capabilities broken out: you can add an LED, and there’s also room for a 1K resistor, a reset button, or break out the USB’s 5V for other uses. There’s an AVR ISP breakout for reflashing the chip.

Coolly, [Corey] intended for the card to be an Open Source resource for other people to make their own cards, and he’s providing the Fritzing files for the PCB. Fritzing is a great program for beginning and experienced hardware hackers to lay out quick and dirty circuits, make wiring diagrams, and even export PCB designs for fabrication. You can download [Corey]’s files from his GitHub repository.

For another business card project check out this full color business card we published last month.

# Network Analysers: The Electrical Kind

Instrumentation has progressed by leaps and bounds in the last few years, however, the fundamental analysis techniques that are the foundation of modern-day equipment remain the same. A network analyzer is an instrument that allows us to characterize RF networks such as filters, mixers, antennas and even new materials for microwave electronics such as ceramic capacitors and resonators in the gigahertz range. In this write-up, I discuss network analyzers in brief and how the DIY movement has helped bring down the cost of such devices. I will also share some existing projects that may help you build your own along with some use cases where a network analyzer may be employed. Let’s dive right in.

# Network Analysis Fundamentals

As a conceptual model, think of light hitting a lens and most of it going through but part of it getting reflected back.

The same applies to an electrical/RF network where the RF energy that is launched into the device may be attenuated a bit, transmitted to an extent and some of it reflected back. This analysis gives us an attenuation coefficient and a reflection coefficient which explains the behavior of the device under test (DUT).

Of course, this may not be enough and we may also require information about the phase relationship between the signals. Such instruments are termed Vector Network Analysers and are helpful in measuring the scattering parameters or S-Parameters of a DUT.

The scattering matrix links the incident waves a1, a2 to the outgoing waves b1, b2 according to the following linear equation: $\begin{bmatrix} b_1 \\ b_2 \end{bmatrix} = \begin{bmatrix} S_{11} & S_{12} \\ S_{21} & S_{22} \end{bmatrix} * \begin{bmatrix} a_1 \\ a_2 \end{bmatrix}$.

The equation shows that the S-parameters are expressed as the matrix S, where and denote the output and input port numbers of the DUT.

This completely characterizes a network for attenuation, reflection as well as insertion loss. S-Parameters are explained more in details in Electromagnetic Field Theory and Transmission Line Theory but suffice to say that these measurements will be used to deduce the properties of the DUT and generate a mathematical model for the same.

# General Architecture

As mentioned previously, a simple network analyzer would be a signal generator connected and a spectrum analyzer combined to work together. The signal generator would be configured to output a signal of a known frequency and the spectrum analyzer would be used to detect the signal at the other end. Then the frequency would be changed to another and the process repeats such that the system sweeps a range of frequencies and the output can be tabulated or plotted on a graph. In order to get reflected power, a microwave component such as a magic-T or directional couplers, however, all of this is usually inbuilt into modern-day VNAs.

In a laboratory grade VNA, we have two or four ports where a DUT is connected and the software does everything else for you. The only downside is that these instruments are very very expensive and price varies depending upon the range of RF frequencies or RF band coverage.

# A DIY Scalar Network Analyzer

Let’s simplify things a bit. Say I have a simple filter I want to characterize in which case phase may not be necessary for my particular applications. I would just like to obtain the frequency-attenuation plot for the circuit so that I can use it correctly. In such cases, the DIY approach is the best and I would like to highlight a project on Hackaday.io for beginners. The idea is simple and involves using the Analog devices AD9851 to generate the desired signals.

The received signal power levels are converted into a voltage using the AD8307 logarithmic amplifier (datasheet, PDF). This voltage is read by a microcontroller and the results, in this case, are plotted using a Python script. Another restriction to this design is the 70 MHz upper limit though it may work for a lot of people getting started with such projects.

In my quest for a simple experiment, I purchased some AD9850 modules, op-amps, and other tidbits from eBay and made a PCB in KiCAD. I built the project in the Arduino UNO shield layout because my intention was to test it on an Arduino and then move up to an STM32 Nucleo which was also bought on the cheap. My revision 1.0 had some basic bugs so it is still a work in progress but I am sure it will work the same as the above project. Feel free to explore it and make one for yourself. Mine is shown below in OshPark Purple.

I did salvage the connectors from an old DVR board I had lying around so I suggest you replace that footprint with whatever you intend to use in your build.

# More serious projects

If you are more comfortable with RF circuits and want a more serious project, there is another by [Henrik Forstén] that works from 30 Mhz all the way up to 6 Ghz. The difference here is that his design uses a lot of planning as well as specific RF chips to do the job.

The AD985x is replaced by the MAX2871 and the detector is replaced by an LMH2110. All the files are available on GitHub for our experimentation pleasure though this may not be everyone’s cup of tea. Though if you are getting a little bit interested in this stuff, be sure to check out the website for all the nice info provided.

# Vector Network Analysers

The Vector Network Analyzer is able to generate phase relationships in addition to the magnitude measurements. This allows us to generate complex math models for the components under test and helps identify the capacitive and inductive properties as well. In addition to the above-mentioned applications in the DIY field, VNAs are important tools for analysis of dielectric properties of materials as well. When working with materials such as ceramics in a research environment, a simple method is to apply the silver paste to opposite faces and then use a network analyzer to measure the various parameters. This method is commonly known as capacitance method for measuring complex permittivity.

For higher frequencies where the EM wave needs a waveguide, transmission/reflection methods are preferred. In this method, the material under test is placed inside a waveguide and there is no electrical contact between the terminals and the DUT. This method is commonly called the transmission/reflection line method and is usually employed in the laboratory.

It’s also possible to extend this to make free space measurements, where horn antennas are employed and the DUT is suspended in free space. This allows for the material to be heated or cooled without affecting the instrument or the antennas and is commonly used for temperature analysis of materials.

# Measurement Methods for Materials

Once S-parameters are obtained from experiment, this data can then be converted into dielectric properties. Some conversion methods (PDF) are:

• Nicolson-Ross-Weir method,
• NIST iterative method,
• New non-iterative method,
• Short circuit line method.

The most common parameter evaluated is permittivity or more specifically complex relative permeability (mu-r). The real part is the dielectric constant which is a measure of the amount of energy from an external electrical field stored in the material. The imaginary part is the loss factor and is the amount of energy lost due to external fields. The dielectric constant usually varies with the frequency which means that the same electrolytic capacitor won’t behave the same at all frequencies.

There has been a lot of research invested in creating new materials that will behave favorably at higher frequencies. Today there is a variety of materials being employed to create these devices and research involves characterization of the materials involved.

Another important term is loss tangent (tan delta) and is the ratio of the two. If you are interested in the subject, then I recommend reading the Rhode and Schwarz application note linked just above, as well as papers here and here.

Note: I have not tried to discuss methods like cavity perturbation though it may be of interest to some and can be explored on its own. Take a look at this application note from Keysight (PDF) for more information on the subject.

# A short note on VSWR

To complete this write-up, I am going to talk a bit about VSWR which is more associated with antenna and radio setups than materials and VNA. A scalar network analyzer used in HAM radio setups is used to measure a number of things including the Voltage Standing Wave Ratio or VSWR. This parameter is a ratio of energy that was put into an antenna or RF line and the amount of energy that bounced back out of it due to imperfect matching. So essentially, the standing wave ratio (SWR) is a measure of how efficiently RF power is transmitted from the power source, through the transmission line, and into the load. It is ideal to have all the signal converted into RF energy or EM waves at the antenna, however, practically if the impedance of the amplifier and antenna are mismatched, some part will be reflected back just like we discussed in the initial sections. A scalar network analyzer can measure these as well as impedance at various frequencies. RF couplers assist in reducing the mismatch and improving performance in these cases.

# What next?

The idea was to explain network analyzers and their applications in brief. You can extend this article by diving into radios and antennas, RF instrumentation, or get into microwave materials for high-frequency applications. For someone working with such materials, a VNA is indispensable as it does the heavy lifting of analysis and presents results in a very straightforward manner.

We are moving into ceramics that have a low-temperature coefficient i.e. the dielectric constant remains constant over temperature and LTCC or Low-Temperature Co-fired Ceramics. LTCC allow us to layer components together enabling high-density electronics manufacturing. All that requires analysis which is possible thanks to a combination of advanced instrumentation as well as mathematical algorithms.

# Reviving a $25 Generator [Jennies Garage] found a used and abused inverter based generator in the clearance section of his local home improvement store. The generator had been returned on a warranty claim and was deemed uneconomical to fix. Originally$799, [Jennies Garage] picked it up for just \$25. He documented his quest to get the device running with a trio of videos.

The generator had spark, but didn’t want to fire. The only obvious problem was the fact that the machine had been overfilled with oil. There was little or no compression, but that is not uncommon with modern small engines – many of them have a compression release mechanism which makes them easier to start.

With all the obvious problems eliminated, the only thing left to do was tear into the engine and figure out what was wrong. Sure enough, it was a compression issue. The overfull oil condition had forced engine oil up around the piston rings, causing them to stick, and snapping one of the rings. The cylinder bore was still in good shape though, so all the engine needed was a new set of rings.

That’s when the problems started. At first, the manufacturer couldn’t find the rings in their computer system. Then they found them but the rings would take two weeks to ship. [Jennies Garage] isn’t the patient type though. He looked up the piston manufacturer in China. They would be happy to ship him complete pistons – but the minimum order quantity was 5000. Then he started cross-referencing pistons from other engines and found a close match from a 1960’s era 90cc motorcycle. Ironically, it’s easier to obtain piston rings for an old motorcycle than it is to find them for a late model generator.

The Honda rings weren’t perfect – the two compression rings needed to be ground down about 1/2 a millimeter. The oil ring was a bit too thick, but thankfully the original oil ring was still in good shape.

Once the frankenpiston was assembled, it was time to put the repair to the test. [Jennies Garage] reassembled the generator, guessing at the torque specs he didn’t have. The surgery was a complete success. The generator ran perfectly, and lit up the night at the [Jennies Garage] cabin.

If you’re low on gas, no problem. Did you know you can run a generator on soda? Want to keep an eye on your remote generator? Check out this generator monitor project.

# Arduino and Pi Breathe New Life into Jukebox

What do you do when someone gives you a Wurlitzer 3100 jukebox from 1969, but keeps all the records? If you are like [Tijuana Rick], you grab an Arduino and a Rasberry Pi and turn it into a really awesome digital music player.

We’ll grant you, making a music player out of a Raspberry Pi isn’t all that cutting edge, but restoration and integration work is really impressive. The machine had many broken switches that had been hastily repaired, so [Rick] had to learn to create silicone molds and cast resin to create replacements. You can see and hear the end result in the video below.

[Rick] was frustrated with jukebox software he could find, until he found some Python code from [Thomas Sprinkmeier]. [Rick] used that code as a base and customized it for his needs.

There’s not much “how to” detail about the castings for the switches, but there are lots of photos and the results were great. We wondered if he considered putting fake 45s in the machine so it at least looked like it was playing vinyl.

Of course, you don’t need an old piece of hardware to make a jukebox. Or, you can compromise and build out a replica.

# 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.