Happy to report mine works really well with Fates.

It’s SO portable!

Thanks again for all of your hard work @okyeron!
:smiley:

2 Likes

Can you do a the same thing for a Norns Shield?

EDIT - Please be aware this is a hack/workaround and is not officially supported.
Proceed at your own risk

See this message for details

Ah cool, thank you! I tried it and it did something weird to the OS, particularly removing the “Audio>” in the “System>” so I’m just going to reflash the shield. I appreciate the quick response though!

Could be something odd with the most recent norns code (?)

The steps above should put you on the “master” of the norns codebase as it is on github. In other words, this is ahead of a full release. Sometimes there are bugs.

Gonna test on my shield here shortly

EDIT - @briangriffith the AUDIO menu is removed/moved in the most recent code on github

got my m4 in the mail yesterday – it’s a sweet lil thing :slight_smile:

unsure if folks have had this experience, but running into some interesting behavior with norns where about 100-150 seconds after it’s plugged in and running simple MIDI into a WIP script, all processes seem to come to a dead stop – they restore if i unplug the m4. running dmesg after, i’m seeing usb 1-1.3: urb status -32.

figured i’d put feelers out there to see if folks have run into similar weirdness :revolving_hearts:. happy to assume it’s the WIP script, but this doesn’t happen with an OP-Z or similar controller, so would be good to hear any experiences.

Which code are you running? I could do some testing later to see if that happens on fates/shield.

thanks steven!

able to repro with these steps:

  • load the midi_keypad code onto the M4
  • load molly_the_poly on norns
  • plug in the M4, start playing notes, all’s well for a bit
  • after 2 minutes-ish, the norns UI freezes but networking is still available
  • unplug the M4, all returns to working

stock norns on 200712, super curious if this is reproducible on anyone else’s units. thanks so much!

here's the output from dmesg
[   62.972210] usb 1-1.1: new full-speed USB device number 4 using dwc_otg
[   63.112307] usb 1-1.1: New USB device found, idVendor=239a, idProduct=802f
[   63.112315] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   63.112320] usb 1-1.1: Product: Adafruit Trellis M4
[   63.112324] usb 1-1.1: Manufacturer: Adafruit LLC
[   63.112328] usb 1-1.1: SerialNumber: D01B51C85338533335202020FF132720
[   63.138445] cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device
[   63.140656] usbcore: registered new interface driver cdc_acm
[   63.140665] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[   63.165882] usbcore: registered new interface driver snd-usb-audio
[  165.415942] usb 1-1.1: urb status -32
[  165.421935] usb 1-1.1: urb status -32
[  165.424954] usb 1-1.1: urb status -32
[  165.427965] usb 1-1.1: urb status -32
[  165.430939] usb 1-1.1: urb status -32
[  165.433952] usb 1-1.1: urb status -32
[  165.439961] usb 1-1.1: urb status -32
[  165.442953] usb 1-1.1: urb status -32
[  165.445939] usb 1-1.1: urb status -32
[  165.448954] usb 1-1.1: urb status -32
[  165.451957] usb 1-1.1: urb status -32
[  165.454953] usb 1-1.1: urb status -32
[  165.457963] usb 1-1.1: urb status -32
[  165.460955] usb 1-1.1: urb status -32
[  165.463963] usb 1-1.1: urb status -32
[  165.469951] usb 1-1.1: urb status -32
[  165.472957] usb 1-1.1: urb status -32
[  165.478949] usb 1-1.1: urb status -32
[  165.481941] usb 1-1.1: urb status -32
[  165.484943] usb 1-1.1: urb status -32
[  165.487949] usb 1-1.1: urb status -32
[  165.493950] usb 1-1.1: urb status -32
[  165.496940] usb 1-1.1: urb status -32
[  165.499943] usb 1-1.1: urb status -32
[  165.502950] usb 1-1.1: urb status -32
[  165.505952] usb 1-1.1: urb status -32
[  165.508950] usb 1-1.1: urb status -32
[  165.511951] usb 1-1.1: urb status -32
[  165.514955] usb 1-1.1: urb status -32
[  165.517958] usb 1-1.1: urb status -32
[  165.520953] usb 1-1.1: urb status -32
[  165.523954] usb 1-1.1: urb status -32
[  165.526950] usb 1-1.1: urb status -32
[  165.529955] usb 1-1.1: urb status -32
[  165.532952] usb 1-1.1: urb status -32
[  165.535945] usb 1-1.1: urb status -32
[  165.538941] usb 1-1.1: urb status -32
[  165.541942] usb 1-1.1: urb status -32
[  165.547955] usb 1-1.1: urb status -32
[  165.550940] usb 1-1.1: urb status -32
[  165.553951] usb 1-1.1: urb status -32
[  165.559951] usb 1-1.1: urb status -32
[  165.562950] usb 1-1.1: urb status -32
[  165.565941] usb 1-1.1: urb status -32
[  165.571943] usb 1-1.1: urb status -32
[  165.574948] usb 1-1.1: urb status -32
[  165.577940] usb 1-1.1: urb status -32
[  165.580950] usb 1-1.1: urb status -32
[  165.583980] usb 1-1.1: urb status -32
[  165.584929] usb 1-1.1: USB disconnect, device number 4
[  175.842650] sound midiC1D0: rawmidi drain error (avail = 431, buffer_size = 4096)
1 Like

hey dan…

Looking at this now and I think the dmesg output might be a red herring.

It’s likely to do with the M4 showing up as both a ACM device and as a MIDI device.

Do you see this error in Maiden - about 6-10 seconds after connect the M4:

>> ttyACM found, but not a crow
dev_list_add: error allocating device data

?

EDIT - testing now on shield with molly the polly and I’m not seeing a UI freeze (although - I was just on an older version of molly… updated and still not seeing UI freeze, but did get a random stuck note or two.)

1 Like

thank you so much for helping debug — i’m curious if this isn’t due to kernel differences between stock / shield / fates, as some offlines convos suggest.

if you’re having a slow night and have insights from your experience, the arduino code is my first dip into c — in the “expressive midi” scene it seems that the hardware state is polled (and a message is sent?) every 10ms rather than solely executing code when hardware is actually engaged. am i reading this totally wrong?

long story short, i’m wondering if things are getting clogged :confused:

in theory the kernel is the same between OG norns and shield.

Where is this sketch? Do you mean the midi_keypad.ino discussed on the Adafruit guide?

if I’m reading the library right, it’s only sending data if there’s something pending to be sent - not constantly flooding info every 10ms

void Adafruit_NeoTrellisM4::sendMIDI(void) {
  if (_midi_usb && _pending_midi) {
    MidiUSB.flush();
    _pending_midi = false;
  }
}

_pending_midi is only set to true when an event happens (noteOn, etc)


Additional thought - have you updated all the Arduino libraries for the Neotrellis M4?

FWIW - from your original dmesg output the only thing that looks odd to me is the [ 175.842650] sound midiC1D0: rawmidi drain error (avail = 431, buffer_size = 4096) error.

cool cool, just couldn’t tell what was going on :slight_smile:

yep, that’s the one. i’m also good to call this weird and move on. seems like a non-issue for anybody else.

i did, but maybe i’ll reflash some things and it’ll work. thanks for the time! sorry to pull focus. i’ll let you know if i get anywhere helpful

closing the loop on this one — i did see it. but if that’s not causing trouble on your side, unsure what to make of it. thanks again!