ygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html
DEBUG SENDING [5] b'AT Z\r'
DEBUG RECEIVED [13] 
ELM327 v1.5

DEBUG SENDING [6] b'AT E0\r'
DEBUG RECEIVED [9] AT E0
OK

DEBUG SENDING [6] b'AT L0\r'
DEBUG RECEIVED [3] OK

DEBUG SENDING [6] b'AT R1\r'
DEBUG RECEIVED [3] OK

DEBUG SENDING [6] b'AT H0\r'
DEBUG RECEIVED [3] OK

DEBUG SENDING [6] b'AT S0\r'
DEBUG RECEIVED [3] OK

DEBUG SENDING [9] b'AT SP A3\r'
DEBUG RECEIVED [3] OK

DEBUG SENDING [9] b'AT IB 10\r'
DEBUG RECEIVED [3] OK

DEBUG SENDING [5] b'0101\r'
DEBUG RECEIVED [14] 
410100076525

00000000 00000111 01100101 00100101

DEBUG SENDING [5] b'0100\r'
DEBUG RECEIVED [13] 4100BE3FA811

10111110 00111111 10101000 00010001
 	# PID0101 Get Monitor status since DTCs cleared from the ECU.	
 	# PID0103 Get the Fuel system status from the ECU.
 	# PID0104 Get the current Calculated Engine Load from the ECU.
 	# PID0105 Get the current Engine Coolant Temperature from the ECU.
 	# PID0106 Get the current Short Term Fuel Trim Bank1 from the ECU.
 	# PID0107 Get the Long term fuel trim—Bank from the ECU.
 	# PID010B Get the Intake manifold absolute pressure from the ECU.
 	# PID010C Get the current Engine RPM from the ECU.
 	# PID010D Get the Vehicle speed from the ECU.
	# PID010E Get the Timing advance from the ECU.
 	# PID010F Get the Intake air temperature from the ECU.
 	# PID0110 Get the MAF air flow rate from the ECU.
 	# PID0111 Get the Throttle position from the ECU.
# PID0113 Get the Oxygen sensors present (in 2 banks) from the ECU.
 	# PID0115 Get the current Oxygen Sensor 2 Voltage & Short Term Fuel Trim from the ECU.
# PID011C Get the OBD standards this vehicle conforms to from the ECU.
# PID0120 Supported PIDs for Mode 1 [21 -> 40].

[00]
[BE3FA811]
DEBUG SENDING [5] b'0120\r'
DEBUG RECEIVED [13] 412010001000

00010000 00000000 00010000 00000000

 	# PID0124 Oxygen Sensor 1 (F-A ratio, Voltage)
# PID0134 Oxygen Sensor 1 (F-A ratio, Current)

[20]
[10001000]
DEBUG SENDING [7] b'050100\r'
DEBUG RECEIVED [7] 7F0512

00000000 01111111 00000101 00010010

replace() argument 1 must be str, not bytes
{'EVENT': 1, 'BUTTON': 'MIL'}
DEBUG SENDING [5] b'0101\r'
DEBUG RECEIVED [13] 410100076525

DEBUG SENDING [3] b'03\r'
DEBUG RECEIVED [15] 43000000000000

DEBUG SENDING [3] b'07\r'
DEBUG RECEIVED [15] 47000000000000

{'EVENT': 1, 'BUTTON': 'METERS'}
{'EVENT': 1, 'BUTTON': 'FRAME'}
DEBUG SENDING [5] b'0103\r'
DEBUG RECEIVED [7] 410301

DEBUG SENDING [5] b'0104\r'
DEBUG RECEIVED [7] 410403

DEBUG SENDING [5] b'0105\r'
DEBUG RECEIVED [7] 410544

DEBUG SENDING [5] b'0106\r'
DEBUG RECEIVED [7] 410680

DEBUG SENDING [5] b'0107\r'
DEBUG RECEIVED [7] 410780

DEBUG SENDING [5] b'010B\r'
DEBUG RECEIVED [7] 410B62

DEBUG SENDING [5] b'010C\r'
DEBUG RECEIVED [9] 410C0000

DEBUG SENDING [5] b'010D\r'
DEBUG RECEIVED [7] 410D00

DEBUG SENDING [5] b'010E\r'
DEBUG RECEIVED [7] 410E80

DEBUG SENDING [5] b'010F\r'
DEBUG RECEIVED [7] 410F46

DEBUG SENDING [5] b'0110\r'
DEBUG RECEIVED [9] 411000FD

DEBUG SENDING [5] b'0111\r'
DEBUG RECEIVED [7] 41112A

DEBUG SENDING [5] b'0113\r'
DEBUG RECEIVED [7] 411303

DEBUG SENDING [5] b'0115\r'
DEBUG RECEIVED [9] 41150080

DEBUG SENDING [5] b'011C\r'
DEBUG RECEIVED [7] 411C01

Unknown format code 'f' for object of type 'str'
Unknown format code 'f' for object of type 'str'
{'EVENT': 1, 'BUTTON': 'FREEZE'}
{'EVENT': 1, 'BUTTON': 'PLOTS'}
{'EVENT': 1, 'BUTTON': 'TROUBLE'}
DEBUG SENDING [5] b'0101\r'
DEBUG RECEIVED [13] 410100076525

DEBUG SENDING [3] b'03\r'
DEBUG RECEIVED [15] 43000000000000

DEBUG SENDING [3] b'07\r'
DEBUG RECEIVED [15] 47000000000000

{'EVENT': 1, 'BUTTON': 'VEHICLE'}
{'EVENT': 1, 'BUTTON': 'ELM327'}
{'EVENT': 1, 'BUTTON': 'CONFIG'}
{'EVENT': 1, 'GADGIT': 'CONFIGURE', 'BUTTON': ''}
{'EVENT': 1, 'GADGIT': 'CONFIGURE', 'BUTTON': ''}
{'EVENT': 1, 'GADGIT': 'CONFIGURE', 'BUTTON': ''}
{'EVENT': 1, 'GADGIT': 'CONFIGURE', 'BUTTON': ''}
{'EVENT': 1, 'GADGIT': 'CONFIGURE', 'BUTTON': 'SELECT_FONT'}
{'EVENT': 1, 'GADGIT': 'SELECT_FONT_NAME', 'BUTTON': 'CLOSE'}
{'EVENT': 1, 'GADGIT': 'CONFIGURE', 'BUTTON': ''}
{'EVENT': 1, 'GADGIT': 'CONFIGURE', 'BUTTON': 'SAVE_CONFIG'}
{'EVENT': 1, 'BUTTON': 'CONNECT'}
DEBUG SENDING [5] b'AT Z\r'
DEBUG RECEIVED [13] 
ELM327 v1.5

DEBUG SENDING [6] b'AT E0\r'
DEBUG RECEIVED [9] AT E0
OK

DEBUG SENDING [6] b'AT L0\r'
DEBUG RECEIVED [3] OK

DEBUG SENDING [6] b'AT R1\r'
DEBUG RECEIVED [3] OK

DEBUG SENDING [6] b'AT H0\r'
DEBUG RECEIVED [3] OK

DEBUG SENDING [6] b'AT S0\r'
DEBUG RECEIVED [3] OK

DEBUG SENDING [9] b'AT SP A3\r'
DEBUG RECEIVED [3] OK

DEBUG SENDING [9] b'AT IB 10\r'
DEBUG RECEIVED [3] OK

DEBUG SENDING [5] b'0101\r'
DEBUG RECEIVED [14] 
410100076525

DEBUG SENDING [5] b'0100\r'
DEBUG RECEIVED [13] 4100BE3FA811

[00]
[BE3FA811]
DEBUG SENDING [5] b'0120\r'
DEBUG RECEIVED [13] 412010001000

[20]
[10001000]
DEBUG SENDING [7] b'050100\r'
DEBUG RECEIVED [7] 7F0512

replace() argument 1 must be str, not bytes
{'EVENT': 1, 'BUTTON': 'EXIT'}
{'EVENT': 1, 'GADGIT': 'CONFIRM_EXIT', 'BUTTON': 'YES'}

