A simulator for the CCCB service point display.
Find a file
vinzenz 75a0ae7a59
All checks were successful
Rust / build (push) Successful in 6m28s
Merge pull request 'Cache rendered chars, experimental null char handling' (#4) from next into main
Reviewed-on: #4
2025-07-12 14:23:21 +02:00
.github/workflows ensure newer rust is used 2025-02-07 21:59:54 +01:00
src add experimental null char handling 2025-07-12 13:57:19 +02:00
.envrc wip nix flake 2024-11-07 20:18:49 +01:00
.gitignore working flake 2024-11-09 18:53:11 +01:00
Cargo.lock update dependencies 2025-07-12 14:16:30 +02:00
Cargo.toml bump version, update readme 2025-07-12 14:00:51 +02:00
example_render.png add screenshot to README.md 2024-05-11 23:44:18 +02:00
flake.lock update dependencies 2025-07-12 14:16:30 +02:00
flake.nix update to released version 2025-07-12 13:33:58 +02:00
LICENSE Create LICENSE 2024-05-08 13:42:44 +02:00
README.md bump version, update readme 2025-07-12 14:00:51 +02:00
rustfmt.toml reformat code with max width 2024-05-11 23:29:25 +02:00
servicepoint-simulator.nix split flake into two files 2025-01-26 14:30:43 +01:00
Web437_IBM_BIOS.woff text rendering 2024-05-10 18:24:26 +02:00

servicepoint-simulator

Releases crates.io Crates.io Total Downloads GPLv3 licensed CI

A simulator for the CCCB service point display.

example render

In CCCB, there is a big LED matrix screen you can send images to via UDP. This crate contains an application that can receive packages in the same binary format and display the contents to the user.

Use cases:

  • getting error messages for invalid packages (instead of nothing happening on the display)
  • test your project when outside CCCB
  • test your project while other people are using the display

Uses the servicepoint library for reading the packets. The screenshot above shows the output of two example projects running in parallel (game_of_life and random_brightness).

This repository moved to git.berlin.ccc.de/servicepoint/servicepoint-simulator. The GitHub repository will remain as a mirror.

Running

With cargo installed: cargo install servicepoint-simulator

With nix flakes: nix run github:kaesaecracker/servicepoint-simulator

You can also check out this repository and use cargo run --release. Make sure to run a release build, because a debug build way slower.

Command line arguments

Usage: servicepoint-simulator [OPTIONS]

Options:
      --bind <BIND>
          address and port to bind to [default: 0.0.0.0:2342]
  -f, --font <FONT>
          The name of the font family to use. This defaults to the system monospace font.
  -s, --spacers
          add spacers between tile rows to simulate gaps in real display
  -r, --red
          Use the red color channel
  -g, --green
          Use the green color channel
  -b, --blue
          Use the blue color channel
  -v, --verbose
          Set default log level lower. You can also change this via the RUST_LOG environment variable.
      --experimental-null-char-handling
          When receiving a null byte as a char in the CharGridCommand, do not overwrite any pixels instead of clearing all pixels.
  -h, --help
          Print help

See env_logger to configure logging.

Because this program renders to an RGB pixel buffer, you can enjoy the following additional features not available on the real display:

  • enable or disable the empty space between tile rows (./servicepoint-simulator --spacers to enable)
  • render pixels in red, green, blue or a combination of the three (./servicepoint-simulator -rgb for white pixels)

Known differences

  • The font used for displaying UTF-8 text is your default system monospace font, rendered to 8x8 pixels
  • The brightness levels will look linear in the simulator
  • Some commands will be executed in part on the real display and then produce an error (in a console you cannot see) while the simulator refuses to execute the whole command

Contributing

Contributions are accepted in any form (issues, documentation, feature requests, code, reviews, ...).

All creatures welcome.

The included font is https://int10h.org/oldschool-pc-fonts/fontlist/font?ibm_bios (included in the download from https://int10h.org/oldschool-pc-fonts/download/). The font is CC BY-SA 4.0.

For everything else see the LICENSE file.