Environment Variables

CircuitPython 8.0.0 introduces support for environment variables. Environment variables are commonly used to store “secrets” such as Wi-Fi passwords and API keys. This method does not make them secure. It only separates them from the code.

CircuitPython supports these by mimicking the dotenv CPython library. Other languages such as Javascript, PHP and Ruby also have dotenv libraries.

These libraries store environment variables in a .env file. Here is a simple example:

KEY1='value1'
# Comment
KEY2='value2
is multiple lines'

CircuitPython uses the .env at the drive root (no folder) as the environment. User code can access the values from the file using os.getenv(). It is recommended to save any values used repeatedly in a variable because os.getenv() will parse the /.env on every access.

CircuitPython behavior

CircuitPython will also read the environment to configure its behavior. Other keys are ignored by CircuitPython. Here are the keys it uses:

CIRCUITPY_WIFI_PASSWORD

Wi-Fi password used to auto connect to CIRCUITPY_WIFI_SSID

CIRCUITPY_WIFI_SSID

Wi-Fi SSID to auto-connect to even if user code is not running.