Thanks I noticed that one later but have left it out so I can call my routine with the packet start byte value pre-loaded into checksum now.

So I call the routine after loading checksum with either $AA or $87 (My 12 byte packet start byte) I then run the routine on the array and store the checksum in the last byte making twelve in all.

My main program - onfigs now looks like this. The checksum is commented out at present during some other testing.

Code:
'Main Program Start

Commloop: 					'Start of Communications Loop

	HSERIN [WAIT($87), STR BCMDATA\11]	'Wait for packet start $87 then Receive 11 bytes into array BCMDATA
	
	
	'CheckSum = $87				'Load Checksum with packet start byte value
	'Gosub CalcSum				'Gosub CalcSum to Calculate Checksum 

	HSEROUT [$87,str BCMDATA\11]		'Transmit 12 bytes inc packet start byte $87
	
	
	HSERIN [WAIT($AA), STR BCMDATA\11]	'Wait for packet start $AA then Receive 11 bytes into array BCMDATA           	
	'CheckSum = $AA				'Load Checksum with packet start byte value
	'Gosub CalcSum				'Gosub CalcSum to Calculate Checksum 

	HSEROUT [$AA,str BCMDATA\11]		'Transmit 12 bytes inc packet start byte $AA


'Data txd/rxd test outputs known values below to check transmission & reception
	
	Pause 32				'Pause for 16ms
	HSEROUT [$AA,$10,$00,$00,$00,$20,$40,$61,$10,$01,$00,$74]		'Transmit 12 bytes 
	pause 32                'Pause for 16ms
	HSEROUT [$87,$40,$58,$15,$6E,$10,$01,$32,$2F,$2F,$04,$39]		'Transmit 12 bytes 
	pause 32                'Pause for 16ms

	goto CommlooP			'Goto Loop      
    
CalcSum:					'Calculate Packet CheckSum Routine
	
	For Count1 = 0 to 10			'For Count1 = 0 to 10 (Start 11 byte loop)
	CheckSum = CheckSum + BCMDATA[Count1]	'Add Bytes
	Next Count1				'Repeat until 11 bytes added
	CheckSum = NOT CheckSum			'Not CheckSum
	CheckSum = CheckSum + 1			'Add 1 to CheckSum
	BCMDATA[11] = CheckSum AND $7F 		'AND result
	Return					'Return