Aesthetically the macbook charging connector is quite nice but it just didn’t hold up very well to cable strain. Over the past few weeks the connector LED has been flickering on and off and it’s become very difficult to get it to charge the battery. Although I couldn’t visually see any damage it was obviously some kind of break in the conductor.

Turns out mine developed a crack in the cable rubber that was concealed underneath the strain relief boot. So whilst it was breaking I had no idea of the damage (and I think it goes to show the strain relief boot isn’t functioning as intended as that’s precisely where the damage developed).

The cable is two part, an outer jacket covering negative sheathing followed by an inner jacket covering (presumably) the positive conductor. The outer conductor was almost entirely frayed and there was some arcing evidence too.

Anyway, not wanting to pay 80 bucks for a new charging adapter I thought I’d try fixing this one instead. Initially it seemed like it was going to be difficult due to the breaks’ proximity to the connector – I wasn’t sure if there would be enough wire left before the casing to solder onto – but there was (barely).

Taking the connector apart entails loosening it up a bit with a razor knife. Followed by gently pulling down on the casing while pushing up on the strain relief boot. I used a small screwdriver to poke it through when it started getting stuck.

Loosening the Casing

Removing the Casing

Removing the Casing

 

 

 

 

 

 

 

Once the casing was off I had to remove the strain relief boot. At the time I thought I would save it so I just slid it down but I ended up cutting it off later. Once it was out of the way I could see the damage.

Outer Casing Removed

Removing the boot

Exposing the damage

 

 

 

 

 

 

 

To expose the area I needed to work on I slit the outer jacket with the razor knife and pulled it back pretty far. Then I slipped down the top crimp easily (it’s supposed to be tighter right?) and salvaged as much of the negative conductor as I could by prying it away from the jacket and off to one side.

Pulling back the jacket

Exposing the damage

 

 

 

 

 

 

 

With that done it was time to solder a jumper on to replace the broken portion. There’s a chance the metal here is aluminum so I made sure to get it pretty hot with the solder iron and I used tinning solder. If it breaks again it breaks but hopefully I’ll get the rest of the macbooks life out of it first.

Preparing to Solder

Preparing to Solder

 

 

 

 

 

 

 

Once it was soldered I taped it up and cut a small hole in the casing so that it would fit nice and snug over top. I didn’t actually test it at this point I finished taping it up and then gave it a whirl.

Cutting a hole in the casing

Putting it back together

Complete! and Working

Several years ago when tv top media players/network streamers were just coming out, I purchased a Popcorn Hour A-100, which was the first model in the line of “Network Media Tanks” made by Syabas. It’s actually quite capable even by today’s standards. It does 1080p h264 encoded MKVs with subtitles and all the rest with little fuss.

However there’s one thing it absolutely sucks at – music. More specifically the ability to do on-the-fly playlists and browse collections bigger than a few files. Newer models of the “Popcorn Hour” probably do this better with user contributed apps but I’m on a tight budget and thought I could rig up something myself. Unfortunately I couldn’t just go with an already developed app because they require a HD to be installed in the enclosure, which I do not have.

The closest thing out there that I *could* use was “Mediatank Controller” – but it suffered a major showstopper in my opinion. It lacked the ability to change your playlist after it had been started.

I like to play a track first, then start queuing up the others. I also like to mess with the playlist constantly while I’m listening. But the Coup de grâce of this new system would be the ability to seamlessly transition between playing via the Popcorn Hour, and playing via the iPhone/speaker dock or laptop.

So to make this happen I implemented:

  1. Telnet access to control the Popcorn Hour. Instructions
  2. A “dummy” playlist of 500 tracks with the url set to a php script on my home server. (example: http://server/ctrl.php?n=1)
  3. A mobile friendly UI to use on my phone to queue up tracks. I used jQuery Mobile 1.1.0
  4. ID3 tag reading to make browsing usable. I used the PHP class getID3() but I wouldn’t recommend it as it’s sssllloowww (had to implement caching, and the cache file alone was over 300 MB)
  5. A playlist manipulator class, Popcorn Hour controller class, music sorting, and a few other goodies I wrote in PHP.
  6. HTML5 Audio along side the web UI to enable local playback.

The system works like this: First – you add one or more items to the playlist which get written via the manipulator class to a flat file on the server. The controller class then telnets to the popcorn and kick starts the dummy playlist file.

The server then receives a request from the popcorn for track 1 shortly thereafter (ctrl.php?n=1). When this happens it opens up the playlist file and tries to find a track marked playing. If not found (such as in the case of first starting the list) the first entry will be tagged with the number which was requested (n=1) and then served.

When the popcorn moves on to the second (or nth) track (n=2), the playlist file is re-opened and a diff is made between the previous known playing number (1) and our new playing number (2), then the appropriate “next” track is served. This means that at any time, I can completely shuffle up the order and it will be followed.

To rope in the ability to transition between the popcorn and the iPhone or laptop, I use a bit of jQuery and html 5 audio controls. (Yes, I upgraded my iPhone to iOS5 specifically for this purpose!) When tracks are playing locally, the playlist on the server continues to receive updates on the position, so that if I “start” the playlist again on the popcorn, my last playing track will be the first in the queue. I was also pleasantly surprised to find the iPod controls on my sound dock actually pass through to the html5 audio instance in mobile safari.

And that it. Here are some pics to prove I did this frankenbuild.

So after a couple months we’ve found really no use for the ad-hoc mode as implemented. We both didn’t really like going into the schedule screen to edit the temperature and it didn’t drop to “Auto” when completed, so the next day the thermostat would continue on the “Ad-Hoc” mode until we changed it back.

Turns out we really wanted these two features. 1) Quick adjustment of the current zone/time’s temperature, leaving the scheduled time intact, and 2) The ability to pause the thermostat for a couple hours while we’re out.

I’ve posted the new code, although it’s pretty similar to the last version just hacked around a bit to add the functionality. I also did a small video demo of the new feature and the harmony remote setup I forgot about earlier.

MVI_0004.AVI
View all photos at Picasa Web Albums

 

May 2013
M T W T F S S
« Jul    
 12345
6789101112
13141516171819
20212223242526
2728293031