R18/R19 options:
RC15 (pin 7) of the PIC has several different options for operation. It can enable/disable the h-bridge (TB6612), it can blink an LED (LED3) or it can be used as general I/O at J12. R17/R18/R19/R24 population controls which will be used.
Option A) Using h-bridge to drive motors, want to be able to disable motor controller
In this case, populate R17 so that RC15 is connected to the MOT-STBY line. If RC15 of the PIC is driven high, the motor driver will be enabled, if RC15 is driven low, the motor driver will be disabled. R19 should be populated so that the motor driver is disabled by default when the RC15 pin isn't driven (ie- when the PIC is being programmed for instance). J12 can't be used as general I/O. If R24 is populated, LED3 will light up when the motor driver is enabled. If you don't like that, leave R24 off the board. X2/X3 will drive motors. J13/J14 are not used.Option B) Using h-bridge to drive motors, don't need to disable motor controller and want to use RC15 from PIC for other purposes
In this case, don't populate R17. RC17 can then be used either to blink LED3 or as general I/O on J12. If J12 is used as an output, R24 can be left in place and the LED will light up as the output is changed. If J12 is used as an input, R24 should likely be left off the board as it may interfere with the input signal. R18 should be populated so that the motor driver will be enabled all the time. X2/X3 will drive motors. J13/J14 are not used.Option C) Not using the h-bridge to drive motors, using servos instead
Again, don't populate R17. RC17 can be used in the same manner as Option B. The only difference is that R19 should be populated. This will disable the motor driver permanently to save a little power. J13 and J14 can be used to drive servos.
J10/J11 Optional I/O:
RC13/RC14 (pins 8 and 9 of the PIC) can be used as general I/O or to blink LEDs (LED 1 and LED2). As I/O, there are optional pullup resistors that can be populated (R20/R21). The use of those resistors is dependent on what type of stuff is being connected to.
Option A) J10/J11 being used as outputs
R20/R21 are optional, but most likely populated. A pull-up on the output usually is a good thing. R22 and R23 can be populated if you want the LEDs (LED1 and LED2) to blink as you change the outputs going out J10 and J11.Option B) J10/J11 being used as inputs
R20/R21 are optional, but most likely populated. A pull-up on the input usually is a good thing so that the input has a default state. R22 and R23 will likely be not populated so that the LED load won't affect the input signal. It really depends on what you are interfacing to.Option C) LED1/LED2 being used
R20 and R21 can be populated as they won't affect anything and might be useful later on if you decide to use the J10/J11 I/O ports. R22 and R23 are populated. Driving high on RC13 or RC14 will turn on the LED, driving low on those pins will turn off the LED.Option D) Some combination of the above
Mix and match inputs/outputs/LEDs as you please. <grin>
J1 Input Power Selection:
This is labeled as a J (jumper) in the schematics but is actually 3 surface mount pads (same size as a 0603 pad). A 0 ohm resistor is populated as a short in order to select which option is required. This is on the bottom of the board near the input power header.
Option A) Input power is greater than 5V, regulator is necessary
Populate a 0 ohm resistor across the 2/3 pads of J1. This is labeled on the board with silkscreen lines around the two pads to indicate the default position. These pads are the two that are closest to the regulator. In this scenario, the 5V supply on the board is limited to the output limits of the LM1117 regulator (600mA if I remember correctly).Option B) Input power is 5V, regulator is not needed
Populate a 0 ohm resistor across the 1/2 pads of J1. These are the two pads towards R7. This will route the input power throughout the entire board. This assumes that you likely have an larger external regulator somewhere else in your system and that you want to drive alot more current than 600mA from this board (ie- more servos than 1 or 2, bigger motors, etc..).
R2/R3 I2C Option:
The programming header, UART and I2C signals are all shared. These signals come out to J2 (programming header) as well as J3/J4.
Option A) Just using J2 as a programming header
Don't populate R2/R3Option B) Using RS232 (logic levels) with an external board
Don't populate R2/R3. Build a cable that will interface to your external board from J2 or a combination of J3/J4Option C) Using I2C with an external board
Populate R2/R3. Build a cable that will interface to your external board from J2 or a combination of J3/J4Option D) Using RB4/RB5 (pins 11 and 12 of the PIC) as general I/O
Optionally populate R2/R3 with 100k resistors for the same reason as the J10/J11 above. Build a cable that connects to J2 or a combination of J3/J4.I'm not sure of the effect of the 2.2k resistors on the PGC and PGC programming pins. Given that Microchip multiplexed it all here, I'm assuming that it will be ok.... but I haven't tested it with I2C yet. If there is an issue with programming the board because of these resistors, then leave R2/R3 unpopulated and these resistors will be needed on your external board instead (likely already there). You would then need to pull off the I2C cable going to your board when you program.
Ground IR Options:
By default, J5 to J9 are all set up for line sensors. There is a 220ohm resistor which lights up an external IR LED and a 15K resistor which powers up an IR receiver. These headers can also be used as general I/O or analog inputs.
Option A) Line sensors
R6/R9/R11/R13/R15 are 220ohm resistors. R8/R10/R12/R14/R16 are 15k ohm resistors. J5 to J9 are connected to IR sensors and the PIC pins are set to analog or inputs.Option B) General I/O
R6/R9/R11/R13/R15 are 0 ohm resistors. This provides 5V to the header for external circuits the same as the other headers. R8/R10/R12/R14/R16 are optionally 100k ohm resistors pullups (for the same reason as already explained). J5 to J9 are connected to whatever you want (inputs or outputs).
So, that should get you guys started for now.
Aaron