Python event driven interface: txOpenBCI
(Continuation of discussion on Python brought up in another thread.)
https://github.com/OpenBCI/OpenBCI_Python
Over the weekend I started a new version from another angle, using an event-driven approach that will make it significantly easier to integrate with a web server and/or Kivy:
I'd really hoped to put a web server on that before I had to go back to my day job, but it still needs more work. Maybe next weekend.
Current status of the event-driven version (txOpenBCI) is that it opens a connection to the device and sends the "reset" command. Which is not very impressive and why I was going to wait until it was a little further along before bringing it up, but you seem to be enthusiastic about Python now. 
Comments
Check out this thread where @P300_MAN posted some graphs of his timings. At 250 packets per second, the nominal interpacket interval is 1/250 = .004 = 4 milliseconds. Which is what he was seeing.
http://openbci.com/forum/index.php?p=/discussion/198/timing-marks-buffering-delays-etc
Is it possible that your code is waking up more often as the bytes dribble in from the simulated serial port, running at 115200 bps = 115200 / 8 = 14400 bytes/sec. Do you delay your timing calculations until you get a full packet (frame termination character)?
Another data point that I'm aware of is Brainbay, which displays a "samples per second" counter in the status area at the bottom of the screen while running. This is always in the range of 250 sps. + or - a couple samples.
Regards, William
Great work on the python code https://github.com/OpenBCI/OpenBCI_Python . Received my board just before Christmas and I'm happy there's a Python way. Can't wait to get started.
I'm planning in creating an interface in Kivy if anyone wants to lend a hand. The main reason for choosing Kivy is that porting to IOS, Android, and OS X from the one kivy.app is straightforward.
Looking into Twisted integration in Kivy now. I like where this is headed.