💾 Archived View for tilde.town › ~nihilazo › grid.gmi captured on 2021-12-03 at 14:04:38. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
Tags:tech,projects
The neotrellis grid is a DIY project to create a monome-compatible grid instrument, using adafruit neotrellis boards. I built one.
Image: my finished neotrellis grid.
The electronics are well documented on the lines thread and github pages for the project. I don't have much to add here because the existing documentation is quite good, and the thread is a good place to ask questions. Make sure that you test each board individually with a JST cable before soldering them together, and use pin headers (as shown in the video linked from the github repo) to connect the trellis boards for stronger connections. Being based in the UK I ordered all my parts from pimoroni, which cost me £161.40. In the future I may experiment with lowering this cost by using a cheaper RP2040 or AVR-based controller board rather than the (pricey) Teensy.
When I first ordered the parts from pimoroni I got a few button pads with bad buttons and a trellis PCB that was slightly broken, but I contacted them and got sent replacements with very little hassle, which is great.
It's a little ambiguous in the github page and trellis documentation, but you can connect the finished grid with the JST cable too, not just use it for testing - no need to resolder to the boards.
I had some problems with the monome software on arch linux. To detect the neotrellis grid on arch linux, you have to install libmonome from git and serialosc's grid-st branch. There are AUR packages, but at the time of writing these are broken. Here's my install process for arch linux:
cd /tmp git clone https://github.com/monome/libmonome cd libmonome ./waf configure --prefix=/usr ./waf sudo ./waf install cd .. git clone https://github.com/monome/serialosc git checkout grid-st git submodule init && git submodule update ./waf configure --prefix=usr ./waf sudo ./waf install
Now you should be able to run serialoscd, and use whatever monome software you have with the grid.
If you have problems, take note of the serial permissions notes on the monome linux setup page. If you still have problems, ask on lines.
There was already a case design on the lines thread, but it was laser cut, required additional hardware like fasteners, and required the teensy to be hard soldered to the grid. I wanted to design my own case that was fully printable on a home 3d printer and allowed me to keep the teensy disconnectable from the trellis PCBs (so I could experiment with other micros and maybe even non-USB connections in the future).
I designed the case using openSCAD, which allowed me to easily create grids and other tiled configurations (which is very useful for this) but was also a pain in the ass due to not having a very good visual way to lay things out (practically none, you have to do it in code). I love openSCAD one minute, and hate it the next.
Initially I was unsure about the best way to fasten the top plate to the bottom tray without needing to buy fasteners. XXCoder on libera.chat #reprap (thank you!) had the idea of using a peg and hole system, which is what I used in the final design. It required some tweaking to print properly (and, unfortunately, a couple of unusable test prints). The case could probably be thinner and physically smaller. I had to print each piece in two halves (4 pieces total). The first full print came out far too small in tolerances - even hacking at it with a dremel and sanding down to infill didn't make the PCB fit. I designed an insane amount of tolerance, an extra 2mm into the next version (decided it was better safe than sorry).
During this process the 3d printer gave me some pain, with clogged nozzles, extrusion issues, and slicing problems. I'm planning to learn how to construct things like this by hand, to avoid future 3d printer problems. I should also point out that during this process of testing and prototyping, about 200g of PLA waste are created which, while recyclable in theory, is not accepted by most recycling plants. Hand assembly, Laser cutting or CNC machining would have been a better option for creating the case, but I continued with 3d printing as I am unskilled in hand assembly and do not have access to those other CNC options.
My case design ended up having a large flaw: the USB board kept being pushed out of the hole in the case made for it. I solved this by gluing it down, but this caused the second issue that USB cables with a lot of shielding wouldn't fit. I hacked the shielding off an old micro-USB cable to use with the grid because of this. If you are printing this case for yourself, I would recommend coming up with some better way to mount the USB port.
Additionally, some buttons were harder to press than others due to the PCB not sitting 100% flat in the case, and some buttons would trigger an entire line of pads, which I remedied by inserting some small piece of craft foam underneath the sides and center of the PCB. This caused the buttons to sit slightly higher, but fixed the wobbling issue but failed to fix the line-triggering issue. I also printed a thicker plate, but this still had the same problem, and trying more foam did not fix it.
If you want to recreate my cursed mess, the STL and SCAD files for the case are below. When printing them, print one of each file in the out/ directory. Glue the two tray parts together. Glue the additional plate parts to the top of the plates. Add some electrical tape on the teensy to insulate it and connect it with a JST cable to the main grid which should sit on top. Place two layers of craft foam scraps into the case underneath the PCB. Then attach the pads and place the top plate parts. This case is not good, but I learned a lot while making it, not least that I should have done everything differently. However, in the end it did actually /almost/ live up to my design goals, in a poor way. The problem with whole lines triggering is still very annoying. I printed mine in the pictures using a "transparent" prusa PLA, which I think has a nice look.
SCAD and STL files for my case