Hi Tim,

I had a look at your code and noticed two things:

one major bug:
TRISB = %00000010 'Set portb.2 output (cantx) ,b.2 input (canrx) 18F248/4580
should read TRISB = %000001000 "setportb.2 output, portb.3 input

and one thing I don't understand:
CANCON.3=1 ' set win bit to txbuffer 0
what's this exactly good for, do you really need it?

I didn't check your BRG settings, but if you set up transmitter and sender the same, it should work anyway :-)

Regards,
Ingo