Log in Page Discussion History Go to the site toolbox

RPI Haptics:Pauline

From BluWiki

Similar design to Baracus, with a different layout.

A parts list is being developed here.

Haptics-pauline-pcb.png

Contents

Features

  • LEDs driven directly from the 168, no transistor, and one quad resistor
  • DC/DC step up converter allows for multiple battery sources (2v->5v input)
  • Correctly wired RF receiver
  • Correctly wired LEDs
  • Proper 3x2 ICSP header
  • 2-position DIP switch with permanently "on" DC-DC converter
  • Smaller SOIC output amplifiers instead of through-hole (1 amp / pwm output)
  • Evenly bright LEDs
  • Breakout into through-hole contacts for unused ADC and other IO (side of pcb)

Pin Equivalences

Arduino Purpose Functions Port + Number 168 Pin
7 IR LED PCINT23/ANIN1 PD7 11
5 Red LED PCINT21/OC0B/T1 PD5 9
6 Green LED PCINT22/OC0A/ANIN0 PD6 10
9 Blue LED PCINT1/OC1A PB1 13
3 Output1 Control PCINT19/OC2B/INT1 PD3 1
11 Output2 Control + MOSI PCINT3/OC2A/MOSI PB3 15
10 Output3 Control PCINT2/SS/OC1B PB2 14
1 Battery ADC1/PCINT9 PC1 24

Assembling Pauline

  1. Solder the 16 MHz crystal
  2. Solder the diode, C1 (1uF) capacitors, 100 uF capacitor and MAX756
  3. Solder the RJ-11 jack
  4. Solder the 22 uH inductor
  5. Test that the MAX756 is outputing 5V and using about 20-30 mA (pin 1 or 5)
  6. C2 (22pF) capacitors, R1 (10.5 kOhm) resistor, ATmega 168 and DIP switch
  7. Test that Pauline is using 30-40 mA
  8. Add the ICSP header and try connecting with the AVRISPMKII
  9. Add components for driving LEDs (quad resistor R2 and LEDs)
  10. Upload PaulineBlink from the Arduino environment, the LEDs should flash (RGB, off, IR, off); if not:
    1. Check the resistance between the 168 side of the resistor and the positive terminal
    2. Check the resistance between the LED positive terminal and the 168
    3. Make sure the solder is clean around the quad resistor, and there is no cross-solder
  11. Add components for driving output
  12. Upload PaulineBuzz from the Arduino environment, the motors should buzz (output1, pause, output2, pause, output3, pause); if not:
    1. Check for cross-solder on the driver chips
    2. Make sure your motors are wired correctly
  13. Add RX module

Programming Pauline Using AVR Studio

  1. Connect the AVR ISP MKII to Pauline and open AVR Studio.
  2. Go to Tools > Program AVR > Connect
  3. Under "Main", select ATmega 168
  4. Under "Program", select the "..." next to "Input Hex File" and select Pauline.hex
  5. Hit the "Program" button
  6. Under "Fuses", next to "EXTENDED", "HIGH" and "LOW" enter 0xF8, 0xDF and 0xFF (same as Arduino fuse bits)
  7. Hit the "Program" button
  8. Under "Lock Bits", next to "LOCKBIT" enter 0xCF (same as Arduino lock bits)
  9. Hit the "Program" button

Programming Pauline Using the Arduino Environment

  1. Change the above settings in AVR studio
  2. Open C:\Documents and Settings\username\Application Data\Arduino\preferences.txt
  3. Change "upload.using=bootloader" to "upload.using=avrispmkii"

If this doesn't work, you may need to disable the AVR Studio drivers and use the libusb drivers instead. There are some notes here on doing that.

Operation Notes

  1. When reprogramming or updating firmware, via the ICSP header, output 2 will oscillate.
  2. When not in use, remove batteries from pauline to prevent parasitic draw (70ma). Pauline pcb's can stay in standby for well over 20 hours from 2 standard NiMH / NICD 2000mah rechargeable AA cells.
  3. When choosing rechargeable batteries for performances, be sure to look for data regarding output current, and charging current, most unmarked AA / AAA style cells require overnight charging, whereas certain cells accept larger current charge rates.

Site Toolbox:

Personal tools
GNU Free Documentation License 1.2
This page was last modified on 19 July 2008, at 17:40.
Disclaimers - About BluWiki