Retrofitting a 2008 Hyundai Tucson with Keyless Entry

We purchased a second hand car a few years ago. When we got it, it came with one key, and no keyless entry remote. Some 2008 Hyundai Tucson’s came with a keyless entry remote, but there was no way for me to determine if our car had the necessary hardware. If it did, I could simply purchase a new key and get it re-programmed. However queries with Hyundai only resulted in new-car sales pitches, and I wasn’t going to risk wasting $100 to buy a key and get it re-programmed with no guarantee.

Instead, I installed a garage-remote receiver in my car. The car has central-locking which is triggered by using the key in the door. Using a remote controlled relay, one can send the same signal to the central locking system as the key switch does. I used an old receiver I had lying around, similar to this. There are many different remote control kits available that can be used here. The important things to check are that they will operate off 12 VDC and how much current the receiver uses when idle.

The ETACS (Electronic Time and Alarm Control System) in the Hyundai Tucson draws up to 4mA black current. That is, when the car is off. Ideally you want a receiver with a similar, or lower current draw. My receiver draws about 10mA. Not ideal, but I did the math and determined that as long as we drove the car once every two weeks, we shouldn’t come anywhere near to flattening the battery (less than 2 Ah per week).

The switches in the door keylocks simply short the signal line to ground to trigger locking/unlocking. I chose to use the passenger/assistant door key switch. If you use the driver door key switch, you may have to push the unlock button twice to get it to open, as when unlocking with the key, once has to twist the key twice.

All the connections you need are by the ETACS, and the ETACS also has space around it (in my manual transmission in any case) to mount the receiver.

The ETACS is located below the gear lever. To access it, one has to remove several sections of fascia. You can see how to do that looking at the photos in the below gallery:

Once all the screws are undone, you can remove the last section by pulling it away from the center console. There are hooks, but no clips, so it should come out fairly easily.

The ETACS has three connectors going into it. They are all clipped in place. The below image shows the important pins, as viewed from behind, the connector (direction from which the wires go in), when plugged in.

While your battery is still connected, check the voltage on each of the pins. Battery+ should read around 12.5V, while all the other ones should measure near 0V. Check for continuity between the Ground, Signal Ground and a grounded part of the vehicle. Then you can try locking and unlocking the car, by shorting the signal ground line and the applicable lock/unlock signal.

Once you’ve tested that these function correctly you should disconnect the battery from the car, and then you can unplug the ETACS to connect the necessary wires.

If you have the tools to solder or crimp the connections in, I definitely advise that. I used dual-row screw terminals, although I acknowledge they’re not the best option for auto use. Connect the Battery+ and ground lines to the power connection on your receiver, preferably including an inline fuse.

My receiver has two switches. Both of them are normally open, and when activated will connect two terminals. As such on the one switch I hooked up the lock and signal ground lines, and on the second switch I connected the unlock and signal ground lines.

Once connected, make sure everything is insulated, and connect it back up. Connect your battery again to test out your remote. If it works correctly, find a way to mount your receiver, using foam where applicable to prevent rattling. Add insulation to any of the wires which may rub against sharp edges.

Phantom Notifications – Moto X4 – Android Pie

Phantom vibrations are a thing. I’ve experienced them before. You feel a vibration in your pocket, reach for your phone, and realise your phone is actually sitting on your desk. But this was different.

After my phone updated to Android Pie, I started receiving notifications, but my watch didn’t indicate anything, and when I looked at my phone, it didn’t show any new notifications. This happened multiple times a day, much to my annoyance.

There were two steps to sorting this out, first figuring out what was causing the notification, and then figuring out how to stop them occuring.

Android lets you put a widget on your home screen that will show you a history of all your notifications. Add a Settings widget, and select Notification log from the list (I learned about this on reddit). Now wait.

Selection Notification log from the Settings widget options list

When you get a notification, you can open the notification log, and view what it was that happened. In my case it was my Download Manager. Which is weird, because it’s telling me about things I downloaded days and weeks ago. Annoying. But at least we know what it is now.

Notification log showing the most recent notifications.

The normal way to turn something off is to open the app, and go to its notification settings. However the Download Manager is a background app, so instead you go to Settings > Apps & Notifications > See all apps, then tap the menu button in the top right, and select Show system.

Get Settings to show you system apps.

You can then select the offending app, and change it’s notifications settings. In my case I just stopped showing notifications for the Download Manager app.

It’s been almost two weeks now, and I haven’t had another occurrence of the phantom notifications. After experiencing them almost daily, this is quite an improvement.

Nike+ SportWatch – DO NOT BUY

tl;dr: The software this watch (and the Fuel Band) requires to work correctly has been discontinued by Nike. The watches are no longer worth anything. Don’t buy one. – link to Nike announcement. If you’re looking for an alternative try the Garmin Forerunner, or even a Huawei Watch.

In 2013 I bought a Nike+ SportWatch. It’s nothing amazing, but at the time it was a well-priced GPS watch which let me track my running and cycling (kind of). It’s major drawback at the time was that the only way to get data off the watch was to sync it with the Nike+ servers by plugging it in to USB and using their proprietary software. This wasn’t a major issue. But now it is.

I’ve since upgraded to a WearOS watch with built in GPS, so I can just run the Strava app. As such I gave my watch to my wife. Recently she plugged it in to upload the data. Trying to sync results in a “Couldn’t connect to NikePlus” message. Clicking help results in a “Forbidden” page access message.

What you see when you click Help in the Nike+ app

Eventually after searching a bit I find out that Nike have decided to discontinue support of the watch. Nike+ Link. For most products this would be okay, you’d still be able to download a GPX file to your PC and upload it to your service of choice. But Nike+ software never offered this feature. And in shutting down their servers they have completely abandoned their customers.

Message on Nike+ support page

To an extent I can understand this. They stopped manufacturing devices in 2015, and can’t be expected to support them forever. What I can’t excuse is that they failed to offer an alternative, when a very simple one exists. The original software effectively downloaded the data to a PC, compiled it into a GPX file and uploaded it to the Nike+ servers (source). They just never made that GPX file available to the user. But this is the perfect opportunity to do this. As opposed to dropping support completely.

What is further concerning is that people continue to sell the product on E-bay without providing warnings about the product’s obvious problem. Likewise on Amazon.

In 2014, Leendert van Duijn and Hristo Dimitrov published a paper titled “Information retrieval from a TomTom Nike+ smart watch“. In this paper they documented some of their efforts to intercept the communication and figure out the comm protocol the watch uses. They made some inroads, but didn’t fully decrypt the data.

Using their guidelines I’ve managed to download what I believe is data from a run, but have no way to decrypt it. I hope someone else is able to figure it out and make this perfectly acceptable watch useful again.

More Particle Internet Button Projects

I posted a few months ago about the Particle Internet Button I’m playing with (link). I’ve created another 2 projects in the mean time.

Adjustable Timer

The first is an adjustable timer. The lights on the Internet Button are used to indicate 30s steps, ranging from 30s to 5min. When it turns on you specify the length of time you want to run it for by either increasing or decreasing the steps. When running the 30s that are currently active flashes. At the end of the time, the Internet Button beeps and flashes red. It can be easily adjusted and reset.

particle timer

Left: select length of time
Right: Timer running

I made this back in November, but actually had a problem with it that I couldn’t figure out. I had intended to post to the Particle forums for help but never got round to it. I had in the mean time uploaded the offending code to Github. I recently reinvestigated the code with the intention of this post, and found that someone else had found my code, and solved my problem, so thanks to Github user mseneshen. Working code can be found here: source

Dice

The second project was a set of dice. Playing Catan and having people complain about how there were no 3s rolled in a game gets old, so why not create a set of dice that keep track of this and tell you facts. Apps are available for this, but then the screen turns off and it becomes a hassle. So I wrote some code to mimic a set of dice.

particle dice

Left: Dice being rolled
Right: Dice have been rolled

To roll the dice you gently shake the Internet Button sideways. The code randomly generates two numbers between 1 and 6, adds them, and outputs them by lighting up the appropriate number of LEDs. To make it easier to read, LEDs are colour coded in groups of 3. The Internet Button only has 11 LEDs, so I if a 12 is rolled, the 11th LED changes colour. Because a 1 is never rolled, I could have used that LED, but it seemed less intuitive. Also, because we play Catan, if a 7 is rolled, all the lights go red.

The whole time the dice are running, a tally is kept of how many times each number is rolled. At any time you can click a button and a distribution is published to the console. I might update this later to automatically graph the data and tweet it, but haven’t tried that yet.

When I first tested the code, I was getting reproducible random numbers, so I introduced a seed from one of the analogue pins which appears to have solved that problem. Because it uses an accelerometer to trigger a throw, when it is on it’s side, gravity is enough to trigger a throw and allows me to get thousands of throws without destroying my wrists.

Some plotted results can be seen here, with actual roll percentage (bars) vs statistical roll percentage (dots).

Code is available here: source

Temperature and Altitude

I recently bought an Adafruit BMP180 that I’m trying to get running with the Internet Button. Will post details once it’s active.