Ouch: Serial performance on OS X v Windows

batchku's icon

It's not that I own thousands of shares of apple sock or anything of the sort,
yet i'm saddened each time i find a technique/tool that works far better on windows than on OS X.

and here, one of those cases:

i'm using Javascript ("js" object) to send out series of bytes to the serial object, in order to communicate with an XBee module (http://www.digi.com/products/wireless-wired-embedded-solutions/zigbee-rf-modules/point-multipoint-rfmodules/xbee-series1-module.jsp#overview) connected to my MacBook Pro through an "XBee Explorer" (http://www.sparkfun.com/products/8687). The XBee that's connected to my laptop then relays this messages wirelessly to remote XBees out and about.

The same patch runs VERY differently on Windows vs. OS X. On windows, I get very good timing performance (a light bulb flashing 25ms ON/25 OFF looks pretty good), and very few packet drops (about %95 success). On OS X, I get terrible performance, about %30 of the packets get through successfully.

I've made sure to test with the same attributes for the Serial object for both systems.

Specs:
Mac: MacBookPro 2.4GHz, 4gb RAM, 10.6.7, Max 5.1.8 (45300)
PC: Some laptop 2.2GHz, 2gb RAM, Windows Vista SP2, Max 5.1.8 (45300)

Does anyone have a hunch as to why performance is so dramatically different on the two systems?

Thanks,

Ali

2191.xbeeteensyserialboohoo.maxpat
Max Patch
soulriot's icon

I was doing a project with an XBee Pro sending extremely fast PWM (initially once/millisecond) to control some EL-wire, and found that it was very unreliable (it would stop working responsively after a couple of minutes) until I changed the patch to work through MSP, with a snapshot~ object outputting the final PWM value to the serial object. I've also found that some of the higher baud-rates can be quite unreliable when using serial outs on my mac running Max/MSP (never tried it on Windows, so I can't compare), so maybe you could change this if possible? After making these changes I was able to send serial information once every 11 samples, with rock solid reliability for hours at a time.