How to upgrade the Xbox One hard drive

My Xbox One came with a 500GB hard drive. It’s not that fast, so I used a USB3 SSD for games instead. Recently though, I’ve started to notice how loud the hard drive is (it’s the loudest thing in my entertainment system), so I decided I wanted to replace it with an SSD.

I tried following some instructions and running a script from a github repo, but that method didn’t work for me. I was looking around the web and the only place I found another method mentioned was a youtube comment on a tutorial video that used the method from github. 100% of the credit for this method goes to Skyliinez92 on youtube. I just felt that a more easily linkable, more permanent place for this information would be nice.

I would recommend having a disk larger than the one currently in your xbox for the upgrade. It’s possible to go down in size, but doing that safely is more difficult.

I’m not gonna explain how to open your xbox one, there are plenty of guides out there. The best one is probably on ifixit here.

When you have the hard drive out, you can proceed.
There are 2 tools to use, both are free. Clonezilla and GParted.

First up is Clonezilla. Download the live cd and burn it (or use unetbootin and put the image on a thumbdrive). Boot to the live CD with your original xbox one hard disk and the new hard disk attached. I recommend disconnecting all other hard drives to avoid any risk of data loss.

Start clonezilla. Choose device-to-device.

2016-11-08 12.01.02.jpg

expert mode:

2016-11-08 12.01.11.jpg

disk to local disk:

2016-11-08 12.01.16.jpg

choose the correct source disk, then the correct target disk. Make sure you get this right, since you really don’t want to erase your xbox one drive at this point.

skip fs checking:2016-11-08 12.10.09.jpg

use the partition table from the source disk:

2016-11-08 12.10.13.jpg

At this point you should get a lot of confirmations making sure you’re not overwriting stuff you care about. Then you should get a progress dialog. My 500GB drive took with a little data on it took less than 2 hours. It shouldn’t take very long.

If you’re just replacing your drive with one of the same size, your drive is done, scroll down to the “Testing your drive” section.

If you replaced your drive with a larger one, you now need to boot into gparted. I would disconnect your xbox one hard drive now, just to leave it alone. Put it in a safe place and don’t lose it. There’s always a small chance an update could break the xbox with an upgraded drive, so hanging on to your original is the best way to not end up with a brick.

 

Boot into the gparted live cd. go through all the keymap stuff, you probably want all the default options. once the UI is loaded, launch gparted. In the upper right, select the new xbox one hard drive. There should be 5 partitions, it should look a lot like this (though note I modified this one to be smaller than the original 500GB disk):2016-11-08 12.13.56.jpg

you need to move the 3 System partitions to the end of the disk, 1 at a time. Click the last partition, resize / move to the end of the free space, then do the same with the middle system partition, then the first one. You might get a warning like this, that’s ok:2016-11-08 12.14.11.jpg

at this point your disk should look similar to this:

2016-11-08 12.14.35.jpg

Now resize / move the User Content partition, and resize it to fill all the available space. Now you can click apply, and these operations will be performed. It might take another hour or two, once that’s done, shut down gparted and put the drive back into your xbox.

Testing your drive

Now that your drive is prepared, I’d recommend testing it in your xbox before putting everything back together. I put the drive back in and connected it, but didn’t screw it back together. I hooked up the wireless card and the antenna (though the latter isn’t absolutely necessary). The top case with the power button is difficult to put back on, I wouldn’t for testing. Since the power button is capacitive, you can just touch the right spot on the connector and the xbox will power on. Check out a video of this here.

Give it a few minutes to boot, hopefully you’re all set. Good luck!

Tiny CRT Display

I had an old camcorder that was pretty useless. It used VHS tapes (so it was HUGE), but it also didn’t work properly and would eat the tapes sometimes. I decided to take it apart to see if I could do anything cool with it. I found that the viewfinder was a tiny CRT display. I tried to hook it up externally to use it as a display, but I didn’t know much at this point (I was maybe 13 or 14) and probably fried it. I later read online that a lot of video cameras with old CRT viewfinders just took composite video and power for input. I went to the local freecycle forum and got an old camcorder with a CRT viewfinder. I took it apart and took out the viewfinder.DSC_0374This thing is tiny. I think it’s around 0.5″ across. I figured out the pinout of the driver board and hooked it up to 5v and composite video, and it worked great. I wired up a 5v regulator to a 9v battery clip, as well as a 5v input on a molex connector, and wired on a composite video lead.DSC_0365

DSC_0378

 

My mom was doing a photography contest where the theme was minaturization, so I made a little cutout of a old TV and we took a couple pictures:

DSC_0387

Skylark Headlights

Since I was driving an old car, I figured why not have some fun and modify it a little. I always thought the LED outline of the Audi headlights looked sweet, so I set out to put some on this car. I got some 12v white LED strip online. I soldered wire to the ends, the covered the exposed bit in hot glue and heat shrink for some waterproofing.

2012-09-08 20.05.35I also wanted a bend in each of the headlights, so I cut the strip to size and soldered a couple wires at the angle I wanted, again covering it in hot glue and heat shrink.

2012-09-08 20.05.27This is what the car looked like before with its park lights on:2012-09-08 20.11.28This is after:

2012-09-08 21.19.19Not quite as bright during the day:

2012-09-09 14.00.52

These lights worked great and stayed on the car through a Michigan winter before the car broke beyond repair (brake line rusted through).

Skylark Automatic Passenger Window

A couple summers ago I was driving a 1996 Buick Skylark. Unfortunately it’s air conditioning was broken, so since it was hot out, I would immediately roll down both front windows when I got in the car. I’m kind of impatient, and the passenger side window was really slow. I got tired of holding the button down for a good 8 seconds every time I got in the car, so I decided I’d add an automatic down button just like the driver side window had.

I took out the window control unit, added a relay and a 555 circuit set to run for about 9 seconds to the control unit, a second relay to move the driver auto down button for convenience, and the two buttons.

IMG_20120603_014348 IMG_20120603_014335 IMG_20120603_014400

 

It worked pretty well for the rest of the time I had the car. Only problem is that it would sometimes trigger accidentally when the car was turned on. I added a bit to the circuit that really cut down on this, but it still happened rarely. I eventually had to replace both front window motors because they stopped working due to age (which is also why the passenger window was slow in the first place).

ADM3A – ancient dumb terminal

A very long time ago, on take your child to work day, I went to my mom’s office. I got some stickers for something, then I traded them for this dumb terminal (they were award points for something at the office). This is an ADM3A, from 1977. It is all discreet logic chips, no major integrated circuits. This terminal is where the HJKL navigation keys in vi come from (vi was written on one and those keys have arrows on them on its keyboard). It’s also where the ~ = home directory in unix comes from as well, the ~ key is also the home key.Image

About 8 years ago, I thought it’d be a fun challenge to get this thing on the internet. I found an old laptop with a serial port, put linux on it, and configured it to use the serial port as a console. I ended up getting it online, and on IRC and Google Talk.

I found this terminal again recently, and wanted to get it back online so I could snag a pic of it on retro.hackaday.com. Unfortunately, it didn’t seem to work anymore. I took a look at it, and the part that failed turned out to be the big clunking mechanical power switch. It had gotten dirty and corroded. I took the switch apart and cleaned it out, and now it works again. Amazing for almost 37 year old electronics.

This time, however, I didn’t have a laptop with a serial port handy, so I made a MAX232 serial adapter for a raspberry pi and hooked the pi up to the terminal. The serial adapter is just a typical MAX232 circuit, I pulled it right out of the datasheet, page 7. You can get these things on ebay for a couple bucks, but I had a couple MAX232 lying around and I figured I could put a header for the pi right on the board, instead of having to make an adapter cable. I only bothered to hook up the tx and rx lines, I skipped DTR and CTR. I used a standard serial port header like motherboards used to have for the serial connection, so I could easily swap between 25 pin serial (which the adm3a has) and 9 pin serial. I had a bunch of the serial port header cables on hand as well.

Here are a couple pictures of the adapter:

ImageImage

On the software side, the pi is running Wheezy. This serial terminal runs at a max speed of 19200 baud, but I went with 9600 baud (because it’s a common default). The pi had a lot of config for using a serial terminal at 115200 baud. I got most of my information from this article describing how to use the pi as a serial terminal and what to disable to prevent it being a serial host.

In /boot/cmdline.txt, I made sure console and kgdboc (kernel debugging) were set to the serial port on the header and to the right speed

console=ttyAMA0,9600 kgdboc=ttyAMA0,9600

In /etc/inittab, I changed the getty line for the serial port to the right speed, and defined the term as adm3a, since the adm3a predates the vt100, isn’t fully compatible, and has different control characters (e.g. the arrow keys on hjkl. the only way to delete characters is ^h).

#Spawn a getty on Raspberry Pi serial line
T0:23:respawn:/sbin/getty -L ttyAMA0 9600 adm3a

I added a TERMINFO location definition to my .bashrc

# set terminfo location to location with adm3a
TERMINFO=/usr/share/terminfo

I was a little surprised to find that Wheezy still includes terminfo definitions for terminals this old (and older). The terminfo directory is 6.5MB.

After these changes and a reboot, the pi printed its console correctly to the terminal, with lots of beeping too.
Some programs don’t run very well on the terminal, anything that tries to do color just has all of its control characters displayed on the screen. lynx was unusable without the correct terminal definition.

Image

Flip Top Xbox 360

I made a flip top Xbox 360. Other than the flip top, it is completely stock. At first, this seems rather useless, because you can’t do swap tricks or anything similar like you could with older consoles (e.g. PS2, PS1). You can’t play burned games or anything with this console either. It’s good for a single thing: avoiding buying a second copy of a game to play it on a second console. It’d be great for LAN parties. I use it for achievements.

In Halo 4, there’s one where you need to beat the campaign on co-op. None of my friends had Halo 4 at the time, and there’s no matchmaking for campaign in Halo 4. So I just fired up this console with Halo 4 and had it join my game on my main console and did coop by myself, but I didn’t have to split screen.

Here’s how it works: the 360 lets you install games to the hard drive, which saves wear and tear on the laser, and makes the console much much quieter during use. When a game is installed, you still need to put the disc in the tray, so you can’t rent a game, install it, then return it and still be able to play it. If you have a scratched disc, but the console still recognizes it as the game, you can borrow a working disc and install that, then just use your scratched disc to launch the game. The cool thing is that the console only checks the disc during boot (and for a minute or two after boot). So I can install the game, then boot it, then open the flip top and pull out the game (without the console knowing the drive opened) and put the game in a different xbox. If the console knows the drive opened, it goes right back to the dashboard.

Here’s what the console looks like:
2012-12-09 01.06.02

I used parts from a local hardware store, and unfortunately that know was the smallest I could find.. That’s the only thing I really dislike about this mod.

Here’s the front of the xbox:

2012-12-09 01.06.18

I had to cut the plastic that goes over the front of the DVD tray because the top of the DVD drive hit that on the way out. As it is, the top of the DVD drive barely clears the faceplate.

This is the top of the xbox with the flip cover opened:

2012-12-09 01.06.39

I made this as simple as possible. I cut the top of the DVD drive off the rest of the DVD drive housing. I left some tabs on the sides to help align the top when I close the cover. The black plastic circle on the top of the drive is what holds the disc in place (and it doesn’t touch the rest of the DVD drive top cover when the top is closed). A magnet holds it in place and makes sure the spindle has a good coupling with the disc. There’s (thankfully) a lot of play in the mount for it, so I didn’t need to get everything lined up exactly.

Here’s a close up of the flip top:

2012-12-09 01.06.49

You can start to see some of the finer details here. The top of the 360 case has some little plastic standoffs that go over pegs ont he front of the DVD drive. When I cut out the flip top, I left those on the actual flip part because they will help align the flip top when it’s closed (this is why there are two ‘ears’ at the front of the flip top). I used some standoffs and hot glued the plastic top to the DVD drive top while everything was closed and lined up. Then I drilled 4 holes and put some screws and plastic spacers in place to really hold the pieces together. I used a screw in each of the hinges, and two screws near the front of the drive (one on each side).

I made this a while ago and it’s held up without issue. I’ve also never had any problems with a game trying to load more data from the disc when it’s no longer in the drive.

Intervalometer

This was a very quick project I did to explore time lapse photography. An intervalometer basically sends out signals to a camera to tell it to take a picture at a repeated interval. Mine is currently set to take a picture every 30 seconds. I just used an Arduino library I found that did all the work for me. I had to write maybe a line or two of code, and the circuit is dead simple, an IR led, resistor, and a wire. I recovered the IR LED from a TV remote that had lost its TV. One of the coolest parts of this is that I don’t have to modify the camera in any way, the Arduino just emulates a Nikon remote. The camera is also completely electrically isolated from the Arduino, so if I messed up at all, there is no risk at all to the camera.

I set the camera up to do a time lapse of my backyard, but I have no way to power the camera other than a battery, so it doesn’t work so well. I’ll upload a video here once I’m done editing it.

Here’s a couple pictures:

Camera and Arduino set up

Arduino and the circuit.