Getting started with plasma 2350w

I was so excited to unbag my brand new Plasma 2350W; I have all sorts of ideas on how I want to use an internet-connected set of neopixels.

My excitement was crushed when I realized that the example code linked to from the Plasma 2035W sales page doesn’t work.

I’ve tried with both circuitpython and micropython. While I am able to make the LEDs do what LEDs do, I am unable to get the 2350W to connect to my WiFi. Why? Because I don’t have the necessary network python library referenced in the example code-- example code that was updated a mere two weeks ago.

So… help?

(Edited to fix my typo with 2035 vs 2350)

1 Like

The correct board number is 2350. This is important as you will need to download the correct MicroPython (I assume) build for this exact board: Plasma 2350 W. Unfortunately the hardware seems to be ahead of the software once again so you will have to be patient. You could try the Pico Plus 2 W code to test the WiFi. We really need a statement from Pimoroni on this. The boards are excellent once the support arrives.

Thanks-- I tried the driver you mention here and the plasma 2350 won’t boot. When I use the plasma2350-v0.0.7-pimoroni-micropython.uf2 driver I can get the board to boot and power the LEDs.

I have the Plasma 2350 and 2040 boards and also the Pico Plus 2 W which I have only recently got working. I have had to be patient waiting for MicroPython builds for their latest boards. It would be good to have a bit more clarity on the Shop as to what is stable, what is “experimental”, and what does not exist yet.

I must emphasise I really like the hardware and all I ask for is better information on the website shop. The experts might know where to look on Github for the different builds, but for the rest of us it can be far from obvious.

2 Likes

I agree with this, github is something you get used to but it’s a real pain point for beginners. It would be great if you could download the correct UF2 directly, with one click, from the product page.

1 Like

Is there anything else that’s not working at the moment?

Well, I have this weird pain in my knee…

Oh, you meant with this board? ;)

Once I get a UF2 that will let me test the wireless connections, I’ll let you know! So far the LEDs work swimmingly, both on the board and a strip. I’ve not tried to read the A button yet.

1 Like

Aha!

I found the right driver: https://github.com/pimoroni/pimoroni-pico-rp2350/releases/download/v0.0.11/plasma2350-v0.0.11-pimoroni-micropython.uf2!

It’s under the pre-release tab, which you may have to open under “Assets”.

I’ve not had a chance to test out the network connectivity yet, but I can confirm that this driver will boot, let’s me blink the LEDs, and contains a ‘network’ library.

2 Likes

Not sure how this will help with your knee, but give it a try and let us know how it goes!

Success! I can indeed get connected to my local WiFi, connect to an NTP server, and pull down web pages / .json pulls.

I can tell that this is an unstable release, though-- I have to reboot the 2350W if it’s idle for more than a few minutes. It’s often a hard reboot, too, meaning I have to pull the power.

More as I learn it.

1 Like

Hello, total noob here. I bought the kit to make rainbows… and finally got it working. It works!
I struggled all day to get it working. Most things were unknown and in the order of “How do I …”. Lots of information on the web, but hard to sort out what is important and what is not.
Some difficulties I had:

  • How do I connect the led strip wires to the board in a correct (safe) way)
  • What the heck are .nf2 files.
  • How do I install them, did I have the right one …
  • How do I test the hardware?
  • How do I install scripts on the board?
  • Software issues
  • … lots of reading and experimenting.

But after 6 hours a big smile. I have a rainbow!

1 Like

I got cheerlights.py working-ish on Plasma 2350W.

I say -ish as it’s connected OK to wi-fi, but it’s showing RGB dots rather than one single colour.

And I have to tell all the example .py’s that I have 80 LEDs when I really have 60.

Interesting-- I was able to get the cheerlights code working pretty much straight out of the box and only had to modify the number of LEDs.

Are you sure you picked the right kind of LED strip?

# APA102 / DotStar™ LEDs
# led_strip = plasma.APA102(NUM_LEDS, 0, 0, plasma2040.DAT, plasma2040.CLK)

# WS2812 / NeoPixel™ LEDs
led_strip = plasma.WS2812(NUM_LEDS, 0, 0, plasma2040.DAT, color_order=plasma.COLOR_ORDER_BGR)

And can you successfully set the color of the LED on the board itself?

For my strip I don’t need to set the color order:

led_strip = plasma.WS2812(NUM_LEDS, 0,0,plasma2040.DAT)
led = RGBLED(plasma2040.LED_R, plasma2040.LED_G, plasma2040.LED_B)

I take back my comment about this being an unstable release. I found a line in my code that was causing the hanging. In particular, this line (from cheerlights.py) seems to be the offender:

except OSError:
            print("Error: Failed to get new colour")

When that was in my code, I’d have to reboot the board on a very regular basis. Now it’s been up for a week or more with no reboots, even as I start and stop the code.

Getting the type of strip right, and the correct color order is important. My strip is Green Red Blue

GRB_LEDS = 144

# WS2812 / NeoPixel™ LEDs
led_strip = plasma.WS2812(GRB_LEDS, 0, 0, plasma_stick.DAT, color_order=plasma.COLOR_ORDER_GRB)

Hi, maybe not the right topic for this forum section. But I have a question about hardware performance etc.
I am using the basic setup with a plasma 2350w and 66 leds. I started programming microPython, had a lot of problems like memory shortage (heap stack). I think this is under control now. I am doing a manual garbage collection. And after every animation (repeated endlessly), it shows a stable free memory number.

But why is the animation getting slower and slower, it seems like the clock ticks is slowly decreasing. Even the default Rainbow animation provided by Pimoroni on Github is slowing down.

Any clue what is happening here?
If I time each animation loops, the elapsed time is increasing by about 30-50 ms.

Using: plasma2350-v0.0.7-pimoroni-micropython.uf2

Yes, this works to show on-board LED running nicely:


from machine import Pin
from time import sleep

# 16 = RED
# 17 = Green
# 18 = Blue


ledr = Pin(16, Pin.OUT)
ledg = Pin(17, Pin.OUT)
ledb = Pin(18, Pin.OUT)



# Reverse logic with 1 = OFF and 0 = ON

while True:
    ledr.value(1)  # Turn the LED off
    ledb.value(1)  # Turn the LED off
    ledg.value(1)  # Turn the LED off
    sleep(1)
    
    
    ledr.value(0)
    sleep(1)      
    ledr.value(1) 
    sleep(1)      
    

        
    ledg.value(0) 
    sleep(1)      
    ledg.value(1) 
    sleep(1)      

    
    ledb.value(0) 
    sleep(1)      
    ledb.value(1)  
    sleep(1)
    
    # Turn on all three = white
    ledr.value(0)
    ledb.value(0)  
    ledg.value(0)  
    sleep(1)

Product = Flexible RGB LED Strip (aka NeoPixel, WS2812, SK6812)
Coded as

led_strip = plasma.WS2812(NUM_LEDS, 0, 0, plasma_stick.DAT, color_order=plasma.COLOR_ORDER_RGB)

have you synced the onboard clock with a time server? I set mine a week or so ago and it looks like it has drifted a few seconds since then…

FWIW, I am working in Visual Studio Code and a micropython plug in. Works great!

1 Like

I have the 144 per meter version of those LED strips. I had to use COLOR_ORDER_GRB to get it to show the correct colors.
If you set it to all red, do you get red?

1 Like

No, I don’t use a time server. But it has something to do with Micropython Class objects and the garbage collector not deleting them. If I disable that piece of code, then I have stable clock speed. I’m going to do some code refactoring now that I think I understand the problem.

Yes, I use Vcode, but I followed the manual and use Thonny, which works fine. What extension do you use, there are many.