
Need a new swimsuit before you head out to the pool or beach? Amazon’s discounting dozens of them today for men, women, and kids, from a variety of designers as part of a Gold Box deal.

Need a new swimsuit before you head out to the pool or beach? Amazon’s discounting dozens of them today for men, women, and kids, from a variety of designers as part of a Gold Box deal.
Every once in a while, you get your hands on a cool piece of hardware, and of course, it’s your first instinct to open it up and see how it works, right? Maybe see if it can be coaxed into doing just a little bit more than it says on the box? And so it was last Wednesday, when I was at the Embedded World trade fair, and stumbled on a cool touch display floating apparently in mid-air.
The display itself was a sort of focused Pepper’s Ghost illusion, reflected off of an expensive mirror made by Aska3D. I don’t know much more — I didn’t get to bring home one of the fancy glass plates — but it looked pretty good. But this display was interactive: you could touch the floating 2D projection as if it were actually there, and the software would respond. What was doing the touch response in mid-air? I’m a sucker for sensors, so I started asking questions and left with a small box of prototype Neonode zForce AIR sensor sticks to take apart.
The zForce sensors are essentially an array of IR lasers and photodiodes with some lenses that limit their field of view. The IR light hits your finger and bounces back to the photodiodes on the bar. Because the photodiodes have a limited angle over which they respond, they can be used to triangulate the distance of the finger above the display. Scanning quickly among the IR lasers and noting which photodiodes receive a reflection can locate a few fingertips in a 2D space, which explained the interactive part of the floating display. With one of these sensors, you can add a 2D touch surface to anything. It’s like an invisible laser harp that can also sense distance.
The intended purpose is fingertip detection, and that’s what the firmware is good at, but it must also be the case that it could detect the shape of arbitrary (concave) objects within its range, and that was going to be my hack. I got 90% of the way there in one night, thanks to affordable tools and free software that every hardware hacker should have in their toolbox. So read on for the unfortunate destruction of nice hardware, a tour through some useful command-line hardware-hacking tools, and gratuitous creation of animations from sniffed SPI-like data pulled off of some test points.
In retrospect, it’s probably not necessary to take one of these things apart — the diagrams on the manufacturer’s website are very true to life. Inside, you’ll find a PCB with an IR laser and photodiode every 8 mm, some custom-molded plastic lenses, and a couple of chips. Still, here are the pretty pictures.
The lenses are neat, consisting of a 45-degree mirror that allows the PCB-mounted diodes to emit and receive out of the thickness of the bar. The lasers and photodiodes share lenses, reducing the manufacturing cost. Most of the thin PCB after the first three cells is “empty”, existing just to hold the laser and photodiode chips. It’s a nice piece of hardware.
The chip-on-board ICs aren’t even covered in epoxy — although these boards are marked “prototype” so who knows if this is true of the production units. According to the advertising copy, one of these two chips is a custom ASIC that does the image processing in real-time and the other is a custom STM32 ARM microcontroller. Speculate about which is which in the comments!
The PCB is glued in place under the metal frame, and there are certainly no user-serviceable parts inside. Sadly, some bond wires got pulled loose when I was removing the PCB. When I put this one sensor stick back together, an area near the custom ASIC gets hot. Sacrificed for my idle curiosity! Sigh.
I was given a prototype version of the sensor demo kit, which includes a breakout board for the USB and I2C finger-detection functionalities of the sensors, so of course, I had to test them out. Plugging it in, and typing dmesg showed the “Neonode AirModule 30v” as a USB HID device, which means that figuring everything out about its USB functionality is going to be a cakewalk because all the data it spits out is described in a data descriptor.
I used usbhid-dump to read in the descriptor, and [Frank Zhao]’s excellent descriptor decoder to get it all in plain text. It looks like it’s a standard digitizer that supports six fingers and has a vendor-defined configuration endpoint. Here’s the descriptor dump if you want to play along. Dumps like this are great starting points if you’re making your own USB HID device, by the way. See what functionalities your mouse has.
But frankly, pouring through a descriptor file is hard work. dmesg said the sensor was attached as /dev/usb/hiddev3, so why not see what it’s doing in real-time while I wave my finger around? sudo cat /dev/usb/hiddev3 | xxd takes the raw binary output and passes it through xxd which turns it into a “human-readable” hexdump. (The genius of xxd is the -r flag which turns your edited hexdump back into a binary, enabling 1990’s-era cracking on the command line.) Just by watching the numbers change and moving my finger, I figured out which field represented the finger count, and which fields corresponded to the 16-bit X- and Y-coordinates of each finger. And it’s reporting zeroes for the un-measured fingers, as per the descriptor.
Of course, all of this, as well as the complete specs for the I2C interface are available in the zForce online documentation. The commands are wrapped up in ASN.1 format, which is a dubious convenience. Still, if all you want to do is use these devices to detect fingers over USB or I2C, it’s just a matter of reading some documentation and writing a driver.
To have a little more fun with these sensor bars, I started poking around the test points exposed on the back of the unit. The set closest to the output connector are mostly duplicates of the pins on the connector itself, and aren’t that interesting. More fun are a constellation (Pleiades?) of seven test points that seem to only be available on the sensor bars that are longer than 180 mm.
One point had a clear 21 MHz clock signal running periodically, and two other lines had what seemed to be 10.5 MHz data, strongly suggesting some kind of synchronous serial lines. Two other pins in this area emitted pulses, probably relating to the start of a sensor sweep and the start of processed data, but that wouldn’t be obvious until I wired up some jumpers and connected a logic analyzer.
I really like the open-source Sigrok software for this kind of analysis. The GUI pulseview makes it fairly painless to explore signals that you don’t yet understand, while switching up to the command-line sigrok-cli for repetitive tasks makes some fairly sophisticated extensions easy. I’ll show you what I mean.

I started off with a Saleae Logic clone, based on the same Cypress FX2 chip. These are a great deal for $5 or so, and the decent memory depth and good Sigrok support makes up for the low 24 MHz sampling rate. That gave me a good overview of the signals and confirmed that the device goes into a low-power scan mode when no fingers are present, and that triggering when pin 5 went low isolated the bulk of the data nicely. But in order to actually extract whatever data was on the three synchronous serial pins, I needed to move up in speed.
The Openbench Logic Sniffer (OLS) will do 100 MHz, which is plenty for this application, but it has a very short 24 k sample memory that it has to relay back to Sigrok over a 115,200 baud serial line. Still, I could just squeeze a full read in at 50 MHz. Using Sigrok’s SPI decoders on the clock and two data lines gave me what looked like good data. But how to interpret it? What was it?
Getting one capture out of pulseview is easy, but figuring out what that data means required building up a tiny toolchain. The command-line and sigrok-cli to the rescue:
sigrok-cli --driver=ols:conn=/dev/ttyACM3 --config samplerate=50m --samples 20k \
--channels 0-5 --wait-trigger --triggers 5=0 -o capture.sr
This command reads from the OLS on the specified serial port, waiting for a trigger when channel 5 goes low and outputs the data in Sigrok’s (zipped) data format.
sigrok-cli -i capture.sr -P spi:clk=0:miso=1:cpha=1 -B spi | tail -c +3 > spi1.bin sigrok-cli -i capture.sr -P spi:clk=0:miso=2:cpha=1 -B spi | tail -c +3 > spi2.bin
These two commands run the SPI decoders on the acquired data. It’s not necessary to do this in a separate step unless you’d like the output in two separate files, as I did. The -P flag specifies the protocol decoder, and -B tells it to output just the decoded data in binary. Tail aligns the data by dropping the three header bytes.
Now for the real trick: plotting the data, waving my finger around interactively, and hoping to figure out what’s going on. You’d be surprised how often this works with unknown signals.
t=`date +%s`
convert -depth 8 -size 15x45+0 gray:spi1.bin -scale 200 out1_${t}.png
convert -depth 8 -size 15x45+0 gray:spi2.bin -scale 200 out2_${t}.png
convert out1_${t}.png spacer.png out2_${t}.png +append image_${t}.png
convert out1_${t}.png spacer.png out2_${t}.png +append foo.png
is part of the Imagemagick image editing and creation toolset. You can spend hours digging into its functionality, but here I’m just taking bytes from a file, interpreting them as grayscale pixels, combining them into an image of the specified dimensions, and scaling it up so that it’s easier to see. That’s done for each data stream coming out of the sensor.
Convert
The two are then combined side-by-side (+append) with a spacer image between them, timestamped, and saved. An un-timestamped version is also written out so that I could watch progress live, using eog because it automatically reloads an image when it changes.
Cobbling all of this together yields a flow that takes the data in from the logic analyzer, decodes it into bytes, and turns the bytes into images. That was enough for me to see that I’m capturing approximate position data from (probably) the output of Neonode’s custom ASIC. But why stop there? I turned the whole endeavor into a video by combining the images at 8 FPS:
ffmpeg -r 8 -pattern_type glob -i "image_*.png" \ -c:v libx264 -vf fps=8 -pix_fmt yuv420p finger_hand_movie.mp4
That’s me moving my finger just above the bar’s surface, and then out of range, and then moving one hand, and then both around in the frame. The frames with less data are what it does when nothing is detected — it lowers the scanning rate and apparently does less data processing. You can also see the reason for picking the strange width of 15 pixels in the images — there are 30 photodiodes in this bar, with data for 15 from one side apparently processed separately from the 15 on the other. Anyway, picking a width of 15 makes the images wrap around just right.
There’s a bunch of data I still don’t understand. The contents of the header and the blob that appears halfway down the scan are still a mystery. For some reason, the “height” field on the bottom side of the data is reversed from the top side — up is to the right in the top half and the left in the lower half.
But even with just what I got from dumping SPI data and plotting it out, it’s pretty apparent that I’m getting the post-processed X/Y estimate data, and it has no problems describing the shapes of simple objects, at least like the flat palm of my hand. It’s a lot richer dataset than I got from just the default finger sensor output, so I’ll call the hack a success so far. Maybe I’ll put a pair of these in a small robot, or maybe I’ll just make a (no-)touch-pad for my laptop.
Regardless, I hope you had as much fun reading along as I did hacking on these things. If you’re not a command-line ninja, I hope that I showed you some of the power that you can have by simply combining a bunch of tools together, and if you are, what are some of your favorite undersung data analysis tools like these?

As an avid portable gamer, you might assume smartphones, and their app stores filled with million of titles, would be my ideal device. But part of me still yearns for physical buttons to mash, like my beloved Game Boy had. That’s probably why I find this case that puts a bunch of basic video games on the back of a…
Millions of Brits would rather pay through the nose for services via their existing broadband provider than switch suppliers and risk a prolonged period without access to the web, a poll has found.…

It wouldn’t be ‘tis the season of Luke Cage without some Sweet Christmas songs. Marvel has released Adrian Younge and Ali Shaheed Muhammad’s dynamic track, “Bulletproof Love” (featuring Method Man), but the thirst has not been quenched. We need a full soundtrack.
Filed under: Videos,Safety,SUV
Small SUVS may be practical and stylish, but the IIHS has found that the vehicles have deplorable headlights.Continue reading IIHS study finds that small SUVs have terrible headlights
IIHS study finds that small SUVs have terrible headlights originally appeared on Autoblog on Tue, 12 Jul 2016 14:01:00 EDT. Please see our terms for use of feeds.
Permalink | Email this | Comments
Madagascar, one of the world's poorest nations, is led by president Hery Rajaonarimampianina, who infuriated his people by insisting that the economy was doing well and that naysayers couldn't "provide evidence that the country was getting poorer." (more…)

Instagram keeps on adding users and adding features , but there’s more to the app than sharing photos and wondering which filter is going to bring out the best in your latest collection of beach shots. Here are three alternative ways of using Instagram you may not have come across before.
U.S. Secretary of Defense Ash Carter released a statement today confirming that America's "current regulations regarding transgender service members are outdated and are causing uncertainty that distracts commanders from our core missions." Read the rest

Investing is an important part of building wealth, but it can be intimidating. There's a lot to learn, there's upfront work, and then you have to worry about the risk. If you've been putting it off for these reasons, consider what inflation is doing to your nest egg.

“In March of 1953 there were 53 kilobytes of high-speed random-access memory on planet Earth.” This line from George Dyson’s Turing’s Cathedral makes it clear how far we have come since computing’s dawn. My own laptop now has more than 100,000 times the RAM of the entire planet less than a century ago. While I […]
The post From 53 kilobytes of RAM in 1953 appeared first on WIRED.

Some tragic news from Michigan today, as police investigate a man who apparently lost control of his car, drove into a vacant home filled with swarms upon swarms of bees and later died from his injuries, according to a local report.

If you've ever been to a photography set, you've probably noticed how much time the photographer and their assistants take to perfectly position the lighting—only to have their efforts foiled when the model moves. That's why researchers at MIT are proposing using drones as lighting, as they can constantly ensure they're always in the perfect spot.
Read more of this story at Slashdot.

This is not something you can buy yet but—come this summer—you may be able to order Boston Pizza's Pizza Cake, a clear sign of the demise of our civilization, which apparently has been replaced by a bunch of reckless individuals with no sense of what's good or evil.
Adam Savage, cohost of MythBusters, gave the keynote address at this year's SXSW Interactive Conference. His topic was "Art and Science," and the speech is fantastic. But where it really gets fun is twenty minutes into the video, when he sits down with Norm Chan (of Tested.com) for an extended Q&A. Block out 54 minutes, get some popcorn, and enjoy.
My favorite part: a series of MythBusters anecdotes starting around 41:30, including Jamie getting drunk in a gutter and then attempting to instruct a blind man how to drive. (For science, of course.) Also, Savage discusses the running-versus-walking-in-the-rain myth, and the YouTube comments go nuts.
Read more of this story at Slashdot.
Read more of this story at Slashdot.

I tried a little experiment the other day—and I'm not sure why I hadn't tried it before. Before I walked to the bus stop to go downtown, I checked the real-time arrivals for my stop. It turned out the bus wasn't coming for another 11 minutes, so I did the dishes first and only then left the house. The bus arrived when it said it would, and I was on my way.

Hugh sez, "EFF'r Parker Higgins tells me this sign was at a rally he spoke at in Berlin recently."
Grumpy Cat builds a GNU Internet [Frerk Meyer/CC BY-SA]
(Thanks, Hugh!) ![]()

We love two-ingredient recipes because you can make awesome food quick and easily. We've made ice cream, but you can make it a party with pizza. This incredibly simple pizza dough recipe only requires self-rising flour and Greek yogurt for a fresh pie in minutes.

This is the back of the box of the Lego Back to the Future set, which I got last week. While I'm still disappointed with how they made the hood, it's still a nice set. That car's front is easily fixable if you get some extra pieces—and the third movie's car actually looks nice.

Every public, abstract sculpture in the world suddenly seems super lame. Why? Because right now there's a full-scale, blinged-out Tyrannosaurus Rex standing over the Seine in Paris. Nothing will ever be the same again.
Designed and constructed by French artist Philippe Pasqua, the 'saur is made up of 350 chrome-molded bones and stands 12 feet tall, and 21 feet long. As for why it's there, the answer appears to be pretty simple: because it's awesome, and because contemporary art along the Seine is good for getting tourists stoked about taking boat rides.
But whatever the reason, it's just good to know that somewhere, there is a chrome T-Rex looming over passers-by. Now we just need to put one in every city. [Philippe Pasqua via Designboom]

Read more of this story at Slashdot.

[Ben Krasnow's] latest project is a delicious one. In the image above he’s showing off the beginnings of his cookie dispenser. No, it’s not another take on a way to eat Oreo cookies. It actually comes much earlier in the production chain. His device is akin to a 3D printer for baked goods in that it will be able to automatically combine raw ingredients to form production runs as small as a single serving of cookie dough.
When we first heard about it we wondered why you would want to bake just one cookie? But of course that’s not the purpose at all. The machine will allow you to bake a full sheet of cookies, but provides the option of making each one of them with a different recipe. As with all baking, combining ingredients in the proper proportions is paramount. In the post linked at the top he’s working on a butter dispenser. But in an earlier post he hacked an electronic scale to help weigh other ingredients. You can watch both video clips after the break.
Imaging a dozen cookies with slightly different amounts of flour in them. A few test sheets and he should be able to dial in the very best recipes.