[PD] BlueTooth CUI : using [comport] or [hid]

B. Bogart ben at ekran.org
Fri Jun 16 15:29:30 CEST 2006


Hello Alexandre,

I got the the ICubeX bluetooth to work at my old lab at Ryerson.

The hardest part was making bluez work and getting the pairing up and
running, once that was done it was a lot easier.

I had to get the developer docs for the Icube, so that I could send the
binary message that tells it to start transmitting. Maybe the CUI has a
similar command?

I just used PD [comport] on linux bound to the bluetooth rfcomm device,
and it worked great.

It was pretty anoying to parse variable length byte codes in PD though...
ignore the header and footer, then strip off the sensor ID, then pass
through the correct sensor. and of course the return values from commands
also.

Anyhow it should not be any more difficult for the CUI...

.b.


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






More information about the Pd-list mailing list