Skip to content

Software Prerequisites

If you already have Python installed and usable as user, you can skip to the bottom.

We only require very few dependencies, namely Protobuf and PlatformIO. Most of the burden is on PlatformIO, which fortunately, can be installed as easy as a Python package.

If you don't want to deal with any of this, you can opt for a Dockerized build system.


Installing the Protobuf compiler is pretty easy, but every system has its own package managers and compilers.

brew install protobuf protobuf-c
apt install protobuf-compiler

Python and Pip

RFQuack needs Python 3.10.* installed and usable as $USER. It's up to you to choose how you install and manage Python and Python packages in your system.

Check Python Installation

To verify that your Python installation is usable and you can install packages as user:

$ env python
Python 3.10.5 (main, Sep 20 2022, 10:54:01) [Clang 14.0.0 (clang-1400.0.29.102)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print("hello world")
>>> hello world
>>> exit()

Let's try to install a package:

pip install -U platformio

If this completes well, you're good to go.

Have Pyenv and Poetry in Your Life

We highly recommend using Pyenv to manage Python on your system, and Poetry to manage Python project dependencies.

Installing Pyenv

curl | bash

The follow the Pyenv post-installation instructions and install & select the latest Python 3.10.* version (3.10.5 at the time of writing).

pyenv global 3.10.5

Installing Poetry

Please follow the official documentation.

curl -sSL | python -

From now on, whenever you'll select the just-installed Python 3.10.* version, it'll come with Poetry.

RFQuack Dependencies

Now you can install the actual dependencies needed by RFQuack:

cd RFQuack
poetry install

Bonus: This will install the shorthand rfq to start the RFQuack CLI Client

$ poetry shell
Spawning shell within .venv

$ rfq
Usage: rfq [OPTIONS] COMMAND [ARGS]...

  -h, --help                      Show this message and exit.

  mqtt  RFQuack client with MQTT transport.
  tty   RFQuack client with serial transport.
cd RFQuack
pip install -r requirements.pip