WAM

From ScribbleWiki: Cwing

(Redirected from Senior Project)
Jump to: navigation, search
Block diagram (click to enlarge)
Block diagram (click to enlarge)

Wireless Ad-hoc Mesh-network

WAM is a hand-held mobile device that can connect to other WAM units to create a small-area network.

WAM features a full keyboard and monochrome graphic LCD screen used to interact with the device. The main function of the device at the moment is text messaging between both in-range units, and out-of-range units that are connected to the network. Out-of-range units can be communicated to through in-range units that forward network packets. We are attempting to provide a range-finding feature on the device that would have a granularity of about 6 meters, and would be used to create a map of other units that are in range. We also might add voice messaging and some sort of network game.

The below is the work-in-progress documentation for our project. It contains the source code, testing records, and other documentation.

Contents

Program documentation pages

  • Current program size - 19.2KB (20%) 16:06, 21 April 2008 (CDT)

Program source

Poster and presentation

Applications

  • List network properties:
  • Who's in range
  • What range you have
  • who's in your network
  • next hop to each unit in the network
  • Distance to each unit (could be very inaccurate)
  • 11.99 meters/tick = c/(1000*1000*1000 ns/s) * 40 ns/tick = distance resolution at 24 MHz (6.24 m/tick at 48MHz)
  • UPDATE: 3.123 meters/tick = c/(1000*1000*1000 ns/s) * 10.4166 ns/tick = distance resolution at 96 MHz
  • triangulation map (could be used to build routes)
  • Simple text messanger (ready to testing)
  • Audio messanger
  • Hung up because D to A converter is on backwards
  • Some network game (requires graphic programming) (MAYBE SPACE WARS!!!!)

problems

  • Oscillator output waveform does not look right
  • Key 19 connected to U07 doesn't work
  • LCDs are messed up a bit - fix it by tightening the securing flappy things on the back.
  • We figured out that what we thought was the DC to DC converter was really just a regulator. So now we know we have a .5V operating range between 4.8V and 5.3V.

What we would change if we were back in 2007

  • Flip the keyboard so it is in the intended orientation
  • Stagger keys on keyboard (so that they fit better)
  • Wire the wireless transceiver 'ready' pin to an interrupt pin
  • Get a *real* DC to DC converter
  • Read the analog component data sheets much more carefully
  • Move the power switch over a tad so that the wireless transceiver would fit flat on.
  • Could have used a smaller oscillator or crystal, but we wanted it to be socketed in case it was a problem
  • Put the battery leads somewhere on the side rather than in the middle. Make them big through holes so that we can put wires through them.
  • Make sure we clearly mark the orientation of all parts
  • Add LEDs to give feedback to the user such as: keyboard state(shift, caps, ctrl, etc), network status, power status

assignements

  1. get battery holder and connector soldered (Completed!)
  2. Solder on Pin header for LCDs (Completed!)
  3. Learn about downloading code to PIC (Completed!)
    1. Get proper cable (Completed!)
    2. Find IDE/Compiler (Completed!)
  4. Boot loading test (try to test output pins) (Completed!)
  5. get connector for lcd (Completed!)
  6. get presentable connector for lcd (Unassigned)
  7. LCD driver (set pixel at position)(must write 8 pixels at a time at the lowest level) (includes testing of IO pins) (Completed!)
  8. text function (write character at position) (mostly Completed!)
  9. console functions (keep track of cursor, newline when needed, etc) (Completed!)
  10. keyboard driver (Completed!)
  11. scheduler (Completed!)
  12. wireless unit tests (Completed!)
  13. wireless unit driver (Testing)
  14. wirless protocol (in progress)
  15. text messanger (ready to test)
  16. audio output driver (Completed!)
  17. audio input driver (Testing!)

Sepand

  1. get battery holder and connector soldered (Completed!)
  2. Solder on Pin header for LCDs (Completed!)
  3. Learn about downloading code to PIC (Completed!)
    1. Get proper cable (Completed!)
    2. Find IDE/Compiler (Completed!)
  4. Boot loading test (try to test output pins) (Completed!)
  5. get connector for lcd (Completed!)
  6. keyboard driver (Completed!)
  7. scheduler (Completed!)
  8. wireless unit tests (Completed!)
  9. wireless unit driver (Testing)
  10. audio output tests (Completed!)
  11. audio output driver (Completed!)
  12. audio input tests (Completed!)
  13. audio input driver (Testing!)

Billy

  1. LCD driver (set pixel at position)(must write 8 pixels at a time at the lowest level) (includes testing of IO pins) (Completed!)
  2. text function (write character at position) (mostly Completed!)
  3. console functions (keep track of cursor, newline when needed, etc) (Completed!)
  4. wirless protocol (in progress)
  5. text messanger (ready to test)
Personal tools