This is a placeholder topic for “GlowBit™ Matrix - 8x8” comments.
The most powerful GlowBit display! A 64 LED matrix that can be easily tiled to create larger displays.
Read more
Hi. Hooked up a glowbit 8x8 to WLED with a nice 2.4A supply, and an esp32. It sort of works … up to the 47th LED, then nothing. Is there a known problem, or a gotcha here? Or is my 47th LED dead? Any ideas?
Ok. I had a spare GlowBit, replaced it. Now it works. Pixel #47 DOA.
Hi Colin,
Welcome to the forum and thanks for making a topic!
Unfortunately, it does sound like the GlowBit Matrix was faulty.
I’ve just sent an email through to you to hopefully make sure your projects stay on track!
Liam
Hi team,
Do you have a fully dimensioned diagram of the 8x8 matrix showing the spacing of the mounting holes?
I have found the overall dimensions (61mm x 61mm) on the product page, but nothing found (yet) for the mounting holes.
Hi Murray,
All of the design files are open sourced so you can open up KiCAD and measure in there
Upon opening it up the mounting pattern is 30.48x45.72mm
(a screenshot of the PCB layout in the Hardware repo)
Come Monday when the folks at Core see your reply the product page should be updated!
Hi @Liam120347
Now loading up KiCAD etc and starting to learn it ( ex-AutoCAD drafting skills to work through )
Thanks
P.S. will the mounting kit work as ‘front-side’ spacers behind a perspex panel, or will they only fit behind the matrices?
New Question …
I note that there is a function to dynamically change the Glowbit rateLimitFPS value at any time within user code (i.e. stick.updateRateLimitFPS(40)
etc).
However the brightness value is currently fixed upon initialisation…
Would this function definition work if added into the glowbit.py library just underneath the updateRateLimitFPS definition?
## @brief Set a new brightness value
#
# \param newBrightness A new value in range 0(? tbc) - 255
def updateBrightness(self, newBrightness)
self.brightness = newBrightness
Noting that this affects the entire Glowbit object, not individual pixels
p.s. there is a reason for this - being a Lighting engineer, I like LED displays to ‘auto-tune’ the brightness relative to ambient so that a display may be at full power in sunlight, but dims down in the evening and further into the night…
Hey @Murray125532 - the mounting kit will work on the back side only. The screw-head is small enough to fit between LEDs, but the standoff is just too large.
As for your feature request - we’re on it
Expect a new version of the library to come out soon. (We’ll update you here when it does).
Hi Murray,
A provisional method has been added to glowbit.py (line 327f: CE-GlowBit-Python/glowbit.py at main · CoreElectronics/CE-GlowBit-Python · GitHub).
The initialisation methods accept [0,255] integers or [0.0, 1.0] floats so the new method has been written to be consistent with that.
It will make its way into a new formal package release once thoroughly tested. For now, feel free to manually use the glowbit.py from the repo.
My test script - updated library file named glowbit2.py so I dont mix things up too much
import glowbit2 # Glowbit stick with new brightness command
from PiicoDev_Unified import sleep_ms # Cross-platform compatible sleep function
stick = glowbit2.stick() # default pin=18, sm=0
#########################################
#
# range() function that works for floats
# https://www.techbeamers.com/python-float-range/
#
#########################################
def frange(start, stop=None, step=None):
# if set start=0.0 and step = 1.0 if not specified
start = float(start)
if stop == None:
stop = start + 0.0
start = 0.0
if step == None:
step = 1.0
# print("start = ", start, "stop = ", stop, "step = ", step)
count = 0
while True:
temp = float(start + count * step)
if step > 0 and temp >= stop:
break
elif step < 0 and temp <= stop:
break
yield temp
count += 1
#########################################
#
# updateBrightness tests
#
#########################################
print("updateBrightness using float")
print("float","int equiv from glowbit defn",sep="\t")
for f in frange(0.0, 1.01, 0.01):
print(f, (int(f*255)), sep="\t")
stick.updateBrightness(f)
stick.pixelsFill(stick.red())
stick.pixelsShow()
sleep_ms(1000)
stick.pixelsFill(0)
stick.pixelsShow()
print("updateBrightness using int")
for i in range(0, 256):
print(i)
stick.updateBrightness(i)
stick.pixelsFill(stick.green())
stick.pixelsShow()
sleep_ms(1000)
stick.pixelsFill(0)
stick.pixelsShow()
Hi @Brenton
I have a suggested small change in the Stick rainbowDemo function
Original code (line 1232 … in Github)
## @brief Uses the colourMapRainbow() colour map to display a colourful animation
def rainbowDemo(self, iters = 5):
while iters > 0:
for offset in range(33):
for i in range(8):
self.pixelSet(i, self.colourMapRainbow(i,offset, offset+32))
self.pixelsShow()
iters -= 1
My change causes the rainbow to use all the LEDs in concatenated Sticks
## @brief Uses the colourMapRainbow() colour map to display a colourful animation
def rainbowDemo(self, iters = 5):
while iters > 0:
for offset in range(33):
# for i in range(8): ## mjt 20220627
for i in range(self.numLEDs):
self.pixelSet(i, self.colourMapRainbow(i,offset, offset+32))
self.pixelsShow()
iters -= 1