Tech Tear Down – Computer Part 1: CD-ROM Drive

computer altogether

Finally I have a rather ambitious Tech Tear Down: an entire computer desktop case! It was sitting in the basement waiting to be disposed of, so naturally I decided to take it apart. The computer is a Dell Inspiron that runs Windows 7. I’m not sure why it was junked; I think there was some kind hardware problem. Because it has so many components inside, I’m dividing this TTD into a bunch of parts.  First off is the CD-ROM drive!

The computer actually had two different CD- ROM drives. One of them was just a readable CD-ROM drive, and the other one was read/writeable, allowing you to burn CDs. Since both drives were still in working condition within the computer, I took apart the readable drive, and kept the read/write one to save in case I need to replace one in the future or maybe even build my own computer (or add it to my RasPi)!

The CD-ROM drives, each a metal rectangular box, had their own cubby in the computer case. They’re connected to the motherboard by just a ribbon cable. In the above picture, you can see the space in the case that they took up.

It was easy to take apart. The first thing to do was remove the metal casing on the back with a screwdriver. The rest of the components inside were either snapped or screwed in place, so it was just a matter of making good use of my screwdriver. The ‘motherboard’ PCB was right on top, with assorted ribbon cables connecting to the laser and the three motors. One motor ejects and closes the CD holder in a system of slides and gears, one spins the CD inside for the laser to read, and one moves the laser up and down using a screw mechanism.


motors in a CD-ROM drivehardware overview of cd-rom drive motherboardcd-rom opened

Because I didn’t break or damage anything, I could theoretically put the whole disk drive back together again, but I don’t think that’ll happen. I found one of my mom’s long lost classical music CDs that was left in one of the drives. Luckily I like take stuff apart otherwise she would have lost it permanently! 🙂


My Recommended List of Coding Applications and Cloud Software

There’s a large number of different cloud based coding related websites and apps out there that can help make it easier to write, share, and run your code. Here’s a short list of websites and free software that I would recommend!

Codeshare – Codeshare is a cloud based site that allows you to share your code easily through a link. It’s also neat because it will update every time you change the code, so you can share in real-time without hassle. It’s also fun to change the syntactical highlight color scheme. I use Codeshare to share my Python code!

codeshare img

Enthought Canopy – Canopy is a full-fledged Python IDE that is intended for scientific and data analysis programming, that you install on your computer. I found out about it through MIT’s CS and Programming with Python MOOC that I’m currently taking through EdX. My computer has always had a problem with Python’s IDLE and running programs, but Canopy provides a Python IDE that is not dependent on IDLE. The free version is great for an IDLE substitute, especially when IDLE isn’t working.

canopy img

Codecademy – Codecademy is one of the best ways to learn to code! It’s simple and completely cloud-based, so it’s easy to get started. There’s quite a few languages to pick from, plus it’s good if you need a brush-up on a specific language.

codecademy image – is cloud based terminal editor that allows you to use the shells for a ton of different languages, from Python and Ruby to C++ and PHP. It’s great for function testing, experimenting, and learning on the fly or when you don’t have a language installed on your computer. img

Drive Notepad – If you have a Google account, you can use this simple but useful app to create code files within your Google Drive. It’s just like Microsoft Notepad, but it has syntactical highlights, and it’s in the cloud. I use it to back up code files. Drive Notepad’s only drawback is that you currently can’t share files.

drive notepad img

So these are a few of the apps I use on a regular basis. If you have any other apps or software that you use that I missed here, please feel free to comment about them!

You can probably tell from all the screenshots above that I’m biased toward Python. 🙂

Breadboard Videogame Controller + Pygame Rectangle Animation

controller up closeI was inspired to work on a homemade videogame controller for my Raspberry Pi using a breadboard after taking apart two old video game controllers and seeing another maker’s idea. A breadboard with buttons in the right spot makes a controller that fits quite nicely in your hand.

My design included two four-way keypads on either side of the breadboard plus two extra buttons in the center to serve as maybe ‘start’ or ‘pause’ buttons. I also added two indicator LEDs that can be used for various purposes. Wiring it was a bit difficult, as I had to keep wires out of the way of the buttons. I ended up connecting the button signals (they’re all pull-downs) to the center of the breadboard, and running jumper wires from there to another breadboard, connected to my Raspberry Pi. I tested the controller with a few simple Python programs and verified that it works. The pic below shows the controller next to the Pi breadboard.100_4257

To put it to practical purposes, I made a simple Python program with Pygame that makes abstract art with rectangles. Basically, running the program opens a window where various sized rectangles are placed randomly on the screen every 0.1 seconds. Pressing the keypad buttons changes the rectangle colors, and pressing one of the center buttons saves the image. Unfortunately, Pygame saves images in .tga format, which I am trying to currently convert to .jpg or .png format so I can share the images.

You can see in the image below the whole controller and how it connects to the Pi. You can also see part of my monitor, which has the rectangle animation program open.100_4255

Here’s the code for the controller version on my Pi. There’s comments and more information.

I also made another version of my Abstract Art/Rectangles/Generator/Animation (not sure what to call it) that doesn’t use my controller, just a mouse if you want to test it out on your Pi (Pygame is installed by default in Raspbian).

Now I have to actually make a game for my controller! That will be a challenge. I might program it to control Minecraft on the Pi.


I figured out how to save images in Pygame in .png and .jpg format. In the code, you just have to add the file suffix to the save file name, so that it doesn’t save as the default .tga. I’ve updated the code links above to reflect the change. Here’s an image generated by the mouse version of the rectangle animation. rectangles0

Tech Tear Down – Dehumidifier PCBs

My mom is obsessed with dehumidifiers. When one of the three in the house stopped working (it was old and in bad shape when we got it, so it was no surprise that it broke) I of course jumped on the opportunity to tear it up, even though my mom was upset. It was already partially apart when I got it, because my dad had been trying to fix it. I was most interested in the two PCBs inside.dehumidifer_pcb_diagram

One was the control board, attached near the top of the unit, that you could adjust the dehumidifier settings, such as the on/off time, desired humidity level, and fan speed. Another PCB buried deep within served to connect the rest of the mechanical parts of the unit to power. There’s some relays, a large cylindrical electrolytic cap, an even larger ‘boxy’ cap, and a transistor with a heat sink.

dehumidifier pcb large capAnd finally, here’s a pic of my dog, Denver, next to the humidifier torn apart. The dehumidifier is medium sized as far as dehumidifiers go.

dehumdifier with denver