CNMAT / OSC

OSC: Arduino and Teensy implementation of OSC encoding
cnmat.berkeley.edu/oscuino
Other
746 stars 138 forks source link

SAMD21 / SAMD51 / W5500 #133

Closed juliusPeters closed 6 months ago

juliusPeters commented 2 years ago

Hello Adrian, thank you for your work.

The SAMD21 / W5500 combination seems to work fine when using Ethernet2/EthernetUdp2 libs. I also tried it with the SAMD51 / W5500 combination but failed to get results. You write M0 boards are supported but you do not mention the newer M4+ boards. Therefore, my question, are there some special requirements to use the library on a SAMD51 or is this processor simply not supported yet. Are there are plans to support it?

Thank you Julius

marccolemont commented 1 year ago

Any update on this?

Sending OSC command work perfect. Receiving OSC messages are corrupt from any device on the network. For example sending /test1/1 to the SAMD21 gives error 2, and reading what comes in is this: ��HI0""q"Iu OSC Message Error As bytes are shifted? I lowered the SPI of the W5500 to 4/3/1 MHz as test, that doesn't help either. And other programs work over the network UPD and TCP messages.

Sode based on included example. For the IndustruinoD21 I need to use Ethernet2 library and use SerialUSB

  OSCMessage MessageIN;
    int size;
    if ( (size = Udp.parsePacket()) > 0)
    {
      // digitalWrite(ledPin, HIGH);
      while (size--)
        SerialUSB << F(Udp.read());
      MessageIN.fill(Udp.read());
      //MessageIN.dispatch("/slomo/refresh",refresh);
      MessageIN.route("/slomo/refresh", refresh);

      if (!MessageIN.hasError()) {
        SerialUSB << F("  OSC Message received\n");

        // SloMo Project commands
        //MessageIN.route("/slomo/refresh", refresh);
      } else {
        SerialUSB << F("  OSC Message Error\n");
        error = MessageIN.getError();

        SerialUSB.println(error);
      }
    }
adrianfreed commented 1 year ago

Their shouldn't be any platform differences. I would need a simpler repro example to work on this