BB Industrial Controllers
Tutorials for the Brainboxes BB range of industrial controllers including the BB-400 NeuronEdge.
Tutorials for the Brainboxes BB range of industrial controllers including the BB-400 NeuronEdge.
BB-400 NeuronEdge Controller appendices including Ethernet pinout, network ports, support information, and revision history
BB-400 NeuronEdge Controller communication protocols including ASCII TCP, REST API, WebSocket, and Unix Domain Socket
BB-400 NeuronEdge Controller digital I/O configuration including NPN/PNP selection, input modes, counter inputs, and output configuration
BB-400 NeuronEdge Controller initial configuration including default settings, Wi-Fi access point connection, Ethernet setup, and web administration interface
BB-400 NeuronEdge Controller installation guide including DIN rail mounting, antenna attachment, power connection, and network setup
BB-400 NeuronEdge Controller introduction, key features, intended applications, and package contents
The BB-400 has a host of different network capabilities, with 2 Ethernet ports, 2 wireless networks and Bluetooth connectivity. There needs to be a clear, well orientated and smooth interface from which to access, configure and monitor these features. Using the online interface, under the network tab, the user can monitor, view and configure different networking aspects of the device. Below, you can find an in-depth look into each of the different features of the networking tab.
BB-400 NeuronEdge Controller front panel layout, LED indicators, terminal block connections, and wire specifications
With the BB-400’s specifically designed power management system or PMU, the device has a particular power up process which is performed in order to maintain the devices operability.
BB-400 NeuronEdge Controller programming guide including Python, Node.js, Node-RED, Docker, and Arduino co-processor development
Welcome to the January 2020 update for the BB-400.
Welcome to the June 2019 update for the BB-400.
BB-400 NeuronEdge Controller safety guidelines including electrical safety, environmental considerations, and installation requirements
BB-400 NeuronEdge Controller serial port configuration including RS-232, RS-422, RS-485 modes, hardware jumpers, and software settings
BB-400 NeuronEdge Controller system administration including CLI commands, factory reset, firmware backup, and flashing procedures
BB-400 NeuronEdge Controller complete technical specifications including processor, power, I/O, connectivity, and environmental ratings
BB-400 NeuronEdge Controller troubleshooting guide for power, network, I/O, and serial port issues
_Please note: this guide is intended for advanced Linux users only._
Some users using the BB-400 will want to use their own developed software to do as they want, whether it's processing data to a cloud service or reading the inputs and triggering outputs.
The bb install command updates the BB-400 settings with the settings from the /boot/bb_config.yaml file.
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.
The BB-400 features a fully configurable serial port, capable of being set to use any of the serial communication protocols ( RS232, RS422 and RS485 ). In addition to this, the serial port is also capable of accepting many of the most common baud rates, the minimum being 300 and the maximum 921,600.
Serial Port
Cloud computing is the process by which information can be sent over the internet using a variety of different “pay-as-you-go” services. The BB-400 has several cloud services integrated, and this FAQ will explore one of these options What cloud services are available on the BB-400? NB: This FAQ was written using a BB-400 running Debian GNU/Linux 10 (Buster) and assumes a basic understanding of Node-Red.
Cloud computing is the process by which information can be sent over the Internet using a variety of different "pay-as-you-go" services. The BB-400 has a number of cloud services integrated, and this FAQ will explore one of these options: Azure. For more information regarding the other cloud services please refer to the FAQ What Cloud services are available on the BB-400?
Cloud computing is the process by which information can be sent back and forth over the Internet using a variety of different "pay-as-you-go" cloud services. The BB-400 is compatible with a number of cloud services, and this FAQ will explore one of these options: FRED.
Cloud computing is the process by which information can be sent over the internet using a variety of different "pay-as-you-go" services. The BB-400 has a number of cloud services integrated, and this FAQ will explore one of these options: IBM Cloud.
This article will provide guidance on how to connect the BB-400 to an Android device via Bluetooth.
There are many ways to connect to a BB-400. This article will focus on logging into a device over SSH (Secure SHell) from either Windows, Mac OSX or Linux.
As a follow up to the previous article on 'connecting to SSH using a username, hostname and password', this article will cover connecting over SSH using SSH Keys.
| Software/Equipment | Details |
This FAQ will explain how you can set up Python on Visual Studio Code (VSCode) and deploy your files from VSCode to your BB-400.
There are a number of different ways of locating your BB-400 on the network and this FAQ will provide the different options available to do so.
This FAQ describes the process of reflashing your BB-400 with the default software image, including the operating system and all default packages, which ships with the device. Typically you will use this image in 1 of two situations:
This FAQ describes the process of reflashing your BB-400 with the default software image, including the operating system and all default packages, which ships with the device. Typically you will use this image in 1 of two situations:
The BB-400 uses an Arduino based on the Atmel ATMEGA32U4-MU 8-bit microcontroller to implement it's Digital IO functionality. The controller uses an external 16MHz crystal for clock generation and can be re-programmed with custom firmware to use other peripheral functions that are mapped to some of the same Digital IO pins. The BB-400 comes with the default DIO functionality which uses 8 pins of the microcontroller as general digital input and another 8 pins as general digital output (configured as open-drain on the PCB). The pins used for digital output also have alternate Output Compare functions which can be used for other purposes.
PWM (Pulse Width Modulation) is a way to control analog devices using digital output. PWM “fakes” an analog-like result by applying power in pulses, or short bursts of the regulated voltage:
This FAQ will describe the different ways in which you can log in to the web Administration interface of the BB-400.
The BB-400 has a mini-USB connection port integrated onto the device, which is primarily used for editing the device's YAML file. This is a key feature as it allows the user to edit the devices configuration settings without turning the device on. It should be noted that the device should never be turned on when performing this process.
The 8 Input/Output (IO) lines on the BB-400 are controlled by an Arduino micro controller chip (ATMEGA16U4). By default, the BB-400 ships with a programmed Arduino and a server on the Raspberry Compute module, which allows for various communication protocols. However, there may be situations where you may wish to add new functionality to the Arduino. This FAQ will describe how to reprogram the Arduino, with your custom code.
- This command resets the BB-400 to default/factory settings.
| Software/Equipment | Details |
This FAQ will explain how you can use Node-RED to send serial data from the BB-400 to the Cloud. This FAQ will assume you have a basic understanding of Node-RED so if you require further information regarding Node-RED please refer to the following FAQ.
A number of our customers are looking for a way to connect a serial port straight to the cloud securely. This FAQ will discuss the options available:
This FAQ gives examples with different methods for a user to use push notifications. Push notifications are simple notifications which a user can setup for when a specific event has happened. An example of this would be, if one of the BB-400 inputs signal high, immediately send a notification via email.
Why do we need the bb update command?
On Linux there is often no single source of truth
This FAQ will explain what cURL is, and how it can be used to retrieve/modify information about the IO status over Unix Domain Socket.
This FAQ will discuss ngrok and how you can use it on the BB-400.
| Software/Equipment | Details |
This FAQ explains how to use different nodes inside Node-RED, being used to show how to use a Brainboxes BB-400 (Neuron IoT Controller), with a Brainboxes ED-560 (Ethernet to 4xAnalogue Outputs). The end example is a flow which will be able to set the outputs of a Brainboxes ED-560.
This FAQ explains different nodes inside Node-RED, which are used in creating an example for using a BB-400, with an ED-549. The end example is a flow which will be able to read the inputs of a Brainboxes ED-549.
The BB-400 provides the capability of writing software in many different programming languages. This FAQ explains how the Python programming language can be used to obtain and set the IO line status over REST on the BB-400.
This FAQ will explain how Python can be used to retrieve/modify the BB-400 IO status over Unix Domain Socket.
The BB-400 can be used with many different programming languages. This FAQ explains how the Python programming language can be used to obtain and set the IO line status over WebSockets on the BB-400.
The only nodes required for this tutorial is:
The BB-400 provides a html WebSocket Tester in order to read and modify the status of the IO lines, this FAQ will describe how to use it in further detail.
The only nodes required for this tutorial are:
This FAQ will demonstrate how to copy a configuration from one BB-400 to another BB-400 using the BB-CLI (Brainboxes Command Line Interface).
This FAQ will explain how to use the Wi-Fi section on the BB-400's User Interface (UI).
This FAQ will describe how to use WebSockets to control the IO lines using Node-RED.
The BB-400 has a sophisticated power management system, designed to perform a number of different functions primarily to prevent the Raspberry Pi Compute Module from being corrupted in the event of an external power failure. Including: a Power Management Unit (PMU), a Dual Power Supply (DPS) and a secondary Uninterruptible Power Supply (UPS), the BB-400 can quickly supply internal back-up power for a limited time after external power failure in order to allow a controlled shut-down of the device.
This FAQ explains how to communicate using ASCII TCP between the BB-400 and a Windows system using TeraTerm or a Linux system using Telnet.
This FAQ will explain what cURL is, and how it can be used to retrieve/modify information regarding the BB-400 IO status.
This FAQ will explain how PowerShell can be used to communicate with the REST server on the BB-400.
Opening, closing & sending serial data on the BB-400
The BB-400 provides a REST server implementation that can be used to receive and modify information. This FAQ will explain how POSTMAN, a REST API client can be used to access and change information regarding the IO line status on the BB-400.
C# Sample Application for the BB-400
| Software/Equipment | Details |
Test
This FAQ will explain how Modbus TCP can be used with Node-RED to control the IO lines. Node-RED can be used on a PC or alternatively you can access a Node-RED instance on your BB-400.
This FAQ will describe how to use REST to control the IO lines using Node-RED. For more information on Node-RED please refer to the Node-RED FAQ , and for more information on WebSockets there is a Brainboxes FAQ What is the REST Protocol?
This FAQ will explain how to use read and write from the Serial port using a Node-RED instance on your BB-400.
The BB-400 uses the latest Raspberry Pi Compute Module CM3+ with 32GB of on-board non-volatile storage. This version of the Compute Module features a small metal heat sink cover that sits atop the Broadcom SoC. Previous versions have not had this metal heat sink and have operated at higher processor temperatures as a result. Brainboxes have extended this heat sinking capability even further by adding a larger heat sink which is in direct thermal contact with the CM3+ metal cover.
This FAQ will explain what cloud computing is, how the BB-400 can be connected to the cloud using Node-RED software and also what cloud services are available on your device.
The BB-400 has 8 I/O lines in total, and they can be found on the following terminal blocks in the corresponding configurations:
There are a range of LEDs on the front of the BB-400 device, each providing a physical indication of the state the device is in. This FAQ describes each LED and its corresponding states.
The BB-400 IoT controller has a button labelled "RESET" on the front of the device. The button has two functions: a hard reboot and a factory reset. Note that to use these functions, you must have the BB-PMU package installed, version 2.1.0 or higher.
BB-400 IO and Protocols
Edge computing is a computer model in which computer tasks and operations are largely performed at the "edge" of a network on distributed 'nodes'. A node is a device located on the network which performs actions or tasks requested of it, most commonly a server or similar device running a resource program or software package.
BB-CLI is the Brainboxes Command Line Interface, a tool that helps to configure BB-400 settings.
The BB-400 has a host of different network capabilities, with 2 Ethernet ports, 2 wireless networks and Bluetooth connectivity. There needs to be a clear, well orientated and smooth interface from which to access, configure and monitor these features. Using the online interface, under the network tab, the user can monitor, view and configure different networking aspects of the device. Below, you can find an in-depth look into each of the different features of the networking tab:
The BB-400 has an array of ports built onto the device which allow it to perform all of the necessary functions required to operate in the next generation factory environment. There are 4 independent Ethernet networks, 2 physical connections via Ethernet but also 2 wireless network connections and 4 number and colour coded terminal blocks. The specification of each port is outlined below.
Brainboxes BB-400 is a Raspberry Pi-based Industrial Controller. By default, the device comes pre-loaded with a Raspbian Lite distribution, and a number of packages added and maintained by Brainboxes to bring extra areas of functionality. For example, a web administration interface to perform actions on the BB-400, and Brainboxes' CLI tool to modify settings through the terminal. Node-RED with example flows for doing typical monitoring and control tasks, and an IO server to allow IO on the BB-400 to be controlled over the network.
Download Drivers