actfw's components for Raspberry Pi. actfw is a framework for Actcast Application written in Python.
sudo apt-get update
sudo apt-get install -y python3-pip python3-pil
pip3 install actfw-raspberrypiSee actfw-core for basic usage.
actfw-raspberrypi provides:
actfw_raspberrypi.capture.PiCameraCapture: Generate CSI camera capture imageactfw_raspberrypi.Display: Display using PiCamera Overlayactfw_raspberrypi.vc4.Display: Display using VideoCore IVactfw_raspberrypi.vc4.Window: Double buffered window
example/hello: The most simple application example- Use HDMI display as 640x480 area
- Capture 320x240 RGB image from CSI camera
- Draw "Hello, Actcast!" text
- Display it as 640x480 image (with x2 scaling)
- Notice message for each frame
- Support application setting
- Support application heartbeat
- Support "Take Photo" command
- Depends: python3-picamera fonts-dejavu-core
example/grayscale: Next level application example- Use HDMI display as 640x480 area
- Capture 320x240 RGB image from CSI camera
- Convert it to grayscale
- Display it as 640x480 image (with x2 scaling)
- Notice message for each frame
- Support application setting
- Support application heartbeat
- Support "Take Photo" command
- Depends: python3-picamera
example/parallel_grayscale: Paralell processing application example- Use HDMI display as 640x480 area
- Capture 320x240 RGB image from CSI camera
- Convert it to grayscale
- There exists 2 converter task
- Round-robin task scheduling
- Display it as 640x480 image (with x2 scaling)
- Notice message for each frame
- Show which converter processes image
- Support application setting
- Support application heartbeat
- Support "Take Photo" command
- Depends: python3-picamera
example/uvccamera: UVC camera capture examplepicamerais unnecessary- Use HDMI display center 640x480 area
- Capture 320x240 RGB image from UVC camera
- Convert it to grayscale
- Display it as 640x480 image (with x2 scaling)
- Notice grayscale pixel data histogram
- Support application setting
- Support application heartbeat
- Support "Take Photo" command
- Depends: libv4l-0 libv4lconvert0
Update the operating system CA store before installing development tools. Use uv 0.13.6 or later and certifi 2026.10.19 or later in existing virtual environments as well. CI checks the OS store, the project certifi bundle and, if pip is installed, pip's vendored certifi using public certificates.
poetry.toml keeps pip out of the project virtual environment, because the pip seeded by Poetry 1.8 vendors an older CA bundle. If an existing environment still has pip, recreate it with poetry env remove --all and poetry install.
curl -LsSf https://astral.sh/uv/0.13.6/install.sh | sh
uv tool install --with 'certifi>=2026.10.19' poetry==1.8.5
poetry installpoetry run nose2 -vOn a Raspberry Pi connected to HDMI display:
poetry run python example/helloCI will automatically do. Follow the following branch/tag rules.
- Make changes for next version in
masterbranch (via pull-requests). - Make a PR that updates version in
pyproject.tomland merge it tomasterbranch. - Create GitHub release from
masterbranch's HEAD.- Draft a new release.
- Create new tag named
release-<New version>(e.g.release-1.4.0) fromChoose a tagpull down menu. - Write title and description.
- Publish release.
- Then CI will build/upload package to PyPI & API doc to GitHub Pages.