FAQs
Contents
The configuration settings on the BB-400 are stored as a YAML file in the /boot
partition of the device. The BB-CLI reads and writes to this file. Below is a brief guide on each section of the configuration file.
version:
The version section has information regarding the product number, the hardware revision code and the version of software currently installed on the device. These settings cannot be set.
io:
This section contains settings relating to the DIO lines and the protocol settings used by the BB-IO-Server.
fw_version:
This represents the Arduino DIO firmware version number.
To install a new firmware version on the Arduino, input the new firmware file location as an argument.
global:
This is the DIO lines configuration settings that apply to all the 8 DIO lines:
Setting name | Description | Possible values |
counter_update_direction | This is when the counter needs to be updated on either the falling edge or rising edge of the input signal |
falling_edge rising_edge |
counter_mode | This is the size of the register to store the count value 16 bit = 0 -> 65,536 , 32 bit = 0 -> 4,294,967,296 |
16_bit_counter 32_bit_counter |
lines:
This contains the settings that can be set individually on each DIO line:
Setting name | Description | Possible values |
label | User defined label for the DIO line | Any string containing alphabets, numbers, spaces, underscore and hyphen. |
mode | Whether the line is an input or output or not used | input output not_set unused |
protocols:
This section contains the settings for the different protocols
ascii_tcp:
Contains the port number and the enabled status.
modbus_tcp:
Modbus TCP server conforms to the Modbus TCP protocol as included on Brainboxes’ digital IO modules ED-588 or ED-008. Not implemented for this release.
ws_server:
Contains the port number and enabled status.
virtual_serial_port:
The DIO on the BB-400 can be accessed through the virtual serial port to send and receive ASCII commands. The path to the virtual serial port and the enabled state is stored here.
polling_interval:
Describes how frequently the DIO needs to be polled to get the Digital IO lines states (in seconds).
rest:
REST server allows GET and POST requests to view and modify IO state.
This section contains the port number and the enabled status.
Protocol | Setting name | Description | Possible values |
---|---|---|---|
ascii_tcp | enabled | Whether the protocol is enabled or disabled | true false |
ascii_tcp | port | Port number the protocol can access | Any number between 0 – 65535 |
modbus_tcp | enabled | Whether the protocol is enabled or disabled | true false |
modbus_tcp | port | Port number the protocol can access | Any number between 0 – 65535 |
modbus_tcp | respond_to_slave_ids | Slave ids the modbus master should respond to | range or number between 0 and 255 |
modbus_tcp | maximum_connections | Maximum allowed connections at a given time | Number between 0 and 255 |
modbus_tcp | accept_all_addresses | – | |
modbus_tcp | idle_timeout | – | |
rest | enabled | Whether the protocol is enabled or disabled | true false |
rest | port | Port number the protocol can access | Any number between 0 – 65535 |
ws_server | enabled | Whether the protocol is enabled or disabled | true false |
ws_server | port | Port number the protocol can access | Any number between 0 – 65535 |
virtual_serial_port | enabled | Whether the virtual serial port is enabled or disabled | true false |
virtual_serial_port | path | Symlink to the virtual serial port which can be used to access the Arduino through the BB-IO-Server |
Any valid path |
network:
This section contains settings related to ethernet interfaces, Wi-Fi and UPnP (Universal Plug and Play).
eth0 and eth1:
This is one of the 2 ethernet interfaces on the BB-400.
eth0 corresponds to the UPLINK port on the front of the case.
eth1 corresponds to the LAN port of the front of the case.
interface and connection settings are common to eth0 and eth1.
interface:
Setting name | Description | Possible values |
---|---|---|
mac | MAC address | Stores the MAC address of the eth0 interface |
status | Status of the interface | active inactive |
connection:
Setting name | Description | Possible values |
---|---|---|
name | Name of the connection | Any string with alphabets, numbers, spaces, underscore and hyphen. |
type | IP address assignment type | dhcp static |
ip | IP address of the connection | Can be set only when type is static |
gateway | IP address of the gateway | Can be set only when type is static |
radio:
This section has settings related to the wireless connections.
wlan0
Maintains a list of saved connections and status of wlan0.
Status can be active or inactive.
wifiap
This section deals with the BB-400 access point mode settings.
The SSID name, password and status are the settings stored here.
Status can be active or inactive.
bluetooth
The status of the bluetooth is stored in this section.
Status can be active or inactive.
upnp:
These values are used by the UPnP server. The UPnP server enables you to find the BB-400 device on the network.
Setting name | Description | Possible values |
enabled | Whether the server is enabled or disabled | true false |
port | Port number the server runs on | Any number between 0 – 65535 |
serial:
Contains all settings related to the serial port on the BB-400.
This port is available on the device as /dev/ttySC0
Setting name | Description | Possible values |
enabled | Whether the serial port is enabled or disabled | true false |
type | Serial port protocol – RS232, RS422 or RS485 | rs232 rs422 rs485 |
The other settings are not yet implemented.
docker:
This setting is used to add/ move Docker containers from the system.
Setting name | Description | Possible values |
---|---|---|
enabled | Whether docker is enabled or disabled | true false |
containers | List of docker containers that are installed. | Each list should contain the properties image, name, config and running status |
system
All settings related to the Linux system are stored here.
rtc
Stores the last date/time the Real Time Clock (RTC) was set.
hostname
Stores the host name of the device
username
Stores the username that set up the device.
password
Stores the password of the user in the username property
Passwords are never stored in the config file, instead ‘****’ is used as a placeholder to show that this property is set.
Below is an example /boot/bb_config.yaml file:
version:
product: BB-400 # The part number of the product
hardware: r3 # Hardware revision/version
software: 1.0.963 # Version of brainboxes software
io: # These are settings which apply to the 8 IO lines and the BB-IO-Server which interfaces with the IO lines
fw_version: 1.0.10 # The Arduino firmware version number
global: # IO lines configuration settings apply to all IO lines
counter_update_direction: falling_edge # Counter update - falling_edge or rising_edge in the input signal
counter_mode: 16_bit_counter # Input Counter Mode can be 16 bit or 32 bit, this is the size of the register to store the count value 16 bit = 0 -> 65,536 , 32 bit = 0 -> 4,294,967,296
lines:
dio0:
label: dio0 # User defined label for the DIO line
mode: not_set # input or output or not_set or unused, whether the line is used as an input or an output or ?
debounce: 0 # Debounce time in milliseconds, valid input should be between 0-4000
dio1:
label: dio1
mode: not_set
debounce: 0
dio2:
label: dio2
mode: not_set
debounce: 0
dio3:
label: dio3
mode: not_set
debounce: 0
dio4:
label: dio4
mode: not_set
debounce: 0
dio5:
label: dio5
mode: not_set
debounce: 0
dio6:
label: dio6
mode: not_set
debounce: 0
dio7:
label: dio7
mode: not_set
debounce: 0
protocols: # This section covers the different protocols which is used by the BB-IO-Server
polling_interval: 1 # Set the polling interval in seconds to get the DIO line states
virtual_serial_port: # Virtual com port accessible by a program running on the BB-400
enabled: true # Enable status - true or false
path: /usr/share/brainboxes/virtual_serial_port # ? this path is generated at startup time and assigned by Linux I think we should change this to a static path, which is a symlink to the generated path
ascii_tcp: # ASCII TCP server conforms to the ASCII TCP protocol as on brainboxes digital remote IO modules ED-008 or ED-588, for more info see: http://www.brainboxes.com/faq/items/ascii-protocol-and-commands
enabled: true # Enable status - whether to enable the server - true or false
port: 9500 # Port number the server runs on
modbus_tcp: # the Modbus TCP server conforms to the Modbus TCP protocol as on brainboxes digital IO modules ED-588 or ED-008
enabled: true # Enable status - whether to enable the server - true or false
port: 502 # Port number the server runs on
respond_to_slave_ids: 0 to 255
accept_all_addresses: false
maximum_connections: 8
idle_timeout: 0
rest_server: # REST server allows GET and POST requests to view and modify IO state
enabled: true
port: 9000
ws_server: # WebSocket server pushes new IO state to the clients and receives requests to change state, uses a JSON payload
enabled: true
port: 8989
network:
eth0: # Interface name
interface:
mac: 00:0a:4f:00:00:00 # MAC address of ethernet (eth1)
status: active # Ethernet status - active or inactive
connection:
name: bb-wan # Name of the connection
type: dhcp # IP address assignment type - static or dhcp
eth1: # Interface name
interface:
mac: 00:0a:4f:00:00:01 # MAC address of ethernet (eth1)
status: active # Ethernet status - active or inactive
connection:
name: bb-lan # Name of the connection
type: static # IP address assignment type - static or dhcp
ip: 192.168.127.254/24 # IP address, if type is static
gateway: 0.0.0.0 # Gateway IP address, if type is static
radio:
base_mac_address: 00:0a:4f:00:00:00
wlan0: # wireless lan client
interface:
status: inactive
connections: [] # pre-configured wifi connections
# the network's ssid required
# auto-reconnect.priority, not required default 0, higher numbers are lower priority
# password, not required, default no password, type in the password on first use, once added to the system it will be replaced with **** (4 stars)
wifiap: # wireless lan hotspot
interface:
status: active
connection:
ssid: BB-400-00b0
ip: 192.168.63.1/24
bluetooth: # bt
interface:
status: inactive
upnp: # upnp is used to discover device on a windows network
enabled: true # Enable status - whether UPnP is enabled or disabled, valid inputs are true and false
port: 5001 # Port number the UPnP server will run on
serial: # this section covers the serial port settings on the BB-400
enabled: true # If serial port is enabled or disabled
type: rs232 # this port is available on the device as /dev/ttySC0
default: # serial port settings
ignore_application: false # whether these settings should override application settings
baud_rate: 115200
data_bits: 8
stop_bits: 1
parity: none
flow_control: none
protocol:
type: telnet
port: 9001
timeout: 0
tunneling:
enabled: false
remote_ip: 192.168.0.0
remote_port: 9001
docker:
enabled: true
containers: []
system:
rtc: '2018-10-23T11:28:31+01:00' # the last datetime that the rtc was set in format ISO 8601
hostname: bb400-xxxx # host name of the device
timezone: UTC # timezone of device
username: bb # the username
password: '****' # passwords are never stored in the config file, instead '****' is used as a placeholder to show that this property is set