Reverse-Engineering the Peugeot 207’s CAN bus

Here’s a classic “one thing led to another” car hack. [Alexandre Blin] wanted a reversing camera for his old Peugeot 207 and went down a rabbit hole which led him to do some extreme CAN bus reverse-engineering with Arduino and iOS. Buying an expensive bezel, a cheap HDMI display, an Arduino, a CAN bus shield, an iPod touch with a ghetto serial interface cable that didn’t work out, a HM-10 BLE module, an iPad 4S, the camera itself, and about a year and a half of working on it intermittently, he finally emerged poorer by about 275€, but victorious in a job well done. A company retrofit would not only have cost him a lot more, but would have deprived him of everything that he learned along the way.

Adding the camera was the easiest part of the exercise when he found an after-market version specifically meant for his 207 model. The original non-graphical display had to make room for a new HDMI display and a fresh bezel, which cost him much more than the display. Besides displaying the camera image when reversing, the new display also needed to show all of the other entertainment system information. This couldn’t be obtained from the OBD-II port but the CAN bus looked promising, although he couldn’t find any details for his model initially. But with over 2.5 million of the 207’s on the road, it wasn’t long before [Alexandre] hit jackpot in a French University student project who used a 207 to study the CAN bus. The 207’s CAN bus system was sub-divided in to three separate buses and the “comfort” bus provided all the data he needed. To decode the CAN frames, he used an Arduino, a CAN bus shield and a python script to visualize the data, checking to see which frames changed when he performed certain functions — such as changing volume or putting the gear in reverse, for example.

The Arduino could not drive the HDMI display directly, so he needed additional hardware to complete his hack. While a Raspberry Pi would have been ideal, [Alexandre] is an iOS developer so he naturally gravitated towards the Apple ecosystem. He connected an old iPod to the Arduino via a serial connection from the Dock port on the iPod. But using the Apple HDMI adapter to connect to the display broke the serial connection, so he had to put his thinking cap back on. This time, he used a HM-10 BLE module connected to the Arduino, and replaced the older iPod Touch (which didn’t support BLE) with a more modern iPhone 4S. Once he had all the bits and pieces working, it wasn’t too long before he could wrap up this long drawn upgrade, but the final result looks as good as a factory original. Check out the video after the break.

It’s great to read about these kinds of hacks where the hacker digs in his feet and doesn’t give up until it’s done and dusted. And thanks to his detailed post, and all the code shared on his GitHub repository, it should be easy to replicate this the second time around, for those looking to upgrade their old 207. And if you’re looking for inspiration, check out this great Homemade Subaru Head Unit Upgrade.

Continue reading “Reverse-Engineering the Peugeot 207’s CAN bus”

Stadium Sized Cellphone Light Show Is Controlled By Sound

18 months ago, [Jameson Rader] didn’t know how to code. He had an economics degree and worked for a minor league hockey team. He did have a dream, though. Broadcasting data through sound. When we say broadcast, we mean broadcast – as in one sender and thousands of receivers.

[Jameson] didn’t have the money to hire a team to build his application. So he did what any self-respecting hacker would do. He bought a few books and taught himself to code. We’re talking about a smartphone app here, so Java and Objective-C were necessary to cover Android and iOS devices. The result is XT Audio Beacons.

[Jameson] has created a light show for stadiums which requires no new hardware infrastructure. Ultrasonic cues are added to a pre-recorded soundtrack and played over the PA system. Fans attending the show simply run an app and hold up their smartphone. The app listens for the cues and turns on the camera flash. The result is a light show which can be synchronized to music, sound effects, or whatever the event calls for. Since the system relies on sound, the App only needs permissions to access the microphone. The system would still work even if the phones were in airplane mode.

Transmitting data to smartphones via ultrasonics isn’t exactly new. Amazon uses it in their Dash Buttons, and Google uses it in their OnHub. Using it as a broadcast medium in a stadium is a novel application, though. [Jameson] also has demos showing XT Audio Beacons being used for more mundane purposes – such as troubleshooting electronics, or even as an acoustic version of an iBeacon.

Most important here is that [Jameson] isn’t keeping all this new knowledge to himself. He’s published the source to his application on Github under the MIT license.

You can see the system in action – and even try it yourself, in the video after the break.

If you want to learn more about [Jameson] and his journey, definitely check out his AMA on Reddit.

Continue reading “Stadium Sized Cellphone Light Show Is Controlled By Sound”

Hacking Google Daydream to work with iOS

The Google Daydream is a VR headset with a controller, and according to the folks at Google, “It’s not currently compatible with iOS and won’t be for several years probably.” OK.

This inspired [Matteo Pisani] to get to work on the protocol that it uses to speak with Android phones. Cutting to the chase, he got it working in several days.

There really wasn’t all that much to it. The controller sends data over Bluetooth, and [Matteo] noticed an “unknown” device on the network. Looking inside the data that it sent, it changed when he moved the controller. Not so unknown now! The rest of the work consisted of writing applications to test hypotheses, waving the controller around, and finding out if he was right. Read up if you’re interested in implementing this yourself.

We love protocol hacks here. From running quadcopters on your own remotes, to simply trying to turn on a lightbulb, it’s getting more and more important that we understand the various languages that our devices speak.

The Joy of the ESP8266 and Blynk

I’ll admit it. I can be a little cheap. I also find it hard to pass up a bargain. So when I saw a robot kit at the local store that had been originally $125 marked down to $20, I had to bite. There was only one problem. After I got the thing home, I found they expected you to supply your own radio control transmitter and receiver.

Normally, that wouldn’t be a problem but lately… let’s just say a lot of my stuff is in storage and I didn’t have anything handy. I certainly didn’t want to go buy something that would double the cost of this robot that I really didn’t need to begin with.

However, I did have a few ESP8266 modules handy. Good ones, too, from Adafruit with selected 5 V I/O compatibility and an onboard regulator. I started thinking about writing something for the ESP8266 to pick up data from, say, a UDP packet and converting it into RC servo commands.

joymainSeemed like a fair amount of work and then I remembered that I wanted to try Blynk. If you haven’t heard of Blynk, it is a user interface for Android and Apple phones that can send commands to an embedded system over the Internet. You usually think of using Blynk with an Arduino, but you can also program the embedded part directly on an ESP8266. I quickly threw together a little prototype joystick.
Continue reading “The Joy of the ESP8266 and Blynk”

Pokemon Go Physical Pokeball Catches ‘Em All

There’s something irresistible about throwing Pokeballs at unexpectedly appearing creatures. But wait. When did you actually, physically throw a Pokeball? Swiping over colored pixels wasn’t enough for [Trey Keown], so he built a real, throwable, Pokemon-catching Pokeball for Pokemon Go.

Continue reading “Pokemon Go Physical Pokeball Catches ‘Em All”

Pokemon Go GPS Cheat (If You Don’t Fear Getting Banned)

Pokemon Go inherits a certain vulnerability to GPS location spoofing from it’s predecessor Ingress, but also the progress that has been made in spoof detection. Since taking advantage of a game’s underlying mechanisms is part of the winner’s game, why not hook up your smartphone to Xcode and see if you can beat Niantic this time? [Dave Conroy] shows you how to play back waypoints and activate your Pokemon Go warp drive.

Continue reading “Pokemon Go GPS Cheat (If You Don’t Fear Getting Banned)”

Ditch the iPad; Build a Commodore 64 Tablet

The classic Commodore 64 has had its share of modernizing in the OS department. From its roots starting up a basic prompt, to full high resolution GUI packages like GEOS, to today where [Jim_64] added a tablet like launcher complete with a touch screen interface.

The GUI itself takes advantage of the high resolution graphics of the C-64 that looks similar to iOS, Icons are selected via cursor keys or joystick (what? no light pen?) and launch the various functions they represent. To add to the tablet-like feel of the OS, an off the shelf 3m touch screen panel and its corresponding RS232 interface board were obtained from digikey.

With the panel securely attached to the monitor, XY data from the various finger pokes are sent via serial at a blazing 1200 bps where the program interprets the position. Using the available demo (download sideA and sideB) and off the shelf parts, this should be easy for anyone with a classic C-64 to set up in their own home and have some fun.

Join us after the break for a few demo videos!

Continue reading “Ditch the iPad; Build a Commodore 64 Tablet”