Beacon3

From Hackstrich
Revision as of 02:47, 15 August 2011 by SarahEmm (talk | contribs) (Updating with work done.)

Beacon3 will be a beacon for the top of our flag(less?) pole for Burning Man 2011. It will be simpler than Beacon2 as time is limited to get it done, but we want a brighter beacon.

Project Status

  • 2011-07-19: Initial design started.
  • 2011-07-23: Schematic for LED driver board started and almost completed.
  • 2011-07-24: Board layout for LED driver board completed pending final review.
  • 2011-07-25: Final review of board layout for LED driver board completed, order submitted to MyRO for manufacturing.
  • 2011-07-28: Completed schematic for planar board and began board layout.
  • 2011-07-29: 4 Cree MC-E LEDs (on star heatsink/boards) ordered.
  • 2011-07-30: Completed board layout for planar board, pending review tomorrow. Started work on remote control interface.
  • 2011-07-31: Wrote libraries for the I2C mux (PCA9545) and LED driver (SSL3250). Can't test as the hardware isn't here yet, but both compile.
  • 2011-08-01: Completed PCB review, submitted to MyRO for manufacturing. Placed orders with Digikey and Mouser for all required parts.
  • 2011-08-03: Received LED driver boards from MyRO, all parts from Digikey and Mouser, and LEDs from LED Supply.
  • 2011-08-04: Assembled first LED driver board, which works perfectly! driver board test video
  • 2011-08-11: Received planar boards from MyRO.
  • 2011-08-13: Finally un-sick, started assembling planar board but found that pinout had been mirrored on planar-driver connectors, causing power pins to be backwards (along with all other pins). Likely destroyed driver board #1 finding this out. Desoldered the 4 connectors, will re-solder them on the bottom, mirroring the mirroring which will work around the issue.
  • 2011-08-14: Soldered the 4 connectors on the bottom (desoldering the XBee connector first, will deal with that later). Assembling wiring harnesses for all 4 LEDs and soldered the LEDs to them. Power-up test shows 2 of the 4 channels on driver board #1 have failed due to the incident yesterday. The other 3 boards work perfectly, and 3 LEDs are being driven successfully using the Beacon3 code! Next step will be to replace the 2 failed chips on the driver board to get the fourth LED working, then start working on the radio functionality.

Design

  • Beacon Unit
    • Same enclosure as Beacon2 can be used to save time, just remove PCBs and replace with these
    • Planar PCB that fits onto the spindle, which the other boards plug into vertically
      • Single MCU this time, as there are fewer LEDs
      • Same light sensor and (lack of) charging circuitry as Beacon2 can also be used
      • Regulator on planar will only be needed for wireless functionality, MCU can operate over whole battery range as can LED drivers
      • Will use an ATmega328p for the MCU, makes it Arduino-compatible
    • 4 RGBW LED units on Star boards and heat sinks at 12, 3, 6, and 9
      • Using Cree MC-E ~2.5W per component colour RGBW LEDs
    • 4 RGBW LED driver boards (custom) at 1:30, 4:30, 7:30, and 10:30
      • 4x NXP SSL3250A chips on each board looks good to drive the RGBW LEDs
        • Will drive them at 200mA per component colour constantly, and 500mA flashes of 820mS
        • This chip has a fixed I2C address though so an I2C mux would be needed on each LED board
          • The PCA9545 looks perfect for this, I2C controlled 4:1 I2C mux and can be "turned off" so that there's no need for a planar mux
  • Remote Control Unit
    • Having a remote that would make the beacon extra-noticeable when a button was pressed would be cool
    • To get long enough range to be useful, we'd want ~50mW
    • XBee is probably the best way to go, but need to look at power draw for the RX side and would have to custom-design a remote control unit
    • Remote Control Unit could just be:
      • Arduino Fio
      • XBee Series 1 RP-SMA (plugs directly into Arduino Fio)
      • Rubber-duck antenna
      • LiIon pack (plugs directly into Arduino Fio)

Wireless Protocol

  • Commands are one letter, followed by parameters that vary by function.
  • Newlines signal the end of a command
  • Beacon3 response has a single character severity code (e for error, i for informational/success), then the rest of the line is free-form text
  • Beacon3 response is terminated with a newline, unless otherwise specified
  • Command listing:
    • Identify: i
      • Parameter: 3 character device ID followed by the 802.15.4 address of the remote device (i.e. RCU2 for the remote control unit at address 2)
      • Identify to the beacon who the remote device is.
    • Flash: f
      • No parameters
      • Flash a unique pattern on the Beacon so it can be identified from a distance
    • Status: s
      • No parameters
      • Ask the Beacon to send back a bunch of status information. Terminated by \0, not \n!
    • Debug: d
      • No parameters
      • Ask the Beacon to send debug information as it beacons, will stop when any character is received from the remote device

EEPROM Log Byte Format

  • Bit 0 - Subsystem (0 = core, 1 = mux, 2 = driver)
  • Bit 1 - Mux number
  • Bit 2 - Driver number
  • Bit 3 - Reserved
  • Bits 4-7 - Error code
    • Error codes for subsystem 'driver'
      • 0001 = LED open fault (switcher overvoltage)
      • 0010 = LED short fault
      • 0011 = Driver overheat
      • 0100 = Flash timeout