In [1]:
import serial
import time

In [2]:
ser = serial.Serial('/dev/ttyACM0', 9600) #my particular arduino doesn't like other baud rates

In [3]:
ser.is_open


Out[3]:
True

In [4]:
def getSerialData():
    msg = ser.readline()
    
    msg = msg.rstrip(b'\r\n')
    msg = msg.rsplit(b',')
    print("msg: {}".format(msg))
    print(len(msg))
    if len(msg) == 2:
        return_numbers = []

        for number in msg:
            try:
                return_numbers.append(int(number))
            except:
                return_numbers.append(float(number))

        return return_numbers
    else:
        return [2,2] #error message which indicates that python recieved a wrong len msg

In [5]:
heaterOn=1
motorOn=1

In [ ]:
ser.write(bytearray([heaterOn, motorOn]))

In [ ]:
try:
     # read everything in the input buffer
    parsedData = getSerialData()
    print ("Parsed Data: {}".format(parsedData))

except:
    print ("didn't work {}".format(0))
    pass

In [8]:
for i in range(200):
#     Serial write section

    ser.write(bytearray([heaterOn, motorOn]))
    print ("Python value sent: ")
    print ([heaterOn, motorOn])

    # Serial read section
    try:
         # read everything in the input buffer
        parsedData = getSerialData()
        print ("Parsed Data: {}".format(parsedData))
        
    except:
        print ("didn't work {}".format(i))
        pass


---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-8-3f157663712d> in <module>()
      2 #     Serial write section
      3 
----> 4     ser.write(bytearray([heaterOn, motorOn]))
      5     print ("Python value sent: ")
      6     print ([heaterOn, motorOn])

/usr/local/lib/python3.5/dist-packages/serial/serialposix.py in write(self, data)
    540                     assert timeout.time_left() is None
    541                     # wait for write operation
--> 542                     abort, ready, _ = select.select([self.pipe_abort_write_r], [self.fd], [], None)
    543                     if abort:
    544                         os.read(self.pipe_abort_write_r, 1)

KeyboardInterrupt: 

In [ ]:
print(ser.is_open)
ser.close()
print(ser.is_open)

In [ ]: