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.
- 1 Introduction
- 2 Rhomb.io Standard
- 3 Schematics
- 3.1 Class 1 Motherboards
- 3.2 Class 2 Motherboards
- 3.3 Rhomb.io Master Modules
- 3.4 Rhomb.io Slave Modules
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.
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.
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.
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.
As mentioned above, there are three diferents types of modules, each one with different functions.
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.
The following figures show the mechanical specifications and dimensions of the Cores in their two size configurations:
All the signals existing in the cores are indicated in the following table.
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).
The following figure shows the mechanical specifications and dimensions of a Slave module:
All the signals existing in the Slaves modules are indicated in the following table.
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).
The following figure shows the mechanical specifications and dimensions of a Master module:
All the signals existing in the Slaves modules are indicated in the following table.
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.
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
Download the documentation for S100 Rhomb.io Master Modules here.
Download the documentation for S200 Rhomb.io Master Modules here.
Download the documentation for S300 Rhomb.io Master Modules here.
Rhomb.io Slave Modules
Download the documentation for S100 Rhomb.io Slave Modules here.