Monday, November 23, 2009

Project Schematic

I'm working on a project using the Telit GE864 chip, and have been having a hard time learning PCB design software so I can make the schematic for my circuit.

I went back and forth between PCB123, ExpressPCB, and CadSoft Eagle. Although PCB123 and ExpressPCB seem like fine products, I eventually settled on Eagle because the others are proprietary. If I designed my schematic and board with their software, I had to buy from them (I think one of them has a free pizza offer when you order a board, which was tempting, but didn't quite seal the deal). And, from what I understand, Eagle is used in industry, so I figured it would be good to get familiar with it anyway.

My trouble was, I had never designed a schematic around a chip before. The only experience I had was designing simple circuits in MicroCap with simple components (resistors, capacitors, diodes, power/ current sources, etc), but nothing with an actual chip.

I recognize "the cloud" as an invaluable resource for engineering/ programming help. I registered for the forums on Sparkfun. Within 30 minutes, I had a reply. Within an hour, I had my solution. Someone pointed me in the direction of the Sparkfun tutorials, which are immensely helpful. This one, in particular, described how to create a breakout board in Eagle. . . . which is EXACTLY what I needed to do.

I found that instead of creating the library for the chip I want to use, I could just download the one the geniuses at Sparkfun had already created. While this simplifies my task greatly, it still leaves a great deal to be learned, which I completely appreciate!

Now I'm researching more on the chip and deciding what type of power supply I want to use. I may just design schematics for all of the suggested supply circuits in the GE864's instruction manual, for more experience with Eagle.

I'm very excited right now!

Monday, November 16, 2009

The Debate Over Software Patents. . .

I found this debate pretty interesting. Recently, there has been some controversy about the validity of patenting processes, which would directly affect software patents as well. The argument is that, since software is, in its most basic sense, purely mathematical, that it cannot be patented.

If this argument is upheld, I'm unsure of the repercussions for the world at large, but two things are for certain: Microsoft and Apple would be VERY unhappy, and the term "open-source software" would become a redundant phrase.

Since I have aspirations of becoming a patent attorney dealing with technology of this sort, I feel that this news directly affects me. I may have to adjust my career goals lol!

Here's the article I read.

Wednesday, October 28, 2009

Replacing a Zune 80 glass screen

My Zune has a history of breaking itself while I'm fixing it. Last time I took it apart, I got it to WORK again, but cracked the screen. This weekend when I was in a portable-electronics-screen-buying-and-replacing mood, I decided I'd grab a Zune glass as well.

So, let's get started. For the sake of completeness, I'll go through the entire process, even though it's partially documented here.

Required
  • Zune 80/ 120 (I guess the HDD size doesn't matter. Second generation or above, non-flash, non-HD (where HD stands for High Def, not Hard Drive))
  • New screen
  • T4 screwdriver
  • Tiny electronics flat head screwdriver (I prefer size 2.5 - 4.5) or a case opener tool


Procedure
  1. Remove the plastic clip from the top of the Zune with the flat screwdriver or case opener tool
  2. Unscrew the two T4 screws at the top of the Zune



  3. Carefully, take the flat head screwdriver and gently pry, starting at the top where you just removed the T4 screws, and work your way all the way around. What you're doing here is undoing the clips all around the casing. **This is the part where I cracked my screen last time**
  4. At this point, you should be able to remove the entire aluminum back, and see the Zune's nasty internals.








  5. Remove all that #$%@ tape!
  6. Take out the 6 screws holding down the motherboard. There are three pairs, each pair is a different size. Keep them in order! *Note - when you take out the screws on the side, a metal clip will also come loose.













  7. For safety's sake, I removed the hard drive at this point. Lift the black flap on the ribbon cable connector. Use the flat head screwdriver to gently pry this up. Start from one end, and work your way to the other. This is a long tab, and will likely take more than one (probably two) pry-points to lift. (I know the picture shows the screwdriver in the middle. . . . disregard that :-|. . . . it was only for illustration's sake)













  8. Now, gently pry the board up with the flat screwdriver. Go evenly and CAREFULLY all the way around until you can lift the motherboard out of the case.







Whew. . . . now for the hard part.
Removing the Glass Screen from the casing
I won't post the failed attempts and pictures of me trying to get this glass out; I don't wanna upset those who get queasy at the sight of blood. . . .

Nah, just kidding. Bud it did take me some time to figure this out. The glass is held in with a strong adhesive. I tried pushing it out, scoring around the edges, and prying. Some of these worked better than other, then I realized that I could just heat it up with my heat gun! Then I realized that I don't have a heat gun. Then I realized that my wife does!

HA! lookit the guy on the box



Apply heat to both sides, pressing the glass out every so often. After the adhesive melts enough, you're in business!

Remove the white tape from the new glass, replace the old one with it, and heat to activate the new adhesive. Put everything back together, and you're in there like swimwear!. . .

. . . . unless you put the hard drive ribbon cable on backwards. In which case, you'll get this screen. Fix it, and you'll get this one!

Sunday, October 25, 2009

Replacing an iPhone 3G glass screen

So lemme tell you about my crappy weekend. It all started Thursday night. I had just come back from a lovely night out with the Missus. I took my iPhone out of my pocket and threw it down on the bed. Unfortunately, I missed the welcoming, soft mattress, and hit the cold, hard, unforgiving wooden corner of the bed. The result: a shattered glass screen AND LCD.

To make a long, sad story short, I just opted to buy a new iPhone from the Apple store for $199 the next day instead of paying $150 for new glass and LCD. I traded them the broken one and they gave me the discounted price. I was in a rush when I left the store, so I couldn't stop by Micro Center and buy myself any screen protectors. And I wasn't going to pay the ridiculous prices for any accessories in the Apple store. I didn't want my screen to get smudged, so I didn't put it in the old case I had. So I just went home, happy with my new, unprotected iPhone.

Saturday, I was with my 2-year old nephew. I leaned over to pick him up, and out of my shirt pocket slides my brand new iPhone 3G (no S), kissing the cement floor face first. The result:



So, in a matter of 2 days, I had managed to destroy two iPhone screens. This time, since it was just the glass, I just bought it and decided to install it myself. Here's how:

Required:
  • Broken iPhone 3G or 3GS (The glass and LCD are separate on the 3G models. On the OG, they're glued together, making replacement difficult)
  • Replacement glass screen
  • Flat head screwdriver, size 1.5 (or a case opener tool if you're so fortunate to have one)
  • Phillips screwdriver, size 000

Procedure:
  1. Turn off the phone. This is to prevent shorting of any circuitry once we start digging in the iPhone's guts.
  2. Using the Phillips 000, remove the two screws from the bottom of the iPhone
  3. Use the 1.5 flat head screwdriver or the case opener tool to pry the screen up. Place the blade in between the chrome and the glass and separate the screen and LCD assembly from the back of the case.
  4. Carefully tilt the screen/ LCD assembly up so you can see the numbered connections on the board. They are numbered 1, 2, 3. Remove these from the board in order. 1 and 2 are relatively straightforward, just use the flat screwdriver to pry them loose. The connector for 3 has a tab you must lift before it slides out. Proceed carefully.
  5. Once the cables are disconnected, we can separate the LCD from the glass. Using the 000PH, remove the 5 screws indicated in the picture below. Some are covered with black tape, so you'll have to remove that.












  6. Slide, then lift the LCD out of the glass. If you lift it without sliding, you may bend or break parts of the assembly.







  7. Replace the broken glass with the new one, replacing all the screws in their proper places.
  8. Reconnect the ribbon cables.
  9. Slide the glass/ LCD assembly back onto the phone's back.
  10. Replace the two screws.
  11. Use protection! Don't wanna get burned again. . . 




Wednesday, October 14, 2009

Microsoft Interview Results

I got an email from Microsoft today. Although I knew I didn't perform well on the phone/ LiveMeeting interview last Friday, there was still that small bit of hope that maybe I displayed something that they liked. . .

The Microsoft interview is easily the most grueling technical interview I've ever endured. But it was also the most FUN! (Speaking of the process in Redmond). The problems given are designed to make you think, and they sure do. I understand that they don't expect a candidate to get the problem 100% correct right off the bat (or at all, for that matter). They're really observing problem solving skills. My head hurt so bad after that interview, I went back to the hotel and just slept for like 5 hours. Then I got up and went to the bar.

This phone interview is my third meeting with Msft. I had a preliminary interview at a national convention this past March, and was flown to Redmond the next month. I thought I gave the performance of a lifetime on the six (6) (yes, s-i-x) interviews I had that day. I left Redmond feeling really good about my chances, but was sorely disappointed a couple of day later. That was a really tough disappointment - I did my absolute best, and it was still not good enough. Eventually, I got over it and decided to reapply as soon as I was eligible again.

Back to the present. . .

As I opened the email, I braced myself for the imminent rejection, expecting to see an "unfortunately" right near the beginning. When I got to the fourth sentence, and there was still no "unfortunately," that little bit of hope began to shine brighter.

And then I read the second half of the fourth sentence:

we will be pursuing other candidates whose background and abilities more closely match our needs at this time.

And things quickly went back to normal. The world didn't end. As I said, I knew I didn't perform very well in this one. I'm not upset or discouraged; but I know what I have to do now. I'm on a mission to become a better programmer. I have dedicated myself to learning as much programming as I can. I'm going to immerse myself in so much code that by the time I'm eligible to interview again, I will be able to better display what I know, and be the ideal candidate.

Here's the problem I was given. . .

For an array of size n, choose the range of numbers which yields the greatest possible sum.





For this one, it happens to be array[0] through array[6], which equals 23. 
But these are just random numbers I came up with for this example. It doesn't always end up where it is the entire range.


I managed to explain a brute-force method of finding the solution. But drew a blank when asked to describe the efficiency of it using Big-Oh notation. So, I faltered there. Anyway, I have been working on my CS basics, so that should be sharper next time around. 

Very sleepy now. Good night!

PSP Programming

Still very excited about learning PSP Programming. Today, I completed another tutorial, which dealt with outputting different colors and formatted text to the screen.

Although right now, I'm just following steps, it's still a great learning experience. I'm commenting my code so that I can look back at it and tell what each block does. These tutorials are really good. I wish they were available in a nice little PDF instead of just on the website.

Here's the tutorial I did today. The final product is an application that looks like this


RED: 0
GREEN: 0
BLUE: 0














And using the direction pad, I can control the values of Red, Green, and Blue, respectively. As the values change, the number updates, and the background color changes accordingly.

My wife humored me by telling me how "cool" it was. She's obviously very good with children :-).

Monday, October 5, 2009

PSP Programming Progress


Hello World.










That phrase has never looked so good to me. Those 12 tiny characters in the top left corner of my PSP (Playstation Portable) screen represent, to me, a level of achievement I have been (mostly half-heartedly) trying to reach for over 3 years.

In 2006, I first began my interest in PSP Programming. I downloaded Cygwin (the Linux environment emulator for Windows), but had some trouble when compiling the PSP toolchain. I put it down and didn't resume again until 2008. I tinkered and read about it for a couple of weeks, then the same thing happened, and I again brushed it aside.

This time, I dug really deep, researched the exact problem I was having, and found a way around it. Apparently, the toolchain is broken, and I had to either download someone else's entire Cygwin setup, which already had the PSP Toolchain compiled, or download a precompiled solution. I opted for the first, then read a quick "Hello World" tutorial, and was up and running!

I know "Hello World" is generally hardly a means for celebration, but this has truly brought me some joy lol. . . . it's the little things. I'm especially happy that I got this accomplished just after one day of REALLY deciding to put my mind to getting this done. My goal for this week was to have a PSP development environment set up. Now that I've gotten that accomplished on MONDAY, I have to set a new goal lol.

Now to make it do something useful!