had a look at your pd patch. regarding the [slipdec] thing: inside your arduino 
code, you're printing your data with serialPrint(), but [slipdec] expects slip 
packages. so that's probably the reason it complains. It keeps accumulating 
bytes and therefore exceeds the maximum length.

My patch is actually meant to be a kind of router, building a bridge between 
the arduino and other programs (most of which can deal easier with OSC via UDP 
than via Serial). In your case, you can get rid of the whole local host thing 
and just directly send the osc messages via [slipenc] to [comport]. Just grab 
the things out of my patch you actually need and get rid of the rest - or use 
it in another window/instance.

I attached an example how to use raw SLIP packages. Just modify it to your 
needs and see if it works better (it's definitely faster). 'index' would be 
your fader number and 'value' is the value. So for every fader change you just 
have to send a list of two bytes (index + value) to [slipenc] and from there to 
[comport]




> Gesendet: Freitag, 17. Juni 2016 um 02:27 Uhr
> Von: "Christof Ressi" <christof.re...@gmx.at>
> An: "Rick Snow" <ricks...@gmail.com>
> Cc: pd-list@lists.iem.at
> Betreff: Re: [PD] Pduino sysex vs. OSC advice
>
> > If it is a messaging issue using the raw slip packages as described here 
> > sounds promising:
> 
> Just to be clear: the MIDI style approach is already a functioning protocol 
> and doesn't require SLIP packages, because you can work with the raw serial 
> data. However, you could *instead* use raw SLIP packages, which is very 
> similar in the way you handle values with higher resolution (bitshifting). 
> advantage: 8-bit data instead of 7-bit. disadvantage: slightly more complex 
> because of the escape characters. 
> 
> Again the link for an bitshifting example: 
> https://lists.puredata.info/pipermail/pd-list/2016-06/115160.html 
>  
>  
> 
> Gesendet: Donnerstag, 16. Juni 2016 um 17:35 Uhr
> Von: "Rick Snow" <ricks...@gmail.com>
> An: pd-list@lists.iem.at, "Christof Ressi" <christof.re...@gmx.at>
> Betreff: Re: Pduino sysex vs. OSC advice
> 
> ​Thanks again Christof for pointing me in a promising direction.  I have been 
> working with the OSC tagging via slipenc and slipdec.
>  
> As of now I have fairly reliable communication between PD and the Arduino 
> sketch using a version the patch you provided.  I am able to reliably send 
> messages and the sketch responds as I expect most of the time.  However, when 
> sending several faders simulaneously I get some glitching.  Right now I am 
> wondering if it has something to do with using OSC instead of the raw slip 
> packages.  I do get this message in the pd console but I'm not sure that it 
> relates to the glitching: "slipdec: input packet longer than 1006" 
>  
> I've included the pd patch and the arduino sketch if anyone wants to take a 
> look. these work with a WS2812 led strip.
>  
> If it is a messaging issue using the raw slip packages as described here 
> sounds promising:
>  
> "You can also make your own simple protocol where you define a certain 
> character to signify the start or end of a message. But how do you know if 
> it's not part of the data? SLIP uses escape sequences to handle this case. 
> Two alternative solutions:a) work with fixed length messages and count bytes 
> (not very safe)
> b) reduce the range of possible values for your data (e.g. 0-127, like MIDI) 
> and reserve the rest for addressing (128-255). If you need a greater 
> resolution for your values, just break them up into several bytes. This way, 
> sending a single 16 bit integer would take 4 bytes (address, bit 14-15, bit 
> 13-7, bit 0-6).
> ​"
> 
>  
> 
> I am a total noob when it comes to this... could you share an example?​ 
>  
> Cheers,
> Rick
>  
>  ------------------------------
> 
> Message: 2
> Date: Thu, 2 Jun 2016 19:38:51 +0200
> From: "Christof Ressi" <christof.re...@gmx.at>
> To: "Rick Snow" <ricks...@gmail.com[ricks...@gmail.com]>
> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" 
> <pd-list@lists.iem.at[pd-list@lists.iem.at]>
> Subject: Re: [PD] Pduino sysex vs. OSC advice
> Message-ID:
>         
> <trinity-add7278d-1946-4da0-b7d2-6db454348f09-1464889131559@3capp-gmx-bs34>
> 
> Content-Type: text/plain; charset=UTF-8
> 
> >> am able to get the LED to light up using ArduinoTestOSC.pd.
> 
> But you can also receive the data from the analog pin, right? (random values, 
> if nothing is connected to the pin)
> 
> >> "Packet size (#) not a multiple of 4: dropping packet"
> 
> I can vaguely remember this message.  Does it happen all the time or just at 
> the beginning? Does it happen if you close and open the serial device? It 
> didn't cause any problem with me. Actually, the Processing version of 
> ArduinoSLIPSerialToUDP has protection against sending unvalid OSC messages.
>  
> 
> Gesendet: Donnerstag, 02. Juni 2016 um 18:00 Uhr
> Von: "Rick Snow" <ricks...@gmail.com[ricks...@gmail.com]>
> An: "Christof Ressi" <christof.re...@gmx.at[christof.re...@gmx.at]>
> Cc: "pd-list@lists.iem.at[pd-list@lists.iem.at]" 
> <pd-list@lists.iem.at[pd-list@lists.iem.at]>
> Betreff: Re: Re: [PD] Pduino sysex vs. OSC advice
> 
> Thanks Christof (and Martin) for pointing me to the CNMAT library.
>  
> I did spend a bit of time with this library before posting to the list but 
> the tutorial I looked at originally required the ethernet shield. Now I am 
> giving the  slipenc/slipdec + OSC functionality a try.  The raw SLIP packages 
> look promising as well though I unfamiliar with bitshifting at this point! 
>  
> Christof, 
> Your Arduino_Serial patches look very promising.  Thanks for taking the time 
> to make this and send my way!  I've taken a look and after getting the 
> mrpeach objects loaded correctly (and the object/message connections 
> correctly reconnected) am able to get the LED to light up using 
> ArduinoTestOSC.pd.
>  
> There are a lot of unpackOSC messages telling me things like "Packet size (#) 
> not a multiple of 4: dropping packet" but I think this is not a big problem 
> right?
>  
> Thanks again!
> Rick
>  
>  
>  
> On Wed, Jun 1, 2016 at 6:40 PM, Christof Ressi 
> <christof.re...@gmx.at[christof.re...@gmx.at]> wrote:The CNMAT OSC library 
> works well and I often used it with a serial connection. The documentation, 
> however, is not so good and some of the examples are buggy. I attached some 
> test sketches/patches I once made for a class presentation. The arduino 
> sketch explains how to easily send and receive OSC messages via a serial 
> connection (make sure you use the same baud rate on both sides!)
> 
> Although OSC is convenient, it can be a waste of ressources if you send lots 
> of messages. I often work with raw SLIP packages instead, where the first 
> byte is used for addressing and the other bytes are the actual data (using 
> some bit shifting to break up integers into several bytes). In the arduino 
> code, use SLIPSerial.read() to fill an array (instead of an OSC message) and 
> interpret your data as needed.
> 
> You can also make your own simple protocol where you define a certain 
> character to signify the start or end of a message. But how do you know if 
> it's not part of the data? SLIP uses escape sequences to handle this case. 
> Two alternative solutions:
> a) work with fixed length messages and count bytes (not very safe)
> b) reduce the range of possible values for your data (e.g. 0-127, like MIDI) 
> and reserve the rest for addressing (128-255). If you need a greater 
> resolution for your values, just break them up into several bytes. This way, 
> sending a single 16 bit integer would take 4 bytes (address, bit 14-15, bit 
> 13-7, bit 0-6).
> 
> Christof
> 
> Gesendet: Mittwoch, 01. Juni 2016 um 17:16 Uhr
> Von: "Martin Peach" 
> <chakekat...@gmail.com[chakekat...@gmail.com][chakekat...@gmail.com[chakekat...@gmail.com]]>
> An: 
> "pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]]"
>  
> <pd-list@lists.iem.at[pd-list@lists.iem.at][pd-list@lists.iem.at[pd-list@lists.iem.at]]>
> Betreff: Re: [PD] Pduino sysex vs. OSC advice
> 
> There's an OSC library for Arduino here:
> https://github.com/CNMAT/OSCUsing[https://github.com/CNMAT/OSCUsing][https://github.com/CNMAT/OSCUsing%5Bhttps://github.com/CNMAT/OSCUsing%5D]
>  SLIP it can communicate over serial line using [comport] on the Pd end.
>  Martin
> 
>  
> On Wed, Jun 1, 2016 at 10:29 AM, Rick Snow 
> <ricks...@gmail.com[ricks...@gmail.com][ricks...@gmail.com[ricks...@gmail.com]][ricks...@gmail.com[ricks...@gmail.com][ricks...@gmail.com[ricks...@gmail.com]]]>
>  wrote:
> 
> Hello list!
>  
> I am looking for some advice on sending messages from PD to an Arduino 
> sketch.  Essentially, I plan to connect a mac to an Arduino via USB and 
> control a large amount of variables within the Arduino sketch from PD.  
>  
> Is using the sysex message with the [arduino] object message the way to go 
> with this?  How can I "tag" the messages so that they go to the correct 
> variable in the arduino sketch?  Is there a practical limit to the speed of 
> such a system?
>  
> I am much more familiar with using OSC messaging between applications but 
> when I looked into using OSC with Arduino it seemed like I needed to use an 
> ethernet shield (instead of connect via usb) and I would rather not go that 
> route unless absolutely necessary.
>  
> Any advice is much appreciated!
>  
> cheers,
> Rick _______________________________________________
> 
> 
>  
> 
> _______________________________________________
> Pd-list@lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> 
> https://lists.puredata.info/listinfo/pd-list
>

Attachment: pwm_slip.ino
Description: Binary data

_______________________________________________
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list

Reply via email to