Metadata-Version: 2.4
Name: gitzian
Version: 0.1.1
Summary: Runtime client for Gitzian display hardware for supported Raspberry Pi devices.
Author: Gitzian Electronics e.U.
Maintainer: Gitzian Electronics e.U.
License-Expression: MIT
Project-URL: Homepage, https://gitzian.com
Keywords: gitzian,raspberry-pi,display,hardware,streaming
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Multimedia :: Video :: Display
Classifier: Topic :: System :: Hardware
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: smbus2>=0.4.3
Requires-Dist: spidev>=3.6
Requires-Dist: evdev>=1.7.1
Requires-Dist: gpiod>=2.4.2
Provides-Extra: dev
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Dynamic: license-file

# Gitzian

This package is a runtime client for Gitzian display hardware for supported Raspberry Pi devices.

The client receives the display stream over the network, drives the connected display, handles backlight and touch hardware, and forwards local input events.

## Changelog

### 0.1.1

- Initial Gitzian Raspberry Pi client package.
- Added bundled display configuration for TL040HDS30CT1-B1620A.

## Supported displays

| Display | Backlight | Touch |
|---|---|---|
| `TL040HDS30CT1-B1620A` | LM3630A | FT6336 |

## Supported Raspberry Pi models

Gitzian is intended to run on Raspberry Pi hardware with I2C and SPI enabled.

Recommended models:

- Raspberry Pi Zero 2 W
- Raspberry Pi 2
- Raspberry Pi 3, tested with Model B
- Raspberry Pi 4, tested with Model B
- Raspberry Pi 5

Raspberry Pi Zero v1.1 is supported, but not recommended for displays larger than 360×360 because of weaker Wi-Fi performance. It is still usable for static or lower-bandwidth use, but not recommended for gaming or fluid video streaming.

Actual streaming quality depends on Wi-Fi quality, network latency, and available bandwidth.

## Raspberry Pi setup

Enable I2C and SPI:

```bash
sudo raspi-config
```

Install basic build requirements:

```bash
sudo apt update
sudo apt install -y python3-dev build-essential
```

### Raspberry Pi 5 GPCLK0 support

Raspberry Pi 5 requires the Gitzian GPCLK0 overlay package for proper display clock output.

```bash
sudo apt update
sudo apt install -y curl

curl -fsSL https://apt.gitzian.com/gitzian-archive-keyring.gpg \
  | sudo tee /usr/share/keyrings/gitzian-archive-keyring.gpg >/dev/null

sudo tee /etc/apt/sources.list.d/gitzian.sources >/dev/null <<'EOF'
Types: deb
URIs: https://apt.gitzian.com
Suites: trixie
Components: main
Architectures: arm64
Signed-By: /usr/share/keyrings/gitzian-archive-keyring.gpg
EOF

sudo apt update
sudo apt install -y gitzian-rp1-gpclk0-dkms
```
## Install

```bash
pip install gitzian
```

## First run

Create the default configuration:

```bash
gitzian --init-config
```

Edit the config file:

```text
~/.config/gitzian/default.ini
```

At minimum, set the network target for your Gitzian streaming server:

```ini
[network]
enabled = true
server_host = 10.77.0.4
server_port = 55556
```

Start the client:

```bash
gitzian
```

Equivalent module form:

```bash
python -m gitzian
```

Use a custom config file:

```bash
gitzian --config ./default.ini
```

## Runtime commands

Runtime commands are typed into the terminal while Gitzian is running.

| Command | Description |
|---|---|
| `help` | Show available runtime commands. |
| `brightness` | Show the current brightness percentage. |
| `brightness 0` | Turn the display backlight off. |
| `brightness 75` | Set backlight brightness to 75%. |
| `brightness off` | Turn the display backlight off. |
| `brightness max` | Set backlight brightness to 100%. |

When runtime debug tools are enabled in the config, these commands are also available:

| Command | Description |
|---|---|
| `fps` | Show current frame-rate statistics. |
| `fps run` | Print frame-rate statistics periodically. |
| `fps stop` | Stop periodic frame-rate output. |
| `input list` | List detected input devices. |
| `input reload` | Reload input devices. |

## Configuration

The main config selects the display profile:

```ini
[display]
name = TL040HDS30CT1-B1620A
config = displays/TL040HDS30CT1-B1620A.ini
```

The display profile contains display-specific I2C, backlight, reset, and touch settings.

## Network notes

Gitzian is a streaming client. Network connectivity to the configured Gitzian streaming server is required.

For secure use over the internet, use a private tunnel such as WireGuard.

## Support

Website:

https://gitzian.com

For help, questions, or special requirements, contact:

marco [at] gitzian.com

There are no stupid questions. If you are unsure whether your setup is supported, ask.

## License

This Python package is released under the MIT License.

See `LICENSE` for details.


## Trademark notice

Raspberry Pi is a trademark of Raspberry Pi Ltd. This project is not affiliated with or endorsed by Raspberry Pi Ltd.
