Polycule

Electronics, music instruments

Home
One-shot
Microled
Moduled Nano
Moduled Rack
Lunt
Resources
PO-24 Cheat Sheet

Moduled Nano

MIDI controlled modular LED synthesizer (8 hp). Setup LED animations using MIDI data on your modular rack.

DIY

Hardware

What you need

Case

I designed the case using Blender 3D rendering software and exported an stl file and printed the case using Lulzbot TAZ 6 3D printer. The .blend and stl file for the case can be found here.

Software

moduled_nano.ino

Moduled Nano Arduino script.

Setting up custom LED animations

Using this online LED matrix editor you can setup a sequence of images to be added as an animation.

Usage

Shapes

8x8 LED matrix shapes that change size

Empty circles | 4 sizes

const uint64_t IMAGES[] = {
  0x0000001818000000,
  0x0000182424180000,
  0x003c424242423c00,
  0x3c4281818181423c
};

Filled circles | 4 sizes

const uint64_t IMAGES[] = {
  0x0000001818000000,
  0x0000183c3c180000,
  0x003c7e7e7e7e3c00,
  0x3c7effffffff7e3c
};

Diagonal lines (symmetric) | 4 sizes

const uint64_t IMAGES[] = {
  0x4080000000000102,
  0x50a040800102050a,
  0x54a851a2458a152a,
  0x55aa55aa55aa55aa
};

Diagonal lines (non-symmetric) | 7 sizes

const uint64_t IMAGES[] = {
  0x4080000000000000,
  0x50a0408000000000,
  0x54a850a040800000,
  0x55aa54a850a04080,
  0x55aa55aa54a850a0,
  0x55aa55aa55aa54a8,
  0x55aa55aa55aa55aa
};

Animations

Growing cross | 12 frames

0xffc3a59999a5c3ff,
0x8142241818244281,
0x0042241818244200,
0x0000241818240000,
0x0000001818000000,
0x0000000810000000,
0x0000001008000000,
0x0000001818000000,
0x0000241818240000,
0x0042241818244200,
0x8142241818244281,
0xffc3a59999a5c3ff

Circling box | 28 frames

const uint64_t IMAGES[] = {
  0x0100000000000000,
  0x0101000000000000,
  0x0101010000000000,
  0x0101010100000000,
  0x0101010101000000,
  0x0101010101010000,
  0x0101010101010100,
  0x0101010101010101,
  0x0101010101010103,
  0x0101010101010107,
  0x010101010101010f,
  0x010101010101011f,
  0x010101010101013f,
  0x010101010101017f,
  0x01010101010101ff,
  0x01010101010181ff,
  0x01010101018181ff,
  0x01010101818181ff,
  0x01010181818181ff,
  0x01018181818181ff,
  0x01818181818181ff,
  0x81818181818181ff,
  0xc1818181818181ff,
  0xe1818181818181ff,
  0xf1818181818181ff,
  0xf9818181818181ff,
  0xfd818181818181ff,
  0xff818181818181ff
};

Pharmacy | 16 frames

const uint64_t IMAGES[] = {
  0x0000001818000000,
  0x0000182424180000,
  0x0018186666181800,
  0x181818e7e7181818,
  0x991818e7e7181899,
  0xdbdb18e7e718dbdb,
  0xffffffe7e7ffffff,
  0xffffffffffffffff,
  0xffffffffffffffff,
  0xffffffe7e7ffffff,
  0xdbdb18e7e718dbdb,
  0x991818e7e7181899,
  0x181818e7e7181818,
  0x0018186666181800,
  0x0000182424180000,
  0x0000001818000000
};

Filling circles | 11 frames

const uint64_t IMAGES[] = {
  0x0000001818000000,
  0x0000182424180000,
  0x003c424242423c00,
  0x7e8181818181817e,
  0x7e8181999981817e,
  0x7e8181999981817e,
  0x7e8199a5a599817e,
  0x7ebdc3c3c3c3bd7e,
  0x7ebdc3dbdbc3bd7e,
  0x7ebddbe7e7dbbd7e,
  0x7ebddbffffdbbd7e
};