Tools Inside Blue Pill

Various tools and how to access them inside the Blue Pill

API Endpoints

The Blue Pill system manager provides multiple API endpoints, that can be triggered by simple http requests. This can be useful in advanced scenarios, where external systems should trigger changes on a panel. 

This is an advanced topic and basic knowledge of HTTP commands and control API's is expected.

Monitoring Package Status

The status of a package can be enquired by the following call.

This requires a POST request to the endpoint: /api/controlpackage/[package_name]

Curl example:
curl 'http://192.168.0.20/api/controlpackage/core-bmd-atem' \
-H 'Content-Type: application/json' \
--data-raw '{"Action": "status"}' \
--insecure

(if authentication is enabled it needs HTTP BasicAuth as well with username and password)

This will return a json response, like this:

{"Status":"ok","Data":{"runState":true,"startOnBoot":false,"packageHasControl":true,"ingressPath":"","inMenu":false}}

Switching Reactor Projects

Reactor allows to switch the current project via an external HTTP POST request.

The endpoint used is: /reactorapi/selectproject

This request allows to use the skaarOS authentication via HTTP Basic Authentication (Use the latest version of system-manager to allow this (v1.0.1-pre1 and higher)) 

Curl example:
curl --location --request POST '192.168.0.20/reactorapi/selectproject' \
--header 'Authorization: Basic YWRtaW46c2thYXJob2o=' \
--header 'Content-Type: application/json' \
--data-raw '{"Filename":"MyProject"}'

Toggle Raw Panel Mode

Raw Panel Mode can be enabled/disabled on a Blue Pill inside panel.

This requires a POST request to the endpoint: /api/setrwpconfig

Curl example:
curl 'http://192.168.0.20/api/setrwpconfig' \
-H 'Content-Type: application/json' \
--data-raw '{"Activate":true}' \
--insecure

(if authentication is enabled it needs HTTP BasicAuth as well with username and password)
Toggle Package Status

A package running on a Blue Pill device, can be started or stopped by a API call.

This requires a POST request to the endpoint: /api/controlpackage/[package_name]

Curl example:
curl 'http://192.168.0.20/api/controlpackage/reactor' \
-H 'Content-Type: application/json' \
--data-raw '{"Action": "start"}' \
--insecure

(if authentication is enabled it needs HTTP BasicAuth as well with username and password)

Check Device Core for Unused Parameters

If you have a Config, and would like to know what parameters aren't mapped to a config, is that easy to check in Reactor after version 2.0.2.

Open Home Screen of Reactor

Click the Device Core settings:image.png

Open Parameter List:image.png

Add "?configcheck=true" after the address:image.png

Now the parameter list shows what Parameters are added to the config, and who isn't:

image.png

Demo Mode

If you need to test displays and button-lights you can put a Blue Pill device into 'Demo Mode'.

  1. open Reactor > Home tab
  2. click 'Change Project' > click any project to open Project Details
  3. enable 'Show Advanced'
  4. click Mode: 'Demo' > click 'Save'

demo-mode.png

Engineering Menu

This documentation might be outdated. Please consult the Reactor manual at https://docs.skaarhoj.com/3_configuration/default-configurations.html#engineering-menu

The engineering menu contains panel settings like, Brightness control and dim/sleep time. You can also find other settings like, expert mode and global Invert pan/tilt.

It can be accessed in different ways based on the panel, and chosen configuration.

How do I know which method my configuration is using?

 Here we have listed the different 'panel configurations' that have the engineering menu.

Remember this is a list of configurations. So the specific panels named here, only have access to the engineering menu, when the loaded configuration contains such menu. This also means that you will find panels not named here, that can also access an engineering menu. To find the exact method used in your panel config, you can navigate the list here, and try methods that is in correspondence with your panel type.

Method 1 - Camera selector

This technique is used for panel configurations that has a camera page button or a combo menu button, that both cycle camera pages and the menus.

How to activate

Press and hold the top edge of the 'Page' button  A  for a few seconds

Examples of models using this method:

Listed here is 4 panels that have support for a configuration, that have an engineering menu accessible the same way. Remember this is just examples, and that this method is not exclusive to these 4 panels.

PTZ Wiz
image-1655379303605.png

PTZ Fly
image-1655379131060.png


Rack Control Uno
image-1655379063433.png

Inline 22
image-1655378954026.png


Method 2 - PTZ Pro

This technique is used for PTZ Pro only.

How to activate

Press and hold U4  A  for a few seconds 

Examples of models using this method:

This method is exclusive to the panel showed below

PTZ Pro
image-1655377701387.png

Method 3 - PTZ Extreme

This technique is used for PTZ Extreme only.

How to activate

Press and hold U4  A  for a few seconds 

Examples of models using this method:

This method is exclusive to the panel showed below

PTZ Extreme
image-1655455406685.png


Method 4 - RCP

This technique is used for every RCP panel (with config: "RCP - Generic PTZ Control").

How to activate

Step 1) Press and hold the 'Shift' button  
Step 2) Now press the 'Panel lock' button  B  to enter the engineering menu

Examples of models using this method:

Remember this is just examples, and that this method is not exclusive to this RCP panel only, but all RCP models, with the config "RCP - Generic PTZ Control".

RCPv2
image-1655377892960.png


Method 5 - MEGA Panel

This technique is used on panel MKT1B and MKT1A

How to activate

Step 1) Press 'Menu'  A  to make the settings button appear 
Step 2) Press 'settings'  B  to enter the engineering menu

Examples of models using this method:

This method is not exclusive to the panel showed below, but also MKT1A.

MKT1B
image-1655378154744.png


Method 6 - Switcher Selector

This technique is used for panel configurations in the switcher class.

How to activate

Step 1) Press 'Shift'  A  to make the FTB button light green
Step 2) Press 'FTB'  B  to enter the engineering menu

Examples of models using this method:

Listed here is 3 panels that have support for a configuration, that have an engineering menu accessible the same way. Remember this is just examples, and that this method is not exclusive to these 3 panels.

Airfly
image-1655378773661.png


Airfly Pro
image-1655378535087.png


Master Key One
image-1655378424611.png


Method 7 - Kairos

This technique is specific for our Kairos configuration for the Master Key One V2 (Blue pill inside)

How to activate

Step 1) Press and hold the button marked   
Step 2) Now press the button marked   B  to enter the engineering menu

Examples of models using this method:

This method is exclusive to the Kairos configuration on the panel showed below

Master Key One V2
image-1655377595619.png

Method 8 - Audio & Light Control

This technique can be used for most panels with an 'Audio & Light Control' config.

How to activate

Step 1) Press and hold the first pager button.

Example of model using this method:

Waveboard V2
WAVEBOARDV2-Top-TriCaster-Audio-s72.png

Experiments

Here you are able to disable the auto-deactivation of device cores on the Blue Pill. This is sometimes necessary when working with device cores across multiple Blue Pills. 

There is also the possibility to use a different algorithm for Reactor that may improve performance in some instances. As it is not fully tested, we do not recommend using it in a production capacity. 

Guide:

Example: XX.XX.XX.XX/experiments

Screenshot 2024-05-02 at 10.19.58.png

History View

You can access autosaved versions of the configurations. This is useful when a lot of changes have been made and it is necessary to roll things back a little. 
 
Reactor will autosave the configurations every time a change is detected. These are accessible from the History View page. To find it you can write /history-view after the IP of the Blue Pill device. Another way of entering the History View is through the 'going back in time' icon placed in various parts of reactor. 

How long back can I go?
Every change from the last 24 hours is saved. After that it will be combined to 1 file per day, and saved for 10 days.
It is also possible to add tags to individual versions. When a tag is added to the version, it will no longer be deleted based on the default time scale and will persist.

What is being saved?
It's important to remember that these autosaved versions are only saving information from the Configuration tab. Although if you change things related to configurations, from the Home tab, it may also be saved, and therefore revertible from the History View.

Example: Adding a Panel on the Home tab will not be part of an autosave, but choosing a configuration for it will. 


How to find the History View
You can always type /history-view after the IP.

Here is the ways to navigate through the UI:

First way

Being in the Configuration tab, the icon can be found right beside the Undo/Redo buttons

Screen_Recording_2022-08-05_at_16_38_48_AdobeExpress_AdobeExpress.gif

Second way

Step 1: Being on the Home tab. Press the button "Change Project" 

Screen_Recording_2022-08-05_at_16_45_48_AdobeExpress__1__AdobeExpress.gif

Step 2.1: Here you can press the icon for configuration on a specific project


Screen_Recording_2022-08-05_at_16_59_14_AdobeExpress.gif

Step 2.2: Or choosing a project, and from the dropdown menu, click the icon on a specific config

Screen_Recording_2022-08-05_at_17_05_00_AdobeExpress.gif

Understanding the page: History View
  1. You need to choose the project you want to work with. It will automatically choose the active project unless you access the page by writing /history-view.
    image-1657783759319.png

  2. Now you see the versions that have been autosaved.
    - You can delete a version by pressing the red trashcan image-1657783983291.png.
    - You can add a tag to a version (which will make sure it will not be deleted or merged automatically) image-1657784298669.png.
    - The version with the green square saying "latest" is the version you are on right now. By clicking the yellow "Set as latest" you will change what version of the configuration is chosen.
    - If you want to preview the code for the versions before choosing, you can click anywhere on a version and a new section will open.

    image-1657783898170.png


  3. Here you have the opportunity to navigate the code, an make out what configuration is included in the given version. Press the blue "Format" button if the code is not already visually set up for easy reading.

    image-1657784819118.png


  4. When you preview code it will inform you what version you are actively looking at, by writing "Preview" in green. 

    test_image.png

    But be aware a version is not chosen before it says "latest" 

    image.png


  5. Add one or more tags to remember what a version contained. Adding a tag also lets Reactor know that you want to keep this version on your list permanently, so it is not getting merged after 24 hours, or removed after 10 days. 

    image-1657798552722.png


HW Event Log

Located on the Tools Page (https://wiki.skaarhoj.com/books/blue-pill-reactor/page/tools-page), the HW Event Log can show you all Hardware Component interactions for all panels connected to your Blue Pill Device in real time. 

If nothing shows when using a HWC, try refreshing the web browser's page. 

No data will show if using the Simulator Page or simulating a panel in the Configuration Page. This is only for physical interactions with a panel.

Screenshot 2023-06-02 at 13.50.32.png

Here is a breakdown of the data:

Panel 2, Component 8, Data: {"HWCID":10,"Pulsed":{"Value":-1}} 

The Panel # corresponds to the Panel ID number assigned on the Home Page

Screenshot 2023-06-02 at 13.52.56.png

-Component # is the specific Hardware Component number for that specific component. The HWC number is the same on all panels of the same model for components that can be freely assigned. 
   Is is possible to see the HWC number for each device here: https://devices.skaarhoj.com/panels

-Data show exactly what happened. 
  Example 1: {"HWCID":10,"Pulsed":{"Value":-1}}  
        Hardware Component ID 10 had a pulsed input (encoder) with a value of -1 (turned counter clockwise 1 click). 

   Example 2: {"HWCID":11,"Speed":{"Value":53}}
         Hardware Component ID 11 had a speed input (joystick) with a value of 53    

    Example 3: {"HWCID":2,"Binary":{"Pressed": true, "Edge":4}}
          Hardware Component ID 2 had a binary input (button) pressed true (press down) on edge 4 (down)

The HW Event Log data can also be used to expose the JSON text format used by our devices. Read more about it in our Raw Panel integration manual: https://github.com/SKAARHOJ/Support/blob/master/Manuals/SKAARHOJ/SKAARHOJ_RawPanel_V2.pdf

Internal Processes Stats

Here you can see what is using the CPU on the device, the internal operating temperature, and more. 

It can sometimes be necessary to send this information to support. 

Guide:

Example: XX.XX.XX.XX/api/getstatsStats.png

mDNS Services

Skaarhoj panel use mDNS to announce themselves on the network to make panel discovery easy for users. There are some network structures that can make it desired for this to be disabled. 

To disable this service add disablemdns into the log string in the System Manager package on the packages page.

Screenshot 2025-06-17 at 2.16.35 PM.png

Ping Tool

Within Blue Pill it is possible to ping devices on the network allowing you to check that they are reachable from the Blue Pill or to check the stability and latency. Ping Tool.png

Guide:

Example: XX.XX.XX.XX/tools

If it is able to ping the device successfully, it will write the Round Trip Time for each package

image-1651668603109.png

A final report will be displayed. It contains information about how many packages were successfully transmitted and the minimum, maximum and average RTT

image-1651668693479.png

Switching Projects via a Button in Reactor

Reactor allows to switch the current project easily using a button.

Please Note, changing the current project will disconnect controllers if they are not configured in the project that is being switched to. 

Make sure to configure the projects to be switched between in each project. 

In the Project Manager, open the project details for the project you want to switch to. Copy the project's Filename exactly. It is necessary to toggle on Show Advanced to see the file name. 

Screenshot 2023-11-08 at 1.54.39 PM.png


On the Configuration Page, select the button to configure. In the Inspector, select Switch Project under the System options. 

Screenshot 2023-11-09 at 11.37.15.png

In the Inspector box, the parameter should open with a preselected selected Settings Template. 

Screenshot 2023-11-09 at 12.18.57.png

Fill in the Project Filename that was copied from the Project Manager into the Value field next to Project Filename. It is important that the file name is copied exactly as found in the Project Manager. 

Screenshot 2023-11-09 at 12.19.47.png

The project name should now appear on the display above the button (if the button does have an associated display). 

Please Note, the switch is activated by a 1 second hold down of the button. 

Screenshot 2023-11-09 at 12.20.05.png

Another way to do it without the 1 second hold down. 

On the Configuration Page, select the button to configure. In the Inspector, select Choose Other Parameter under the System option.

Screenshot 2023-11-09 at 12.35.30.png

In the dialog box that pops up select:  Reactor/CurrentProject  then Submit

projectswitch ioref.png

Returning to the Inspector, select Show More if you do not see Settings Template available. 

Screenshot 2023-11-08 at 2.06.58 PM.png

In the Settings Template, select Set Value Directly:

Screenshot 2023-11-08 at 2.07.21 PM.png

This should then give you the option to define the value needed. 

The first box will contain the Project File Name as directly copied from the Project Details. The second box can contain any name you would like to be displayed on the hardware panel.

Screenshot 2023-11-08 at 2.08.03 PM.png

You should end up with a button like this:

Screenshot 2023-11-08 at 2.25.37 PM.png

Switching Projects via external HTTP Request

Reactor allows to switch the current project via an external HTTP POST request.

The endpoint used is: /reactorapi/selectproject

This request allows to use the skaarOS authentication via HTTP Basic Authentication (Use the latest version of system-manager to allow this (v1.0.1-pre1 and higher))


Curl example:
curl --location --request POST '192.168.0.20/reactorapi/selectproject' \
--header 'Authorization: Basic YWRtaW46c2thYXJob2o=' \
--header 'Content-Type: application/json' \
--data-raw '{"Filename":"MyProject"}'

Tools Page

In Reactor there is a dedicated Tools Page to bring a few specific options into a single place. 

To access the Tools Page, use the Tools symbol in the lower right corner

Screenshot 2023-06-02 at 12.45.20.png

This will bring you to the full Tools page. On this page you can:

Screenshot 2024-05-02 at 10.15.19.png

  1. Pinger Tool, to check availability of other devices on your network.
    https://wiki.skaarhoj.com/books/blue-pill-reactor/page/ping-tool

  2. SkaarOS Stats Page, to check the internal processes of the Blue Pill device
    https://wiki.skaarhoj.com/books/blue-pill-reactor/page/skaaros-stats-page

  3. Clear Reactor Data, to clear the Reactor Cached data for the Panels and/or Devices

  4. Hardware Bootscreen Repair allows you to reset data controlling the startup animation of your device, so it gets updated on the next restart of the hardware-manager again

  5. HW Event Log, to help troubleshoot a potential hardware component issue. 
     https://wiki.skaarhoj.com/books/blue-pill-reactor/page/hw-event-log

Using a USB Network Adapters or LTE modems

In some circumstances it might be useful to use a secondary network cable on your BluePill or BluePill-Inside Product

To do that you can use the USBA Port of the device to connect an external network adapters.

Requirements: Make sure you are running system-manager v1.0.3-pre7 or higher. skaarOS should be 1.2-pre5 or higher.

1. Make sure USBA is enabled on your device. Go to the "Settings" tab and change the USBA switch to ON. You might need to reboot your device after toggeling.

Screenshot 2024-01-29 at 16.46.51.png

2. Plug in a USB to Ethernet Adapter into the devices USBA port and wait about 5 seconds, then refrehs the settings page in your browser. You should now see an "Other" tab in your network settings, that will let you configure the IP settings for the external connection.

Screenshot 2024-01-29 at 16.51.13.png

Done ! ✅


Note on Compatible Devices:


Tested Working 👍
We have tested this feature with many different ethernet adapters. Most Adapters powered by Realtek will work fine

rtl8153b-2
rtl8153a-4


Tested NOT Working 👎

Some rare cases do not work, notably Apple-branded USB-Ethernet Adapters and adapters with the ASIX AX88179 chipset. (eg pluggable USB3-E1000)


Using LTE Modems


In the same way you are also able to use your device over LTE. The modems you can use should not need too much power and support the native cdc_ether linux drivers.

huawaimodem.jpeg


We have tested this with the Huawai E3372 Modems. Other modems are not supported at this time.


Simply connect this modem on the USB A port as well. Select DHCP as network config. The device will usually get a 192.168.8.X IP address from the modem.

Make sure your modem connects to the internet automatically (no sim pin lock or others)

Done! ✅