I am a newby so I started with the tutorial; “Getting started with Raspberry Pi Pico”.
I have installed the custom firmware onto the Interstate 75 using the boot process.
I have installed Thonny and I am communicating with this board through CDC@com18 and all appears ok.
I tested the print hello world function and all is good, it came back with hello world.
I loaded the “blink” code as per the tutorial and named it main.py as suggested.
Unfortunately the LED does not blink.
Any advise would be appreciated.
Jeff’s referring to this product and appears to be following these instructions.
Hi @Jeff149639 - can you show us a screenshot of your thonny environment when you’re trying to run the blink code? The contents of the file should be visible too to make sure we’re on the same page.
For clarity - is it these instructions you’re following?
Also which Pico did you buy. The WiFi version has a different way of accessing the LED.
Hi Michael and James,
I have been away and time was a premium, apologies for the delayed response. I purchased the CORE product “PIM584”. The data suggests it is a PICO however when I connect through Thonny it is described as a PICO W.
Presuming Thonny knows best then I have a PICO W.
It was suggested that the sample code may require a review now that we are considering a PICO W.
Please send a link to the code I need and I will adapt the code accordingly.
Thanks Jeff
Hi Jeff,
It looks like you have a couple of things misconfigured.
The SKU you sent through is the Interstate 75 (matches all of the guides you followed).
But the firmware on the device says it’s for the Cosmic Unicorn (Pimoroni has an interesting way to distribute firmware imo, and the names are very interesting).
PS: this also isn’t a Pico W, just the Pico’s main chip, the RP2040.
The user LED is on pins 16, 17, and 18, since it’s an RGB LED😎
Once the firmware is updated there is a function that can be found in the getting started guide:
i75.set_led(255, 0, 0)
This sets the onboard to be full red, 0 green and blue.
Let us know how you go!
Hi Liam,
Thanks for the heads up, I am coding in the correct direction now
The 64x64 DMD looks fantastic.
Jeff
Hi Liam,
I reviewed a few previous posts in an endeavour to locate a project that codes a 64x64 jpg image and additionally a GIF file on a 64x64 DMD.
I was not successful.
I would prefer to have this code in micropython not circuitpython. Any links to previous projects would be much appreciated.
Or if you have a example code to share (jpg and gif), that would be great.
Jeff
Hi Liam,
Worked it out today at least for the jpeg file, still stuck on the gif file.
Always seeking fine tuning of the code if you have the time, any help is appreciated.
Code:
import interstate75
import jpegdec
i75 = interstate75.Interstate75(display=interstate75.DISPLAY_INTERSTATE75_64X64, stb_invert=True)
graphics = i75.display
FILENAME = “64x64Catimage.jpeg”
jpeg = jpegdec.JPEG(graphics)
jpeg.open_file(FILENAME)
jpeg.decode(0, 0, jpegdec.JPEG_SCALE_FULL, dither=True)
i75.update(graphics)
Hey Jeff,
Looks like you’re making good progress. I would recommend looking into the ‘pygif’ library if you intend to display an image in a gif file format.
Your current code would probably end up looking something like this with the use of this library.
import interstate75
import pygif
i75 = interstate75.Interstate75(display=interstate75.DISPLAY_INTERSTATE75_64X64, stb_invert=True)
graphics = i75.display
FILENAME = "64x64Catimage.gif"
gif = pygif.GifImage.open(FILENAME)
gif_frames = gif.get_frames()
for frame in gif_frames:
frame_data = frame["data"]
for i, pixel_color in enumerate(frame_data):
x = i % 64
y = i // 64
graphics[y][x] = pixel_color
i75.update(graphics)
As for your current code, it looks like you are on the right track. I am looking forward to seeing what your end project will look like here!
Hi Samuel,
Thank you so much for your positive feedback, as a newbie to micropython it’s nice to know I am improving
Once I have finished the display cubicle, complete with power supply, over voltage protection etc, I will try out your suggested code.
Cubicle construction in progress.
Jeff
PS one display is never enough
Hi Samuel,
There are times (due to my lack of coding skills) I need to reset the I75 board which is easily achieved by pressing the “reset button” … obviously.
The issue I have is to be able to reset the I75 without pressing the reset button. Normally the reset input connection is available on an expansion header such as the “DNP” however, in the case of the I75 (see schematic) this reset/RUN connection is fully on the board and does not have an access point to connect to unless I connect to the reset switch directly. Not liking that idea.
I wish to be able to reset the board without pressing this on board reset switch; ideas please.
Jeff
Hey @Jeff149639,
what sort of ‘reset’ are you after? if you are just trying to start your code from scratch this should be achievable using one of the available pins on the board to trigger a reset inside of your code.
If you are after a full reset you may need to look into directly cutting the power to the board. I think the exact ‘reset’ you consider acceptable will change the solution to this.
Very unfortunate that ‘RUN’ on the RP2040 has not been made accessible in an easy to use way.
Hi Samuel,
RESET topic: I will work something out; the display cubicle is now painted and waiting on overload protection PCB.
GIF display: still giving me a headache, found the “gifdec.py” file, presuming it loads into the root directory. Currently getting a syntax error, I cannot find an example to show me the syntax required. Help!
Screen shot provided.
Jeff
Hey @Jeff149639,
Bit of a vague error that one. I would guess it has something to do with how gifdec is being imported by your code.
Maybe try placing the gifdec.py file in the same directory as your main.py script to see if this fixes anything. Python will search directories included in Python’s sys.path and the directory the current file is in when looking for modules to import.
Otherwise, try running this code directly from the command line with python main.py
in case this is an issue with how Thonny is handling it.
Hope this helps!