static PyObject *frame_data(PyObject *self, PyObject *args) and static PyObject *get_data(PyObject *self, PyObject *args) both declare a const char* array which PyArg_ParseTuple is supposed to populate. The behavior seems undefined as this works on my windows computer, but not on the mac.
Allocating a size for the c arrays fixes the issue, f.ex:
const char send_data[255]; instead of const char *send_data