Pebble V2.0 Instructions

From Open Hardware Miniconf
Revision as of 10:59, 10 January 2012 by George Patterson (talk | contribs) (Inductor and Trimpot)
Jump to: navigation, search

Getting Started

Here's a basic guide to assembling a Pebble (Mk. 2) kit. In your kit, all the SMD components are pre-soldered on the board, the ATmega8U2 USB-to-serial circuit on the board has been pre-tested and the ATmega8U2 flashed appropriately, and the ATmega328 microcontroller has been pre-flashed with an appropriate Arduino Uno compatible bootloader.

Now, let's start assembling the through-hole components on the board. Don't worry, it's all pretty easy to assemble.

Kit Assembly (only the through-hole components)

Terminal Blocks and Electrolytic Capacitor

We will start by installing the 2-pin screw terminal block for the battery connection, in the upper left of the board. Make sure that the holes where the wires are inserted into the terminals face out towards the outside edge of the board. Next, we will also insert and solder the two 220 uF electrolytic capacitors in the upper left of the board, along with the 10 uH inductor and the 2-pin header which is used to connect or disconnect the USB power rail. Remember that the two electrolytic capacitors are polarised and they must be inserted with the correct orientation.

Inductor and Trimpot

The inductor is the relatively large black cylinder with two wires and with no markings, and it is not polarised. The two-pin header can sometimes require a bit of firm pressure to fit it into its holes on the PCB. We will also fit the shorting jumper onto the two-pin header at this stage. We'll now also insert and solder the 28-pin DIP socket for the AVR microcontroller, and the 16 MHz crystal for the AVR. The crystal is not polarised, but the IC socket should be inserted so that the pin-1 indicator notch on the socket corresponds to the silkscreen marking.


The trimpot is used to adjust the LCD display contrast and is mounted in one way. We'll also insert and solder the trimpot.

RGB LED

Note: The RGB LED must be inserted the correct way, with the flat side of the LED corresponding to the silkscreen marking. The four leads of the RGB LED will need to kind of splay out on an angle as you insert the LED onto the board, so it will end up sitting up approximately 5 mm off the board and it will not sit completely flush with the board. Please solder in the RGB LED after ensuring that you have it orientated correctly.

MCP 9701 temperature sensors and transistors

Now we will insert and solder the MCP9701 temperature sensor and transistors. Remember that the transistors and the temperature sensor must all be inserted the right way around, as marked on the silkscreen. The MCP9701 has a TO-92 package which looks identical to the two P2N2222 transistors, so make sure you read the markings printed on them and you don't get them confused. We can then also insert and solder the two P2N2222 transistors. Remember that the transistors and the temperature sensor must all be inserted the right way around, as marked on the silkscreen.

Headers

Next we will insert and solder the two 6-pin ISP programming headers, and we will also insert and solder the 16-pin header strip which connects to the LCD display. We will then also insert and solder the pair of 8-pin female header strips and the pair of 6-pin female header strips that are used to mate with Arduino "shields". The 6-pin ISP programming headers make a very snug fit into their holes on the PCB, and you may want to use some sort of tool (I use the end of the handle of a screwdriver) to apply firm pressure to press these fully down into place. We will also insert and solder the two 2.0 mm 10-pin female header sockets for the (optional) XBee module, as well as the pair of 2-pin PCB-mounted screw terminal blocks for the two general-purpose open-collector transistor outputs.

Xbee header

It can be easier to hold the XBee header sockets in if you have an XBee module handy, by inserting the sockets onto the pins of the XBee module first and then inserting this assembly into the holes on the board. If you have a spare Arduino shield, a similar procedure can also be used to hold the Arduino shield header sockets straight.

Rotary encoder

Now we'll also insert and solder the rotary encoder. It should just "snap" into place on the board as its mechanical mounting tabs are inserted into the PCB. Finally, we'll also need to unpack the LCD display and we'll solder a 16-way pin header onto its connection pads, and we'll also need to insert the AVR microcontroller chip into the IC socket - make sure it's oriented the correct way.

Testing

Plug in the USB cable (which we've conveniently included for you) into a PC and into the Pebble board, and the blue power LED should light, and the new USB device should be recognized by the OS. If the power LED does not light, you did install the jumper to short out the USB power disconnection header, right? (Note that the power switch doesn't do anything except for when battery power is used. If USB power is connected, then it is "always on".)

At this stage, you should be able to talk to the board from the PC. It's completely compatible with the Arduino Uno, but we re-used the same firmware used on the Freetronics Eleven, so it identifies itself as a Freetronics Eleven.

If your PC is running Windows, you'll need to install the driver if you've never used an Arduino Uno or compatible device on your PC before. If you're running Linux or Mac OSX etc, then it should just work without any effort.

You'll also need to have the Arduino IDE installed, of course. Select "Arduino Uno" as the target hardware type, select the right (virtual) serial port for the Arduino IDE to talk to, and you should be all ready to upload programs.

If you want to use the LCD, you’ll need to attach the LCD display. This is done by making sure that your LCD display has a 16-pin header soldered onto it, and connecting the 16-wire ribbon cable to both the LCD display and the LCD header on the main board, making sure that pin 1 on the Pebble board is connected to pin 1 on the LCD display.


Hardware Features

  • Arduino Uno compatible, with ATmega328 and ATmega8U2 carrying the appropriate bootloaders.
  • Boost-converter power supply for portable battery operation at battery voltages between 2.4-4.5 volts.
  • RGB LED with each of the 3 LEDs independently programmable, including PWM capability.
  • Standard HD44780 20x4 alphanumeric LCD display.
  • Support for a low cost Nintendo DS style 4-wire resistive touchscreen.
  • Support for an XBee 802.15.4 radio module or any other "Bee"-compatible module that operates at 3.3V and talks to a serial UART.
  • Two general-purpose open-collector low-side-switching output transistors for controlling external devices such as relays.
  • Rotary encoder for user input.
  • Temperature sensor (MCP9701) and light sensor (TEMT6000).

Battery power

Now, if you want to use portable power without just being limited to USB use, let’s look at power options.

After you've programmed the board with some code, if you want to use an alternative power source away from your PC, you can either use battery power or you can provide regulated 5.0 V DC power to the USB socket via a standard USB cable - for example by using one of those common 5.0V mains switchmode plugpacks with a "dumb" USB connector for power output.

The battery voltage input must be within the range of about 2.4 - 4.5 V for correct operation. Thou shall not ever exceed 5 volts, into either of the power supply inputs, on this device.

You can use two standard alkaline or NiCd or NiMH cells in series, for a voltage supply of 3.0 V (or 2.4 V if you’re using 1.2 V NiMH cells), or you can use 3.6-4.5 V from a set of three cells in series. The latter will provide an improvement in battery life. The 2.4 V you will get from two NiMH cells is OK, but it is towards the lower end of the operational voltage window.

You can use common “AA” or “AAA” cells, however the larger types such as “C” or “D” cells will provide greater charge capacity and a greater runtime. You could also use a 3.7 V lithium-polymer cell, where a small, lightweight battery with high energy density is desired. (Note that there is no battery holder included with the kit and you can add your own separately if you want to use battery power.)

Make sure that the positive and negative wires from the battery holder are connected to the terminal block on the board with the correct polarity, as marked on the silkscreen, and ensure that charged batteries are inserted into the battery holder with the correct polarity. With the batteries installed and wired up, you should then be able to turn on the power switch on the board, and the power LED should light up. (The on-board power switch has no effect if USB power is connected.) If you’re using a battery holder which has a built-in power switch then this power switch must also be turned on.

There is no battery charging electronics built into the device - to recharge your batteries they must be disconnected and recharged externally.


Semi-permanent solder jumpers

SJ1 is normally closed, this is for automatic reset of the AVR, controlled by the USB UART interface, during programming. Cut it to disable auto-reset.
SJ2 connects the USB shield to ground. This is normally closed and should never normally need to be opened.
SJ3 is normally open. This is for the DFU programming of the ATmega16U2 and should never need to be closed.
SJ4 is normally closed, and this connects the high side of the two low-side-switching open collector output transistors to +5V. Disconnect it if you want to use an external higher-voltage power supply for these circuits.