Rhomb.io Standard Specifications

Article under construction. It is possible that the information is not complete or that it will be modified.

This article shows the documentation for the Rhomb.io Standard Specifications.

Introduction

Rhomb.io is a manufacturing system of hardware and software developed by Tecnofingers S.L.

The system increases the productiveness of development teams when creating or updating electronic devices so companies can get them out to market fast. The Rhomb.io hardware system works by increasing the number of concepts developers can trial during the prototyping and testing phases of an electronic device, turning the product development process into a core competency of your business and giving you a competitive advantage.

The hardware system, which has complete pin-to-pin compatibility between IC manufacturers, consists of Rhomb.io carrier boards and easy to add and remove modules. The ease in which the modules can be attached and removed from the carrier board has reduced any need for complex routing.


MOTHERBOARDS

Rhomb.io motherboards form the foundation of an electronic hardware device. You can choose between pre-designed boards or create your own – either collaboratively with our technical team or privately as all information related to the boards is open source.

Every carrier board is created with a number of sockets. This is where the rhomb.io modules can be attached – and where the system gets its name.

We have 3 classes of motherboards developers can choose from when building their hardware:

  • Class 1. Lets you connect a microprocessor and peripherals like our flash drive and sensors modules on the same motherboard. This class is perfect for high-end processors and multimedia functions.
  • Class 2. Perfect for devices that do not need a core micro controller. The board class connects peripheral features with one of our mini controller modules. They can be used as standalone PCBs with a micro controller or for building small and versatile multifunctional devices.
  • Class 3. This PCB class allows you to interconnect Rhomb.io to other systems like Arduino, Raspberry and Samsung etc.


MODULES

Rhomb.io modules are what give each electronic device its capabilities. Choose to include a powerful processor or mini controller module. Add more memory, wireless connectivity, or whatever you deem necessary. Rhomb.io gives developers complete creative control over what to include and exclude in the creation of their electronic devices.

Modules are attached to the motherboard like Lego. Simply press a module into a free module socket on the motherboard or pry it away to remove it.

There are 3 module families: Cores modules, Master modules and Slave modules.

  • Core modules. These modules contain a powerful microprocessor able to run a complete operative system or RTOs. Based on an ARM to x86/x64 microprocessor, Rhomb.io Core modules will give you everything you need to build a powerful electronic device.
  • Master modules. This module type is based around a mini controller, from an 8-bit to a more complex and powerful 32-bit like an ARM® Cortex MCUs or even FPGA.
  • Slave modules. Are made up of peripherals like sensors, connectivity modules, memory, GPS, cameras and much more.

All of our modules are compatible with all the sockets on each carrier board.

We are continually developing new modules, giving you increasing choice and flexibility to create or update electronic devices.

For developers who need greater customisation capabilities, all schematics, bill of materials and fabrication files of our carrier boards, Master modules and Slave modules are open source. This way development teams can customise the components going into their electrical devices to meet their needs.


Rhomb.io Standard

To make it possible for any Core or Master module to be able to communicate with any Slave module, regardless of the communication interface used, the number of GPIOs, the control signals or the socket used, a robust connection system is necessary. During the last years, Tecnofingers has developed its own standard of connections between modules: the Rhomb.io Standard.

This standard is divided into two parts, on the one hand it defines the modules themselves: the different types of modules and their functions, their dimensions, the electrical signals they use and the connectors that allow their communication with the motherboards. On the other hand it defines all the connections that must be made in the motherboards between sockets to allow a total communication between a Master module and one or more Slave modules without the buses communicating, GPIOs or control signals cause collisions, interferences or short-circuits.

Modules

As mentioned above, there are three diferents types of modules, each one with different functions.

Core Module

The module that receives the name of Core is the brain of the modular system. This module would contain the most complex elements that could be found in an electronic system, those whose interconnections are more complicated to design and route, and which are not used anywhere else in the system. The Core is composed of these elements:

  • Unit of process. Depending on the processor that is decided to use, the Core will be more or less powerful and will have more or less benefits. The architecture of each Core will also depend on the processor architecture it carries: ARM, x86, etc.
  • Main memory. The great majority of the process units that carry the Cores need a RAM memory to load the data and the programs. This memory can be soldered on board, which occupies space on the surface of the Core, or of the type PoP (Package on Package), welded on top of the same processor. Several different Core models could carry the same processor, distinguishing only in the amount of memory they carry.
  • PMIC. The processors and memories usually need several power rails, with different voltages and currents in each of them. Many processors even have the ability to dynamically request the voltages they need at any time and thus adjust the power they consume in real time, so their power supplies have to interface with the processor to receive the orders from it. That is why the most appropriate option to supply power to the elements of the Core is through a multi-rail WCRP. With it one gains in versatility, since it counts on 9 BUCKs and 26 LDOs, the tensions of all of them are programmable, the ignitions of the rails can be sequenced by means of a microcontroller, and everything in a very small space.
  • Microcontroller. This small chip is connected to the PMIC and has a firmware that allows to act on its power rails, turning them on and off, changing the voltage values, or sequencing their ignitions.

Currently there are two types of Core sockets:

  • S400: with 400 useful lines devided into 8 connectors.
  • S500: with 500 useful lines devided into 8+2 connectors.

The necessary power lines for the PMIC and boot lines enter through these lines, and come out all the communications, video, audio and GPIO interfaces that have been established in our standard. Regardless of the processor that is mounted on each Core, the interfaces that come out of each connector do not change. This presents an obvious advantage: the same motherboard with a Rhomb.io socket can accept any type of Core compatible with that socket, regardless of processor models, architectures or operating voltages.

The following diagram shows the distribution of the interfaces in the Cores connectors, seen from the top side (transparent top view). The S400 socket comprises the connectors from J401 to J408, while the S500 comprises the connectors from J501 to J510.

Core Diagram.png

The following figures show the mechanical specifications and dimensions of the Cores in their two size configurations:

S400 Dimensions.pngS500 Dimensions.png

All the signals existing in the cores are indicated in the following table.

J401/J501 Connector
Pin Number Pin Name Description Pin Number Pin Name Description
1 GND GND 26 GND GND
2 CAN-A_TXD CAN-A bus 27 UART-C_RTSN UART-C interface
3 CAN-A_RXD 28 SPI-B_CSN SPI-B interface
4 SAI_BCLK SAI interface 29 UART-A_TXD UART-A interface
5 CAN-B_TXD CAN-B bus 30 PWM_OUT0 PWM 0 output
6 CAN-B_RXD 31 SPI-A_CLK SPI-A interface
7 SAI_LRCLK SAI interface 32 PWM_OUT1 PWM 1 output
8 SAI_MCLK 33 UART-D_RXD UART-D interface
9 SAI_SDO 34 I2C-B_SCL I2C-B interface
10 SAI_SDI 35 GND GND
11 I2C-A_SCL I2C-A interface 36
12 UART-B_RXD UART-B interface 37
13 SPI-B_CLK SPI-B interface 38 UART-A_RTSN UART-A interface
14 GND GND 39 SPI-B_MISO SPI-B interface
15 40 SPI-A_MISO SPI-A interface
16 41 UART-C_CTSN UART-C interface
17 PWM_OUT2 PWM 2 output 42 I2C-A_SDA I2C-A interface
18 PWM_OUT3 PWM 3 output 43 UART-B_CTSN UART-B interface
19 SPI-A_MOSI SPI-A interface 44 UART-A_CTSN UART-A interface
20 UART-C_RXD UART-C interface 45 UART-D_TXD UART-D interface
21 SPI-B_MOSI SPI-B interface 46 UART-A_RXD UART-A interface
22 UART-B_TXD UART-B interface 47 UART-B_RTSN UART-B interface
23 I2C-B_SDA I2C-B interface 48 UART-C_TXD UART-C interface
24 SPI-A_CSN SPI-A interface 49 RFU Reserved
25 GND GND 50 GND GND
J402/J502 Connector
Pin Number Pin name Description Pin Number Pin name Description
1 GND GND 26 GND GND
2 27 VIDEO_VD15 RGB video output
3 VIDEO_VD16 RGB video output 28 VIDEO_VD00
4 VIDEO_VD22 29 VIDEO_CLK
5 VIDEO_VD13 30 VIDEO_VD18
6 VIDEO_VD01 31 VIDEO_SYS_OE
7 VIDEO_VD04 32 VIDEO_VD11
8 VIDEO_VD09 33 VIDEO_VSYNC
9 VIDEO_VSYNC_LDI 34 VIDEO_VD06
10 VIDEO_VD23 35 VIDEO_HSYNC
11 VIDEO_VD14 36 VIDEO_VD12
12 GND GND 37 VIDEO_VD03
13 38 VIDEO_VD17
14 VIDEO_VD05 RGB video output 39 SWDIO_CLK SWD interface
15 VIDEO_VD10 40 SWDIO_DATA
16 VIDEO_EN 41 GND GND
17 VIDEO_VD20 42 HDMI_D2_P HDMI interface
18 VIDEO_VD07 43 HDMI_D2_N
19 VIDEO_VD08 44 HDMI_D1_P
20 VIDEO_VD02 45 HDMI_D1_N
21 VIDEO_VD21 46 HDMI_D0_P
22 VIDEO_VD19 47 HDMI_D0_N
23 LDO-A_2V8 uOMIC OUT04 LDO 48 HDMI_CLK_P
24 LDO-B uOMIC OUT05 LD 49 HDMI_CLK_N
25 GND GND 50 GND GND
J403/J503 Connector
Pin Number Pin Name Description Pin Number Pin Name Description
1 RXER MII interface 26 GND GND
2 GND GND 27 GPIO01 GPIOs
3 HSIC_DATA HSIC interface 28 GPIO02
4 HSIC_STROBE 29 GND GND
5 GND GND 30
6 XEINT15 Interruptions 31 GPIO03 GPIOs
7 XEINT14 32 GPIO00
8 XEINT13 33 HSIC_OC HSIC interface
9 XEINT12 34 JTAG_TMS JTAG interface
10 XEINT11 35 GPIO04 GPIOs
11 XEINT10 36 GPIO05
12 XEINT09 37 JTAG_TRSTN JTAG interface
13 XEINT08 38 HSIC_PWREN HSIC interface
14 XEINT07 39 JTAG_TDI JTAG interface
15 XEINT06 40 JTAG_CLK
16 XEINT05 41 JTAG_TDO
17 XEINT04 42 GND GND
18 XEINT03 43 USB_OTG_P USB OTG interface
19 XEINT02 44 USB_OTG_N
20 XEINT01 45 GND GND
21 RST_OUT Reset output 46 USB_OTG_DRVBUS USB OTG interface
22 XEINT00 Interruptions 47 JTAG_NRST JTAG interface
23 #RST_CPU CPU reset 48 USB_OTG_VBUS USB OTG interface
24 GND GND 49 USB_OTG_ID
25 50 TXER MII interface
J404/J504 Connector
Pin Number Pin Name Description Pin Number Pin Name Description
1 GND GND 26 GND GND
2 GPIO06 GPIOs 27 QSPI_CS1 QSPI interface
3 GND GND 28 MIPI_DSI_D0_N MIPI display interface
4 LDO-C uOMIC OUT17 LDO 29 MIPI_DSI_D0_P
5 GND GND 30 MIPI_DSI_D1_N
6 AD_IN3 ADC inputs 31 MIPI_DSI_D1_P
7 AD_IN0 32 MIPI_DSI_CLK_N
8 AD_IN2 33 MIPI_DSI_CLK_P
9 AD_IN1 34 MIPI_DSI_D2_N
10 GND GND 35 MIPI_DSI_D2_P
11 - - 36 MIPI_DSI_D3_N
12 - 37 MIPI_DSI_D3_P
13 - 38 GND GND
14 LVDS_TX0_P LVDS interfae 39 MIPI_CSI-A_D0_N MIPI camera interface A
15 LVDS_TX0_N 40 MIPI_CSI-A_D0_P
16 LVDS_TX1_N 41 MIPI_CSI-A_D1_N
17 LVDS_TX1_P 42 MIPI_CSI-A_D1_P
18 LVDS_TX2_N 43 MIPI_CSI-A_CLK_N
19 LVDS_TX2_P 44 MIPI_CSI-A_CLK_P
20 LVDS_CLK_N 45 MIPI_CSI-A_D2_N
21 LVDS_CLK_P 46 MIPI_CSI-A_D2_P
22 LVDS_TX3_P 47 MIPI_CSI-A_D3_N
23 LVDS_TX3_N 48 MIPI_CSI-A_D3_P
24 GND GND 49 QSPI_CS2 QSPI interface
25 50 GND GND
J405/J505 Connector
Pin Number Pin Name Description Pin Number Pin Name Description
1 GND GND 26 GND GND
2 PCIE-B_RX_N PCIE-B interface 27 TXCLK MII interface
3 PCIE-B_RX_P 28 TXD0
4 PCIE-B_WAKE 29 TXD1
5 GND GND 30 TXD2
6 31 TXD3
7 SATA-B_RX_N SATA-B interface 32 TXDEN
8 SATA-B_RX_P 33 INT/COL
9 GND GND 34 GND GND
10 SATA-A_RX_N SATA-A interface 35 PCIE-A_CLK_N PCIE-A interface
11 SATA-A_RX_P 36 PCIE-A_CLK_P
12 GND GND 37 PCIE-A_TX_N
13 PCIE-A_RX_N PCIE-A interface 38 PCIE-A_TX_P
14 PCIE-A_RX_P 39 GND GND
15 PCIE-A_WAKE 40 SATA-A_TX_N SATA-A interface
16 MDC MII interface 41 SATA-A_TX_P
17 MDIO 42 GND GND
18 REFCLK/CRS 43 SATA-B_TX_N SATA interface
19 RXDV 44 SATA-B_TX_P
20 RXD3 45 GND GND
21 RXD2 46 PCIE-B_CLK_N PCIE-B interface
22 RXD1 47 PCIE-B_CLK_P
23 RXD0 48 PCIE-B_TX_N
24 RXCLK 49 PCIE-B_TX_P
25 GND GND 50 GND GND
J406/J506 Connector
Pin Number Pin Name Description Pin Number Pin name Description
1 BUCK-A_3V3 uOMIC BUCK8 26 GND GND
2 27 GPIO07 GPIOs
3 BUS_1WIRE 1-Wire bus 28 GPIO08
4 GND GND 29 GPIO09
5 GPIO40 GPIOs 30 GPIO10
6 GPIO39 31 GPIO11
7 GPIO38 32 GPIO12
8 LDO-D uOMIC OUT14 LDO 33 GPIO13
9 GND GND 34 GPIO14
10 GPIO37 GPIOs 35 GPIO15
11 GPIO36 36 GPIO16
12 GPIO35 37 GPIO17
13 GPIO34 38 GPIO18
14 GPIO33 39 GPIO19
15 GPIO32 40 GPIO20
16 GPIO31 41 GPIO21
17 GPIO30 42 GPIO22
18 GND GND 43 GPIO23
19 QSPI_IO0 QSPI interface B 44 GPIO24
20 QSPI_IO1 45 GPIO25
21 QSPI_CLK 46 GPIO26
22 QSPI_IO2 47 GPIO27
23 QSPI_IO3 48 GPIO28
24 QSPI_CS0 49 GPIO29
25 GND GND 50 GND GND
J407/J507 Connector
Pin Number Pin Name Description Pin Number Pin name Description
1 GND GND 26 GND GND
2 27 SDIO-B_DATA1 SDIO-B interface
3 LDO-Q_1V8 uOMIC OUT13 LDO 28 SDIO-B_CLK
4 LDO-R_2V8 uOMIC OUT22 LDO 29 SDIO-B_DATA2
5 SDIO-D_CMD SDIO-D interface 30 SDIO-B_CDN
6 SDIO-D_CLK 31 SDIO-B_DATA0
7 SDIO-D_DATA2 32 SDIO-B_CMD
8 SDIO-D_CDN 33 SDIO-B_DATA3
9 SDIO-D_DATA1 34 SDIO-A_DATA0 SDIO-A interface
10 SDIO-D_DATA0 35 SDIO-A_DATA1
11 SDIO-D_DATA3 36 SDIO-A_CLK
12 GND GND 37 SDIO-A_DATA2
13 uOMIC_1WIRE uOMIC 1-Wire bus 38 SDIO-A_DATA3
14 USB-C_HOST_OC USB-C interface 39 SDIO-A_CDN
15 USB-C_HOST_EN 40 SDIO-A_CMD
16 GND GND 41 SDIO-C_DATA3 SDIO-C interface
17 USB-B_HOST_N USB-B interface 42 SDIO-C_CLK
18 USB-B_HOST_P 43 SDIO-C_DATA1
19 GND GND 44 SDIO-C_DATA2
20 USB-C_HOST_N USB-C interface 45 SDIO-C_CMD
21 USB-C_HOST_P 46 SDIO-C_DATA0
22 GND GND 47 SDIO-C_CDN
23 USB-A_HOST_N USB-A interface 48 VSYS Power input
24 USB-A_HOST_P 49
25 GND GND 50
J408/J508 Connector
Pin Number Pin Name Description Pin Number Pin Name Description
1 GND GND 26 VSYS Power input
2 27
3 V_RTC RTC power input 28
4 - - 29
5 30 LDO-E uOMIC OUT25 LDO
6 31 LDO-F uOMIC OUT21 LDO
7 32 LDO-G uOMIC OUT26 LDO
8 CLK32K_0_REF CLK32K_0 reference voltage input 33 LDO-H uOMIC OUT19 LDO
9 CLK32K_1_REF CLK32K_1 reference voltage input 34 LDO-I uOMIC OUT23 LDO
10 CLK32K_0 32.768 kHz CLK output 0 35 LDO-J_3V0 uOMIC OUT12 LDO
11 CLK32K_1 32.768 KHz CLK output 1 36 LDO-K uOMIC OUT24 LDO
12 PWR_ON System power ON 37 LDO-L uOMIC OUT16 LDO
13 GND GND 38 LDO-M_1V8 uOMIC OUT20 LDO
14 39 LDO-N uOMIC OUT09 LDO
15 #PMIC_RST_2 uOMIC reset 40 LDO-O_1V8 uOMIC OUT11 LDO
16 #PMIC_RST_1 41 BUCK-A_3V3 uOMIC BUCK8
17 BOOT_SW1 Boot lines 42
18 BOOT_SW5 43
19 BOOT_SW3 44 LDO-P uOMIC OUT10 LDO
20 BOOT_SW2 45 VDDIO uOMIC OUT03 LDO
21 BOOT_SW4 46 BUCK-B_3V3 uOMIC BUCK9
22 BOOT_SW0 47
23 GND GND 48
24 49
25 VSYS Power input 50
J509 Connector
Pin Number Pin name Description Pin Number Pin name Description
1 GND GND 26 GND GND
2 USB3.0-B_RX_P USB 3.0 B 27 DP_TX3_P Display Port
3 USB3.0-B_RX_N 28 DP_TX3_N
4 GND GND 29 GND GND
5 USB3.0-B_TX_P USB 3.0 B 30 DP_TX2_P Display Port
6 USB3.0-B_TX_N 31 DP_TX2_N
7 GND GND 32 GND GND
8 USB3.0-B_D_P USB 3.0 B 33 DP_TX1_P Display Port
9 USB3.0-B_D_N 34 DP_TX1_N
10 GND GND 35 GND GND
11 USB3.0-C_RX_P USB 3.0 C 36 DP_TX0_P Display Port
12 USB3.0-C_RX_N 37 DP_TX0_N
13 GND GND 38 GND GND
14 USB3.0-C_TX_P USB 3.0 C 39 DP_AUX_P Display Port
15 USB3.0-C_TX_N 40 DP_AUX_N
16 GND GND 41 GND GND
17 USB3.0-C_D_P USB 3.0 C 42 USB3.0-A_D_N USB 3.0 A
18 USB3.0-C_D_N 43 USB3.0-A_D_P
19 GND GND 44 GND GND
20 - - 45 USB3.0-A_TX_N USB 3.0 A
21 46 USB3.0-A_TX_P
22 47 GND GND
23 48 USB3.0-A_RX_N USB 3.0 A
24 49 USB3.0-C_RX_P
25 GND GND 50 GND GND
J510 Connector
Pin Number Pin Name Description Pin Number Pin Name Description
1 VIN_PWR Power input 26 VIN_PWR Power input
2 27
3 28
4 29
5 30
6 31
7 32
8 33
9 34
10 35
11 36
12 37
13 38
14 39
15 40
16 41
17 42
18 43
19 44
20 45
21 VSYS Power input 46
22 47
23 48
24 49
25 50

Slave Modules

They are the basic modules of the Rhomb.io system. They have two connectors at the bottom with 100 lines. These lines include four power rails at different voltages, several serial and parallel interfaces, a bus of eight GPIOs and control signals. These modules can have a wide variety of functions: memories, sensors, wireless communications, etc.

Any electronic functional block with some compatible interface can be integrated in a Slave module to be used in a Rhomb.io motherboard with Slave module sockets. The only limitation is the available space, delimited by the shape of the module. This allows easy exchange of modules by others with different functionalities, replace the damaged ones or change obsolete modules with more modern ones.

The following diagram shows the distribution of the interfaces in the connectors of the Slave modules, seen from the top side (transparent top view).

Slave Diagram.png

The following figure shows the mechanical specifications and dimensions of a Slave module:

S100 Dimensions Slave.png

All the signals existing in the Slaves modules are indicated in the following table.

J101 Connector
Pin Number Pin Name Description Pin Number Pin Name Description
1 GND GND 26 RESET_OUT Reset out
2 SDIO-A_CMD SDIO-A interface 27 GND GND
3 SDIO-A_CDN 28 INT Interruption
4 SDIO-A_DATA3 29 SPI_CS0 SPI interface
5 SDIO-A_DATA2 30 SPI_CLK
6 SDIO-A_CLK 31 SPI_MOSI
7 SDIO-A_DATA1 32 SPI_MISO
8 SDIO-A_DATA0 33 GND GND
9 GND GND 34 #NMI Interruption
10 SDIO-B_DATA3 SDIO-B interface 35 I2C_SCL I2C interface
11 EXT1 External connection 36 I2C_SDA
12 SDIO-B_DATA0 SDIO-B interface 37 GND GND
13 EXT3 External connection 38 UART-B_TXD UART-B interface
14 SDIO-B_DATA2 SDIO-B interface 39 UART-B_RXD
15 EXT5 External connection 40 GND GND
16 SDIO-B_DATA1 SDIO-B interface 41 USB_P USB interface
17 GND GND 42 USB_N
18 VRTC RTC voltage 43 GND GND
19 CLK32K 32.768 kHz CLK input 44 QSPI_IO0 QSPI interface
20 GND GND 45 QSPI_IO1
21 CAN_RX CAN interface 46 QSPI_CLK
22 CAN_TX 47 QSPI_IO2
23 VBAT Battery 48 QSPI_IO3
24 49 QSPI_CS0
25 50 GND GND
J102 Connector
Pin Number Pin Name Description Pin Number Pin Name Description
1 GND GND 26 #RESET_IN Reset in
2 DIFF_N Differential pair 27 VIN_REG Power input
3 IO0 GPIO 28
4 IO1 29 GND GND
5 IO2 30
6 IO3 31 3V3 Power input
7 IO4 32
8 IO5 33 GND GND
9 IO6 34
10 IO7 35 2V8 Power input
11 SAI-A_MCLK SAI interface 36
12 GND GND 37 GND GND
13 UART-A_RTS UART-A interface 38
14 UART-A_RXD 39 SAI_SDO SAI interface
15 UART-A_TXD 40 SAI_SDI
16 UART-A_CTS 41 SAI_LRCLK
17 GND GND 42 SAI_BCLK
18 AD Analog 43 GND GND
19 GND GND 44 1V8 Power input
20 PWM PWM 45 GND GND
21 CAPT0 Capture interface 46 VIO_IN Core/Master logic level
22 CAPT1 47 VIO_OUT Slave logic level
23 VSYS Power input 48 1WIRE 1-wire interface
24 49 DIFF_P Differential pair
25 50 GND GND
  • CAN: CAN lines are crossed on the motherboard, not on the Slave module.
  • EXT: EXT signals are those that connect the Slave module directly to the Motherboard without having to go through the Core/Master module.
  • I2C: I2C pull-up resistors are placed on the motherboard, not on the Slave module.
  • SAI: SAI lines are crossed on the motherboard, not on the Slave module.
  • SDIO: In modules without 8-bit memories where the use of SDIO-B lines are not necessary, these can be used as EXT signals.
  • UART: UART lines are crossed on the motherboard, not on the Slave module.

Master Modules

These modules were conceived to be able to adapt the world of microcontrollers to the Rhomb.io platform. Halfway between a Core and a Slave module, the Master modules are designed to mount a microcontroller. Thus, in those applications where you do not need much computing power, you could mount a Master module controlling some Slave modules without the need to include a larger and more expensive Core. With a Master Mmodule you would have a complete process unit very cheap and in a very small size.

The world of microcontrollers is very broad, some with just a handful of GPIOs and others with tens or even hundreds of lines, so Master modules have additional connectors (S200 nad S300). All Master modules follow the same connectivity model. Any Master module, carry the microcontroller that it carries, will have the same connection interface with the Motherboards.

The possibilities offered by the Master module are unlimited. There are numerous manufacturers that offer microcontrollers, including Atmel, Freescale, Microchip, NXP, STMicroelectronics, etc., with 8-bit, 16-bit and 32-bit options as the most common. Some microcontrollers can even use word sizes of only 4 bits and operate at frequencies as low as 4 kHz, with ultra-low consumption. Meanwhile, others have enough computing power to act as DSPs.

The following diagram shows the distribution of the interfaces in the connectors of the Master modules, seen from the top side (transparent top view).

Master S100 Diagram.png       Master S200 Diagram.png       Master S300 Diagram.png

The following figure shows the mechanical specifications and dimensions of a Master module:

S300 Dimensions.png       S200 Dimensions.png       S100 Dimensions.png

All the signals existing in the Slaves modules are indicated in the following table.

J101/J201/J301 Connector
Pin Number Pin Name Description Pin Number Pin Name Description
1 GND GND 26 RESET_OUT Reset out
2 SDIO_CMD SDIO interface 27 GND GND
3 SDIO_CDN 28 INT0 Interruption
4 SDIO_DATA3 29 SPI-A_CS0 SPI interface
5 SDIO_DATA2 30 SPI-A_CLK
6 SDIO_CLK 31 SPI_A_MOSI
7 SDIO_DATA1 32 SPI-A_MISO
8 SDIO_DATA0 33 GND GND
9 GND GND 34 #NMI Interruption
10 EXT0 External connection 35 I2C-A_SCL I2C interface
11 EXT1 36 I2C-A_SDA
12 EXT2 37 GND GND
13 EXT3 38 UART-B_TXD UART-B interface
14 EXT4 39 UART-B_RXD
15 EXT5 40 GND GND
16 EXT6 41 USB_P USB interface
17 GND GND 42 USB_N
18 VRTC RTC voltage 43 GND GND
19 CLK32K 32.768 kHz CLK input 44 QSPI_IO0 QSPI interface
20 GND GND 45 QSPI_IO1
21 CAN-A_RX CAN interface 46 QSPI_CLK
22 CAN-A_TX 47 QSPI_IO2
23 VBAT Battery 48 QSPI_IO3
24 49 QSPI_CS0
25 50 GND GND
J102/J202/J302 Connector
Pin Number Pin name Description Pin Number Pin name Description
1 GND GND 26 #RESET_IN Reset in
2 DIFF_N Differential pair 27 VIN_REG Power input
3 IO0 GPIO 28
4 IO1 29 RST Protection reset
5 IO2 30 GND GND
6 IO3 31 3V3 3V3
7 IO4 32
8 IO5 33 GND GND
9 IO6 34
10 IO7 35 2V8 2V8
11 SAI-A_MCLK SAI-A interface 36
12 GND GND 37 GND GND
13 UART-A_RTS UART-A interface 38
14 UART-A_RXD 39 SAI-A_SDO SAI-A interface
15 UART-A_TXD 40 SAI-A_SDI
16 UART-A_CTS 41 SAI-A_LRCLK
17 GND GND 42 SAI-A_BCLK
18 AD0 Analog 43 GND GND
19 GND GND 44 1V8 Power input
20 PWM0 PWM 45 GND GND
21 CAPT0 Capture interface 46 VIO_IN Slave logic level
22 CAPT1 47 DVCC (VIO_OUT) Microcontroller logic level
23 VSYS Power input 48 1WIRE 1-wire interface
24 49 DIFF_P Differential pair
25 50 GND GND
J203/J303 Connector
Pin Number Pin Name Description Pin Number Pin Name Description
1 TS_XR Analog (touch screen) 26 PWM1 PWM
2 TS_YD 27 PWM2
3 TS_XL 28 PWM3
4 TS_YU 29 IO28 GPIO
5 GND GND 30 IO27
6 JTAG_TRST JTAG interface 31 IO26
7 CAN-B_RXD CAN interface 32 SPI-A_CS2 SPI-A interface
8 CAN-B_TXD 33 SPI-A_CS1
9 PWM4 PWM 34 GND GND
10 OTG_P USB OTG interface 35 - -
11 OTG_N 36 SPI-B_CS0 SPI-B interface
12 OTG_ID 37 SPI-B_CLK
13 QSPI_CS1 QSPI interface 38 SPI-B_MISO
14 QSPI_CS2 39 SPI-B_MOSI
15 SAI-B_SDO SAI-B interface 40 I2C-B_SCL I2C-B interface
16 SAI-B_SDI 41 I2C-B_SDA
17 SAI-B_LRCLK 42 UART-D_TXD UART-D interface
18 SAI-B_BCLK 43 UART-D_RXD
19 SAI-B_MCLK 44 UART-C_TXD UART-C interface
20 - - 45 UART-C_RXD
21 46 GND GND
22 47 COMP-A_N Analog (comparator A)
23 48 COMP-A_P
24 49 AD6 Analog
25 50 AD5
J204/J304 Connector
Pin Number Pin Name Description Pin Number Pin Name Description
1 - - 26 AD4 Analog
2 27 AD3
3 INT6 Interruption 28 AD2
4 INT5 29 AD1
5 INT4 30 GND GND
6 INT3 31 - -
7 INT2 32 DAC1 DAC
8 INT1 33 DAC0
9 GND GND 34 IO23 GPIO
10 JTAG_TMS/SWDIO JTAG interface 35 IO22
11 JTAG_TCK/SWCLK 36 IO21
12 JTAG_TDO/SWO 37 IO20
13 JTAG_TDI 38 IO19
14 1V8 Power input 39 IO18
15 2V8 40 IO17
16 41 IO16
17 3V3 42 GND GND
18 43 IO15 GPIO
19 44 IO14
20 AREF1 Analog reference 45 IO13
21 AREF0 46 IO12
22 GND GND 47 IO11
23 COMP-B_P Analog (comparator B) 48 IO10
24 COMP-B_N 49 IO9
25 AD13 Analog 50 IO8
J305 Connector
Pin Number Pin Name Description Pin Number Pin Name Description
1 - - 26 RMII_MDC RMII interface
2 27 RMII_MDIO
3 28 RMII_TXD1
4 29 RMII_TXD0
5 30 RMII_RX_CLK
6 31 RMII_RXD0
7 32 RMII_RXD1
8 33 RMII_TX_EN
9 34 RMII_TX_DV
10 35 RMII_RX_ER
11 36 GND GND
12 GND GND 37 - -
13 - - 38
14 39
15 40
16 41
17 42
18 GND GND 43
19 CAM_D13 Camera interface 44
20 CAM_D12 45
21 CAM_D11 46
22 CAM_D10 47
23 CAM_D9 48
24 CAM_D8 49
25 GND 50 GND GND
J306 Connector
Pin Number Pin Name Description Pin Number Pin Name Description
1 CAM_HSYNC Camera interface 26 LCD_R7 LCD
2 CAM_VSYNC 27 LCD_R6
3 CAM_PIXCLK 28 LCD_R5
4 CAM_PIXCLK_OUT 29 LCD_R4
5 CAM_D7 30 LCD_R3
6 CAM_D6 31 LCD_R2
7 CAM_D5 32 LCD_R1
8 CAM_D4 33 LCD_R0
9 CAM_D3 34 LCD_G7
10 CAM_D2 35 LCD_G6
11 CAM_D1 36 LCD_G5
12 CAM_D0 37 LCD_G4
13 GND GND 38 LCD_G3
14 LCD_BKL0 LCD 39 LCD_G2
15 LCD_ON 40 LCD_G1
16 LCD_HCK 41 LCD_G0
17 LCD_HSYNC/HST/8bE 42 LCD_B7
18 LCD_CLK/VCK 43 LCD_B6
19 LCD_VSYNC/VST/8bRS 44 LCD_B5
20 LCD_XFRP 45 LCD_B4
21 LCD_RST 46 LCD_B3
22 LCD_DEN/8bRW 47 LCD_B2
23 LCD_EXTCLK 48 LCD_B1
24 LCD_BKL1/VD_IO0 49 LCD_B0
25 GND GND 50 GND GND
  • Secundary functios: Most signals from the J203/J303 and J204/J304 connectors have a second function that can be seen in the shematics.
  • CAN: CAN lines are crossed on the motherboard, not on the module.
  • I2C: I2C pull-up resistors are placed on the motherboard, not on the Master module.
  • RST: In order to protect Master modules when, by mistake, they are connected in Slave module sockets, this signal keeps the microcontroller in continuous reset to avoid damage.
  • SAI: SAI lines are crossed on the motherboard, not on the module.
  • UART: UART lines are crossed on the motherboard, not on the module.
  • VIO_IN: VIO_IN provides the voltage reference with which the Core module operates.

Motherboard Connections

All Rhomb.io modules are made up of more or less complex individual circuits that need a structure on which to settle and interconnect. This basic structure is formed by Motherboards, printed circuit boards with one or several Rhomb.io sockets in which the Cores and/or Modules are connected, which will give the design the desired functionalities.

A Rhomb.io Motherboard can have all the functionalities that the designer wants, being able to be as simple or complex as you want. Any printed circuit board, sold by Rhomb.io or designed by an individual or a company, will be compatible with the Rhomb.io platform when it has at least one Rhomb.io socket that complies with the basic design rules of the platform Rhomb.io and perform some basic functions that are listed below:

  • Provide the necessary power supply to the Core socket, in case there is one. Depending on the socket, the power supply varies:
    • The S400 socket requires a power supply connected to VSYS that between 3.7 V and 5.5 V and is capable of supplying currents up to 2 A. The Cores that fit these sockets are designed to be powered by batteries, since they mount CPUs used in mobile devices.
    • The socket 500 needs a power supply connected to VSYS of 5 V capable of supplying up to 4 A. In addition, a second power supply of at least 6 V is needed that is capable of supplying 6 A. The Cores with S500 socket usually mount processors of a certain power that require a greater supply of power.
  • Provide the necessary power to the Master module socket, in case there is one. The Master module socket must have a voltage supply of 1.8 V, 2.8 V, 3.3 V and 5 V to be compatible with any module that is connected to it.
  • Enable the boot of an operating system in a Core, in case there is one. For this, two elements are necessary:
    • A boot circuit conveniently designed and connected to the socket boot lines.
    • A system memory where the operating system is located. There are several ways for the motherboard to fulfill this function: either having a module socket to connect an MMC module, or having an interface to which some type of external memory can be connected, such as an SD reader or a SATA connector.

The combinations between Motherboards, Cores and Modules are many. Cores and Modules have well-defined mechanical forms and their classification depending on their functions is relatively simple, but Motherboards are more difficult to catalog. That is why, in order to establish a certain order, the Motherboards that Rhomb.io sells, which meet the specifications of the platform, have been classified into 3 classes. Each class indicates the way in which the Cores and Modules that connect to it interact with each other, or how they interact with external elements.

Class 1 Motherboards

The main characteristic of the Class 1 Motherboards is that they have a Core socket (S400 or S500) and one or more Slave module sockets. They are the type of PCB that allows you to connect a Core with one or several Modules that provide various functionalities. Thus, it is possible to create complex electronic systems by combining modules in a simple way, without the need to design, manufacture and assemble an ad hoc PCB.

A Class 1 Motherboard can be very versatile. The fact of carrying a Core socket instead of a CPU soldered on board gives a huge degree of freedom when choosing a processor model. The user will have at his disposal a wide range of Cores with processors from different manufacturers, different architectures and different memory capacities, and anyone can be connected to the socket of the Motherboard. This feature is very useful for phases of conceptualization of a product, in which it is still deciding which processor would adapt better to the system. The fact of being able to perform rapid tests between several processor models by simply removing a Core and putting a different one is a considerable saving of time and money, as well as eliminating to a large extent the possibilities of future design failures.

Additionally, these Motherboards have the ability to connect up to three Slave Modules with the Core. The three Slave module sockets on the Rhomb.io platform have exactly the same pin assignment, so any Slave module will work independent of the socket in which it is connected. The only exception is socket 1, whose SDIO bus is 8 bits instead of 4 bits, as in the other sockets. This is designed so that the MMC modules are connected in this socket, whose high-speed memories use an 8-bit SDIO bus to achieve the maximum data transfer speed.

Class 2 Motherboards

The main feature of Class 2 motherboards is that they have a Master module socket and one or more Slave module sockets. They are the type of PCB that allows to connect a Master module with one or more modules that provide various functionalities. Thus, it is possible to create small electronic systems combining modules in a simple way, without the need to design, manufacture and assemble an ad hoc PCB.

Like a Class 1 motherboard, Class 2 motherboards are also very versatile. For practical purposes, its main advantage is the same as the Class 1 boards: having a socket in which many different processing units fit together and being able to switch between them indistinctly. The user will have at his disposal a wide range of Master modules with microcontrollers from different manufacturers, different architectures and different memory capacities, and anyone can be connected to the socket of the Motherboard. Again, this feature is very useful for conceptualization phases of a product, in which it is still being decided which microcontroller would adapt better to the system. The fact of being able to perform rapid tests between several models of microcontroller by simply removing a Master module and putting another one is a considerable saving of time and money, in addition to eliminating to a large extent the possibilities of future design failures.

These Motherboards have the ability to connect several Slave modules with the Master module. The Slave module sockets of the Rhomb.io platform have exactly the same pin assignment, so any Slave module will work independent of the socket in which it is connected. The additional connectors of the Master module socket provide the necessary connectivity for the Slave module sockets.

Rhomb.io sells a series of Class 2 motherboards with different form factors, essentially small boards ready to be used in embedded systems, portable equipment, drones, robots, "wereables", etc. These boards have been developed with the Internet of Things (IoT) in mind.

Class 3 Motherboards

The main feature of the Class 3 motherboards is that they allow the Rhomb.io platform to be adapted to other existing hardware development platforms, such as Arduino, Raspberry, Beaglebone, etc. These boards will be those that present the most variable structures, so it is not easy to specify common characteristics to all of them.

As a general rule, they have a Master module socket whose lines and GPIOs are connected to a series of header and pins placed in a way that they are compatible with the hardware development solutions of other platforms.

For example, a board could mount a Master module and present a series of headers that would be mechanically and electrically compatible with the Arduino shields. Thus, a Master module that mounts an Atmega328p microcontroller on a board of these characteristics would be, for practical purposes, an Arduino Uno board. Another board could mount a Core and have some headers with the exact arrangement that the headers of the Raspberry Pi, so you could connect a compatible screen.

The interoperability between platforms that would allow these Motherboards would greatly help the rapid prototyping and development of electronic systems. In addition, it would allow users to recycle their projects from one platform to another, without losing the work done on hardware and firmware issues. Or switch between microcontroller models on the same board to test different development environments.

Schematics

Class 1 Motherboards

With S400 Rhomb.io Cores

Download the documentation for Class 1 boards with S400 Cores here.

With S500 Rhomb.io Cores

Download the documentation for Class 1 boards with S500 Cores here.

Class 2 Motherboards

With S100 Rhomb.io Master Modules

[This documentation is under construction. Please, be patient. We are working hard for bringing to you the best experience.]

With S200 Rhomb.io Master Modules

Download the documentation for Class 2 boards with S200 Master Modules here

With S300 Rhomb.io Master Modules

Download the documentation for Class 2 boards with S300 Master Modules here

Rhomb.io Master Modules

S100

Download the documentation for S100 Rhomb.io Master Modules here.

S200

Download the documentation for S200 Rhomb.io Master Modules here.

S300

Download the documentation for S300 Rhomb.io Master Modules here.

Rhomb.io Slave Modules

Download the documentation for S100 Rhomb.io Slave Modules here.