-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
“Illegal instruction” when importing from omni-epd
on Raspberry Pi Zero
#53
Comments
Usually that error is a sign you either didn't specify a valid EPD. The entire stack trace would be a bit more useful of you still have it. This library abstracts the waveshare library to provide more generic support for a variety of e-ink displays. Given that many people have used the automated script without issue I imagine the problem is unique to your situation. If you have more info I'd be curious but if not this is probably a one-off issue. |
Did you have any more information on this? If not I'll close it out since there haven't been any other reports of this type of thing. |
Hi Rob, sorry for the delay. I’m happy to provide more information. I believe I’m using a pretty standard setup on the hardware side:
As I mentioned in the initial report, I don’t think I’m even getting to the point where I can specify an EPD. Simply importing the library in the following one-line program:
crashes with the error message |
The best description I can find for that error is
You were able to get this working by modifying the code so it's not python itself that is the issue but more than likely one of the imported libraries that gets loaded as part of the module. I have had weird issues with |
Oh, interesting catch with In the meantime, here’s the output of
|
It seems |
Hi all. I came along this issue having the same Problem ( Meantime I flashed the SD of my Raspi with the most recent RaspiOS Lite 11 (Release date: October 30th 2021) and started all over again.
After this I run |
It will take me a bit but I'll try to put together a fresh Rpi and follow these steps. I'm guessing a library change somewhere in the module stack is causing this. |
If I can help somehow please let me know. Unfortunately I‘m a bit lost on how to track this down. How would you do it?
|
I'd start by trying to isolate what module was doing it. Just running
Just keep modifying that file with a different import and running it. If they all come back clean the next thing would be to try individual EPD modules themselves, which is harder since you'll have to modify the |
Well not exactly good news, I can't recreate the issue you're seeing. Here are my steps:
The screen updated properly with the test pattern, no errors. Below is the output I got
I grabbed a random RPi I had laying around for testing. The output of |
Thanks for trying to reproduce the error, and how strange you didn’t encounter it! That’s hopeful for us buggy folks, though :)
Just checking, did you try it with Raspberry Pi OS Lite? That’s what @CaptainInler and I are on. |
Yes, I should have been more specific. I only ever use the Lite version so I didn't think to add that. |
@rileyjshaw |
I think I found a Solution on this. It is caused by numpy >v1.21.4 but only affects Raspberry Pi's with CPU's on ARMv6 like Zero, Zero W/WH or Modell 1. My solution was to downgrade to numpy 1.21.4 by:
to check the numpy version: to check if this "fix" did work: |
Thanks for the info. That explains why I couldn't reproduce it. I do have an Rpi 1 .... somewhere .... I'll see if I can set this up and try out your steps to confirm. I believe Pillow is pulling in numpy so I wonder if locking in a specific version of Pillow or installing numpy first would help this issue for downstream projects (like SlowMovie)? I'll have to play with that. |
@CaptainInler your fix is spot on! I just managed to get the unmodified SlowMovie script running after pinning
^ a quick note for folks following along that if you ran @robweber I’m happy to leave this issue open or close it out, now that the issue is clearly external to |
Great to know it works. Let's leave it open for now. I'd like to find a way to make sure this works for everyone by tagging the right version during install. |
Took me a bit to get something setup to test this. I was able to recreate your experience on a Pi Zero. I have a potential fix in this branch. In testing I was able to remove all dependencies and build omni-epd with the new tagged versions. After that the correct numpy version was installed the test program worked. I'll push this to the |
I just had a chance to give it a try, but oddly enough I can’t seem to reproduce the initial bug. I ran the following from my Pi Zero with the numpy fix applied:
At this point I checked my local version of numpy, and it’s at Sorry this wasn’t a straightforward test report, but hopefully it’s helpful information. |
Looks like it's been fixed. |
Awesome. I'll close this out. |
Hi, sorry in advance for the silly question. Python deps are endlessly confusing to me, and I’m sure this is my fault 😖
Context:
I just went through the “Automated Installation” to set up SlowMovie on a Raspberry Pi Zero. When I tried to run
python3 slowmovie.py
to start the program, I got an “Illegal instruction” error. I traced it back to the following line:Minimal repro:
I isolated the above line into its own file and observed the same error.
I was able to get
slowmovie.py
working by swapping outomni_epd
withwaveshare_epd
, following how it’s used inhelloworld.py
. But I figured that since you’re an active contributor to SlowMovie, you might be interested in this bug.Happy to provide additional information if it would be helpful, just let me know! Cheers.
The text was updated successfully, but these errors were encountered: