Circuit Sculpture Touch Lamp with PCB shade

I haven’t had a bedside lamp for a while. I just never bothered. So, on seeing a competition on Hackaday for Circuit Sculptures, and having a sudden surge of inspiration, I decided to give it a go.

My final entry can be found on Hackaday.io here, and in tandem I uploaded all the files to Github here. There’s a brief demo video below, and full gallery at the end.

I only decided to do something a few weeks after the competition had started, so I decided to go fast, make easy decisions and not worry about efficiency, or cost too much. LEDs were the obvious choice for light source, but LEDs are bright and directional, not ideal for a lamp. And so I got it into my head to make a lampshade out of PCBs.

With the number of board fabs offering $5 deals on various PCB sizes and numbers, I figured I’d be able to work something out that wouldn’t be too expensive. I went through a number of iterations on various shapes and sizes before settling on a stacked dodecagon design. The layers would be slightly angled, to allow light to reflect off and hopefully out.

Performing some size optimization to fit into Seeed Studio’s 100x100mm cheap design limitation, I ended up with 8 panels per board. I need 12 panels per layer, and size wise I was hoping for 8 layers. This is 96 panels. Seeed gives you 10 boards, so for one order I’d get 80 panels. Knowing I’d need two orders then, I decided to experiment a bit.

I’d already settled on a white silkscreen, to help reflecting light from within the shade outwards, but for the second design I opted to have no silkscreen, in the hopes of some of the light getting through the boards.

For the outside, after I mentioned this and the design limitations to my wife, she was kind enough to generate several different pattern options, making use of the copper and white silk screen combos. Having recently watched the excellent Technology Connection’s video on olden times touch lamps, I liked the idea of being able to touch the lampshade to turn it on. This would require a conductive surface.

With that out of the way I turned to the electronics. I was going for quick and easy above all else, so settled on a small Arduino type controller. Doing some calculations, I realised I probably wanted a max total LED draw of around 10W. But the circuit sculpture nature of the design means cooling is difficult, so I heavily overspecced some LEDs and LED drivers.

I had a 19V power supply lying around, so worked from there. Although I later realized that the micro I’d chosen had a built in 16->5V regulator, so I could have taken advantage of that.

With the PCBs and electronics on order, I did some rough calcs for how much brass wire I’d need and went straight to McMaster Carr. Thereafter I spent as little time as possible designing some 3D printed jigs to make assembly easier. With mixed results.

Some quick prototyping when the electronics arrived had the lights and my ‘touch’ sensing working. Then it was just waiting for it all to arrive.

Assembly was grueling. For a number a reasons. I started off with the lamp shade rings. These went together fairly easily, and my printed jig made it super easy to solder this and ensure I got the right shape. Trying to attach all 8 levels of the shade together however was difficult. I was using 3mm brass wire, as I figured I’d need something sturdy. This is true, but it makes soldering to it difficult, as it takes a while to heat it up enough to get a decent structural bond. You may notice in my final photos that I got a bit of a slant to my shade as well. This is because I had no tools/jigs to help me keep the rods perpendicular to my lamp rings while soldering. TODO: Reduce use of 3mm brass rods.

Next was the LED rings. I had to do 4 rings of 6 LEDs each. Hexagons, easy enough. I’d 3D printed a jig to help with this assembly. But I got a bit ahead of myself, not spending enough time to center the LEDs on each surface, which made my jig useless, and made connecting the LEDs to each other nightmarish. I had lots of cruddy solder joints and shorts which kept me busy for hours trying to debug. I ended up having to excise one of the rings once everything was all already assembled, completely rework it, and then place it back. Not fun. TODO: Make a better jig

This is definitely not the typical interpretation of a circuit sculpture, and it’s a bit disappointing that the main visible electronics are the Arduino, and a regulator, both of which are soldered in a very non-aesthetically pleasing manner. The LED rings which actually look pretty impressive, if not neat, are hidden away behind the lampshade. That being said, the lampshade was supposed to be pretty. TODO: Plan component layout before soldering.

I had originally intended to have the contacts on the lamp shade be a type of touch sensor to turn the LEDs on and off. Unfortunately, although I put vias on the boards, and all of the boards are soldered together, I failed to connect the vias to the solder bridges. I probably could create additional solder bridges on the outer surface, but instead I opted to just make the frame of the lamp the touch sensor. TODO: Update lampshade PCBs to connect all surfaces.

Another problem is that the lights are suspended almost a foot above the electronics. All that is supporting them are three 1mm brass rods that absolutely mustn’t touch each other. Let’s just say that the lights tend to sway a bit when the lamp is bumped. Very visually appealing, and I haven’t had any shorts yet, but something sturdier is needed. TODO: Improve mounting of LEDs in shade.

Those are the main issues I encountered. It was a lot of fun. As impressive as I’ve always found the Circuit Sculptures in the past, trying to do one yourself definitely gives you a new appreciation for how much work goes into getting one that looks neat.

I took a number of videos as I was building up the different components. When I have some time I’ll try compile them.

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.