Automation Hat Mini from Apache2 web access

I’m running the Automation Hat Mini on a Pi 4. I’m writing to the on-board screen very nicely through Python from the command line.

However, when I execute the same script through the Apache2 web interface the code runs with no errors, but the on-board screen is not updating.

Perhaps this is a permission error, since the Apache code runs as a different user? If that’s it, what needs different permissions and set to what?

I thought the problem may be with access to the i2c bus, since access is allowed only to members of the i2c group. So I tried this sequence, which worked on another board:

sudo usermod -a -G i2c www-data
sudo systemctl restart apache2

However, this did not allow the Automation Hat to run from a web browser call.

It hangs up on this line:

disp = ST7735.ST7735(
port=0,
cs=ST7735.BG_SPI_CS_FRONT,
dc=9,
backlight=25,
rotation=270,
spi_speed_hz=4000000
)

What is the display call doing which requires permissions? Thanks for any suggestions.

By the way, this HAT is SO much easier to work with generally…

The issue was resolved with excellent help from Support.

The issue is with accessing the gpio ssytem in /dev/. The user which Apache runs under needs to have access to /dev/gpiomem. For me this was accomplished with these commands:

sudo usermod -a -G gpio www-data
sudo reboot now

Now it works great! Thanks to Matt from the support team.