Driving neopixels using the glowbit library on a pico

Hi Murray,

To add to Bobs comment Re the oscilloscope

If you have a spare Pico + Breadboard it might be worth deconstructing the circuit and wiping the slate clean to do some testing? (The learning engineer part of me also likes to order at least extra 2 of each component if they’re cheap enough)

From the looks of it there is quite the project happening alongside this and there might be some external factors coming into play that’s altering how the Pico’s working.
Some might include:

  • Low voltage slowing down the system clock
  • The same pin/memory might be assigned twice from some library messing with stuff
  • Even though the logic level shifter includes a schmitt trigger, noise from other sources might be false triggering (GND ringing, interference, the power supply itself - I’m running off of my PC’s 5V - 1 A output)
1 Like

Hi Liam,
I am running it completely standalone on a Pico dev system at the moment, no other code loaded. I have just run it using VSYS pin 39 instead of VBUS pin 40 - with the same operations. There is no 3v3 used anywhere this time (was needed for the original level shifter but not the 74HCT125)
BTW, 3v3 output measured at 3.28v

Hi Bob,
Have not yet tried the scope – will fire that up (probably after dinner)

Interesting side observation - direct drive of the Glowbit - it correctly is at 0.1 brightness, while through the 74HCT125, it seems to be at 1.0 brightness ?!? :crazy_face:

2 Likes

Hi Murray

Might be worth hitting it with a reflash to see if that has any affect, and to make sure our set ups are as close as possible.

Noice, might be worth unplugging any PiicoDev devices (even the Pico from the adapter and into a breadboard just to test)

Well within spec

Unfortunately I think this is just a happy(?/unfortunate?) side-effect, a stream of 1’s might be easier to generate, I’m not certain there!

PiicoDev devices are unplugged - need to reassign another breadboard to isolate the Pico from the adapter. (and rearrange the desk :grimacing:)

2 Likes

Hi Liam,

  • Desk rearranged,
  • Pico removed from adapter,
  • all setup moved onto breadboard,
  • Pico reflashed (V1.19.1 2022-06-18)
  • test program launched from Raspberry Pi

sigh

  • no level shifter - ok
  • with level shifter - nonsense
2 Likes

Hi Murray,

Would it be possible to send through all of the details of your selup?

  • Power supply being used (USB through battery bank or something else?)
  • Vsys voltage
  • Vcc on the OE pin, Vcc pin and GND in reference to pin 38 on the Pico (probing the 74HCT125)
  • If you manually set the pin high what’s the voltage on pin-Y?
  • Are you running the default code from How to use WS2812B RGB LEDs with Raspberry Pi Pico - Tutorial Australia
  • Do you have any spares to test with, it might be good to start with a new batch of items to try and eliminate variables
1 Like

Hi Murray
Last resort. Swap out your link wires to the level shifter one at a time. It would not be the first time a connector pin has been crimped onto the plastic or something else gone wrong.
Cheers Bob
Edit. Also you could try different sockets on the photo board. They are not exactly infallible either and connections can deteriorate with use.

2 Likes

Hi Liam and Bob

  • Power is supplied from the programming Raspberry Pi USB connector. I don’t have a spare schottky diode at present to make a separate power lead from an external PSU (which I have based on an ATX PSU)
  • VSYS voltage is 4.99 - 5.00v
  • the OE pin is grounded to enable output.
  • 74HCT125 Vcc pin w.r.t. Pico pin 38 is 4.99v
  • 74HCT125 Gnd pin w.r.t. Pico pin 38 is 0
  • 74HCT125 pin A at 5v → pin Y is 5v with OE grounded
  • 74HCT125 pin A at 0v → pin Y is 0v with OE grounded
  • yes running the default code only.
  • only have a spare 74HCT125 …

All link wires have been swapped about and I am using a different protoboard…

Murray

2 Likes

Hi Murray.

You don’t need any diodes to power the LED strips separately. Just connect the external supply to the + and - of the strip and data to where you have it now. The grounds (-)have to be connected together.
Cheers Bob
EDIT My modest LED XMAS light arrangement is the other way around. I have a 5V @ 14A power supply powering the LEDs and the same 5V to power an Arduino via the 5V pin. Not exactly the same set up as yours as I am only dealing with 5V data (try to stay away from 3.3V) and don’t need conversion but the only main difference is the power arrangement. I have found over many years that overcooking the power supply sometimes saves a heap of trouble.

2 Likes

Hi Bob,
Agree re powering the LEDs and tying grounds etc. At this time in test I am only running a single 8 LED Stick, so am within power budget. I might try to hook up the external PSU just to be sure that there is no power sag (stupid PC-based scope has gone awol so cant look for sag as previously)
The ATX PSU has oodles of capability 14A @ 5v, fused at 3A for the time.

The note about the schottky diode would be if I were to power the Pico etc from the external supply, and wanted to also be able to plug in the Raspberry Pi for programming / monitoring.

2 Likes

Hi Murray,

Setup seems ok - this one has me pretty well stumped, if you power the Pico from a USB battery bank via the micro USB connector do you still see the same flickering?

My suspicions are pointing towards a damaged/faulty Glowbit stick(it might be worth touching up the solder connections) or some super odd thing in the way the Pico is outputting (code, memory, power ripples, not sure)

EDIT: I am curious if the Neopixels work with the output from the logic level converter

Hi all,
Just to clarify - the initial issue arose on a system built for an event, now past. That system is where the level shifter and bulk power were used given the quantity of LED systems.

I am doing the current tests on a different Pico to the one in the project, and all on a protoboard. This is the Pico I used for the initial code development, where I was using just the Stick as a pseudo standin for the neopixels and the 3 watt LEDs. Initial testing did not have a level shifter, and as has been noted - all seemed to work ok, as it does now when the Stick is directly connected to the Pico (Stick with 5v power, 3v3 data). Adding the level shifter is what causes problems… I think :grimacing:

The code in the project used the Glowbit library, which has the same ‘engine’ as the test code.

I am stuck.

2 Likes

Hi Murray,

Sorry to hear nothing has worked yet, with the Vsys pin still being at 5V the sag should be little to none.

Other than possibly a bad connection in the mix or moisture-damaged GlowBits I’m certainly out of ideas!

I’ll send you through an email!
Liam

A Curiosity …
I have just run a completely standalone system - Pico with code as main.py, a powersupply, and the Glowbit Stick, and the 74HCT125 level shifter.
It powers up, and cycles through the demo code 5 times then ‘runs out’ of the loop.

  • Driving the Glowbit directly from Pin 18 - works visually as expected.
  • Driving through the level shifter - still get flickers etc etc
  • Attach the scope - probe 1 to the level shifter A input, probe 2 to the level shifter Y output - visually looks good, no visible flickers

Maybe it all needs a minimal capacitance to “make it work” …

2 Likes

Follow - on

  • With a probe only connected to the A input pin - almost ok output - one or two flickers I think.
  • With a probe only connected to the Y output pin - solid display

Not sure what the probe capacitance is - or if there is ‘something’ else occurring.

1 Like

Hi Murray
74HCT125, What voltages are you using. According to the data sheet “HC” and “HCT” devices differ a bit. Is your oscilloscope probe on the X1 or X10 setting. If X1 it could be the input resistance (1MΩ) making the difference and a pull down resistor of about 10kΩ might fix it.
Unfortunately the only data sheet I could find does not give the detailed schematic of the output stages which would indicate if the output actually drives high and low or if it is left floating a bit in the low position. Does your oscilloscope show a solid low or does it seem a bit iffy.

Where possible your oscilloscope probe should be in the X10 position to minimise probe related interference to the actual circuit operation. In this position the input resistance would be 10MΩ which should not affect circuit operation.
Cheers Bob

2 Likes

Hi Rob,
Probes were at X1 - previous results …

Probe 1 to the level shifter A input, probe 2 to the level shifter Y output - visually looks good, no visible flickers
With a probe only connected to the A input pin - almost ok output - one or two flickers I think.
With a probe only connected to the Y output pin - solid display

Set probes to X10

Probe 1 to the level shifter A input, probe 2 to the level shifter Y output - visually looks good, no visible flickers
With a probe only connected to the A input pin - good output
With a probe only connected to the Y output pin - now we get flickers now !?

I think that the '125 is giving a hard low level.

2 Likes

Hi Murray
Is the input to the 125 hard low or a bit iffy.
It might be the output from the controller might need pulling down. Maybe when you connect directly to the LEDs the data input might pull this output down enough but the 125 does not. The data sheet does not seem to give an indication as to what might be happening. The only thing I think is happening is you are introducing a resistance to ground (the probe) from the controller output / 125 input. All I could suggest at this stage is try a resistor of maybe 10kΩ from this point to ground and see what happens. The input C of the 125 is 10pF and I can’t see the probe being much more although that might be the difference. I am reluctant to suggest throwing capacitors around as past experience dictates this can lead to more introduced trouble.
Cheers Bob

2 Likes