How to build a flatland BMX bike

A flatland BMX is a little different from any other type of BMX. The mods that make it great for doing tricks make it essentially useless for any other purpose. Even a polo bike (stay tuned for “How to build a polo bike!”), with it’s silly low gear ratio, can be ridden to and from the court. A flat bike, not so much. Nevertheless, it’s a unique and loveable style and a great way to waste time.

Here are the basics:

  • Low gear ratio, like 2:1
  • Short top tube
  • Short chain stays
  • 4 pegs
  • Slick, sticky tires
  • A freecoaster rear hub
  • A seat that you can grab on to.
  • Of these, the 4 pegs are probably the most important thing. Everything else is negotiable, but it all goes towards helping you lay down sick moves.

Now let’s have a look at my old bike, which is about to undergo some major surgery. A white street style BMX with red and blue accents leaning against a tree


My first bike, built myself with considerable help from friends. I loved it very much, especially the paint scheme, but it’s time to upgrade. The main thing with this beast is that it weighs about 9000 pounds, and the 21-inch top tube makes it about as maneuverable as a Lincoln Continental.

I stripped it down to cannibalize some parts:

  • Handlebars (The dip in the middle is nice for your knees)
  • Wheels (Nankai freecoaster rear hub)
  • Seat (grabbable plastic bottom)
  • Cranks (ugh)
  • Chain (red!)
  • And stem (low offset – it is good not to have long levers sticking out from your center of rotation)

Then I got some new bits:

 A fork, sprocket,headset, and bottom bracket

  • Frame – Zion Low-Kee, a flatland specific frame with an 18.1″ top tube, short chainstays and a very un-slack headtube.
  • Fork – KHE Tanaka, with zero offset (again, keep everything close to your center of rotation)
  • Ronin sprocket – 21 teeth, both for the low gear ratio, and to keep the teeth from chewing up the frame.
  • Headset and BB, both from 1664. Nothing special, but satisfactory.


With all the parts assembled, and a clean, tidy workspace, start bashing stuff together.

Unfortunately, I forgot to take pictures of the assembly process. But there are lots of resources for that, where much smarter people will explain how to do things properly. Start with the bible.

The only things on a flatland bike that are difficult/non obvious to assemble are the headset and bb. Before you start bashing on the bearings with a hammer, try this:

a makeshift headset press with a big bolt and some washers.

Observe: a big bolt and a bunch of washers. Works like a charm. Or you could spend some money on a proper headset press, but that’s just crazy talk.

Several cuts and bruises later, you should arrive with something like this.

picture of a finished flatland bike.
Kindergarten Style!

Get a rad dude with a nicer camera than yours to photograph it, then go ride it til breaks. Good luck!







In Transit

Screw you world, I finished a project



It is a moderately useful Android app that you are welcome to download from here. The app does some very simple math – given the size of an engine, the maximum RPM of the engine, and the volumetric efficiency of the engine, it tells you what CFM value you need when shopping for a carburetor. CFM stands for Cubic Feet per Minute.

I think I mentioned something about being frustrated with the developer tools last week, can’t remember. Anyway, it’s fine now.


App is  here, source code is here.


Skipping School

I stayed home from school today. I thought all my classes would be cancelled because of a teacher’s strike, but it turns out that my teachers have no objection to crossing picket lines, and classes went on as usual. However, by the time I found out, I was already lost in a coding haze.

When you have a good flow going, it is very difficult to stop. As per a couple of facebook posts that some friends of mine may have seen, I am trying to start developing Android apps. This requires installing an IDE (Integrated Development Environment) and a plugin for that program, to emulate an Android phone on my laptop.

This was not an easy process. At first the emulator worked fine, and I was able to run a simple tutorial application, but then everything seemed to stop working, and I couldn’t figure out whether the problem was my code, or the tools I downloaded. I’m still not sure, to be honest. But after several days of constant googling about it, I got the emulator to work. Several hours after that, I got my code to work.

Some people are familiar with the “flow” state, where you spend hours working on something and get totally lost in it. At best, days pass unnoticed, and you end up with some minor success. I hope some of you can share my feeling of relief when my code finally worked. For the others, I hope I can encourage you to spend time doing the things you love, and get lost in them.

Sometimes you have to shut up the voices that tell you the things you’re doing are a waste of time, and that you should do homework, or chores or exercise or whatever. Ignore those voices. A good flow is never a waste of time, it is a reward on its own.

If you’re curious,  the app in question is a simple calculator for determining what size of carburetor to mount on an engine, given the size of the engine and the maximum RPM of the motor. It’s pretty crude, but you can have my code if you want. Leave your name and email.

New Phone Time

A couple weeks ago, my Blackberry started acting up. When the battery was low – not very low, like maybe half – I would get a white screen. All the buttons stopped working, I couldn’t turn it off, just bright white screen with nothing on it, until the battery died.

So, I started thinking about Android phones. My friend Kirby told  me of the Nexus 4 that was coming out in a few days. I didn’t manage to get one before they sold out, but it was too late anyway. I had downloaded the developer tools and was enthusiastically hammering away at my first Android Hello World.

Since I don’t actually have an Android phone, I have to use an emulator to test whether stuff works  – this is a slow, painful process that causes a lot of distraction and Redditing. However, after several days of trying to get the emulator to work, I was successful. Now to get my actual code to work, yay.

Here is some useful information:

If you find this text file in /adt-bundle-mac/sdk/tools:

The command you’re looking for is this one: