Project

General

Profile

Issues with the new firefly++ prototype:
  • orb and motor can't work simultaneously (timer conflict)
  • lcd doesn't draw lines in all directions
  • font needed for lcd
  • procedure needed for programming directly from programmer's notepad

2nd rev sent out, board and schematic attached (avrellum2d). Also, attached are the xbee and lcd breakout boards.


Test AVR boards are here! Notes/revisions to make:
  • 100uf cap pads are too small/too close together
  • motor plugs hang over edge (not that big a deal, but we have space so might as well move them)
  • Programming pins/ UART switch
  • LCD Pin spacing too small
  • move 1uf cap out from under display
  • add label to battery
  • BTN1/2 labels - move left a bit (hidden by actual button)

Things that have tested working:
  • Boot loader
  • Blink LED
  • LCD
  • LCD w/ SPI (1/26, Steve)
  • More/better display control
  • user_LED (small green one) (1/26, Felix)
  • delay_ms (1/26, Felix)
  • set_orb_dio (sets ORB colors w/out PWM) (1/26, Felix)
  • ORB (pwm)
  • Serial communication
    • RS232
    • TTL port
    • TTL through ISP header
  • analog/digital i/o on all pins
  • Motors
    • Both motors all directions/speeds
  • User Buttons
  • Wheel
  • I2C
    • Works with Steve's Sonar ring
    • Plan: Change specific I2C library to more general one (from avrlib)
    • If things break, stop.
  • wireless
    • Zigbee works, but they run at 3.3v. So we need to do annoying transister stuff
    • digikey for headers: 2063S-10-ND or SPE1027-ND
  • Buzzer (at different frequencies)

Things to be tested:
  • Unregulated power header
  • Endurance test (motors + battery level)
  • Battery charging
  • RTC

Draft schematic attached!!
See below.


Meeting with Botrics

We looked at AVRs, and while there are some promising ones coming out eventually, the only thing suitable at this point is the atmega128. There are probably other architectures (68k, 8051, rabbits, etc), but I don't really want to bother with totally new chips.

The atmega128 has 128KB rom, 4kb sram, 4kb eeprom. 64-TQFP. Note the sram is not 8k. You'll lose 8-16kb rom to the bootloader block, but that's not a big deal.

You get:
  • dual h-bridge (L298 or L293), 16-bit PWM
  • battery voltage sense, thumbwheel
  • nokia 3310 LCD, onboard, maybe cabled. On SPI.
  • I2C port
  • DB9 with RS232 on uart0
  • TTL on uart1
  • RGB led, 16-bit PWM control
  • buzzer, 8-bit PWM control
  • 6 general purpose ADC
  • 2 externally interruptible DIO.
  • 1 32.768KHz RTC on Counter0, 8-bit.
  • 2 buttons.

What's hanging out:
15 DIO, in one 8-bit port, and a set of 4 and a set of 3 consecutive bits.

Now, some options:
  1. I'd put the 6 analog and 2 externally interruptible pins on a 3x8 block for the purpose of analog, digital, servos, whatever sensors you want. Don't forget that analog works fine as digital.
  2. There are four timers; however, I am using three of them so that the three sets of different PWM signals (motor, rgb, buzzer) can be whatever frequency independent of each other, and duty cycle can be set individually without an ISR. Obviously there are other ways to do it but this way requires no software overhead - set and forget. Unless someone has specific reasons why one timer isn't sufficient for programs, I'm not going to worry about it further.
  3. Power. Linear is really cheap for 3A. There's some nice LDO stuff in the <15V range, and while there's stuff that can handle up to 30V, it's not going to work as well at 6V.
  4. DIO. What exactly is it all for again? I don't want a 15x3 block of digital I/O. Theoretically I could make it two 8-bit ports, but you'd lose the RTC, a button, or an external interrupt, and I'm hazy as to what you're going to do with 16 DIO anyway.
Connectors:
  • switch, db9, buttons, thumbwheel, LED, and buzzer as firefly
  • screw-down for motors
  • 3x8 for 6 analog, 2 interruptible DIO, all 5V bus
  • 1x3 TTL serial header on uart1
  • 2x4 R/A I2C with pullups
  • two 1x3 power inputs with protection for robot charging.
  • LCD stand (it'll stick down over other components)
  • fuse
  • DIO? I need more information about the purpose of the DIO.

--Brian Kirby
----

Wish List for AVR based cerebellum.

UPDATE: talked with Brian and Tom, they are going to put a schematic together, we are going to go over what we talked about with the various groups friday. Sounds like btrics will design, roboclub will test and verify stuff.

-General specs:
  • Same footprint as cerebellum/firefly
  • uses ATMega 128 or 256
-Colony wants:
  • More gpio (analog/digital/etc)
    • 6 for bom (will be serial later) (all d?)
    • 1 Pyro (a)
    • 4 Bump (d)
    • 2 motors (d)
    • 1 IR Range (a)
    • 2 + serial for RF (a, maybe one d)
    • 1 Battery level (maybe just pads for resistors? or shared with a pin?) (a)
  • Total:17 (at least 3 analog)
  • Min:14
  • Accessible serial lines (maybe 2nd port, maybe switch) in same footprint as cerebellum.
  • i2c for Sonars,etc (4ish, instead of IR Range probably)
  • smaller power switch?
  • pins instead of screw thingies?
  • I vote for wireless on this board - how much additional cost does this add? -Ryan
-Other people want:
  • Better buttons (?)
  • Keep the LED (:mrgreen:)
  • Remove buzzer (?)
  • Battery level meter
  • Integrated wireless (?)
  • ...