Nike+ Sportwatch Teardown

I bought this watch back in ~2013 and used it track my runs for several years. I recently got an Android watch which also had a built-in GPS, so gave the Nike+ SportWatch to my wife. After a few months of using it, she could no longer download her runs. I wrote about this previously.

With no real use for it, I decided I’d open it up and see what makes it tick.

While iFixit has some nice photo guides to disassemble and replace different components, and someone even replaced the entire USB cable, this video shows a complete teardown and takes a look at some of the components used inside the now defunct Nike+ SportWatch.

The teardown is pretty straightforward. There are 6 screws on the back of the watch, that once cleaned of accumulated dirt come off quite easily. The back then separates from the front, with a half of the strap attached to each.

The back half contains the battery, and the front half the rest of the components and USB cable. The USB cable is soldered to the PCBA, so has to be desoldered to continue the teardown. Another two screws hold the PCBA in place.

The LCD comes straight out, but its backlight is held in place by a melted support that must be cut, and has to be unhooked from the bluetooth antenna. The last thing to open up is the shield can, which has many small, tight tabs holding it in place.

Other info:

  • US design patent US D636,686
  • KCC registration: KCC-REM-NSW-GP132
    • I was hoping there’d be an FCC registration, as then all the testing documentation is available, but I could only find reference to the KCC.


  • GPS
  • Backlit LCD Screen
  • Tap sensor
  • Lithium Ion battery
  • Built-in USB cable/connector
  • Pairs with:
    • Polar Wearlink + Transmitter (heart rate monitor)
    • Shoepod Nike+ Sensor

Components Used:

  • TI MSP430
    • Main microcontroller
    • Marked as M430V317, unsure which exact spec component it is.
    • 7x7mm BGA, most likely includes the USB interface.
  • NRF 24L01+
    • Bluetooth connection
  • Lithium Ion Battery
    • B&K E332430 170mAh 3.7V 0.63Wh
    • E130910-DV33-11
  • Uknown
    • U4 looks like an IMU, and the watch did have a tap functionality
    • U3 is almost certainly 16Mb of Flash Memory, but unclear which manufacturer.
      • Marking of 2SP16 matches Micron, but the form factor doesn’t
    • The actual GPS circuitry is likely custom TomTom hardware, and not off the shelf components.
Diagram of Nike+ Sportwatch PCBA with main components labelled
Diagram of Nike+ Sportwatch PCBA – rear

Panelizng non-square PCBs in Altium

Note: this guide specifically shows how I panelized boards to manufacturer with JLCPCB, but the process can probably be applied/modified to fit any PCB fab’s requirements. Also, this is what worked for me in ~March 2020, processes may change, always check for the latest information from your PCB Manufacturer.

JLCPCB Panelizing notes: link (More under capabilities: link)
OSHPark Panelizing notes: link

A number of PCB manufacturers offer amazing introductory deals for PCB manufacturing. Often this will have a size restriction, in JLCPCB’s case, less than 100x100mm. If you’re making something considerably smaller than this though, you might be able to get multiple boards within that area. But the PCB fabs won’t do the hard work for you, without charging you extra. So why not do it yourself.

For boring rectangular boards, the standard way to do this is using v-grooves cut with a circular saw. Because a circular saw is used, it is only compatible with rectangularly shaped boards. The alternative for irregularly shaped boards is to route the outline of the board, but leave tabs supporting the PCB relative to a frame, or neighbouring PCBs.

One import thing to keep in mind when panelizing boards is how the board will broken apart, especially if your boards are going to be assembled beforehand. It requires putting stress on the boards, which can damage traces and soldered components. For more info on the practicalities of panelizing, read more here.

If you are using Altium Designer to design your board, below are the steps I followed to generate Gerber files that I submitted to JLCPCB. My aim was to get multiple of my boards within the 100x100mm for JLCPCB. I used Altium Designer 19.

  1. In a PCB file, layout your single board including the planned PCB outline.
First step is to layout a single board. The board I used here is roughly 20mm long and 14mm wide
  1. Create a new PCB file that will contain your panelized design
  2. Set the board shape to be the size of your final panelized design, in my case, 100mmx100mm.
  3. Insert your original PCB design.
    1. Place > Embedded Board Array/Panelize
  1. Push Tab to access the settings
    1. Select your original board under “PCB Document”
    2. Adjust the Column Count, Row Count, and spacing and margin values to get as many of the boards to fit in your limited area. Take into account minimum requirements from your manufacturer, as well as whether you want to have external and/or internal frames around and in between your boards.
As you update the count, spacing and margin values, Altium will update the layout on the board, so you can change these values interactively to find the best fit. You can additionally do some maths with your fab’s recommended specifications to optimize the number of boards you can place.

If you really want to cram boards in, you can experiment with different rotation of boards so that you don’t waste space. This requires importing the board more than once, with a different rotation specified. Additionally, joining boards to each other, instead of to a frame will also save space. In my case, I didn’t need or want hundreds of copies of this board, I just wanted ten or twenty.

  1. You should now see roughly how your boards will be situated.
  2. To allow for better visualization within Altium’s PCB view, we create a “Route Tool Path” layer to place our routing. User a different Layer Type will allow for correct Gerber generation, but not viewing with Altium’s PCB viewer.
  1. Now we want to create the router patterns to separate our PCBs.
    1. Design > Board Shape > Create Primitives From Board Shape
    2. Select the layer that you want the routing to go on: “Route Tool Path”
    3. For the width of the routing, reference the minimum width requirement specified by the PCB fab.
    4. Select “Route Tool Outline”
This step creates the routing paths around all the boards you’ve placed
  1. You should now have a visible routing path around all your individual PCBs. When you switch to PCB view, you’ll see these as empty spaces.
Left shows your panelized PCBs with routed paths. Right shows the generated routing paths in green.
  • Notes:
    • In my example I am separating boards with a frame, if you’re not planning on having a frame, there should be no PCB between each of your boards at this stage.
    • Because these edges are routed, internal angles can’t be perfectly machined, and will have a radius related to your router width
In left image, you can see how your original board outline has a sharp angle, but the generated routing path has a radius. In the right image you can see this curved routing path in the generated PCB view. If this will cause a fitment problem, you need to update your original standalone PCB layout to take the routing into account
  1. Now that we have the boards routed, we need to add in breakaway tabs, also known as mouse-bites. This is just a bit of bridging PCB, that has an edge perforated with little holes to make it easier to break off.
  2. To place these in your design, you need to either make a custom part, or create another PCB design that contains just the holes required for your tab. A custom part is better, but both will work.
    1. If you’re linking boards directly to other boards, you want two rows of holes, if you are linking boards to a frame, you only need one row of boards, inline with the edge of the board.
    2. In my example, I have two rows of holes, even though the boards are linked to a frame
    3. The width of the part/board should be the width of your routed edge.
    4. Hole size and spacing should be on your fab’s recommendations.
This image shows our mouse-bites placed, but still shows routing through the mouse-bite. We need to remove this portion of routing to create the bridging tab.
  1. Based on relative sizes and other factors, you must now decide how many tabs are required to join each of your of your boards, and where they should be located. You must also reference your fab’s recommendations.
    1. For my design I have just two tabs holding each board up.
  2. Once placed, we now have to ‘add’ the material back to support the boards. You can do this by just selecting the relevant part of the route ‘trace’, and either deleting or resizing it.
Comparing this image to the previous one we can see how the routing through the mouse-bite has been removed, creating a tab to support the individual PCB in its panel.
  1. Switch to PCB view and confirm the resultant tab looks correct.
PCB view of our mouse-bitten tab
  1. Now rinse and repeat for all tab locations.

Once you’ve got everything laid out, just make sure to add your entire board outline to your routing layer so they get exported on the same layer. Most fabs expect this. Then all you have to do is export your Gerber files and upload them.

When I actually had the boards manufactured, I only put 5 boards horizontally to a panel of a single row. I also placed the tabs on the sides. As such the below images won’t match what I demonstrated above.

Altium generated view of my panelized PCB

For JLCPCB, this is what my exported board outline layer looked like, as well as how JLCPCB displayed the boards in their Gerber viewer, and how they came out:

What my board outline layer looked like for JLCPCB (Altium Gerber viewer)
How JLCPCB showed my boards after importing
And what the final product looked like

At the same time I had the same boards manufactured with OSH Park. They ask for a slightly different layout. They want the outline of the milled area as opposed to a single trace for the mill. As such the board outline layer looked like this (along with how OSH Park displayed it and how they came out).

What my board outline layer looked like for OSH Park (Altium Gerber viewer)
How OSH Park showed my boards after importing
In the flesh?

OSH Park actually offer to do the tabs themselves. You just provide the milling outline around the entire board, and they’ll add the tabs. I don’t recall this being an option when I had the boards made (~March 2020), but it is on their website (Jan 2021).

Below is another design I had manufactured this year for my Touch Lamp. Here I joined boards directly to each other. Below you can see Altium’s PCB view as well as the final product. To achieve this, I had to import my nominal PCB twice, once for the upright orientation, and once for the upside down orientation. In this case, when I exported the Gerber’s, I did not include the rectangle that went around the entire board, as I didn’t want the little triangles included.

Altium representation of Touch Lamp PCBs
What the PCBs looked like after I had them made (two variants)

If you have any questions, or additional information you think others will find useful, please leave a comment below.

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 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.

UPDATE: I compiled 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.