Counting Laps And Testing Products With OpenCV

It’s been about a year and a half since the Batteroo, formally known as Batteriser, was announced as a crowdfunding project. The premise is a small sleeve that goes around AA and AAA batteries, boosting the voltage to extract more life out of them. [Dave Jones] at EEVblog was one of many people to question the product, which claimed to boost battery life by 800%.

Batteroo did manage to do something many crowdfunding projects can’t: deliver a product. Now that the sleeves are arriving to backers, people are starting to test them in the wild. In fact, there’s an entire thread of tests happening over on EEVblog.

One test being run is a battery powered train, running around a track until the battery dies completely. [Frank Buss] wanted to run this test, but didn’t want to manually count the laps the train made. He whipped up a script in Python and OpenCV to automate the counting.

The script measures laps by setting two zones on the track. When the train enters the first zone, the counter is armed. When it passes through the second zone, the lap is recorded. Each lap time is kept, ensuring good data for comparing the Batteroo against a normal battery.

The script gives a good example for people wanting to play with computer vision. The source is available on Github. As for the Batteroo, we’ll await further test results before passing judgement, but we’re not holding our breath. After all, the train ran half as long when using a Batteroo.

Sansa MP3 Player Runs Doom Unplayably

DOOM, is there anything it won’t run on? Yes. Your front lawn cannot currently play DOOM. Pretty much everything else can though. It’s a testament to the game’s impact on society that it gets ported to virtually every platform with buttons and a graphical screen.

This video shows a Sansa Clip playing DOOM, but it’s only just barely recognizable. The Sansa Clip has a single color screen, with yellow pixels at the top and grey for the rest of the screen. The monochrome display makes things hard to see, so a dithering technique is used to try and make things more visible. Unfortunately it’s not particularly effective, and it’s difficult to make out little more than the gun at the bottom of the screen.

Continue reading “Sansa MP3 Player Runs Doom Unplayably”

NES Classic Edition – Controller Mod

The Nintendo Classic Mini took the world by storm this year — finally, an NES in a cute, tiny package that isn’t 3D printed and running off a Raspberry Pi! It’s resoundingly popular and the nostalgic set are loving it. But what do you do when you’re two hours deep into a hardcore Metroid session and you realize you need to reboot and reload. Get off the couch? Never!

[gyromatical] had already bought an Emio Edge gamepad for his NES Mini. A little poking around inside revealed some unused pads on the PCB. Further investigation revealed that one pad can be used to wire up a reset button, and two others can be used to create a home switch. Combine this with the turbo features already present on the Emio Edge, and you’ve got a pretty solid upgrade over the stock NES Mini pad. Oftentimes, there’s extra functionality lurking inside products that manufacturers have left inactive for the sake of saving a few dollars on switches & connectors. It’s always worth taking a look inside.

Now, back in 2006, the coolest hack was running Linux on everything — and somebody’s already trying to get Linux on the NES Mini.

Continue reading “NES Classic Edition – Controller Mod”

Little Bobby Tables Just Registered A Company…

Sometimes along comes a tech story that diverges from our usual hardware subject matter yet which just begs to be shared with you because we think you will find it interesting and entertaining.

XKCD 327, Exploits of a Mom (CC BY-NC 2.5).
XKCD 327, Exploits of a Mom (CC BY-NC 2.5).

You will no doubt be familiar with the XKCD cartoon number 327, entitled “Exploits of a Mom”, but familiarly referred to as “[Bobby Tables]”. In it a teacher is ringing the mother of little [Robert’); DROP TABLE Students; –], whose name has caused the loss of a year’s student records due to a badly sanitized database input. We’ve all raised a chuckle at it, and the joke has appeared in other places such as an improbably long car license plate designed to erase speeding tickets.

It's nice to see that Companies House sanitise their database inputs.
It’s nice to see that Companies House sanitise their database inputs.

Today we have a new twist on the Bobby Tables gag, for someone has registered a British company with the name  “; DROP TABLE “COMPANIES”;– LTD“. Amusingly the people at Companies House have allowed the registration to proceed, so either they get the joke too or they are unaware of the nuances of a basic SQL exploit. It’s likely that if this name leaves Her Majesty’s civil servants with egg on their faces it’ll be swiftly withdrawn, so if that turns out to be the case then at least we’ve preserved it with a screenshot.

Of course, the chances of such a simple and well-known exploit having any effect is minimal. There will always be poor software out there somewhere  that contains badly sanitized inputs, but we would hope that a vulnerability more suited to 1996 would be vanishingly rare in 2016.

If by some chance you haven’t encountered it before we’d recommend you read about database input sanitization, someday it may save you from an embarrassing bit of code. Meanwhile we salute the owner and creator of this new company for giving us a laugh, and wish them every success in their venture.

33C3: If You Can’t Trust Your Computer, Who Can You Trust?

It’s a sign of the times: the first day of the 33rd Chaos Communications Congress (33C3) included two talks related to assuring that your own computer wasn’t being turned against you. The two talks are respectively practical and idealistic, realizable today and a work that’s still in the idea stage.

In the first talk, [Trammell Hudson] presented his Heads open-source firmware bootloader and minimal Linux for laptops and servers. The name is a gag: the Tails Linux distribution lets you operate without leaving any trace, while Heads lets you run a system that you can be reasonably sure is secure.

It uses coreboot, kexec, and QubesOS, cutting off BIOS-based hacking tools at the root. If you’re worried about sketchy BIOS rootkits, this is a solution. (And if you think that this is paranoia, you haven’t been following the news in the last few years, and probably need to watch this talk.) [Trammell]’s Heads distribution is a collection of the best tools currently available, and it’s something you can do now, although it’s not going to be easy.

Carrying out the ideas fleshed out in the second talk is even harder — in fact, impossible at the moment. But that’s not to say that it’s not a neat idea. [Jaseg] starts out with the premise that the CPU itself is not to be trusted. Again, this is sadly not so far-fetched these days. Non-open blobs of firmware abound, and if you’re really concerned with the privacy of your communications, you don’t want the CPU (or Intel’s management engine) to get its hands on your plaintext.

[Jaseg]’s solution is to interpose a device, probably made with a reasonably powerful FPGA and running open-source, inspectable code, between the CPU and the screen and keyboard. For critical text, like e-mail for example, the CPU will deal only in ciphertext. The FPGA, via graphics cues, will know which region of the screen is to be decrypted, and will send the plaintext out to the screen directly. Unless someone’s physically between the FPGA and your screen or keyboard, this should be unsniffable.

As with all early-stage ideas, the devil will be in the details here. It’s not yet worked out how to know when the keyboard needs to be encoded before passing the keystrokes on to the CPU, for instance. But the idea is very interesting, and places the trust boundary about as close to the user as possible, at input and output.

Making VR Controllers From The Ground Up

VR is going to be the next big thing in five to seven years, and with that comes the problem of what the controllers will look like. The Vive and PS Move are probably close to what the first successful consumer VR setup will look like, but there’s plenty of room for experimentation. [ShinyQuagsire] decided to experiment with VR, IMUs, and computer vision and managed to make a VR controller from the ground up.

The design of [Quagsire]’s VR controller is very similar to the PS Move controller: there’s a glowy ball on top of a Wii-nunchuckish controller. There’s a good reason for this design: a sphere projected onto a 2D surface is always a circle. By illuminating a sphere with an IR LED, [Quagsire] can get an OpenCV script to hone in on the controller.

One thing that was particularly hard for [Quagsire] was building the 3D printed controllers. The first hardware revision wasn’t designed for manufacturing on a 3D printer — there were curves everywhere and very few flat areas for bed adhesion. The second hardware revision corrected these problems, but there’s a world of difference between designing a 3D printable part and being able to calibrate and tune a 3D printer. In the end, [Quagsire] sent the files off to 3DHubs to put that whole ordeal behind him.

With the case printed, [Quagsire] filled it with IMU breakouts, buttons, and a tiny joystick. The brains of the controller is a Teensy 3.2 that has plenty of examples of how to transmit gyro data and button presses over serial. With that done, the only thing left to do was to tie everything together.

The controller worked, and [Quagsire] learned a lot in the process. Making VR controllers is hard, even though a lot of the project isn’t the optimal way of doing things. For the next iteration of this project, [Quagsire] might look at wireless, but for now the entire project is up on Github for everyone to take a look at.

The Story Of Kickstarting The OpenMV

Robots are the ‘it’ thing right now, computer vision is a hot topic, and microcontrollers have never been faster. These facts lead inexorably to the OpenMV, an embedded computer vision module that bills itself as the ‘Arduino of Machine Vision.’

The original OpenMV was an entry for the first Hackaday Prize, and since then the project has had a lot of success. There are tons of followers, plenty of users, and the project even had a successful Kickstarter. That last bit of info is fairly contentious — while the Kickstarter did meet the minimum funding level, there were a lot of problems bringing this very cool product to market. Issues with suppliers and community management were the biggest problems, but the team behind OpenMV eventually pulled it off.

At the 2016 Hackaday SuperConference, Kwabena Agyeman, one of the project leads for the OpenMV, told the story about bringing the OpenMV to market:

Continue reading “The Story Of Kickstarting The OpenMV”