Step 9: Assemble

Step 10: Strut

Put on The Asteroid Belt and strut. Pants ARE optional. No one is going to notice anything else after they see the LCD goodness in the belt buckle...

Lets start off with a FAQ

What is The Asteroid Belt?

It's a belt. It's a video game. It's ridiculously awesome.

Why is it made out of brass?

'Cause I am so steam-punk-pirate-zombie and brass is the shizzle.

Seriously though, I don't have a 3D printer, I don't have a laser cutter, I don't even have a 7 axis CNC VMC. I don't have a lot of options to make a case for something that looks cool.

What I do have is an Etchinator . As the saying goes “To a 10 year old child with a hammer, everything looks like a nail”

Will it help me pick up {chicks|twinks|bears}?

Unlike many of the belts shown around here that include an "arc reactor", The Asteroid Belt will not give you any super human powers. If you where unable to lift any of the above items before donning it, you will still be unable to pick them up now.

It costs more to build than a RasPi and only runs at 16Mhz. Why did you bother?

If you don't understand already there is little I can do to help you.

Realistically though, the AVR is enough to play some retro games and pulls a few mA. This will let the unit run for 10 to 20 hours depending on how high you set the backlight current. A RasPi would run for about 2 hours

Can I make one myself?

I am sure you could. All the files you need to do so are here. There are bitmaps of the mask for the brass case. There are gerbers for the PCB (step 3), a Bill of Materials (step 4) and there is a ZIP file with the source (step 8) and HEX of the game "Rock Blaster"

If you are planning on building one yourself it would be nice if you could send me a message so I know who is having a go.

Can you make one for me?

At this stage that would be a big negative. There are a lot of Instructables out there that seem like thinly veiled adds for a Kickstarter campaign. This is not one of them. It takes a lot of time to make one of these and it is unlikely there would ever be enough interest to "tool up" to mass produce them.

Never say never though. If 1000 people all moan at me at once I could be persuaded. Don't hold your breath though.

How much will it cost me to make my own?

The BOM in step 3 lists everything needed. The prices are what I pay here in Australia to get parts and do not include shipping. So obviously your mileage will vary. I would budget somewhere between 70 to 100 USD

Will it play any other games apart from "Rock Blaster"?

At this stage no.

In the future though, I am planing on making at least three more games for the belt -

A puzzle game - Quad-tris

A platform scroller - Awesome Antonio Cousins

A side scroll shooter - AVR Type (almost completed the engine)

Is there a published API if I want to write my own games?

Calling it an API would be glorifying it a bit much. There is standard calls for sprites, vectors, scrolling and sound though. If you do want to try write your own game then I am more than willing to help you along.

You said "sound". Is there a speaker hidden somewhere I missed?

That's very observant of you. There is actually no speaker yet. You will see there is a "speaker out" on the schematic. In fact all the other hardware and software for sound is present. I have so far been unable to find a speaker I like. When I do The Asteroid Belt will be able to beep and bong with the best of them.

Step 1: Doing three tricks for speed

While I am telling you the "why" about the first step, I may as well sneak in the other two speed up tricks. Just to keep them all in the same place.

Some of you out there may have hooked an LCD up to an Arduino and tried to write a video game. You will have found that the screen tore and you could not update the screen very fast. I have had to do three tricks/hacks to solve these problems and get a satisfying video game experience.

1, Frame Marker on the LCD

So to solve the screen tearing issue we need a "vertical-sync" or "frame-marker" signal. Unfortunately none of the cheap 16 bit LCD displays of eBay have FMark bonded out.

One thing I did notice on the cheap eBay LCDs is that they all had pin 21 on the 37 pin FPC marked as NC. More expensive displays I could buy with the same 37 pin FPC sometimes used Pin 21 for FMARK.

I took a punt and bought several LCDs from eBay. I got lucky at with one of them and Pin 21 went to an unpopulated resistor that had FMark connected to it.

The store that had a suitable LCD is called coldtears electronics. Note that not all LCDs can be modified this way. If anyone else has a known modifiable LCD then please leave a comment and I will update a list here of sources.

I was able to make a break out board for this LCD, solder in R3 on the FPC and hook it up with the mess of wires shown to get smooth moving picture display.

2, Saving clocks with diodes, resistors and capacitors.

The datasheet for the IL9238 shows that there should be a 5ns hold off time between Write-Strobe and Register-Select each going low or high.

Figure 01. shows how to connect a Schottky, a resistor and a capacitor to form a one way low pass filter. With this circuit in place the code can be reduced to the following and still keep the 5nS set-up/hold times

Figure 02. shows the resulting waveforms. The top trace is Register-Select and the bottom trace is Write-Strobe.

3, Pseudo DMA

In "Rock Blaster" the screen has to be cleared totally before each frame is drawn. With 320x240 pixels that is 76800 writes. With normal optimization and some slight loop unrolling that would take the CPU 1/90th of a second. That is 1/3 of the total time the CPU would be having to do nothing more that write out black pixels.

Seeing as writing out a single colour pixel is nothing more than toggling a pin, we can actually get the AVR hardware to help us out. If we hook up the Write-Strobe signal from the LCD to one of the AVRs Timer-Output-Compare pins we can just turn on an 8Mhz sqaure wave to clear the screen in exactly 153600 clocks and the CPU is free to run game logic. All we have to do is have another timer interrupt running to tell us when to stop the screen clear.

Now really onto the build

Step 2: Hacking the cheap eBay LCD to give FMark

There is not very much too this step at all, but it is fairly tricky. Mainly due to the 0402 sized resistor.

An 0402 resistor is 40 thousandth of an inch by 20 thousandth of an inch. That is 1mm x 0.5mm in metric. Anyway all you have to do in this step is get the suitable LCD from eBay and solder in a 1K0 resistor in the location called R3 as shown in the photo.

Step 3: Make the PCB

I have intentionally designed a large easy PCB. The components are 0805s, TQFPs and the like. Also the thinnest trace is 12 thou and the board is only double sided. Unfortunately the number of vias was unavoidable and you need to drill 60+ holes.

There are excellent tutorials on Instructables about making PCBs so I will only give a brief overview of the process.

Print the photo tool

Expose the board

Develop

Etch

Tin plate

Drill

The Gerbers and the gEDA PCB and schematic are included in the ZIP file here.

Step 4: Solder the components

Apart from the LCD and the battery, this is pretty straight forward.

As shown in Photo 01. the LCD FPC is soldered straight to the PCB. Do this by pre tinning the pads on the PCB. Then lay the FPC over the pads carefully aligning then. Finally lightly press each pad on the FPC on top of the PCB pad with the tip of the soldering iron. The solder will flow together.

The Samsung Galaxy S3 battery does not come with flying leads. So you will need to solder your own leads onto the battery. This is fairly easy, just be mindful not to overheat the battery when doing this.

Here is the BOM with Digikey part numbers for the items you can get there.

Also shown here in Photo 05. is the results of etching one side 50% more than the other. This has made the two "sides" 0.5mm and 0.2mm. This serves two purposes. Firstly the fold-line weakening is enhanced. Secondly it makes the buttons stand about 0.2mm proud of the surface.

Step 6: File the sides and fold up the case

Before the case can be folded up, the edges of the sides have to be filed to 45 degree bevels as shown in the 2nd photo. The outside edge of the bevel should be just inside the fold line. The top edge of the 45 degree bevel should be in line with the inside edge of the fold line.

The etched fold line makes the brass very easy to fold up. It is still a good idea to clamp the brass between two pieces of wood in a vice for the two long folds. This will give the weak sections around the LCD some support.

Step 7: Cutting the back plate

The back plate for the buckle needs to be made from 3mm thick Aluminium or Stainless.

Follow the template shown either in the PNG or the gerber.

I printed out the template onto some paper and then stuck this to the aluminium plate. I then used a hacksaw and file to cut the outside shape. I then chain-drilled and filed the loop for the belt. Finally I drilled and counter bored the holes for the screws that hold the front on.

Finally one last hole needs to be made for the belt hook. I drilled a 3mm hole. Then I cut a short length of 3mm Aluminium and placed it in the hole. I then used a ball peen hammed to rivet the hook into the hole. If you have a TIG welder then welding the peg would also be an option

Of course if you are lucky enough to have CNC equipment then knock yourself out. I chain drill and file because I have to, not because it's fun

Step 8: Program

Due to space restrictions there is no ISP header on the board. You need to solder 6 wires straight to the PCB. They are the normal order running away from the LCD

GND

VCC

Reset

SCK

MISO

MOSI

Program the HEX file as usual. The fuses should be set for +8mhz-xtal, no-BOD, no-CKOUT, no-WDT.

Step 9: Assemble

The standoffs are too long and need to be cut to length. The threaded standoffs need to be reduced to 3.6mm and the unthreaded ones need to be reduced from 6.4mm to 5.6mm. Hacksaw and file as necessary.

Once the correct length, you need to glue 4 stand offs into the 4 recesses in the back of the brass. These line up the the 4 x 3mm drill holes in the back plate.

The back of each brass button needs a 2.7mm spacer glued to it so it can reach the PCB switch below. I have used some thick double sided tape and offcuts of FR4 PCB material (photo 10). The combination of tape and PCB added up nicely to the needed spacer. The tape also aids in holding the buttons while assembling.

After the glue has dried you just need to do final assembly.

Place the brass box upside down on the table. Place the three brass switches in their cutouts. Slide the electronics into the brass box, USB connector first. Place the four 5.4mm spacers where the screws will attach to the stand offs. Attach the base and tighten the four 15mm M3 screws.

Attach your belt to the loop, as you would any less awesome detachable belt buckle.

Step 10: Strut

Put on The Asteroid Belt and strut.

Pants ARE optional. No one is going to notice anything else after they see the LCD goodness in the belt buckle.

Seriously sickened by the main photo & the fact that Instructables have left it as-is. Yet we wonder why more women don't get into anything technologically related. Because they're still viewed/treated like this in the workplace. Pardon me while I go projectile puke.

My mistake, I apologize. I didn't see the fine print, which reads 'To new members of Instructables: if you haven't published anything, keep your mouth shut because your opinion on this public forum means nothing otherwise. Our community doesn't take such members seriously under any circumstances'. Click-baiting using photos such as this obviously takes far more talent or imagination than I possess.

I assume the PCB was entirely homebrew? Care to share your through-hole and tin plating methods? I notice you plate after you drill and etch (According to your steps), I am very interested you see you plating process, that board looks fantastic!

regardless of your views on the main pic...It worked lol. This instructable came out on the 29th of April, and on the 3rd of May it's got over 60,000 views! Some instructables don't rack that many views in 2 years.

Sex sells...that concept is universal, but I did think the idea was cunning... :P

I agree!! This is awesome!!here is a thought.. what if you could take the same game belt buckle where it detached from the buckle to play and then slides back on.. I have a lighter belt buckle that does that.. the lighter slips out and then black in when done. now THAT would be a hot seller!! :) Best wishes!!

gosh I am trying to think of where a resource would be other than my belt buckle I have. Let me hunt around and I will post the URL I come up with for you. :) I hope you do this!! I love to see people create such fun things and hey, a little money off of it wouldn't hurt either ;)

A removable buckle could be managed pretty cheaply and easily - you could just have one of those buckles that presses down to grip the belt (often used with webbing belts) and hold the game on top with rare-earth magnets. They would be strong enough to take everyday use but the game would just snap on and off.

ok found a URL that is the same exact removable lighter belt buckle I have http://www.thesixthspace.com/classic-pattern-removable-lighter-plum-men-belt-buckle.html I hope this helps you.. or you can just go off this concept I guess. :)

if you are referring to my user name, i have never climbed a mountain in the traditional sense, but i live in the Appalachian mountain range (West Virginia to be exact) i was born here, raised here, and I'll more than likely die here, therefor, i am a mountaineer. Anyway, now that my rant is over I'll be serious, wouldn't it be awesome to be able to easily play Super Mario World or Metroid Fusion on a belt buckle?

sorry about the rant, i didn't mean anything by it. and yea i wouldn't mind doing it, but funds are very limited for me so it will have to wait. i only thought of this because making a brass case is probably the only thing i could do. i do know my way around a soldering iron, but that's about as far as my electronics knowledge goes.