# Lux Lavalier - now available in the shop!

**URL:** <https://forum.electromage.com/t/lux-lavalier-now-available-in-the-shop/2549>\
**Category:** News and Announcements\
**Tags:** v3, luxlavalier\
**Created:** [October 6, 2022, 6:37pm UTC](https://forum.electromage.com/t/lux-lavalier-now-available-in-the-shop/2549 "2022-10-06T18:37:06Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![wizard](https://forum.electromage.com/user_avatar/forum.electromage.com/wizard/32/4_2.png) [@wizard](https://forum.electromage.com/u/wizard)\
**Post date:** [October 6, 2022, 6:37pm UTC](https://forum.electromage.com/t/lux-lavalier-now-available-in-the-shop/2549/1 "2022-10-06T18:37:07Z")

</div>

![DSC_0139](https://forum.electromage.com/uploads/default/original/2X/6/66798e98160b7b123908e881b585ee2174dafbf2.jpeg)

[Lux Lavalier](https://shop.electromage.com/products/lux-lavalier) is a beautiful wearable 40mm battery powered pendant with 64 HDR RGB LEDs surface mounted in a Fibonacci distribution and powered by a Pixelblaze V3 Pico.

It’s a collaboration between Jason Coon (@JasonCoon) of Evil Genius Labs, myself (@wizard), and Debra Ansel (@GeekMomProjects) of Geek Mom Projects.

 ![DSC_0134](https://forum.electromage.com/uploads/default/original/2X/5/5001e31a4d4d125e7fb5085520e7ced364364f21.jpeg)

[/uploads/default/original/2X/a/a68b555e1eaa4f8d7482d3eaa4624640a91f5ea2.mp4](https://forum.electromage.com/uploads/default/original/2X/a/a68b555e1eaa4f8d7482d3eaa4624640a91f5ea2.mp4)

Check out the [shop page](https://shop.electromage.com/products/lux-lavalier) for more details, or visit [LuxLavalier.com](http://LuxLavalier.com).

---

<div class="post-metadata">

**Author:** ![sorceror](https://forum.electromage.com/user_avatar/forum.electromage.com/sorceror/32/735_2.png) [@sorceror](https://forum.electromage.com/u/sorceror)\
**Post date:** [March 10, 2024, 11:34am UTC](https://forum.electromage.com/t/lux-lavalier-now-available-in-the-shop/2549/2 "2024-03-10T11:34:21Z")

</div>

I have a couple of these Fibonacci64 Micro HDR boards and they are very pretty!

One caveat: there is no clock/data _out_ so you can’t chain them. This has changed the topology of my current project:

A poi quarterstaff with a lit shaft (by 2x 72 LED strips on both sides), 16x16 matrix wrapped around a wider tube at the ends, and then this F64 in the end of the tubes. The Pico Pro 6axis is right at the centre of the shaft, and the signal was going to flow out one of the strips, through the matrix, through the F64, then back through the other strip and all that again on the other side.

Since the F64 has no ‘out’, instead I am making the lighting symmetrical: the signal goes to all 4 strips from the centre, then from one strip on each side (the other one is a dead end) to the matrix, then to the F64. Also I’m only calculating 320 pixels instead of 928. I’ve done one end and the forking worked fine. Keeping my fingers crossed that it works with both ends.

The shaft is 32mm PVC with 25mm acrylic inside, and I have 2 32mm Anker powerbanks. Still trying to figure out how it all fits together. 😃

I’m glad the APA102 protocol is _actually_ standard. I have 3 different sets of LEDs in this project and the pixels flow just fine.

---

<div class="post-metadata">

**Author:** ![JasonCoon](https://forum.electromage.com/user_avatar/forum.electromage.com/jasoncoon/32/2315_2.png) [@JasonCoon](https://forum.electromage.com/u/JasonCoon)\
**Post date:** [March 10, 2024, 1:54pm UTC](https://forum.electromage.com/t/lux-lavalier-now-available-in-the-shop/2549/3 "2024-03-10T13:54:52Z")

</div>

Thanks! Ah, yes, sorry about that! I usually put data & clock out pads on my LED PCBs, but since the F64 Micro HDR was originally for the wearable Lux Lavalier we decided to omit them rather than have to cover them (and reduce the risk of short circuits while being worn). Well, that and there’s just not a lot of room to put output pads on it 😅

Your staff project sounds amazing, I can’t wait to see it!

---

<div class="post-metadata">

**Author:** ![sorceror](https://forum.electromage.com/user_avatar/forum.electromage.com/sorceror/32/735_2.png) [@sorceror](https://forum.electromage.com/u/sorceror)\
**Post date:** [March 20, 2024, 7:36am UTC](https://forum.electromage.com/t/lux-lavalier-now-available-in-the-shop/2549/4 "2024-03-20T07:36:32Z")

</div>

> [@JasonCoon](#):
>
> Your staff project sounds amazing, I can’t wait to see it!

The good news: forking the PB output to 4 strips works fine!

The bad news: I am the worst solderer in the world. Removed the tiny resistor (or capacitor) in the middle of my Pico, right by the output. Didn’t notice until a week later. Fortunately I have spares 🙂

---

<div class="post-metadata">

**Author:** ![sorceror](https://forum.electromage.com/user_avatar/forum.electromage.com/sorceror/32/735_2.png) [@sorceror](https://forum.electromage.com/u/sorceror)\
**Post date:** [March 22, 2024, 1:43pm UTC](https://forum.electromage.com/t/lux-lavalier-now-available-in-the-shop/2549/5 "2024-03-22T13:43:32Z")

</div>

[![](https://img.youtube.com/vi/H8a8YIx3ilI/maxresdefault.jpg "LED staff: just the wiring") ](https://www.youtube.com/watch?v=H8a8YIx3ilI)

All wired up! Of course I’ll have to re-wire everything once I build the staff. I have 2M of 32mm PVC, and some 50mm PVC for the cylinders (50mm × π =~ 160mm). There’s also a pile of threaded PVC pipe ends at 32mm, 40mm, and 50mm and … somehow I’ll hide a powerbank in each cylinder!

---

<div class="post-metadata">

**Author:** ![sorceror](https://forum.electromage.com/user_avatar/forum.electromage.com/sorceror/32/735_2.png) [@sorceror](https://forum.electromage.com/u/sorceror)\
**Post date:** [March 22, 2024, 3:30pm UTC](https://forum.electromage.com/t/lux-lavalier-now-available-in-the-shop/2549/6 "2024-03-22T15:30:30Z")

</div>

Thanks to everyone in the complex mapping thread! `buildFermatSpiral()` is super handy! Here’s how I duct taped it all together:

> **Mapping function for 72 + 256 + 64 LED staff**
>
> ```javascript
> function (pixelCount) {
> // All _base and _length measurements in mm
> handle_base = 340
> 
> strip_pixels = 72
> strip_length = 500
> strip_gap = strip_length / strip_pixels
> 
> cylinder_base = handle_base + strip_length
> cylinder_side_p = 16
> cylinder_pixels = cylinder_side_p * cylinder_side_p
> cylinder_side_l = 160
> cylinder_radius = cylinder_side_l / Math.PI
> 
> f64_base = handle_base + strip_length + cylinder_side_l
> f64_radius = 200
> f64_pixels = 64
> 
> var map = []
> 
> for (p = 0; p < strip_pixels; p++) {
> map.push([0,0, p * strip_gap + handle_base])
> }
> 
> for (p = 0; p < cylinder_pixels; p++) {
> x = Math.floor(p / cylinder_side_p)
> y = p % cylinder_side_p
> y = x % 2 == 1 ? (cylinder_side_p - 1 - y) : y
> 
> theta = x * (Math.PI * 2) / cylinder_side_p
> 
> map.push([
> cylinder_radius * Math.sin(theta),
> cylinder_radius * Math.cos(theta),
> (y/cylinder_side_p * cylinder_side_l) + cylinder_base
> ])
> }
> 
> buildFermatSpiral(0, 0, cylinder_radius, 64, map, f64_base, 0)
> 
> map.push([0,0,0]) // unused pixel at origin
> 
> return map
> }
> 
> function buildFermatSpiral(originX, originY, spacing, pixelCount, map, zend, angleoffset) {
> reallocation = [0, 13, 26, 39, 52, 57, 44, 31,
> 18, 5, 10, 23, 36, 49, 62, 54,
> 41, 28, 15, 2, 7, 20, 33, 46,
> 59, 51, 38, 25, 12, 4, 17, 30,
> 43, 56, 61, 48, 35, 22, 9, 1,
> 14, 27, 40, 53, 58, 45, 32, 19,
> 6, 11, 24, 37, 50, 63, 55, 42,
> 29, 16, 3, 8, 21, 34, 47, 60 ]
> 
> for (var i = 0; i < pixelCount; i++) {
> r = spacing * Math.sqrt(reallocation[i]/63);
> theta = reallocation[i] * 2.3998277 + angleoffset // golden angle
> y = originY - (r * Math.sin(theta));
> x = originX + (r * Math.cos(theta));
> map.push([x, y, zend])
> }
> }
> 
> ```

And here it is running xorcery: [https://youtube.com/shorts/j6E4Z1tBSjc](https://youtube.com/shorts/j6E4Z1tBSjc)

---

<div class="post-metadata">

**Author:** ![jeff](https://forum.electromage.com/user_avatar/forum.electromage.com/jeff/32/3473_2.png) [@jeff](https://forum.electromage.com/u/jeff)\
**Post date:** [November 7, 2025, 4:38pm UTC](https://forum.electromage.com/t/lux-lavalier-now-available-in-the-shop/2549/7 "2025-11-07T16:38:39Z")

</div>

Do you or a loved one dance “too hard” when wearing your lux lavalier, and find the magnetic clasp coming off?

Here’s a clip to secure it.

[Lux Lavalier security clip v1.step](https://forum.electromage.com/uploads/short-url/72Z9BjdCaNDwtB1zyWLx9oWwohW.step) (40.9 KB) (DM me for fusion source, forum won’t let me upload it)

Due to the geometry, you want to print it in something with good layer adhesion (plain PLA, PA, or a harder TPU).

 ![IMG_1218](https://forum.electromage.com/uploads/default/original/2X/9/9f2ab047cce7ca82a465eeb3c46caec73a80dbdd.jpeg)

 ![IMG_1220](https://forum.electromage.com/uploads/default/original/2X/6/66efe1e3c518eb2223b01d4d12d6140a37265be1.jpeg)

 ![IMG_1219](https://forum.electromage.com/uploads/default/original/2X/7/7aaaa33913bff70b98aee306172985ee96fd1706.jpeg)

FYI @GeekMomProjects @JasonCoon

---

<div class="post-metadata">

**Author:** ![JasonCoon](https://forum.electromage.com/user_avatar/forum.electromage.com/jasoncoon/32/2315_2.png) [@JasonCoon](https://forum.electromage.com/u/JasonCoon)\
**Post date:** [November 8, 2025, 3:08pm UTC](https://forum.electromage.com/t/lux-lavalier-now-available-in-the-shop/2549/8 "2025-11-08T15:08:40Z")

</div>

This is really great @jeff, thanks for sharing!

I’ll need to think about how to redesign it to work with the newer necklace design that uses a generous amount of Sugru instead of heat-shrink. I tried trimming it back a little, but it’ll need a lot more:

 ![image](https://forum.electromage.com/uploads/default/original/2X/3/38aecfd62076d2d98950c97b1b9462cc541bae84.jpeg)
