Big Relay Board for the Mercury System – 10 A

Expansion board for the Mercury system with a single-channel relay able to switch loads up to 10A

SKU 7305-SB111EAN 8219671107549Item type: Assembled, Shields & add-ons

Description

Expansion board for the Mercury system with a single-channel relay able to switch loads up to 10A. At the heart of the system is an 8-bit PIC16F1825 microcontroller made by Microchip Technology Inc. The SB111 board interfaces to the Mercury system over the I2C Bus.

It has a 4-way dip switch that lets you set up to 15 different addresses (address 0x00 is reserved for the I2C Bus broadcast addressing scheme).

Hardware features
  • Mercury Connector: to interface the board with the other boards in the Mercury family
  • Address Dip Switch: Dip Switch for setting the board address within the Mercury system.
  • Programmer Connector: PicKit 3 Microchip programmer / debugger connector. It plugs straight into the EB (Expansion Board) MCU debug port, to allow advanced debugging and programming features. 
  • Relay: the SB111 board has a single relay output channel able to handle up to 10A.
  • User LED: by default it is set up to work in heartbeat LED mode (periodic pulses)
Microcontroller features
  • ADC: 12 ch, 10-bit
  • Comparators: 2
  • Temperature range: -40°C ~ 125°C
  • Operating voltage: 1.8~5.5 V
  • Pin Count: 20
  • XLP: yes
  • Cap Touch Channels: 12
Hardware block diagram
Mercury System
Mercury System (MS for short) is a modular system for developing connectivity and IoT applications. The system uses various types of electronic board (logic unit, modem, slave board fitted with sensors and actuators, power boards …) and a complete SW structure that allows complex applications to be built. Scalability, ease of use and modularity are key factors, and they are guaranteed by the use of a heterogeneous set of components that let the system be assembled like a build made of LEGO© bricks.

The set of boards that makes up the Mercury System is built from the following “families”:

Base Board (BB): It is the “brain” of the whole Mercury System and it holds the main logic unit, several communication buses and the connectors for interfacing the slaves. It also holds a simple power supply system and a charging unit for a single LiPo cell (able to meet the power requirements of simpler systems). It can exist in different variants, depending on the microcontroller unit used.

Modem Board (MB): this is the board that provides network connectivity. It can exist in different variants, depending on the network interface (GSM / GPRS, Wi-Fi, BT, Radio …). It is interfaced to the base board over a dedicated serial line.

Power Board (PB): this is the board that meets the particular power needs of the system, when required. They can vary according to the particular power need to be met (high power, solar harvesting, piezoelectric harvesting, etc.).

Slave Board (SB): these are the peripherals of the system and they vary according to the specific sensor or actuator fitted. Typical examples are SBs with relays, temperature sensors, RGB LED controllers, servo controller, accelerometer, etc. They talk to the BB over I2C or UART with a dedicated command set.

Expansion Board (EB): these are the boards that allow the Mercury boards to be connected planar. There are variants that can hold displays, a battery holder, etc.

Brain-Less Board (BL): these are the boards with no controller. In general they hold really simple sensors or actuators that do not need the bus interface. They are an alternative to the slave boards for applications that call for low cost.

The Slave Boards and the Modem Boards come pre-programmed with firmware that implements a dedicated command set for high-level management, while the Base Boards come with a software framework that provides all the low-level services (operating system, peripheral drivers, system services, etc.), leaving the user only the application-level logic to develop. 

Mercury System Framework
Mercury System Framework (MSF) is a layered software framework designed specifically to support application development with the Mercury System. It gives the user a complete set of basic functions to interface the Slave Boards (SB) and the Modem Boards (MB) easily, as well as some software and infrastructure system services. 
The framework is made up of the following components:

HAL (Hardware Abstraction Layer): the purpose of this layer is to abstract the hardware dependencies away from the layers above.
SML (System Management Layer): the purpose of this layer is to provide services for managing the communication buses (I2C, UART) and for managing the Modem Board (WiFi, BT, GSM / GPRS). It also provides a set of system services, such as System Power Management, RTCC, USB terminal, etc.
It is split into two main components:

  • PML: peripheral management layer
  • SSL: system services layer

OSL (Operative System Layer): this layer consists of a lightweight RTOS that provides basic services to the system, such as the scheduling tables for the various tasks, events, SW timers, alarms, etc.

The Slave Boards of the Mercury System
The layout of the Mercury Slave boards is standardised, so as to simplify interfacing with the Base Board and to guarantee a high level of modularity and scalability. Every slave board has an I2C (Inter Integrated Circuit) communication line and a four-position dip-switch for dynamically setting the bus address of the slave board. Addresses 0x01 to 0x0F are available for the Slaves, while address 0x00 is reserved for broadcast communications. This way up to 15 devices can be connected to the Base Board using the dynamic addressing scheme. This number can even be raised by reprogramming the Slave with an address supplied by software. On top of that, two open collector digital lines connected to the external interrupts of the base board are provided for slave boards that have to deliver asynchronous interrupts. Slave boards that need higher bandwidth and peer-to-peer communication can also be interfaced using an extra UART channel.

There are several sub-families of Slave Board:

  • Sensor Slave Board
  • Actuator Slave Board
  • Communication Slave Board
  • Interface Slave Board
  • Special Slave Boards

The table below gives some examples for each sub-family:

Sub-families Examples
Sensor Slave Board Ultrasonic, infrared, temperature and humidity, PIR, gas sensor, air quality, thermocouple, humidity, analogue input, accelerometer
Actuator Slave Board Relay, High-Side Driver, Low-Side Driver, Servo, DC Motor, Stepper Motor, Neopixel
Communication Slave Board RS232, RS485, CAN, LIN, Ethernet, Bluetooth
Interface Slave Board OLED Display, Keypad, Mini-Joystick
Special Slave Boards SD Card, MP3 decoder
Documentation and useful links

Technical details

Board type Slave Board (SB)
Addressing 4-way Dip Switch
Peripheral description 1 relay output
MCU PIC16F1825 main controller board
Programmer Connector PicKit 3 Microchip programmer / debugger connector
Relay Output relay output terminal block
Memory type Flash
Memory 14 KB
CPU Speed (MIPS) 8
RAM Bytes 1,024
Data EEPROM (bytes) 256
Digital Communication Peripherals 1-UART, 1-A/E/USART, 1-SPI, 1-I2C1-MSSP(SPI/I2C)
Capture/Compare/PWM Peripherals 2 CCP, 2 ECCP
Timers 4 x 8-bit, 1 x 16-bit

You may also like…

About us

Open-Electronics.org is the brainchild of a world leader in hobby electronics Futura Group srl. Open-Electronics.org is devoted to support development, hacking and playing with electronics: we share exciting open projects and create amazing products!

Open-Electronics.org is not just a container of ideas: it is also a web site lead by a team of engineers and geeks who will take part in the discussions and give support.

Our mission is to become a reference Open Source hacking site with ideas and feedback aimed to enrich the community.