Introduction: Bicycle Navigator

About: Member of #fablab77, crazy hobbyist and data analyst at spare working time

The device consists of main electronic block (with batteries and Bluetooth receiver), handlebar mount and two grips.
Grips are connected to the main block with three-wire cords with a 3.5mm jack at the tip.

Bill of materials (BOM):
Main block:
1x Upper shield (3D-printed)
1x Main Block Basement (3D-printed)
1x Battery (Li-Po, 3.7V, 250 mA*h to 450 mA*h)
1x push switch (PB-22 or alike)
1x SparkFun Lithium Charger & booster (Sparkfun PRT-11231 or alike)
1x Bluetooth Modem (HC-06 or BlueSMiRF) - preferrably with 6-pin footprint
1x Connector Board with 5-pin Male Connector
1x Main Board (engraved or etched)
with
1x Atmel AtMega32-AU
1x 16 MHz oscillator (can be reduced to 4 MHz without any issues, but flashing requires 16 MHz)
1x 6 Pin Male connector (0.1" step)
1x 5 Pin Female connector (0.1")
4x NDS355 MOSFET (SOT323 housing)
1x 0.1 μF Capacitor (SMD 1206)
1x 10 KOhm Resistor (SMD 1206)

Handlebar Mount:
1x Lower Clip (3D-printed)
1x Upper Clip (3D-printed)
1x M5 Nut
1x M5x10 Screw
1x Clip Board (engraved or etched)
with
2x 3.5mm Jack Sockets
5x Phosphored Bronze Fingers (0.05" wide)

Grips (2):
5x 6mm Acrylic formers
1x 1ft three-wire cord
1x 3.5mm Jack
1x PCB with
2x LEDs (bright red or white work the best)
2x 100 Ohm resistors

The project was largely supported by Fablab77 (FabLab in MIS&S, Moscow) and Skoltech (Skolkovo Institute of Technology).

Step 1: Electronics. Let's Prepare PCBs

The files shown below represent PCB cutouts for main board, handle boards (2) and connector between handlebar mount and main block.

_traces.png and _cutout.png files are intended to be fabricated on a milling engraver (eg. Roland Modela MDX-20) machine.
Traces should be done first.

Step 2: Making Hounsing

Just use 3D printer.

Step 3: Flashing

How you need to upload the firmware to Atmega.

First, you will need an in-circuit programmer to flash Arduino bootloader into the chip.
Connect 6-pin connector (Vcc, GND, Reset, SCK, MOSI, MISO) to appropriate pins of Atmega (28 for Reset, 16 for MOSI etc).
Using Arduino environment, upload the bootloader.
Note: you might need to change the signature in avrdude.conf for ATMEGA328P from 1E 95 0F to 1E 95 14!

Second, upload the firmware: http://pastebin.com/i30vqvfb

Then, install Amarino onto your phone: http://code.google.com/p/amarino/downloads/detail?name=Amarino_2_v0_55.apk
Then install our demo app from Play Market: https://play.google.com/store/apps/details?id=ru.skoltech.navigator

It should perform well with "Test" function.

Good luck!