Skip to the content
PCBKitNew board
2 layers29 × 31 mmConector, the printed circuit board in 3D

This project is a hardware and software solution for Sirius cabinets monitoring based in a NXP's development platform, FRDM-KL25z, and SPIxxCON bus present on Controls Group SERIALxxCON hardware.

Size
29 × 31 mm
Copper layers
2
Thickness
1.6 mm
Parts
2
Nets
18
Pads
32
Tracks, vias
26, 0
Pours
4
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
1 Dec 2020
Updated
17 Dec 2020

Overview

Conector is an open-source printed circuit board by lnls-sirius, from the lnls-sirius/rack-mon repository on GitHub. It is a 2-layer board of 29 × 31 mm with 2 parts on 18 nets, routed with 26 tracks and 0 vias.

README

README.md

Controls Group rack monitoring system

Index

Description

This project is a hardware and software solution for Sirius cabinets monitoring based in a NXP's development platform, FRDM-KL25z, and SPIxxCON bus present on Controls Group SERIALxxCON hardware. The designed baseboard for NXP development platform contains the necessary peripherals to acquire information such as temperature, humidity, fan status, door status and supply voltage in order to predict possible system failures and evaluate its correlation with the acquired data.

It also contains an adapter that enables this project to work with mbed LPC1768 in instead of KL25z.

Software

KL25z

A C program written through Mbed's platform divided in 3 modes:

  • Read mode

An interruption associated with the rising border of Slave Select signal. In this interruption the microcontroller reads the SPI buffer and if a command other than zero is found stores the command.

  • Buffer copy

The main loop in the program, where the strings are copied to the "answer" buffer according to the code read in the Read Mode.

  • Ansawer mode

Another interruption associated with Slave Select signal, but this happens in the falling border of the signal. This is where the board replies the requested value through SPI.

LPC1768

When using LPC1768 in instead of KL25Z a few things change. The principle is still the same: reading from the SPI, copying to a answer buffer and responding through SPI but here the program doesn't work with interruptions, everything happens inside the main loop.

The microcontroller reads the SPI and if there is any request enters a switch-case conditional. If the command corresponds to any of the known commands, LPC1768 responds accordingly.

BeagleBone Black

A Python script responsible for the communication between BeagleBone Black and KL25z (or LPC1768) through SPI and for providing the data to multiple workstations through TCP/IP sockets.

Configuration and Python3 module

In order to operate the board you should first do the following configurations in your SERIALxxCON:

  • Configure the SPI buses with:
shell
config-pin P9_17 spi_cs
config-pin P9_21 spi
config-pin P9_18 spi
config-pin P9_22 spi_sclk
  • Write the previous commands on /etc/rc.local if desired

  • Stop bbb-function script with:

shell
systemctl stop bbb-function
  • Disable bbb-function if desired:
shell
systemctl disable bbb-function

A python3 module was developed in order to simplify the SPI requests to the board. The Very Simple Protocol module functions are:

  • send(char, timeout_ms = 1)

sends a character to the monitoring board and returns a string with its response

  • get(*args)

sends multiple characters to the monitoring board and returns a list with it's response in order

  • get_all()

returns a list with values for supply voltage, fan status, DHT's temperature measurement, fan current, humidity, LM35's temperature measurement, back door status and front door status in that order

  • get_LM35()

returns LM35's temperature measurement

  • get_DHT()

returns the boards DHT's temperature measurement

  • get_humidity()

returns humidity value

  • get_fdoor()

returns front door status

  • get_bdoor()

returns back door status

  • get_fanstat()

returns fan status

  • get_current()

returns current measurement

  • get_voltage()

returns supply voltage

  • isBoard()

works only with LPC1768 and returns the software version, if "None" is returned it means probably there's no board connected or it's a KL25z with software version < v1.60

If using KL25z in instead of LPC1768, lines containing "for i in range (10)" should be changed to "for i in range(11)".

Installation

  • Remove the back panel of SERIALxxCON box and place the SPIxxCON - RJ25 adapter. Connect the serial cable and close the box with the new back panel.

  • Plug one end of the power cable into the black plug and the other end into the power strip.

  • Unplug the fan power cable from the power strip and plug it into the box's red power outlet.

  • Fix the magnetic sensors to their mountings and place them close to the door, in the upper part of the cabinet. Place the neodymium magnet on the cabinet door in a way that when its closed the magnet is close to the magnetic sensor.

  • Place the DHT11 humidity sensor close to the box.

  • Place the LM35 temperature sensor wherever you want.

  • Connect all the sensors to their respective connectors.

Versions

Each prototype version is named as follows: vX.YZ

  • X: hardware version (even numbers are in-house manufactured prototypes).
  • Y: prototype hardware version.
  • Z: software version.

Available KL25z software versions:

  • v0.60
  • v0.58
  • v0.55
  • v0.5
  • v0.4

Available LPC1768 software versions:

Previous versions can be found on these repositories: KL25Z and LPC1768.

Parts

2
QtyValueFootprintReferences
16P6CControle:RJ25J1
1Conn_02x10_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x10_P2.54mm_VerticalJ2

Questions

How big is the Conector PCB?

It measures 29 × 31 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Conector use?

2 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Conector KiCad files?

From the lnls-sirius/rack-mon repository on GitHub, at the commit this page was made from: the board is Hardware/KiCAD files/Shield-SPIxxCON/conector.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Conector design in my own project?

Its repository states no licence, so its author keeps all rights: ask lnls-sirius before reusing the design.

More from lnls-sirius/rack-mon

2
  • 2 layers126 × 100 mmLm35racks, the printed circuit board in 3D

    Lm35racks

    lnls-sirius/rack-mon

    This project is a hardware and software solution for Sirius cabinets monitoring based in a NXP's development platform, FRDM-KL25z, and SPIxxCON bus present on Controls Group SERIALxxCON hardware.

    62 parts
  • 2 layers62 × 60 mmKl to lpc, the printed circuit board in 3D

    Kl to lpc

    lnls-sirius/rack-mon

    This project is a hardware and software solution for Sirius cabinets monitoring based in a NXP's development platform, FRDM-KL25z, and SPIxxCON bus present on Controls Group SERIALxxCON hardware.

    2 parts

Similar boards

  • 2 layers37 × 19 mmPassive rpi hub75-adapter, the printed circuit board in 3D

    Passive rpi hub75-adapter

    hzeller/rpi-rgb-led-matrix

    Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO

    2 parts4.4kGPL-2.0
  • 2 layersDiode template, the printed circuit board in 3D

    Diode template

    adamws/kicad-kbplacer

    KiCad plugin for automatic keyboard's key placement and routing

    2 parts547GPL-3.0
  • 2 layers20.3 × 15.2 mmL0 button, the printed circuit board in 3D

    L0 button

    Luos-io/luos_engine

    Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

    2 parts546MIT
  • 2 layers35.1 × 46.8 mmSDEX2M2 Breakout Board, the printed circuit board in 3D

    SDEX2M2 Breakout Board

    NVNTLabs/switch2-SDEX2M2

    Micro SD Express to M.2 NVME Adapter for Nintendo Switch 2

    2 parts542GPL-3.0
  • 2 layers59.3 × 36.6 mmExpansionBoardTemplate, the printed circuit board in 3D

    ExpansionBoardTemplate

    BlueSCSI/BlueSCSI-v2

    BlueSCSI v2/Ultra - an open source, open hardware, SCSI emulator using the Pi Pico PR2040 and Pico 2 RP2350

    2 parts459GPL-3.0
  • 2 layersAlpha.9mm.wire, the printed circuit board in 3D

    Alpha.9mm.wire

    ohmtech-rdi/eurorack-blocks

    Software to Hardware Prototyping for Eurorack using C++, Max/Gen~ or Faust

    2 parts410
  • 2 layers26.7 × 64 mmGpu power, the printed circuit board in 3D

    Gpu power

    dennisss/dacha

    Monorepo for awesome tools/projects/libraries

    2 parts397Apache-2.0