12V dimming will be very much like some of the motor speed controllers covered just recently, ie pulse-width modulation. Select an output switch, either FET or transistor, that will take the current needed by the halogens and drive it with a variable PWM wave. Probably safest and easiest to use a low-side npn or n-channel connection, ie one side of bulb to 12V supply, other side of bulb to "input" terminal of switch device, "o/p" of switch device to 0V. Depending on the device you may be able to drive it with a 5V PWM directly from the PIC or otherwise use a simple 5V to 12V voltage converter. What current do the bulbs need ? It would help to know so that you can be advised on the best output device. How would you initiate the dimming - pushbuttons that will cause an up-down PWM ramp and perhaps others for pre-set brightnesses ? If you've got an ADC in there somewhere you could use a pot for manual brightness control or pre-setting the end brightness of a ramp. Is the 240V AC or DC ? If it's DC, use the same method as 12VDC but use a high voltage device. If it's AC, use PWM to drive a zero- crossing opto-triac, eg MOC3041, or if noise not a concern, MOC3020. If necessary use the small triac (100mA/400V) in the opto to drive a higher rated triac like one of the BTA or TIC series. PWM may not be the best choice for AC. More suitable may be synchronising the PIC to the AC frequency and delaying the turn on / turn off point in the AC cycle. That should give you more predictable control over the power applied to the bulbs and reduce noise. For lighting I'd presume the best time to apply voltage to the bulb would be at or as soon as possible after the zero-voltage point of the cycle. Does that reduce shock to the filament and reduce EMF noise ? Others have posted tips on lighting controls, perhaps they'll chip in with suggestions on noise suppression, power management etc. More than likely there's a smart lightingcontroller chip out there that would take digital inputs from a micro, but it's still fun doing it yourself from the ground up eh ? Jinx