CLOSE
Original image

Can I Unlock Other People's Cars With My Remote?

Original image

Jason English, our esteemed editor, wonders, "How many other Camrys would my remote unlock? Is it really 1:1, or is there a chance my fob would open a Camry in Phoenix or Toronto?"


When you push a button on your car remote or garage door opener, a radio transmitter inside sends a signal containing a numeric code to a receiver in the car (or in the garage). When it gets the signal, the receiver tells the car (or the garage door controls) to lock or unlock (or open or close)—or whatever it's supposed to do given the button you pushed.


When remote garage door openers first came out in the 1950s, the transmitters in the remotes sent out a single signal. This was all well and good as long as you were the only person on your block with a garage door opener. But as they became more common, you could open any garage you wanted, because all remotes worked on the same signal. A security breakthrough came 20 years later when DIP switches—sets of eight manual electric switches packaged in a group and attached to a printed circuit board—were added. By setting the eight switches to a certain arrangement inside both the transmitter and the receiver, you had some control over the 8-bit code that they shared. The DIP switches could provide 256 possible codes. So while some security was provided, areas with lots of garage door remotes were still prone to code doubling and people opening up their neighbors' doors.

Early remote entry systems for cars were slightly more advanced. The system for each car had a unique code set by the manufacturer and used by that car's transmitter-receiver pair alone. The ratio really was 1:1. Just as my car lock or yours wouldn't open for Jason's key, our receivers wouldn't have responded to his transmitter's signal. These systems had their own problem: while the codes were unique to their cars, the same code was transmitted every time you used the remote. A radio transceiver called a "code grabber" could be used to intercept, store and retransmit the code later on. It was like having your key stolen and copied, without you knowing, while you were putting it in the keyhole and opening the door.

iStock_000003906364XSmall-carsTo combat the problem, manufacturers began using rolling codes (or hopping codes) in the mid-1990s. Instead of using a single fixed code, these newer systems use a set of rolling codes that change every time the remote is used. Now when you use the remote, the transmitter sends the current code to the receiver (most systems use 40-bit codes or longer, allowing for more than 1 trillion different combinations). If the receiver gets the current code, it responds; if not, it does nothing. The transmitter and receiver then "roll" the code using the same pseudorandom number generator (PRNG). When the transmitter sends the current code, it uses the PRNG to create a new code and remembers it. After receiving the current code, the receiver uses the same PRNG with the same original seed (the number that initiates the PRNG) to generate a new code. Using this method, the transmitter and the receiver generate matching sequences of codes and are synchronized (and, of course, all the information that's transmitted is encrypted).

What if you press a button on the remote while you're away from the car, generating a new code on the transmitter and desynchronizing the system? The receiver forgives your human error and accepts any of the next X valid codes in the code sequence (the number of "look-ahead" codes the receiver accepts varies among manufacturers). Push the button one too many times, though, and the receiver will ignore the remote and you'll have to resync the system.

Modern remote keyless entry systems are pretty secure, but there is a slight chance Jason could open another Camry if he wants to walk up to one and press the unlock button on his remote (assuming it uses a 40-bit code) one trillion, ninety-nine billion, five hundred eleven million, six hundred twenty-seven thousand, seven hundred and seventy-six times, running through all the possible codes his remote could transmit until one works (assuming he can hit the button once every second without taking any breaks, he'll need just shy of 34,842 years to do so). He'll also have to hope that the Camry he's trying to open has a receiver that uses a 40-bit like his remote, and isn't a newer model that might use a 66-bit code with 7.3 x 1019 possible codes.

Original image
iStock // Ekaterina Minaeva
arrow
technology
Man Buys Two Metric Tons of LEGO Bricks; Sorts Them Via Machine Learning
Original image
iStock // Ekaterina Minaeva

Jacques Mattheij made a small, but awesome, mistake. He went on eBay one evening and bid on a bunch of bulk LEGO brick auctions, then went to sleep. Upon waking, he discovered that he was the high bidder on many, and was now the proud owner of two tons of LEGO bricks. (This is about 4400 pounds.) He wrote, "[L]esson 1: if you win almost all bids you are bidding too high."

Mattheij had noticed that bulk, unsorted bricks sell for something like €10/kilogram, whereas sets are roughly €40/kg and rare parts go for up to €100/kg. Much of the value of the bricks is in their sorting. If he could reduce the entropy of these bins of unsorted bricks, he could make a tidy profit. While many people do this work by hand, the problem is enormous—just the kind of challenge for a computer. Mattheij writes:

There are 38000+ shapes and there are 100+ possible shades of color (you can roughly tell how old someone is by asking them what lego colors they remember from their youth).

In the following months, Mattheij built a proof-of-concept sorting system using, of course, LEGO. He broke the problem down into a series of sub-problems (including "feeding LEGO reliably from a hopper is surprisingly hard," one of those facts of nature that will stymie even the best system design). After tinkering with the prototype at length, he expanded the system to a surprisingly complex system of conveyer belts (powered by a home treadmill), various pieces of cabinetry, and "copious quantities of crazy glue."

Here's a video showing the current system running at low speed:

The key part of the system was running the bricks past a camera paired with a computer running a neural net-based image classifier. That allows the computer (when sufficiently trained on brick images) to recognize bricks and thus categorize them by color, shape, or other parameters. Remember that as bricks pass by, they can be in any orientation, can be dirty, can even be stuck to other pieces. So having a flexible software system is key to recognizing—in a fraction of a second—what a given brick is, in order to sort it out. When a match is found, a jet of compressed air pops the piece off the conveyer belt and into a waiting bin.

After much experimentation, Mattheij rewrote the software (several times in fact) to accomplish a variety of basic tasks. At its core, the system takes images from a webcam and feeds them to a neural network to do the classification. Of course, the neural net needs to be "trained" by showing it lots of images, and telling it what those images represent. Mattheij's breakthrough was allowing the machine to effectively train itself, with guidance: Running pieces through allows the system to take its own photos, make a guess, and build on that guess. As long as Mattheij corrects the incorrect guesses, he ends up with a decent (and self-reinforcing) corpus of training data. As the machine continues running, it can rack up more training, allowing it to recognize a broad variety of pieces on the fly.

Here's another video, focusing on how the pieces move on conveyer belts (running at slow speed so puny humans can follow). You can also see the air jets in action:

In an email interview, Mattheij told Mental Floss that the system currently sorts LEGO bricks into more than 50 categories. It can also be run in a color-sorting mode to bin the parts across 12 color groups. (Thus at present you'd likely do a two-pass sort on the bricks: once for shape, then a separate pass for color.) He continues to refine the system, with a focus on making its recognition abilities faster. At some point down the line, he plans to make the software portion open source. You're on your own as far as building conveyer belts, bins, and so forth.

Check out Mattheij's writeup in two parts for more information. It starts with an overview of the story, followed up with a deep dive on the software. He's also tweeting about the project (among other things). And if you look around a bit, you'll find bulk LEGO brick auctions online—it's definitely a thing!

Original image
iStock
arrow
technology
Why Your iPhone Doesn't Always Show You the 'Decline Call' Button
Original image
iStock

When you get an incoming call to your iPhone, the options that light up your screen aren't always the same. Sometimes you have the option to decline a call, and sometimes you only see a slider that allows you to answer, without an option to send the caller straight to voicemail. Why the difference?

A while back, Business Insider tracked down the answer to this conundrum of modern communication, and the answer turns out to be fairly simple.

If you get a call while your phone is locked, you’ll see the "slide to answer" button. In order to decline the call, you have to double-tap the power button on the top of the phone.

If your phone is unlocked, however, the screen that appears during an incoming call is different. You’ll see the two buttons, "accept" or "decline."

Either way, you get the options to set a reminder to call that person back or to immediately send them a text message. ("Dad, stop calling me at work, it’s 9 a.m.!")

[h/t Business Insider]

SECTIONS
BIG QUESTIONS
arrow
BIG QUESTIONS
WEATHER WATCH
BE THE CHANGE
JOB SECRETS
QUIZZES
WORLD WAR 1
SMART SHOPPING
STONES, BONES, & WRECKS
#TBT
THE PRESIDENTS
WORDS
RETROBITUARIES