General Setup
Pixora runs on your Windows computer and each display pulls its cards, messages, and settings from that computer over your local network.
1. Start Pixora
Open Pixora from the Start menu or desktop shortcut on the Windows computer that will host your displays. Keep Pixora running while displays are in use.
2. Add a Display
Use the setup flow to connect a display to Wi-Fi and point it at this Pixora install.
- Click Setup a New Device.
- Connect the display by USB when prompted.
- Enter your Wi-Fi name and password.
- Follow the on-screen steps until the display reboots and checks in.
3. Confirm the Display Tab
After the display connects, it appears as its own tab on the main Pixora page. Select that tab to rename it, adjust brightness, send a test message, or assign cards.
4. Add Cards
Add cards from the Card Library to the selected display. Cards play in the order shown in the device queue.
5. Global Options
The Setup Options tab stores shared settings used by cards and integrations.
- OpenWeatherMap: weather card API key.
- MQTT: subscribe to Pixora message topics.
- Hubitat Maker API: load Hubitat devices into compatible cards.
- Home Assistant: watch entity state changes in Rules.
- SmartThings: load SmartThings devices into compatible cards.
- Quiet Hours: default display dimming schedule.
Useful Local Addresses
http://pixora.local:8088
http://your-computer-ip:8088
Use the IP address shown in Pixora if pixora.local is not available on your network.
Display Setup
Displays connect to your Wi-Fi and pull their content from the Windows computer running Pixora.
Add a New Display
- Open Pixora on the Windows computer that will host your displays.
- Click Setup a New Device.
- Connect the display by USB when prompted.
- Enter your Wi-Fi name and password.
- Wait for the display to reboot and appear as a tab in Pixora.
Move a Display
If the display is moving to a spot with the same Wi-Fi network, unplug it, move it, and plug it back in. It should reconnect and continue using the same tab.
If a Display Does Not Reconnect
- Give it a minute after power-up; it may restart once while Wi-Fi comes back.
- Confirm the Windows computer running Pixora is on and connected to the network.
- Check that the display is still on the same Wi-Fi network as Pixora.
- If the display keeps restarting, use Set Up Wi-Fi by USB from the display tab.
Rename or Remove
Select a display tab to rename it, reboot it, remove it from Pixora, adjust brightness, or send a test message.
Cards & Scheduling
Cards are the normal rotating content shown on a display when no priority message is active.
Add Cards
- Select a display tab.
- Choose a card in the Card Library and click Add.
- Use Options to configure the card.
Card Order
Cards play in the order shown in the selected display queue. Remove and re-add cards to rebuild the rotation order.
Show Days and Times
Many cards include a Show This Card schedule. Use days and from/to times to limit when that card appears.
Brightness and Quiet Hours
Each display can use its own brightness and quiet hours. Global defaults live in Setup Options; display settings override those defaults.
Refresh Policy
The global refresh policy controls how aggressively Pixora refreshes card data. Use Balanced unless a card needs faster updates.
Contact
For help with Pixora setup, firmware, cards, messages, or display behavior, reach out by email.
Email
info@pixorahq.com
What To Include
- What you were trying to do.
- What happened instead.
- Your display type: Tidbyt Gen 1, Pixora S3 64x32, or Pixora S3 128x32.
- Your Pixora version.
- A screenshot when the issue is visual or setup-related.
Device Groups
Device Groups link multiple displays into one left-to-right wall for priority messages and graphics.
Create a Group
- Open Device Groups.
- Enter a group name, such as Main Wall.
- Select 1 to 3 displays in the order they sit physically from left to right.
- Click Save Group.
Display Order
Stand in front of your displays and select them in the same order you see them, from left to right. For example, if the wide display is in the middle, select the left display first, the wide display second, and the right display third.
This keeps wall messages lined up correctly as they move across the displays.
Send a Wall Test
- Choose the saved group at the bottom of Device Groups.
- Enter a wall test message.
- Choose a speed and optional graphic.
- Click Send Test.
Wall Message Timing
Pixora schedules wall messages a few seconds ahead so each display can download and prepare its slice before the animation starts. Custom graphics may take a little longer because the slices are larger.
Automation Target
Automations can target the group by its saved ID or name.
{"message":"Door opened","target":"main-wall","data":{"mode":"wall","speed":"normal","graphic":"none"}}
Hubitat Setup
Pixora can read devices from Hubitat through Maker API and use them in Hubitat cards and automations.
Enable Maker API in Hubitat
- In Hubitat, open Apps.
- Add or open Maker API.
- Select the devices Pixora should be allowed to read.
- Save the app and note the Hubitat URL, Maker API app number, and access token.
Save Hubitat Settings in Pixora
- Open Setup Options.
- Find Hubitat Maker API.
- For cloud access, enter the Hubitat Remote Admin URL before /apps, such as https://cloud.hubitat.com/api/38a0919b-xxxx-42b5-xxxx-xxxxxxxxx.
- Enter the Maker API app number, such as 8686, and the access token from the same Maker API URL.
- Click Save Global Options.
Hubitat Multi Card
The Hubitat Multi card can show several Hubitat devices on one Pixora display.
- Open the Hubitat Multi card options.
- Click Load Devices.
- Select the devices to show.
- Choose an attribute for each selected device, such as temperature, motion, contact, battery, or switch.
Attributes
Each selected device can use its own attribute. For example, a temperature sensor can show temperature while a contact sensor shows contact and a motion sensor shows motion.
Send Messages from Hubitat
Hubitat Rule Machine can send Pixora messages with a Send POST action. Use content type JSON.
POST http://192.168.4.72:8088/display/message
{"text":"Garage door opened","color":"orange","duration":10,"mode":"scroll"}
Home Assistant Setup
Pixora can watch Home Assistant entities and run Rules when a selected state or attribute changes.
Create a Long-Lived Token
- In Home Assistant, open your user profile.
- Find Long-Lived Access Tokens.
- Create a token for Pixora.
- Copy the token before leaving the page.
Save Home Assistant Settings in Pixora
- Open Setup Options.
- Find Home Assistant.
- For Pixora Cloud, enter a public HTTPS URL for Home Assistant, such as your Nabu Casa remote URL: https://your-instance.ui.nabu.casa.
- A local URL like http://homeassistant.local:8123 or http://192.168.x.x:8123 only works when Pixora is running on your home network.
- Paste the long-lived token.
- Click Save Global Options.
Create a Home Assistant Rule
- Open Rules.
- Set Source to Home Assistant Event.
- Click Load Entities.
- Search for the entity to watch.
- Choose state or an entity attribute.
- Pick the condition, such as Becomes, is greater than, is between, or has been for.
- Set the message, target, priority, graphic, and schedule conditions.
Examples
Entity: binary_sensor.front_door
Attribute: state
Condition: Becomes
Value: on
Entity: sensor.outdoor_uv_index
Attribute: state
Condition: is greater than
Value: 4
Troubleshooting
- If Pixora shows a red credentials warning, confirm the URL and token in Setup Options.
- If entities do not load in Pixora Cloud, confirm the URL works from outside your home network.
- If a rule does not fire, confirm the watched value changes from false to true; Pixora fires on the change, not just because a value is already true.
SmartThings Setup
Pixora can read SmartThings device status fields and run Rules when the selected value changes.
Create a SmartThings PAT Token
- Open the SmartThings personal access token page in a browser.
- Create a token for Pixora.
- Give it permission to read devices and device status.
- Copy the token before leaving the page.
- Pixora Cloud talks to the SmartThings cloud API directly, so you do not need a SmartThings hub URL or home-network remote access URL.
Save SmartThings Settings in Pixora
- Open Setup Options.
- Find SmartThings.
- Paste the PAT token.
- Click Save Global Options.
Create a SmartThings Rule
- Open Rules.
- Set Source to SmartThings Event.
- Click Load Devices.
- Search for the device to watch.
- Choose the status field, such as switch, contact, motion, temperature, or battery.
- Pick the condition, such as Becomes, is less than, is greater than, is between, or has been for.
- Set the message, target, priority, graphic, and schedule conditions.
Examples
Device: Living Room Lamp
Field: main / switch / switch
Condition: Becomes
Value: on
Device: Front Door Sensor
Field: main / contactSensor / contact
Condition: Becomes
Value: open
Troubleshooting
- If Pixora shows a red credentials warning, confirm the PAT token in Setup Options.
- If devices do not load, confirm the token has device read access.
- If a rule does not fire, check that the selected SmartThings field is the one changing in SmartThings.
Custom Graphics
Graphics can be downloaded once and reused in Pixora wall messages and automation payloads.
Install a Graphic
- Click Browse Graphics.
- Pick a graphic from Animated or Static.
- Click Install.
Pixora stores installed graphics locally on the Windows computer running Pixora.
Use in a Wall Test
After installing, the graphic appears in the Device Groups Graphic dropdown under Custom.
Use from Hubitat or Other Automations
Send the uploaded graphic ID as the message graphic.
{"message":"Washer finished","target":"main-wall","data":{"mode":"wall","graphic":"custom:your-graphic-id","speed":"fast"}}
Image Tips
- Simple high-contrast images work best.
- Transparent PNGs are ideal.
- Pixora scales graphics to fit the 32px display height.
- Very wide graphics are capped so message text still has room.
Special App Instructions
Some cards need credentials from another service before Pixora can show live data. Save shared credentials in Setup Options when Pixora provides global fields. Card-specific credentials still live in that card's Options window.
Shopify Orders
Use the store's real .myshopify.com domain from Shopify Admin Settings > Domains. Do not use the public store domain if it differs.
- In Shopify Dev Dashboard, open the app installed on your store.
- Confirm the active version has read_orders.
- Confirm the app is installed on the store and approve updated scopes after releasing a new version.
- Copy Client ID and Client Secret from the app's Settings page.
- In Pixora, open Setup Options > Shopify and enter Shop Domain, Card Label, Client ID, and Client Secret.
Shop Domain: pixora-3372.myshopify.com
Scope: read_orders
An App Automation Token that starts with atkn_ is for Shopify automation/deploy tasks and is not enough for order counts.
Etsy Shop Pulse
- Create an Etsy app in the Etsy developer console.
- Copy the API keystring and shared secret.
- Open the Etsy card options in Pixora.
- Use Connect Etsy to authorize the shop and save the OAuth token.
- Enter the Shop ID or shop name used by the card.
If Etsy shows an auth error, reconnect the card so Pixora can refresh the OAuth token.
Facebook Followers
- Create or open an app in Meta for Developers.
- Give the app access to the Facebook Page you want to display.
- Create a Page access token with the permissions required by the card.
- Enter the Page ID or username and token in the Facebook card options.
Meta permissions and tokens can expire or require review depending on the account, app mode, and page ownership.
Instagram Followers
- Use a Professional Instagram account connected to a Facebook Page.
- Use Meta for Developers to create an app and grant Instagram Graph access.
- Generate a token that can read the connected Instagram business account.
- Enter the account ID and token in the Instagram card options.
Personal Instagram accounts usually do not provide the API access this kind of card needs.
YouTube Subscribers
- Open Google Cloud Console.
- Create a project or choose an existing project.
- Enable the YouTube Data API v3.
- Create an API key and restrict it if desired.
- Enter the API key and channel ID in the YouTube card options.
Channel ID usually starts with UC...
X / Twitter Followers
- Create a developer app in the X Developer Portal.
- Generate a bearer token or access token accepted by the card.
- Enter the username and token in the X / Twitter card options.
X API access levels change often. If a token works one day and stops later, check your developer plan and app access.
Spotify and Music Cards
Pixora does not currently use Spotify directly. For now, use one of these paths:
- Last.fm Now Playing: connect Spotify scrobbling to Last.fm, then use the Last.fm card.
- Music Assistant Now Playing: use Music Assistant as the local source and point Pixora at the Music Assistant player.
- Home Assistant: expose Spotify or media-player state in Home Assistant, then use Home Assistant Entity cards or Rules.
A direct Spotify card would need a Spotify developer app, client ID/secret, OAuth redirect handling, and token refresh support.
General Credential Tips
- Copy tokens exactly; extra spaces can break authentication.
- Use read-only scopes whenever possible.
- After changing scopes, reinstall or reauthorize the app if the service requires it.
- Do not publish secrets in GitHub, screenshots, or card registry files.
- If a card shows an auth error, check the Pixora log for the service-specific failure text.
Messages & Automations
Pixora accepts HTTP POST messages from Hubitat, Home Assistant, SmartThings, MQTT bridges, scripts, and other local automation tools.
Single Display
Send a message directly to a display by replacing display with the device ID or path shown in Pixora.
POST http://192.168.4.72:8088/display/message
{"text":"Test message from Hubitat","color":"red","duration":10,"mode":"scroll"}
Message Modes
- wrap: static wrapped message.
- scroll: scrolling message.
- flash: flashing message.
- wall: synchronized scrolling message across a device group.
Hubitat Example
In a Hubitat Send POST action, set content type to JSON, use the URL above, and paste this body.
{"text":"Test message from Hubitat","color":"red","duration":10,"mode":"scroll"}
Wall Message
For a device group, post to the automation endpoint and use the group ID or group name as the target.
POST http://192.168.4.72:8088/api/home-assistant/message
{"message":"Washer finished","target":"main-wall","data":{"mode":"wall","color":"white","duration":10,"speed":"fast","graphic":"arrow"}}
Wall speed can be slow, normal, fast, or turbo. Graphics can be none, baseball, arrow, bullet, or delorean.
MQTT
Enable MQTT in Setup Options to let Pixora subscribe to local automation topics. Use the base topic shown in Pixora when publishing messages.
Colors
Common colors include white, red, orange, yellow, green, teal, blue, purple, and pink.
Firmware
Firmware is distributed only as official prebuilt release binaries from the Pixora release page.
How to Make Your Own Card
Pixora cards are small Python files that draw a 64x32 or 128x32 image and return it to Pixora as a WEBP image.
Where Cards Go
Custom card files use the .py file extension and live in Pixora's cards/addons folder. After adding or editing a card file, restart Pixora so it can load the card.
Ask AI to Make One
The easiest way to make a custom card is to give an AI assistant the Pixora card creator brief, then describe what you want the card to do.
- Open the brief below.
- Download it or copy its contents.
- Attach or paste it into your AI chat.
- Describe the card you want, including the information it should show and any options you want to change in Pixora.
- Ask the AI to create one Python card file for Pixora.
Download the Pixora card creator brief
Basic Card Parts
- CARD_ID: a unique lowercase ID, such as my_status_card.
- CARD_NAME: the name shown in Pixora.
- CARD_DETAIL: a short description shown in the Card Library.
- CARD_OPTIONS: optional fields users can edit from the card Options window.
- render(options): the function Pixora calls to draw the card.
Starter Card
from io import BytesIO
from PIL import Image, ImageDraw
CARD_ID = "my_status_card"
CARD_NAME = "My Status Card"
CARD_DETAIL = "Shows a short custom message"
CARD_CATEGORY = "Utility"
CARD_OPTIONS = [
{"key": "message", "label": "Message", "type": "text", "default": "Hello Pixora"}
]
def render(options=None):
opts = options or {}
width = 128 if opts.get("_target") == "pixora-s3-wide" else 64
message = str(opts.get("message") or "Hello Pixora")
image = Image.new("RGB", (width, 32), (0, 0, 0))
draw = ImageDraw.Draw(image)
draw.text((2, 10), message[:18], fill=(0, 255, 220))
out = BytesIO()
image.save(out, "WEBP", lossless=True, quality=100)
return out.getvalue()
Display Size
Use the _target option to tell whether Pixora is rendering for a 64-wide or 128-wide display. Keep important text and graphics inside the image size.
Options Users Can Edit
Add fields to CARD_OPTIONS when the user should be able to change text, numbers, colors, choices, or device settings from Pixora.
Tips
- Keep graphics simple and high contrast.
- Return quickly; slow cards can delay the display rotation.
- Restart Pixora after changing card code.
- If the card does not appear, check that CARD_ID is unique and the file ends in .py.
Troubleshooting
Start with the symptom you see, then try the checks in order.
Display Does Not Appear
- Make sure Pixora is running on the Windows computer.
- Confirm the display and Windows computer are on the same Wi-Fi network.
- Wait up to a minute after the display reboots.
- If it still does not appear, download the official firmware from the Pixora release page.
Display Keeps Restarting
- Check the power supply and USB cable.
- Move the display closer to Wi-Fi and try again.
- Use Reboot from the display tab if the display is visible.
- If it keeps looping, download the official firmware from the Pixora release page.
Messages Do Not Show
- Confirm the message URL uses the display ID or group name shown in Pixora.
- Use JSON content type when sending from Hubitat, Home Assistant, or scripts.
- Check quiet hours; messages may be suppressed while a display is quiet.
- Try the display tab Send Message box to confirm the display can receive messages.
Wall Message Is Out of Sync
- Confirm the Device Group order matches the physical left-to-right order.
- Use normal speed while testing.
- Try a text-only wall message, then add the graphic back.
- Large custom graphics need more time to prepare, so give the displays a few seconds between repeated tests.
Cards Are Blank or Wrong
- Open the card options and confirm required settings are filled in.
- Check global settings such as weather API key, ZIP, Hubitat, or MQTT.
- Confirm the card is scheduled to show for the current day and time.
- Remove and re-add the card if its settings look stale.
Hubitat Devices Do Not Load
- Confirm the Hubitat URL, Maker API app number, and access token in Setup Options.
- Make sure the devices are selected inside the Hubitat Maker API app.
- Open Hubitat in a browser from the Pixora computer to confirm it is reachable.
If you are having any issues, please reach out to info@pixorahq.com.