yep, followed all the instructions. I can’t see grids from my norns shield

The device fix/hack may need an adjustment after the last system update.

I’ll test this later today.

IMHO there is only one point where it could be hanging in the libavr32 code. Just look at the relevant file in https://github.com/monome/libavr32/blob/main/src/monome.c, function setup_mext(), lines 630-655.

It indeed does not require any specific ID to connect. There is a check, whether the second byte of the ID is “k” in line 641, but it is not a requirement for the connection, it just disables “vari” mode. I compared this to the original grid firmware, which has been posted above.

The original grid sends “mk” as ID, while the DIY grid sends “neo-monome”. Both pad the rest to fill 32 byte: https://github.com/monome/mk/blob/master/firmware/default/mk.c, line 253, lines 391-394

The only place where TT could be locked seems to be the “busy” loop at 635-637 in monome.c.

TT is waiting for ftdi_rx_busy() to become false. To see when this happens, we need to go to https://github.com/monome/libavr32/blob/main/src/usb/ftdi/ftdi.c. There you see that this function returns false when the global variable rxBusy is set to false. The only place where this can happen is line 60 of the same file. So we need to see why it does not get there.

This function (ftdi_rx_done) indeed uses the constant @okyeron mentions, the FTDI_STATUS_BYTES. But it does not lock in itself. It is supplied as a callback function in line 91. In the same line, we have the parameter FTDI_RX_BUF_SIZE, which is 64 - not 32.

We can go deeper from there in the USB driver, https://github.com/monome/libavr32/blob/master/asf/avr32/drivers/usbb/usbb_host.c, line 1601, but I think the theme is the same: It could have something to do with the 32 vs 64 stuff. Apparently, USB packets are usually 64 byte, including 2 status byte: https://www.ftdichip.com/Support/Knowledgebase/index.html?an232b_04smalldataend.htm

So maybe the USB FTDI packet with the ID is not actually sent to the TT by the FTDI adapter, for some reason, at least in the mode we are in when the FTDI is switched on first. Try to pad the ID to at least 64 temporarily, try to add a Serial1.flush() to force send, maybe try to send the ID multiple times?

You could be bold and solve the gordic knot by modifying the above mentioned part of TT’s firmware, like removing the ID request with the busy loop etc. completely, and see how it goes. Or changing the FTDI_STATUS_BYTES constant. That could help pinpointing the issue. Also, you might activate the TT’s debug output in monome.c and ftdi.c, which is commented out, and read it during boot.

FWIW - this is incorrect. “mk” (aka monome kit) devices send “mk” at the start of the ID. They are not varibright, so vari mode is disabled for that type. See here for editions. Newer varibright grids i believe simply send “monome” as the ID. “Original” grids would be the 40h and those use a different connection function. Series came after and then the mext devices.

You are probably right, I just had in mind zebra’s comment above who said “as far as i know, it [the stock grid firmware] has not changed since the mk kit”, but the IDs can well have changed. In any case, what I wanted to say is that the content of the ID does not really matter to the TT, besides for disabling varbright for “mk” devices.

Hello, lovely lines community!

I built a Norns Shield and Neotrellis Grid a few months ago.
I’m so amazed by everything that comes out of these!

I just had an issue after updating this morning.
My grid doesn’t appear anymore.
I tried reverting to the previous version following @dan_derks instructions, but still, it doesn’t show.
Reboots and resets don’t do much either.
Is there something I might have missed?
Probably, haha!
I use the paletted firmware on the grids but I don’t think that’s the issue.
Same issue with the grayscale firmware. (Teensy 3.2)

Any advice would be greatly appreciated, thanks!

moved this post as we don’t have any of these neotrellis things to test with— hopefully the other builders can offer some advice? @okyeron

2 Likes

It seems this thread has moved mostly into technical discussion, but just wondering—could someone who has built a DIY Norns Shield build one of these safely? Don’t have a 3D printer or cutter so I’d need to contract that out, but from reading the Github, nothing seems too complicated on the hardware side.

You need to re-patch and compile norns firmware after each upgrade.
Instructions: https://github.com/okyeron/neotrellis-monome#norns-shield

Did you do it?

1 Like

hey hey…

The neotrellis grid needs a hack/fix/workaround to make it work with norns shield. This needs to be reapplied after any norns system update.

Details on the neotrellis github readme here: https://github.com/okyeron/neotrellis-monome#norns-shield

This has changed slightly with the most recent norns update. I’ve just updated the device file and the instructions.

You will want to have maiden open when you connect the grid. If you get connection errors like error: couldn't open monome device at /dev/ttyACM0, try leaving the grid connected and SLEEP/restart your shield. Then add the grid in DEVICES if needed.

NOTE - if you had already updated to 201029 and ran the patch prior to today, you may want to run the patch instructions once more to get the most recent updated version of the device_monitor file.

EDIT 2: Seems like I’m getting persistent connection errors on re-plugging and I’ll need to do some more debugging when I have time, but unfortunately that may take a couple days. (may also be related to dev version of firmware I’m running)

1 Like

Apologies for the recent technical discussion. Build questions are totally welcome here.

Github should have all the information you need to build one. If not, please let me know and I’ll try to fill in the gaps.

Of course…

Re-ran the update, patched and everything is perfectly fine :slight_smile:
Totally forgot about that step.

Thanks, @eigen and @okyeron !

I owe you guys a beer.

@okyeron I went ahead and ordered everything, so I’ll let you know what should be added to the build guide/github. May even take some in progress pics myself if thag would be useful.

For now, I can confirm one thing that is missing—non diy people (people who only bought a Norns shield as their first diy project, for example) likely don’t have a bunch of 5 pin headers lying around, so it might be worthwhile to add those to the part list! I also had to remember to order wire!

3 Likes

Me too! After almost a whole year of lurking this thread I just pulled the trigger on some parts. Super excited to put this together.

I can confirm it’s a pretty easy build, just make sure you test the boards!
I soldered everything without testing because I couldn’t get my hands on one of those 5 pin cables…
Had one dead pixel on a board and de-soldering was a PITA especially if you use 5 pin headers :sob:
Mouser sent me a replacement board no questions asked tho.
I don’t know the reference for these cables, but it sure would be nice to add one to the BOM.

Adafruit STEMMA/JST-PH 4-pin cable

I just added it to the github readme

1 Like

Definitely check the boards!

I made my grid, and 3 out of 8 boards weren’t working and were causing issues. I spent a long time thinking I was doing something really dumb, only to later on (after I had disassembled the grid and started testing each one by one) that they were just defective.

Got it contact with digikey, explained that I tested all 8 boards, and 3 of them didn’t respond, they sent me 3 new boards that did work.

Ok, I guess I was kinda lucky then!
I think I remember reading that someone had DOA boards :thinking:

AFAIR in the end I had 3 boards with issues from Mouser - one of them had a dead color channel on single LED (green channel didn’t work), one or two were completely blank (probably the first LED in the chain dead so others won’t work either).

I had already soldered some loose wires to the SMT pads for testing and my local’ish reseller of Neopixels warns on their site that the LED elements are particularly sensitive to static electricity. So I couldn’t be 100% certain if it was me who zapped them before first use due to careless handling, or if they were broken right from the package.

In any case, ended up ordering new ones from another place at extra cost, and now all Neopixels work fine.

All in all it’s a super easy build (disclaimer: I’m probably close to professional level at shoddy soldering after 15+ years) the case part turned out to be the difficult one, as I decided on an aluminum front plate and a wooden milled case. The milling of wood part is still waiting for some extra free time to appear…

I had tried sending 64 bytes before - it didn’t help. OK - more info, not sure if it will help. Here is what the norns shield receives from the trellis on waking up well:

00 01 21 04 f1 c0 e7 c7 04 00 00 00 00 00 00 00   ..!.ñÀçÇ........ 
00 00 00 00 00 00 e6 e7 86 00 00 00 00 00 00 00   ......æç†....... 
00 00 00 00 00 00 01 02 e6 e7 86 00 00 00 00 00   ........æç†..... 
00 00 00 00 00 00 00 00 c0 e7 c7 04 00 00 00 00   ........ÀçÇ..... 
00 00 00 00 00 00 00 00 20 40                     ........ @       

Nothing like the TT - thought that might be by design.

1 Like