PiicoDev RGB Module Firmware

So I went to use my RGB and it won’t work…

Using the default MicroPython Example, it keeps saying “Couldn’t find a device - check switches and wiring” I hadn’t changed anything from when I last tested it, and using an I2C scanner, I can’t find the address either…

Anyway, I assume it’s either hardware damage, or firmware issue on the AtTiny806. Figured I at least tried reloading it any suggestions??

Cheers

1 Like

Hi Mark,

Welcome :slight_smile:

Just to confirm were you using the Expansion board or the default I2C pins on the Pico?
If the forum would be able to take a quick look at your circuit that would be amazing!

The firmware should be pretty robust and deliberate effort should be required to alter the firmware, also just confirming, does the power LED turn on?

1 Like

Hi Liam, and thanks - didn’t even realise CoreElec had a forum until tonight!

I am using the Expansion board and no the power LED doesn’t turn on. That’s what made me wonder about the firmware - figured its otherwise a simple circuit - going be the schematic anyway

1 Like

Hi Mark,

Sorry for the delay!

I haven’t come across any faulty PiicoDev sensors myself, one last quick test, if you have a multimeter, would be to measure the input voltage. (one side of the solder jumper will be GND)

The firmware can be found on the Core Electronics GitHub
And if you’re keen on reprogramming the module the bottom pin on the back is used program the module, Michael explains in the Factory the process for designing the modules.

The support team is fantastic, so if you shoot them an email mentioning this topic and any other troubleshooting steps, they will ensure your projects stay on track!

2 Likes

Hi Mark,

I think @Liam120347 is on the money here.

I’ve you haven’t cut the traces to physically disconnect the LED from the power then I’d say troubleshooting the power to the module will be your first step. By default the LED should always come on as soon as the module is connected to the power.

1 Like

Thank you guys,

So there is 3.3v at the I2C PU… If had used it last week without fault, just learning to learn MicroPython then went to use with reason and no show - spent way too long diagnosing my code :frowning:

Ordered a couple of new one anyway :slight_smile:

1 Like

Hi Mark,

That’s super odd that it just stopped working - I’m not certain why it stopped working all of a sudden, flashing the firmware might fix it but then you’re not on the MicroPython grind :wink:

I’m keen to see what you make!

Grrr… So bought two more modules and of the two another one is acting weird…

Whilst running the default example, the top LED functions perfectly however the bottom two seem to be slightly scrambled and not changing smoothly… I’ll post a video shortly

1 Like

Hi Mark,

I’ve got an RGB module on the bench now, if you could please send through a photo of your setup+Code I can do some quick testing :smiley:

Hi Liam,

from PiicoDev_RGB import PiicoDev_RGB, wheel
from PiicoDev_Unified import sleep_ms # Cross-platform compatible sleep function

leds = PiicoDev_RGB() # initialise the LED module with conservative default brightness
# leds.setBrightness(127) # 0-255 set the global brightness to half

# pre-define some colours
red = [255,0,0] 
green = [0,255,0]
blue = [0,0,255]
yellow = [255,255,0]
magenta = [255,0,255]
cyan = [0,255,255]
white = [255,255,255]
black = [0,0,0]

# Example 1: Set LEDs to pure Red, Green, Blue for 3 seconds
#leds.setPixel(0, red)
#leds.setPixel(1, green)
#leds.setPixel(2, blue)
#leds.show() # call show() to update the LEDs with new colours
#sleep_ms(3000)
#leds.clear() # clear the LEDs


# Example 2

i = 0 # loop counter
powerLedState = True
 
while True:
    c = wheel(i/360) # pick a colour from the colour wheel
    leds.fill(c) # fill() will automatically show()
    
    if i % 100 == 0: # every 100 loops toggle the power LED
        powerLedState = not powerLedState # toggle state variable
        leds.pwrLED(powerLedState) # update power LED       
    
    i = i+1
    sleep_ms(5)

As for the setup, PiPico plugged into the Adaptor board and a short cable to the RGB Module.


Tried uploading a video, but not sure how yet

1 Like

Not ideal, but here’s a video of my module Failing Module

1 Like

Hi Mark,

Thanks heaps for sending those through! Sorry to hear you are having trouble BTW
My setup worked straight away - everything looks fine on your end from the photos but unfortunately, the video didn’t play (unlisted YouTube videos are my goto)

I’m not sure what might be causing the issue - I know carpet doesn’t always agree with electronics (ESD).

I’ll mention @Michael to see if he might have any insights :slight_smile:

2 Likes

Hi Mark,

Thanks for the troubleshooting you’ve done, it seems like the issue might be hardware related in this case.
Can you send us an email with a link back to this forum thread and we can sort out a replacement for the failed RGB modules?

3 Likes

Hi Liam

You can say that again. Could be several thousand volts of static charge here depending on lots of things. Bad move all round with anything as sensitive as RPi or anything else for that matter. I personally would not trust that device ever again. The bin would be a good place for it.

I do note the LEDs seem to be powered from the host device. Would there be enough current capability for that. I am not familiar with RPi products but I would not attempt that with Arduino.
Cheers Bob

3 Likes

Thanks Liam,

Yeah normally I’d agree and don’t normal work on the floor - however seeing though they had already failed seemed the best place to work whilst watching a movie :slight_smile:

Thanks again for all the suggestions - I’m still sus about the FW but don’t have easy access to a updi programmer.

Thanks also to Trent, great service by CoreElectronics!!

In regards to Roberts suggestion about current draw, pretty sure the LED module would be minimal, and was having the same issue when powered by a battery source. The modules include its own power rail so shouldn’t be an issue

Cheers
Mark

2 Likes

Hi Bob,

Yeah the 3v3 pin from the Pico is capable of delivering up to 250mA (Source pg8)
image
Which will be more than enough for the LED’s and a range of other PiicoDev modules!

At full power the WS2812Bv5’s use about 26mA each, well within the 250 (plus full brightness is blinding).

The data-in wont put any stress on the microcontroller onboard so no worries there!

Liam

1 Like

Hi Mark,

If you have a schottky diode, a few-hundred-ohm resistor, and a usb-to-serial converter like a CH340 you can assemble a serialUPDI programmer as described here:

I’ve used this setup, and it works a treat.

I know this isn’t the main problem but I thought I’d put that out there.

-James

1 Like

Hi Mark

I get the feeling that by working on the carpet you might just have made sure that device may never work properly again.

I could be missing something here but in all my many years of experience in building things, installing things and commissioning things I have never ever seen anyone who could concentrate fully on what they are doing and think logically while watching a movie. Indeed some years ago I headed up a team to install a full TV studio. Whilst working these guys insisted on playing loud music (much to everyone’s annoyance). After they returned home I was left to assist the set to work and commissioning this studio and had to spend many hours day and night locating and fixing the many mistakes made by supposedly very experienced installers. This was a Capital City TV station so quite extensive and these fixes were no mean feat. I vowed then this would never happen again and it didn’t.
Maybe the modern mind is better at multi tasking (entertainment plus serious work) but I have yet to see it.
Cheers Bob