Issues with PropMaker Featherwing, CircuitPython, and NeoPix

CircuitPython on hardware including Adafruit's boards, and CircuitPython libraries using Blinka on host computers.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
squid_jpg
 
Posts: 17
Joined: Tue Dec 01, 2020 1:23 pm

Issues with PropMaker Featherwing, CircuitPython, and NeoPix

Post by squid_jpg »

Recently I've been working on a gadget with CircuitPython (7.0 and 7.1 beta) using a Feather M4 Express, a PropMaker Featherwing, and these NeoPixels: https://www.adafruit.com/product/3630. I also wanted to try out the new slim dot NeoPixels (https://www.adafruit.com/product/5225) since they look freaking sweet! However, when I plugged them in, the entire strip lit up full white, regardless of the data sent over the signal line:
IMG_1532.jpeg
IMG_1532.jpeg (624.74 KiB) Viewed 138 times
While attempting to diagnose the issue, I tried several other kinds of NeoPixel strips, and noticed that many of them had an issue where the first pixel in the strip has its green channel full lit, regardless of the signal:
IMG_1530.jpeg
IMG_1530.jpeg (549.3 KiB) Viewed 138 times
Of the strips I have on hand, only https://www.adafruit.com/product/3630 and https://www.adafruit.com/product/3811 seem immune to the "green first pixel" issue. I was able to reproduce the "green first pixel" issue on the NeoPixel Jewel (https://www.adafruit.com/product/2226) as well as other NeoPixel-compatible LED types.

I've been using a connector cable I soldered together (shown above in the first photo) so I could adapt the JST PH connector on the PropMaker to the JST SM connectors most of the strips I have tend to use. I believe I was able to rule out that being the cause as A) I've soldered together several, and I don't think my soldering is *that* bad lol, B) I also tried a breadboard setup, as shown in the second photo above, and C) the issue only occurs with CircuitPython, not Arduino.

I have 2 code samples; the first exhibits the all-white-strip issue with the slim dots (and intermittently can cause the green-first-pixel issue on other strips), and the second one more reliably exhibits the green-first-pixel issue on the affected strips.

Sample 1 (all-white-strip issue with slim dot NeoPixels):

Code: Select all

import board
import digitalio
import neopixel

power = digitalio.DigitalInOut(board.D10)
power.switch_to_output()
power.value = True

pixels = neopixel.NeoPixel(board.D5, 20, brightness=0.3, auto_write=False)
pixels.fill((255, 0, 0))
pixels.show()

while True:
    pass
Sample 2 (Green first pixel issue affecting many types of NeoPixel strips):

Code: Select all

import board
import digitalio
import neopixel
from adafruit_led_animation.animation.pulse import Pulse

power = digitalio.DigitalInOut(board.D10)
power.switch_to_output()
power.value = True

pixels = neopixel.NeoPixel(board.D5, 20, brightness=0.3, auto_write=False)
pixels.fill((255, 0, 0))
pixels.show()

animation = Pulse(pixels, speed=0.01, color=(128, 0, 32), period=3)

while True:
    animation.animate()
Other points worth mentioning:
* The all-white issue only occurs with the slim dots (https://www.adafruit.com/product/5225).
* Both issues only occur in CircuitPython. Using the same hardware configuration, with 2 different PropMakers, and both the Feather M4 Express and RP2040, everything worked as expected in Arduino.
* I tried every power source I have on hand, including the bog standard 5V 2A adapters like the ones Adafruit sells, plugging directly into the USB port on both my MacBook and PC, using both powered/unpowered USB hubs, using various phone chargers, and even using a battery pack with 3 AA batteries to which I soldered a USB connector. It did not seem to affect the result.

I'm hoping someone else has all the parts on hand so they can try to reproduce the issues I'm seeing, especially the all-white issue on the slim dot strips, as I'd love to be able to use them for this project.

User avatar
dastels
 
Posts: 15659
Joined: Tue Oct 20, 2015 3:22 pm

Re: Issues with PropMaker Featherwing, CircuitPython, and Ne

Post by dastels »

For the slim strip, have you confirms that the wiring is correct? As mentioned on the product page:
Connecting to these is a little tricky because there's no power/data markings (there's no PCB!) So instead, look at the translucent wires. The red wire is V+ power, the middle wire is data in, and the last wire is ground.
For the "first green" issue. is it only when the strip is initially powered or does it persist?

Dave

User avatar
squid_jpg
 
Posts: 17
Joined: Tue Dec 01, 2020 1:23 pm

Re: Issues with PropMaker Featherwing, CircuitPython, and Ne

Post by squid_jpg »

First green issue: It persists, even when playing animations. For example, if I send RGB(255, 0, 0), the first pixel becomes yellow, as if I'd sent (255, 255, 0).

Slim strip issue: I'm pretty sure I've got the wiring correct, because the basic 'strandtest' Arduino sketched worked with the exact same hardware configuration.

User avatar
dastels
 
Posts: 15659
Joined: Tue Oct 20, 2015 3:22 pm

Re: Issues with PropMaker Featherwing, CircuitPython, and Ne

Post by dastels »

So, to confirm... it all works as expected with C++ but the issues occur with CircuitPython?

Are all your libraries/modules up to date?

Dave

User avatar
squid_jpg
 
Posts: 17
Joined: Tue Dec 01, 2020 1:23 pm

Re: Issues with PropMaker Featherwing, CircuitPython, and Ne

Post by squid_jpg »

That is correct, on both counts: with this hardware configuration, the issue only exists in CircuitPython, not Arduino. Also, I believe my libraries were already up to date, but I just ran circup again and can verify for sure that I have the latest.

Locked
Please be positive and constructive with your questions and comments.

Return to “Adafruit CircuitPython”