Does the HyperPixel need a graphical user interface to operate? I’m not able to see any information about this aspect on the product page, but I’m looking to use it with Raspbian Lite and either pygame or PIL. Do you have any documentation or examples to get started with interfacing with HyperPixel?
It should be possible to use pygame to display directly on HyperPixel via the framebuffer device. I haven’t actually tested this though, although I’ve accomplished it before with other displays. I’ll have to give it a shot and post a mini-tutorial.
Although I think this covers it: https://learn.adafruit.com/raspipe-a-raspberry-pi-pipeline-viewer/running-raspipe-dot-py-on-the-pitft
Great, got my HyperPixel today and hacked together this Python code to display via the framebuffer. It requires PyGame (
sudo apt-get install python-pygame). A quick ‘n’ dirty example is shown below:
import pygame, os, time, sys os.environ["SDL_FBDEV"] = "/dev/fb0" os.environ["SDL_MOUSEDEV"] = "/dev/input/mouse0" # HyperPixel screen dimensions WIDTH = 800 HEIGHT = 480 if __name__ == '__main__': # initialise PyGame engine pygame.init() # set PyGame output to match dimensions of HyperPixel size = width, height = WIDTH, HEIGHT screen = pygame.display.set_mode(size) # hide the mouse pointer pygame.mouse.set_visible(0) # load a bitmap image for later display logo = pygame.image.load("pimoroni-shop-logo.png") logo_rect = logo.get_rect() logo_rect.centerx = WIDTH / 2.0 logo_rect.centery = HEIGHT / 2.0 # create text for later display font = pygame.font.Font(None, 150) text = font.render("HyperPixel", 0, (32, 32, 32)) text_rect = text.get_rect() text_rect.centerx = WIDTH / 2.0 text_rect.centery = HEIGHT / 2.0 # loop example display 5 times... for i in range(5): # clear screen (R,G,B) (255, 255, 255) = white background screen.fill((255, 255, 255)) screen.blit(logo, logo_rect) # show display (as double-buffered) pygame.display.flip() # one-second delay time.sleep(1) # clear screen with light blue background colour screen.fill((32, 155, 192)) # show text screen.blit(text, text_rect) pygame.display.flip() time.sleep(1) # clear HyperPixel display at end of script screen.fill((0,0,0))
Fantastic! Thank you for the example. Might be worth putting something like this in the HyperPixel GitHub repo, since these screens always work their best with a custom UI.
Note: to post code in future, enclose it within 3 backticks:
``` Like so ```