Hello Pure Data friends,<br><br><br>We are currently trying to make the Bluetooth CUI work with PD.<br><br><br>The Bluetooth Create Usb Interface is the wireless version of the USB<br>CUI, a 13 analog/10 bits and 12 digital I/O interface for sensors. The
<br>BTCUI is perfect for embbeded applications like dance,<br>performance, music etc. It's one of the cheapest and smallest wireless<br>interface on the market, and it is Open Hardware !<br><br>The USB CUI works all right with PD, with HID tools. We use the [hid]
<br>external from PD-Extended 0.39.RC4 (on Mac).<br><br>Unfortunately, we didn't succeeded to make the BluetoothCUI working<br>with PD. We have tried [comport] and [hid]. The BTCUI works perfectly<br>on Max/MSP (demo version), as announced by Dan Overholt, its creator.
<br>His patch is downloadable at<br><a href="http://www.create.ucsb.edu/~dano/CUI/BlueCUItestRev2.zip">http://www.create.ucsb.edu/~dano/CUI/BlueCUItestRev2.zip</a> and uses the<br>[serial] object of Max/MSP.<br><br>The protocol of the CUI is probably similar to the one used by
<br>joysticks and such. It consists in a serie of integers with<br>delimiters, the several remaining integers beings the values that the<br>device sends to the computer. See the attached PD patches. Below are<br>out two PD patches. The first one uses [hid] and works with the USB
<br>CUI, but not over BlueTooth. (Apple does serial port emulation) The<br>second uses [comport] and almost work. The CUI LED lights up, so it<br>means that it is sending data, but most often, dumping the data from<br>[comport]'s outlet give us nothing.
<br><br><br>Would you have any idea of what is missing to imitate, and make even<br>better than the [serial] Max/MSP object ? Otherwise, would it be easier on Linux ? <br><br><br>JN and <br>-- <br>Alexandre Quessy<br><a href="http://alexandre.quessy.net">
http://alexandre.quessy.net</a>
<br><br><br><br>================== USING HID =================<br>==============================================<br><br>#N canvas 65 207 1002 633 10;<br>#X obj 146 157 hid 3;<br>#X floatatom 457 299 12 0 0 1 value - -;<br>
#X symbolatom 417 315 15 0 0 1 event_code - -;<br>#X symbolatom 378 331 15 0 0 1 event_type - -;<br>#X obj 378 278 unpack s s f;<br>#X msg 243 140 poll 2;<br>#X msg 176 125 print;<br>#X floatatom 167 483 5 0 0 0 - - -;<br>
#X floatatom 223 483 5 0 0 0 - - -;<br>#X floatatom 203 438 6 0 0 0 - - -;<br>#X floatatom 263 322 5 0 0 1 ev_syn - -;<br>#X obj 236 321 +;<br>#X msg 236 301 1;<br>#X obj 131 277 route key rel abs syn;<br>#X floatatom 280 483 5 0 0 0 - - -;
<br>#X obj 610 417 route abs_hat0x abs_hat0y abs_hat1x abs_hat1y;<br>#X floatatom 610 438 7 0 0 0 - - -;<br>#X obj 167 463 route rel_x rel_y rel_z rel_wheel;<br>#X floatatom 336 483 5 0 0 0 - - -;<br>#X obj 203 417 route abs_x abs_y abs_z abs_rx abs_ry abs_rz abs_throttle
<br>;<br>#X obj 610 454 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0<br>-1;<br>#X floatatom 688 438 7 0 0 0 - - -;<br>#X obj 688 455 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0<br>1;<br>#X floatatom 764 438 7 0 0 0 - - -;
<br>#X obj 765 456 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0<br>1;<br>#X floatatom 842 440 7 0 0 0 - - -;<br>#X obj 842 455 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0<br>3;<br>#X floatatom 253 438 6 0 0 0 - - -;
<br>#X floatatom 303 438 6 0 0 0 - - -;<br>#X floatatom 353 438 6 0 0 0 - - -;<br>#X floatatom 403 438 6 0 0 0 - - -;<br>#X floatatom 453 438 6 0 0 0 - - -;<br>#X floatatom 503 438 6 0 0 0 - - -;<br>#X obj 155 566 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
<br>1;<br>#X obj 185 566 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0<br>1;<br>#X obj 215 566 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0<br>1;<br>#X obj 245 566 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
<br>1;<br>#X obj 275 566 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0<br>1;<br>#X obj 305 566 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0<br>1;<br>#X obj 335 566 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
<br>1;<br>#X obj 365 566 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0<br>1;<br>#X obj 395 566 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0<br>1;<br>#X obj 425 566 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
<br>1;<br>#X obj 455 566 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0<br>1;<br>#X obj 485 566 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0<br>1;<br>#X obj 515 566 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
<br>1;<br>#X obj 131 511 route btn_0 btn_1 btn_2 btn_3 btn_4 btn_5 btn_6 btn_7<br>btn_8 btn_9 btn_10 btn_11 btn_12 btn_13 btn_14 btn_15;<br>#X obj 545 566 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0<br>1;<br>#X obj 575 566 tgl 25 0 empty empty empty 0 -6 0 8 -195568 -1 -1 0
<br>1;<br>#X msg 175 83 open 3 \, 1;<br>#X msg 175 104 0 \, close;<br>#X obj 86 483 vsl 15 128 0 1023 0 0 empty empty empty 0 -8 0 8 -262144<br>-1 -1 0 1;<br>#X msg 509 67 verbose 1;<br>#X obj 597 175 print;<br>#X msg 612 65 print;
<br>#X msg 706 90 close;<br>#X text 763 57 databits 5 \, 6 \, 7 \, 8;<br>#X obj 597 150 comport 1 57600;<br>#X text 756 9 use exact or higher baudrate;<br>#X msg 677 12 baud 57600;<br>#X obj 438 74 atoi;<br>#X msg 656 214 devicename /dev/tty.BlueCUI-COM0-1;
<br>#X msg 656 232 devicename /dev/cu.BlueCUI-COM0-1;<br>#X msg 657 261 devicename /dev/tty.BlueCUI-COM0-2;<br>#X msg 657 279 devicename /dev/cu.BlueCUI-COM0-2;<br>#X msg 706 113 1 open;<br>#X obj 165 209 print;<br>#X msg 438 44 S;
<br>#X msg 699 58 bits 8;<br>#X msg 598 34 devicename /dev/tty.BlueCUI-COM0-1;<br>#X text 12 8 This patch works with the CUI using USB. It doesn't work<br>in BlueTooth.;<br>#X connect 0 1 66 0;<br>#X connect 4 0 3 0;<br>#X connect 4 1 2 0;
<br>#X connect 4 2 1 0;<br>#X connect 5 0 0 0;<br>#X connect 6 0 0 0;<br>#X connect 10 0 11 1;<br>#X connect 11 0 10 0;<br>#X connect 12 0 11 0;<br>#X connect 13 0 46 0;<br>#X connect 13 1 17 0;<br>#X connect 13 2 19 0;<br>
#X connect 13 3 12 0;<br>#X connect 15 0 16 0;<br>#X connect 15 1 21 0;<br>#X connect 15 2 23 0;<br>#X connect 15 3 25 0;<br>#X connect 16 0 20 0;<br>#X connect 17 0 7 0;<br>#X connect 17 1 8 0;<br>#X connect 17 2 14 0;<br>
#X connect 17 3 18 0;<br>#X connect 19 0 9 0;<br>#X connect 19 0 51 0;<br>#X connect 19 1 27 0;<br>#X connect 19 2 28 0;<br>#X connect 19 3 29 0;<br>#X connect 19 4 30 0;<br>#X connect 19 5 31 0;<br>#X connect 19 6 32 0;<br>
#X connect 19 7 15 0;<br>#X connect 21 0 22 0;<br>#X connect 23 0 24 0;<br>#X connect 25 0 26 0;<br>#X connect 46 1 33 0;<br>#X connect 46 2 34 0;<br>#X connect 46 3 35 0;<br>#X connect 46 4 36 0;<br>#X connect 46 5 37 0;
<br>#X connect 46 6 38 0;<br>#X connect 46 7 39 0;<br>#X connect 46 8 40 0;<br>#X connect 46 9 41 0;<br>#X connect 46 10 42 0;<br>#X connect 46 11 43 0;<br>#X connect 46 12 44 0;<br>#X connect 46 13 45 0;<br>#X connect 46 14 47 0;
<br>#X connect 46 15 48 0;<br>#X connect 49 0 0 0;<br>#X connect 50 0 0 0;<br>#X connect 52 0 57 0;<br>#X connect 54 0 57 0;<br>#X connect 55 0 57 0;<br>#X connect 57 0 53 0;<br>#X connect 57 0 13 0;<br>#X connect 57 0 4 0;
<br>#X connect 59 0 57 0;<br>#X connect 60 0 57 0;<br>#X connect 65 0 57 0;<br>#X connect 67 0 60 0;<br>#X connect 68 0 57 0;<br>#X connect 69 0 57 0;<br><br><br><br><br><br><br>================== USING COMPORT =============
<br>==============================================<br><br><br><br><br><br><br>#N canvas 204 86 933 828 10;<br>#X obj 607 631 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0<br>1;<br>#X obj 713 631 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
<br>1;<br>#X obj 558 587 - 4;<br>#X obj 514 587 - 4;<br>#X obj 470 587 - 4;<br>#X obj 426 587 - 4;<br>#X obj 426 633 +;<br>#X obj 426 608 * 255;<br>#X obj 558 633 +;<br>#X obj 558 608 * 255;<br>#X obj 514 633 +;<br>#X obj 514 608 * 255;
<br>#X obj 470 633 +;<br>#X obj 470 608 * 255;<br>#X obj 384 587 - 4;<br>#X obj 384 633 +;<br>#X obj 384 608 * 255;<br>#X obj 343 587 - 4;<br>#X obj 299 587 - 4;<br>#X obj 255 587 - 4;<br>#X obj 211 587 - 4;<br>#X obj 211 633 +;
<br>#X obj 211 608 * 255;<br>#X obj 343 633 +;<br>#X obj 343 608 * 255;<br>#X obj 299 633 +;<br>#X obj 299 608 * 255;<br>#X obj 255 633 +;<br>#X obj 255 608 * 255;<br>#X obj 169 587 - 4;<br>#X obj 125 587 - 4;<br>#X obj 81 587 - 4;
<br>#X obj 37 587 - 4;<br>#X text 706 663 C2 C1 C0 B7 B6 B5 A4;<br>#X text 599 650 D7 D5 D4 D3 D2 D1 D0;<br>#X obj 791 631 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0<br>1;<br>#X obj 778 613 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
<br>1;<br>#X obj 765 631 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0<br>1;<br>#X obj 752 613 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0<br>1;<br>#X obj 739 631 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
<br>1;<br>#X obj 726 613 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0<br>1;<br>#X obj 700 587 bit;<br>#X obj 685 631 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0<br>1;<br>#X obj 672 613 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
<br>1;<br>#X obj 659 631 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0<br>1;<br>#X obj 646 613 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0<br>1;<br>#X obj 633 631 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
<br>1;<br>#X obj 620 613 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0<br>1;<br>#X obj 594 587 bit;<br>#X obj 37 633 +;<br>#X obj 37 608 * 255;<br>#X obj 169 633 +;<br>#X obj 169 608 * 255;<br>#X obj 125 633 +;<br>#X obj 125 608 * 255;
<br>#X obj 81 633 +;<br>#X obj 81 608 * 255;<br>#X obj 192 422 unpack 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0<br>0 0 0 0 0 0 0;<br>#X obj 193 384 match 35 64 nn nn nn nn nn nn nn nn nn nn nn nn nn nn<br>nn nn nn nn nn nn nn nn nn nn nn nn nn nn 36;
<br>#X msg 421 202 verbose 1;<br>#X msg 495 82 close;<br>#X text 464 171 databits 5 \, 6 \, 7 \, 8;<br>#X obj 193 354 comport 1 57600;<br>#X text 479 147 use exact or higher baudrate;<br>#X msg 398 243 baud 57600;<br>#X msg 377 277 bits 8;
<br>#X obj 28 661 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144<br>-1 -1 0 1;<br>#X obj 81 661 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144<br>-1 -1 0 1;<br>#X obj 125 661 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
<br>-1 -1 0 1;<br>#X obj 169 661 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144<br>-1 -1 0 1;<br>#X obj 211 661 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144<br>-1 -1 0 1;<br>#X obj 255 661 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
<br>-1 -1 0 1;<br>#X obj 299 661 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144<br>-1 -1 0 1;<br>#X obj 343 661 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144<br>-1 -1 0 1;<br>#X obj 384 661 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
<br>-1 -1 0 1;<br>#X obj 426 661 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144<br>-1 -1 0 1;<br>#X obj 470 661 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144<br>-1 -1 0 1;<br>#X obj 514 661 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
<br>-1 -1 0 1;<br>#X obj 558 661 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144<br>-1 -1 0 1;<br>#X msg 4 347 open 1;<br>#X obj 336 93 t b b b b b b;<br>#X msg 336 75 bang;<br>#X msg 5 113 set open \$1;<br>#X floatatom 6 87 5 0 0 0 - - -;
<br>#X msg 4 313 devicename /dev/tty.Bluetooth-Modem;<br>#X obj 5 180 prepend set;<br>#X msg 133 102 /dev/tty.BlueCUI-COM0-0;<br>#X text -14 63 1 set port number;<br>#X text 137 51 2 set socket file;<br>#X text 329 59 3 bang me;
<br>#X text 489 61 4 close when needed;<br>#X msg 12 250 83;<br>#X obj 5 161 prepend devicename;<br>#X msg 133 86 /dev/cu.BlueCUI-COM0-1;<br>#X msg 133 70 /dev/tty.Bluetooth-Modem;<br>#X text 4 -11 This patch doesnt work. :-(;
<br>#X text 734 588 bit: missing object;<br>#X text 49 249 capital &quot;S&quot; in ASCII;<br>#X text 4 0 It is intended to communicate with the BT CUI;<br>#X text 50 263 So that the CUI SSStarts to SSend data;<br>#X connect 2 0 9 0;
<br>#X connect 3 0 11 0;<br>#X connect 4 0 13 0;<br>#X connect 5 0 7 0;<br>#X connect 6 0 75 0;<br>#X connect 7 0 6 0;<br>#X connect 8 0 78 0;<br>#X connect 9 0 8 0;<br>#X connect 10 0 77 0;<br>#X connect 11 0 10 0;<br>#X connect 12 0 76 0;
<br>#X connect 13 0 12 0;<br>#X connect 14 0 16 0;<br>#X connect 15 0 74 0;<br>#X connect 16 0 15 0;<br>#X connect 17 0 24 0;<br>#X connect 18 0 26 0;<br>#X connect 19 0 28 0;<br>#X connect 20 0 22 0;<br>#X connect 21 0 70 0;
<br>#X connect 22 0 21 0;<br>#X connect 23 0 73 0;<br>#X connect 24 0 23 0;<br>#X connect 25 0 72 0;<br>#X connect 26 0 25 0;<br>#X connect 27 0 71 0;<br>#X connect 28 0 27 0;<br>#X connect 29 0 52 0;<br>#X connect 30 0 54 0;
<br>#X connect 31 0 56 0;<br>#X connect 32 0 50 0;<br>#X connect 41 1 1 0;<br>#X connect 41 2 40 0;<br>#X connect 41 3 39 0;<br>#X connect 41 4 38 0;<br>#X connect 41 5 37 0;<br>#X connect 41 6 36 0;<br>#X connect 41 7 35 0;
<br>#X connect 48 1 0 0;<br>#X connect 48 2 47 0;<br>#X connect 48 3 46 0;<br>#X connect 48 4 45 0;<br>#X connect 48 5 44 0;<br>#X connect 48 6 43 0;<br>#X connect 48 7 42 0;<br>#X connect 49 0 66 0;<br>#X connect 50 0 49 0;
<br>#X connect 51 0 69 0;<br>#X connect 52 0 51 0;<br>#X connect 53 0 68 0;<br>#X connect 54 0 53 0;<br>#X connect 55 0 67 0;<br>#X connect 56 0 55 0;<br>#X connect 57 2 49 1;<br>#X connect 57 3 32 0;<br>#X connect 57 4 55 1;
<br>#X connect 57 5 31 0;<br>#X connect 57 6 53 1;<br>#X connect 57 7 30 0;<br>#X connect 57 8 51 1;<br>#X connect 57 9 29 0;<br>#X connect 57 10 21 1;<br>#X connect 57 11 20 0;<br>#X connect 57 12 27 1;<br>#X connect 57 13 19 0;
<br>#X connect 57 14 25 1;<br>#X connect 57 15 18 0;<br>#X connect 57 16 23 1;<br>#X connect 57 17 17 0;<br>#X connect 57 18 15 1;<br>#X connect 57 19 14 0;<br>#X connect 57 20 6 1;<br>#X connect 57 21 5 0;<br>#X connect 57 22 12 1;
<br>#X connect 57 23 4 0;<br>#X connect 57 24 10 1;<br>#X connect 57 25 3 0;<br>#X connect 57 26 8 1;<br>#X connect 57 27 2 0;<br>#X connect 57 28 48 0;<br>#X connect 57 29 41 0;<br>#X connect 58 0 57 0;<br>#X connect 59 0 62 0;
<br>#X connect 60 0 62 0;<br>#X connect 62 0 58 0;<br>#X connect 64 0 62 0;<br>#X connect 65 0 62 0;<br>#X connect 79 0 62 0;<br>#X connect 80 0 91 0;<br>#X connect 80 3 65 0;<br>#X connect 80 4 64 0;<br>#X connect 80 5 59 0;
<br>#X connect 81 0 80 0;<br>#X connect 82 0 79 0;<br>#X connect 83 0 82 0;<br>#X connect 84 0 62 0;<br>#X connect 85 0 84 0;<br>#X connect 86 0 92 0;<br>#X connect 91 0 62 0;<br>#X connect 92 0 85 0;<br>#X connect 93 0 92 0;
<br>#X connect 94 0 92 0;<br clear="all"><br>