MUFF WIGGLER Forum Index
 FAQ & Terms of UseFAQ & Terms Of Use   Wiggler RadioMW Radio   Muff Wiggler TwitterTwitter   Support the site @ PatreonPatreon 
 SearchSearch   RegisterSign up   Log inLog in 
WIGGLING 'LITE' IN GUEST MODE

RGB LED Rings w 36x WS2812 2020 and Rotary Encoders
MUFF WIGGLER Forum Index -> Music Tech DIY  
Author RGB LED Rings w 36x WS2812 2020 and Rotary Encoders
weasel79
Hey guys,
i designed these PCB boards with the help of an engineer, 4x1 LED Rings and Rotary Encoders for music controllers. We managed to squeeze 36 WS2812 RGB LEDs in 2020 size in a 33mm diameter ring.

Prototypes are running super smooth under arduino, also confirmed working on midibox and axoloti.

a 4x2 configuration could nicely fit into an eurorack module, combined with just an arduino and a MAX11300 you could have a super cheap octo-LFO/CV/sequencer/whatever digital thing.

Here's the midibox thread with some more info.
http://midibox.org/forums/topic/21095-lre-4x1-breakable-rgb-led-ringro tary-encoder-pcb-bulk-order





and a little video with a prototype frontplate

YOUTUBE VIDEO

if anybody is interested in getting some of these, hit me up here, on midibox or youtube. to clarify, this is not a commercial offer but a at-cost group order situation. i am absorbing all of the developement and prototyping cost.
ixtern
Looking nice. But...
- what is the final refresh of the LEDs?
- how much current draw such 4-encoder panels with full lit LEDS?
- is there a single-LED-lit mode possible (one at time LED turned on according to encoder position) ?
weasel79
ixtern wrote:
Looking nice.

Thanks Miley Cyrus
ixtern wrote:

- what is the final refresh of the LEDs?

Depends on the amount of LEDs per serial line. If you want to maintain 60Hz refresh rate, the ws2812 protocol limits you to 500pcs, about 1000 at a 30Hz rate. so that's 13-14 LED Rings at 60Hz, double that at 30Hz. And if you use something like an Arduino Due you get 3-4 serial com lines, meaning up to 50 LED rings on a single MCU at 60Hz, up to 100 at 30Hz.
ixtern wrote:

- how much current draw such 4-encoder panels with full lit LEDS?

Yes these RGB LEDs are power hungry. even the small 2020 LEDs use up to 5mA per channel and LED, but the LEDs are super bright at 20% already (demo video shows 20%). so at 20% one fully lit ring would eat around 100mA. 20 rings, you need a 2A power supply just for the LEDs. The PCB design allows for adding additional power lines every couple of rings.
If you go past 20% they basically blind you, realistically in everyday use i would probably rather turn them to 10 or 5%.
ixtern wrote:

- is there a single-LED-lit mode possible (one at time LED turned on according to encoder position) ?

Not exactly sure what you mean, but these are 100% freely adressable. It's basically one long chain of LEDs with unique RGB values and you can adress every single one of them and do woth it whatever pleases you.
While by the time of the order i will definately have some arduino, axoloti and midibox routines for convenient basic controller function, there will be no whatsoever big library or automatic support or anything, it's really just an assembled high quality PCB board.
ixtern
weasel79 wrote:
ixtern wrote:
Looking nice.

Thanks Miley Cyrus
ixtern wrote:

- what is the final refresh of the LEDs?

Depends on the amount of LEDs per serial line. If you want to maintain 60Hz refresh rate, the ws2812 protocol limits you to 500pcs, about 1000 at a 30Hz rate. so that's 13-14 LED Rings at 60Hz, double that at 30Hz. And if you use something like an Arduino Due you get 3-4 serial com lines, meaning up to 50 LED rings on a single MCU at 60Hz, up to 100 at 30Hz.
ixtern wrote:

- how much current draw such 4-encoder panels with full lit LEDS?

Yes these RGB LEDs are power hungry. even the small 2020 LEDs use up to 5mA per channel and LED, but the LEDs are super bright at 20% already (demo video shows 20%). so at 20% one fully lit ring would eat around 100mA. 20 rings, you need a 2A power supply just for the LEDs. The PCB design allows for adding additional power lines every couple of rings.
If you go past 20% they basically blind you, realistically in everyday use i would probably rather turn them to 10 or 5%.
ixtern wrote:

- is there a single-LED-lit mode possible (one at time LED turned on according to encoder position) ?

Not exactly sure what you mean, but these are 100% freely adressable. It's basically one long chain of LEDs with unique RGB values and you can adress every single one of them and do woth it whatever pleases you.
While by the time of the order i will definately have some arduino, axoloti and midibox routines for convenient basic controller function, there will be no whatsoever big library or automatic support or anything, it's really just an assembled high quality PCB board.


Thanks for the answers.

60Hz for LEDs may be too low (eye - especially lateral vision - may register flickering and get tired), so perhaps more than 1 line should be used (Arduino Mega Mini should be the best for it).

Having many LED encoder rings fully lit is too much current draw from supply lines, I think. So for me better is single-LED mode when in one LED ring only one LED is always on (active LED) and position of active LED is moved according to encoder movement.
Of cause fully lit ring looks better, but not very practical when several or dozen rings are regarded.
Panason
This is awesome and almost makes me want to get into DIY and make my own soft synth controllers.. I agree though that a single lit LED to indicate current value is sufficient, from a user perspective.. and would almost elminate the issue of edge-of-vision flicker if a higher refresh rate isn't possible.
weasel79
You can of course adress the WS2812 series in a way that you only display one dot per ring, and yes, that would save a lot of power! i personally prefer a full line up to the value dot, for aesthetics but also because eg. a single dot can get lost/be hidden behind the encoder knob. an alternative/compromise solution though would be to run the full line up to the main dot at lets say 2% brighntess, then the dot at 20% brigthness. also possible with these boards.

remember, this is just hardware, it does not necessarily come with ready made software support. both the LEDs and the shift registers are widely supported and documented by almost all big open source platforms though.



To clarify on the Hz rates and flickering, these WS2812 LEDs have no visible flickering at all. anything you might think is flickering in the video is caused either by the telephone camera, reflections on the front plate or my shitty programming.

The update rate only refers to how fast you can update the color of ALL LEDs. the LEDs themselves will never flicker or go out unless you tell them to. So a lower update rate of 30 or less Hz will only result in stuttering of very fast movements, in a musically context that could be the case if you want to visualize an LFO frequency with these LEDs for example. It will not be able to smoothly keep up with movement faster than the given Hz refresh rate.

People build giant LED-Screens with these same LEDs all the time, with no flickering at all. It only means that the picture frame rate (or change of musical data) can at most be updated 60/30 times per second or otherwise intermediate data could be lost/values being skipped. Lets say if you move the encoder knob VERY fast, the LED mvoement might skip a couple of LEDS, but it will not flicker!
weasel79
Panason wrote:
This is awesome and almost makes me want to get into DIY and make my own soft synth controllers..

soft synth controllers huh? gotta shed some light on this guys amazing work, including eg. a full size real life Diva controller
http://www.synth-project.de/
cackland
Did you write your own library or use the predefined Adafruit library for the WS2812?
weasel79
cackland wrote:
Did you write your own library or use the predefined Adafruit library for the WS2812?

for testing i am currently using the adafruit neopixel library. i want to switch to FastLED soon though since the performance seems to be a good bit better. and since it looks like for my main personal project i will actually control the LEDs with arduino, i will probably write some neat function for all basic music encoder usage and wrap them in a little library that includes fastled.

currently slightly worried how many of the shift registers for the encoders you can line up serially without getting latency issues. will look into that now. if anybody has an idea/experience i'd be thankful.


in other good news, it looks like the manufacturer i planned on going with will have a 30% discount all june on the assembly part of the job. will update prices as soon as i have a reliable quote, but i expect at least 10% overall.
weasel79
aaaaand here's a video with some basic music encoder functions. also included the requested one-dot-mode.

as i said before, colors look 1000x better in real life.

https://youtu.be/XwJAsMYqPkA

edit: this is now running on the FastLED library fwiw.
UltraViolet
Definitely interested in buying some of these. Where is the price at currently?
Haralds:Werk
Nice work. Count me in
weasel79
these were the quotes from the original prototype order, i expect another 10 ish percent off with the discount. didn't do the maths or get an updated offer yet though...

Encoder board:
50pc --> 10€ / pc.
100pc --> 7€ / pc.
200pc --> 6€ / pc.

LED-Ring board
50pc => 28€ / pc.
100pc => 23€ / pc.
200pc. => 20€ / pc.

i'll definately order 100pcs minimum, so expect around 27 EUR currently for both boards.

they are currently designed as s single bubt easily breakable bboard cause that saves some money too. so unless someone really wants some, there won't be an option to order only LED Rings OR encoder PCBs.


ps. amazed how active this forum is, both the axoloti and midibox boards are like graveyards compared to this.
weasel79
was away for the week but i implemented some shift functions last night. if you hold down the shift button each encoder will send a different CC and the LED Rings can display a different style for it.

https://www.youtube.com/watch?v=FaMVOi2yt4E

also currently experimenting with frontplate and LED enclosure masks to reduce crossbleeding between neighbouring LEDs. it's close to what it loks like on those videos, so not terrible, but i'm trying to find ways to improve. documented in the midibox forum thread including some nice pictures:



FantomXR
Looks nice indeed! :-)
weasel79
FantomXR wrote:
Looks nice indeed! :-)

i present to muff wiggler the genius FantomXR who did the circuit design and SMD prototyping for me and also builds these extremely amazing custom midi controller keyboards, hit him up if you want a perfect keyboard.
pixelforest
if this is intended as a non-commercial thing, would you consider open-sourcing the design files?
weasel79
pixelforest wrote:
if this is intended as a non-commercial thing, would you consider open-sourcing the design files?

yes i strongly consider doing that once the project is finalized and the order arrived & everything is working. will need some extra time for documentation etc.
weasel79
was busy with family stuff for the week so unfortunately no updates. i will 99% likely change the design to 32 LEDs per ring for easier adressing, rhythmic use and to have a little more space between the LEDs for masking.

putting in the order tomorrow, i will order a small number of extras but anybody seriously interested, this is your last chance basically.

edit: not 100% confirmed yet but "one of" the big modular diy suppliers in the US might be able to stock some of these. his retail price might be a bit higher obviously.
weasel79
Ok guys, was away for a bit on family duties, here’s the final update before I put in the order within the next 2 days!

- I had @FantomXR change the LED Ring design to 32 instead of the prototypes 36 LEDs. That’s what I originally had planned too, for three reasons: 1. easier mathematical mapping of n^2 values 2. Better usage for rhythmic/timing use, ie. a 32 step circular sequencer (think Euclidean Circles module) 3. More space between the LEDs for possible masking solutions. The diameter of the ring will remain the same at 33mm. At the classic 80% perimeter encoder use (as shown in the demo videos with the bottom 5 LEDs blacked out), you will now have a 27 LED resolution instead of 31 on the prototype.
- The LED cross bleed which I was worried about for a while should be no issue with this updated version. Even without any masking or light pipes it is not that bad as you can see on all the demo videos. With the new LED distance it is quite easy to mill or print a little plastic masking ring if you want. And simple light pipes, even just hand cut from optical fibre, improve the quality a lot too. I will post pictures and videos of my results soon, but probably not in time before the order.
- Added SMD solder point for an optional power supply capacitor at the power supply pins of each LED board.
- Using WS2812C 2020 LEDs for much lower power consumption than the B variant.

- Added some extra pinouts on the encoder board for more efficient use of the 74HC165: on the prototype each 165 was filled with the 6 pins of two switchable encoders, wasting the 2 remaining pins. Now all 8 pins of the 165 have unique TH-solder points so empty pins of the 165 can easily be used for additional buttons. Eg. You can now connect 2 switch-less encoders and 4 pushbuttons to the same 165, or 1 switchable encoder and 5 pushbuttons, twice that per encoder PCB.
- Added a TH-solder point for the 165 Clock Enable pins so the boards can be used with bitbanging protocols instead of SPI only.

- Unfortunately due to some family emergencies over the last weeks I was not able to finalize the design in time for the afore mentioned manufacturer discount. I still managed to get a decent offer, and so far group orders including my own demand are at around 160 sets. That gives the following prices:
--- Net manufacturing cost per fully assembled PCB set: 19-21 EUR (depending on the final numbers)
--- Import taxes (VAT of 19% for EU, tbd for US and other countries) around 4 EUR per set
--- Individual shipping to you (tbc, but probably 5-10 EUR per shipment,
--- That equals to a roughly estimated overall sum of 30 EUR for 1 set, 50 EUR for 2 sets, 90 EUR for 4 sets, 170 EUR for 8 sets. plus/minus 5% i guess.

- This isn’t cheap but I am 100% sure it still is really good value for what you get. It's around the same price you pay for one single ALPS rotary encoder with a single color LED ring.
- The price is for a set of two PCBs, one with 4 RGB LED rings, and one for 4 rotary encoders. All SMD parts and the assembly is included, the actual rotary encoders and any through-hole solder pins are not included. Might be able to supply standard Bourns PEC11L if needed.
- I personally pay about 7 EUR more than this for every set, in my personal development/protoyping costs. So if you feel generous and support the cause, the net price per board would be 25-26 instead of 19-21 if I distributed the dev costs equally.
- Order will be put in this week, production and shipping will take approx 2-3 weeks, and then another week for testing and further shipping on my side. Expect it in your mailbox end of july.
- Also I am talking to a very popular US based modular DIY supplier who will eventually stock some boards in his webshop. Will confirm asap, pricing tbd.


And a summation of what I think is important information:
- This is a non commercial group buy of a pcb board. You buy the pcb board with all the SMD parts and assembly and nothing more. Of course I will take full personal responsibility in case something is fundamentally wrong or not working at all with the final product, based on a design mistake on my end. But other than that that’s all you get. No official support, no guarantees etc etc.
- That being said: I designed these for the MIDIbox platform originally and I also successfully tested and use them on Arduino boards and the Axoloti platform. They work perfectly. I will write basic functions and objects for all these platforms over the course of the next weeks and of course I will share all these with everybody. Also basic general control for ws2812 LEDs and 74HC165 rotary encoders is readily available for all platforms already. I’ll also throw together some basic quick start guides and assist with connection set-up problems, but I expect anybody getting in on this order to be able to set up their own serial communication on the right pins of their respective controller boards. Expect a hardware protocol limit of around 500 LEDs (3-4 4xLED boards) per serial line if you want to maintain a 60Hz refresh rate, as with any WS2812 application. Also the obviously the more 74HC165 you chain in series, the higher the latency will get.
- Both those programming libraries and the PCB design will be open sourced at some point. I don’t know when because I don’t want to do a half assed job on that and proper cleaning/optimizing and documentation might take a while.
- You will have to buy and solder your own rotary encoders. The boards are designed for and tested with the Bourns PEC11 and PEC16 range, I personally recommend PEC11L low profile encoders. The optional LED board SMD power input cap would have to be self supplied and hand soldered too but in most cases will not be necessary.



So yeah that’s about it. If I didn’t scare you away by now, please RSVP as soon as possible. Either here via a private message or via email at rgbledring at gmail dot com, then we can exchange personals and discuss details.
Also, in extremely exciting midibox news, a very special someone decided to start redesigning and expanding the WS2812 drivers. I will post updates as soon as we did some testing!
weasel79
last round everybody, closing the bar tomorrow morning!
MUFF WIGGLER Forum Index -> Music Tech DIY  
Page 1 of 1
Powered by phpBB © phpBB Group