Lazy Mini Grid

by parallyze in Workshop > 3D Printing

40308 Views, 405 Favorites, 0 Comments

Lazy Mini Grid

_title.jpg
IMG_5103.jpg
_exploded-view_001.jpg
IMG_5146.jpg
IMG_5052.jpg
_02_08.jpg
lmgv1_vs_lgcv2_2.jpg

February 2023 Update

Uploaded both case STL files with minor changes to the inner parts. This should avoid slicers using perimeter generators like Arachne creating fuzzy skin on the inside when not using the modifier STL.

--

A late happy new year, everyone!

Here's another LED grid. The ones I built so far always used LED strips with either 60 or 30 LEDs/meter. And so does this one, it's using 60 LEDs/meter, 90 in total (or 1.5m) - resulting in a 5x17 grid and 5 unused LEDs to avoid soldering.

(Actually I designed one using 144 LEDs/m before this one, but that's a different story and I might add pictures and a few words at the end of this Instructable why that one didn't work out so well)

The difference to my previous grids is the "offset" introduced to effectively double the density of the grid. The previous one was using 16.675mm cell size (distance LED center to LED center), this one is using 8.34mm. It is therefore roughly 17% smaller than using LED strips with 100 LEDs/meter or the available WS2812 matrices (8x16, 16x16 and so on).

I had people request smaller versions of the Lazy Grid Clock v2 - but that simply doesn't work so easy. The 11 LEDs on that one are spaced 183.4mm apart, so it simply does not fit printers like the Prusa Mini. And cutting away one row/column doesn't work either, there wouldn't be any spacing left between left/right or upper/lower digits. Simply splitting it in multiple parts isn't an option for various reasons.

So one of the design goals was to come up with an LED grid which can be printed using a build volume as low as 150mm x 150mm x 40mm (the optional stand is printed in vase mode and can be scaled easily, it's 90mm tall by default).

The biggest footprint is to be found on the case, it's 162.24mm x 56.69mm x 40mm and rotated by 45° it's 149.63mm x 149.63mm (148.8mm x 148.8mm for the thin variant). So you might have to adjust your skirt/prime settings but that's outside the scope of this Instructable.

It is a pretty tight fit and I don't recommend this to beginners for various reasons. The clock sketch that can be seen in the pictures has to be taken from my ClockSketch v7-Instructable, I highly recommend reading that one before building any of my designs.

As this Instructable is in essence just about a case/LED frame it will be rather short. It'll include the basic information to get started, that's it.

Edits:

  • Moved the short video showing the disassembly of one of the grids to the next step, didn't want it as a title.
  • Added a comparison of Lazy Grid Clock v2 dimensions vs. this one

Supplies

IMG_4971.jpg
IMG_4972.jpg
Lazy Mini Grid v1 - Disassembly

Printed parts:

  • 1x LMGv1-Case.STL or LMGv1-Case-Thin.STL)
  • 1x LMGv1-Diff_Grid.STL
  • 1x LMGv1-Elec_Case_All.STL
  • 1x LMGv1-LED_Frame.STL
  • 1x LMGv1-Spring_Clip_Things.STL
  • 1x LMGv1-Stand.STL (optional)

I recommend printing all parts except the case/stand using opaque black material. I've used yellow PLA for the spring clip things to improve visibility in the pictures. Case should work in many different colors except very transparent/clear ones where the diffusers corners might shine through.

All parts summed up consume roughly 110g-130g (PLA). Lots of potential to shave off some print time and material by optimizing (like 1 perimeter is enough for the LED frame, it really doesn't require any infill / top layers and so on). I printed all the parts using 0.25mm layer height. Except for the outside parts (case/stand) going finer doesn't really improve anything. Print times can range anywhere from 5h to 15h, depending on your settings.

All walls are multiples of 0.5mm, so I recommend using an appropiate extrusion width.

No supports required, some tiny overhangs.

Note: LMGv1-Case-Thin.STL is using multiples of 0.4mm in case you want the front grid of the case printed with thinner grid lines. It doesn't really improve anything visually, though...

Note: LMGv1-Case-Modifier.STL can be used to create fuzzy skin on the outside of the case only in case your slicer creates fuzzy skin on the inside of the case part.


If you want to run the sketch from my ClockSketch-Instructable, this is what I recommend:

Non-printed parts:

  • 90x WS2812B LEDs (60 LEDs/m) (17x5 = 85 used, 5 unused ones, details in CS7-Instructable)
  • 2x diffusive material (coated inkjet film, 3 shown for transparency demo)
  • 1x Microcontroller (Arduino Pro Mini or Nano, other supported ones listed in the ClockSketch v7-Instructable)
  • 1x RTC module (DS3231, ZS-042 or similar, other supported ones listed in the ClockSketch v7-Instructable)
  • 2x 6mm x 6mm momentary push button
  • 1x USB cable
  • 1x M3 6-12mm screw (optional, electronics case lid)


Both diffusers are cut to 144mm x 44mm. Having one of them a bit larger (the one between the LED frame and the diffuser grid) makes things a bit easier later on.


The exploded view is attached to this step in case you want to rotate it around a bit.

LED Strip Routing / LED Frame

_02_01.jpg
_02_01b.jpg
_02_02.jpg
_02_03.jpg
_02_04.jpg
_02_05.jpg
_02_06.jpg
_02_07.jpg
_02_08.jpg

Place the LED frame part as pictured. Note the "*" in the lower right corner, indicating where the LED strip will start with DATA IN. Also note how the wall on the upper right is shorter than the lower one - this is where the strip will end.

Start by inserting the first 9 LEDs as shown. At this point we will encounter the first unused LED, there is one each time when entering a new row (5 in total). Route the LED strip as shown to the right side. Once reaching the end you will need to add a sharp bend to the LED strip right next to one of the LEDs as shown. Be careful here not to damage the LED or pull it off of the strip.

That's about it. Repeat until you reach the end of the upper right wall.

I've added power/USB to the end of the LED strip and 3 wires going to the microcontroller at the start. I've used crimped connectors because I'm not planning to keep this and only connected a micocontroller for the pictures. Roughly 2.5"-3.5" (6cm-9cm) should be enough to reach everything inside the electronics case later on.

Sandwich Time

_03_01.jpg
_03_02.jpg
_03_03.jpg
_03_04.jpg
_03_05.jpg
_03_06.jpg
_03_07.jpg
_03_08.jpg
_03_09.jpg
_03_10.jpg

Put in the first layer of diffusive material, make sure it fits inside the cavity inside the case.

Add the diffusive grid on top, flat side down and inside the cavity so it stays aligned during the next steps.

Add the second layer of diffusive material, make sure the whole diffuser grid is covered.

Insert the LED frame into the case, tilt it in on side and be careful not to move the diffusive layer below.

Add the electronics case and route the wiring accordingly.

Insert the spring clip things (wanted: a name for those) as shown. Insert them in the rectangular slots from the electronics case, flat side of the tip facing the case. Now carefully bend it down on both sides and push it towards the outside case wall. Repeat for the other side.

I recommend testing the LED strip at this point and before finishing up the build. ClockSketch v7 can be used to test, uncomment RTCs on top of the sketch and leave the default power limit at 500mA, this way you can connect any microcontroller and test using USB only.

Finishing Everything Up

_04_01.jpg
_04_02.jpg
_04_03.jpg
_04_04.jpg
_04_05.jpg

Holding the buttons in place using the clips included in the case STL.

Case will fit various combinations of microcontrollers/RTCs/sensors, I recommend printing small boxes to contain them and avoid short circuits.

The center column can be used to fix the USB wire using a cable tie (strain relief).

Put both tips on the lower side of the strangely shaped clip thing into the tabs from the electronics case. Push on the top triangle part and align the top tip with the tab on the electronics case.

If you're not happy with the clip holding the case lid in place you can use a screw here (M3, 6mm-12mm maximum).

Adressing the Grid

lmgv1_adressing.jpg

Things we know (looking at the front of the finished grid):

The LEDs are numbered 0-89 in the array

Resolution is RES_X=17, RES_Y=5

There's one LED not used at the end of each row

The first LED (#0) is in the bottom left corner

The ones on even x coordinates are running to the right

The ones on odd x coordinates are running to the left

So:

uint16_t xyLED(uint8_t x, uint8_t y) {
uint16_t targetLED = 0;
if ( x % 2 == 0 ) {
targetLED = x / 2 + y * ( RES_X + 1 );
} else {
targetLED = RES_X + 1 - x + x / 2 + y * ( RES_X + 1 );
}
return targetLED;
}

xyLED(5, 1) would return #33.

The One That Didn't Work Out So Well

IMG_5003.jpg
IMG_5006.jpg
IMG_5008.jpg

Here's a comparison of this grid vs. the one using 144 LEDs/m. Obviously it is a bit smaller - but since the cells are so small, it does require those transparent inserts to get some light out of it at all. And there's another layer of diffusion on top of that to even out the results. Yes, it's smaller... but I don't think it's worth the additional parts and efforts.

And because the strips with 144 LEDs/m are 12mm instead of 10mm there's not really much alternatives. Even tilting/stacking them at wierd angles doesn't really work. Tricky strips, that...