Hi nick703. I've seen your circuit, but don't understand why you use R2 from base to ground?. When you power up your pic the pins are configured as inputs, so present hi-impedance, so the transistor won't saturate and the relay won't work. In some place in your firmware you must set the pin as output and drive a 1 to activate relay, or 0 otherwise. To determine base resistor you could employ the formula Rb=(VHpic-Vbesat)/Ib where Rb is R1, VHpic is the voltage on pin when driving an 1, Vbesat is base-emitter saturation voltage (see datasheet of BC547) and Ib is the base current for BC547. To determine Ib you must know Ic, the collector's current and this parameter depends on your relay. I hope this could help you. Yosmany325