M10CUBE (M10 in short) is a modular controller box with cube dimensions 10x10x10cm. Raspberry bus will be used for the first incarnation.

Public Chat
Similar projects worth following
M10CUBE is a Practical Form Factor Ecosystem. A micro controller cube 10x10x10 cm.

To be used like "brick" and solve many control problems. A smart design to be used as PLC or IOT device for Industry 4.0 and M2M deployments.

PLC, IOT, Education, Home Automation, Light Industrial and Greenhouse applications, Air Quality monitoring

M10CUBE  (M10 in short) road map

This is a teamwork project! It is up to the contributors choice to show their name in public


A PLC software using all M10CUBE I/Os :

First PLC software will be  CODESYS (Raspberry Pi runtime is free for 2 hours use) since there is a lot of experience with this IDE.

Then other, totally free and open source IEC 61131-3 BEREMIZ or IEC 61499 4DIAC enabled IDEs can follow . Hopping someone will give us a little help on these brilliant software, following the well known song ...

A M10CUBE sensor board software:
That is written in Arduino IDE using all on board hardware running on the embedded ESP32 module.

Some history as a preface.
Despite the fact that we started M10 as a modular PLC system within a cube of 10x10x10 cm soon realized that in a broader sense, everything is a Programmable Logic Controller. Every microControler Programmed Logically to help us in everyday life.
Many years ago back in 1980 when programming Z80 custom made designs written in assembler for controlling various machinery in reality that was a primitive PLC.
Of course later as wiki states IEC 61131  (then IEC 61131 -3) published in December 1993 PLC came to life for ladder programming. Today (initially published in 2005) the specification of IEC 61499 (as explained by Lewis and Zoitl) is one step up to  IEC 61131.
In a sense the famous Arduino Blink program is a PLC program (not in IEC 61131 -3 but in C).
PLC remains as standard word for industrial controllers. Recent days many change the term PLC into a more appropriate acronym PAC ( Programmable Automation Controller).

PAC is an industrial controller that combines the functionality of a PLC with the processing capability of a PC. You are thinking right. Is a Raspberry Pi running a PLC program called PAC?  The answer is YES.

The idea was tinkering in my mind so in 2011 in the Raspberry Pi forum I started a thread in an effort to combine Raspberry and PLC environment:
Turn Raspberry Pi into a P.L.C (Programmable Logic Controller)
That time my Raspberry was not delivered yet.

Time went by. ..

During that time I found enthusiastic designers and they contribute to the final M10 idea.
I hope to be permitted to put their names here. Without these guys M10 could not be born.

It does not matter if M10 contains a PLC or a PAC or a custom made C, C++ or Python firmware. M10 likes them all. Because M10 is a controller cube, a container I may say that makes the control job look easy. Any control job.  
You may ask what hardware is inside? The answer is anything. Hardware that haven't cross our mind yet. The hardware inside M10 may be different as long as the first low of M10 is not violated

But we must start from something we all understand.
To get an idea of what a M10 looks like we will introduce you our first M10 PLC incarnation which at the time of writing ( 05/05/2020) has the following modules ready for fabrication.
1 – CPU module (contains Raspberry Pi 4). All modules share the same 40pin Raspberry bus. 2 – DIO module. Eight opto isolated 24V inputs plus eight 24V outputs high side transistors.
3 – DO module. Eight relays with 16 amps contact capability to power any heavy loads even 220V mains power appliances.

M10 ecosystem in detail
The design must not violate the rule of M10:
- External enclosure (CUBE) maximum dimensions X = 10cm, Y = 10cm, Z = Up to 10cm. Electronics inside must be powered by 24 DC or 220 AC or POE, or battery.
Some sub rules must also apply but it is to verify that every M10 incarnation can communicate and stand side by side with the other.

-Used materials and modules out of the self if possible. -DIY friendly. -Think Green and Reuse philosophy
-Z dimension depends on number of modules . -within the CUBE interconnection bus between modules must exist and modules designed for the specific M10 can be interchanged between...

Read more »

This is the modified (with sound) Arduino LoRa ping pong example for m10sensor as shown on image

Zip Archive - 3.71 kB - 01/14/2021 at 13:06



This is the Box where M10CUBE sits on. The files are redesigning and soon will be uploaded into GitLAB

Portable Network Graphics (PNG) - 179.66 kB - 10/02/2020 at 17:07


m10cube conventions.txt

That is the new naming convention introduced in 09/2020 since M10CUBE is becoming extremely complicated to handle the different boards now and in future

plain - 784.00 bytes - 10/02/2020 at 11:04



Prototype module. This is located as a bottom PCB together with the Raspberry Pi 4 and PSU module. These 3 modules define the CPU Frame

Portable Network Graphics (PNG) - 191.39 kB - 10/02/2020 at 10:43



Digital Input Output module

Portable Network Graphics (PNG) - 143.13 kB - 10/02/2020 at 10:43


View all 14 files

  • M10CUBE looks like TOFU ?

    VASILIS VORRIAS08/16/2021 at 11:51 0 comments

    Some time ago tofu board came to market.

    This is a carrier board for use with Raspberry Pi Compute Module 4.

    As you can see there are a lot of similarities (concerning the dimensions 90X90mm)

    Mounting holes are almost at same point as M10CUBE. Oratek made them at 4mm, 6.1 mm space from the PCB edge. I wander why did not make it 4mm, 4mm as M10CUBE.

    Anyway the excellent TOFU board proved that 90x90mm PCB dimension is a golden rule on doing similar designs.

    We are very proud to see that similarity in two different designs not knowing each other but having common sense and practical design ideas.

    Having said that the tofu containers can be used as an inspiration and with a little modifications for M10CUBE

    You can see the similarities on a M10CUBE prototype board and a tofu board

    Soon will publish our new versions in CPU, PS and sensor boards


    VASILIS VORRIAS05/09/2021 at 18:01 0 comments

    One photo a thousand words

    Many extra features on the PCB are left unpopulated in favor of the upcoming revision
    That will be the second generation of the PCB already on the drawing board


    VASILIS VORRIAS05/09/2021 at 17:50 0 comments

    Hi everybody

    Six sensors are sending data to (aka Luftdaten) participating in a community sensor network in Volos, Greece.

    you can access data to the following url

    A/A     NAME     LATITUDE     LONGITUDE     PM2.5, PM10     TEMP, HUM, BAROM     URL
    1     SE0001     39.3606     22.9694     60264     60265
    2     SE0002     39.3636     22.9498     61208     61209
    3     SE0003     39.3708     22.9654     61284     61285
    4     SE0004     39.3463     23.0015     61409     61410
    5     SE0005     39.3694     22.9554     61566     61567
    6     SE0006     39.3694     22.9554     61825     61826

    All six are contracted with same m10sensor hardware and this is SE0001

    The only exception is SE0001 which has an extra DS18B20 temperature sensor for comparison reasons


    VASILIS VORRIAS02/14/2021 at 13:25 0 comments

    Snow came in my balcony without realizing it!. It came into my attention after watching the temperature data fro the two sensors (SE001 and SE002). I sow on Grafana that temperature1, humidity, barometric had no values (that is the MBE280 module) . When in balcony SE001 was covered with light snow. Still working but not the BM280 module...Get it out to repair the damage.

    SEE001 readings
     temperature1, humidity (BME28 module) not working
    temperature2 (DS18B20 external waterproof) working fine

    SEE002 readings
    temperature1 (BME28 module) working fine
    temperature2 (DS18B20 external waterproof) working fine


    VASILIS VORRIAS02/06/2021 at 18:45 0 comments

    M10CP02-01 (CPU BOARD)
    - Raspberry PI pin out with 40 pin connector as main interconnection between various M10CUBE modules
    - Raspberry Pico module
    - ESP01 For WiFi only
    - I2C Extender
    - SD card
    - CON Li BAT with charger + booster to 5V
    - CON PV for charging
    - CON 64BIT WS2812 LED array. (can be used to display data or as emergency light)
    - CON 5 - 24V input
    - BUZZER
    - ?

    M10SE03-01 (SENSOR BOARD)
    - Raspberry PI pin out with 40 pin connector as main interconnection between various M10CUBE modules
    - Four mikrobus ( . We may extent it with 4 more pins. GPS, LoRa, Sensors will go on small breakout PCBs on mikrobus footprint so to use the many ready available mikrobus boards or to make your own, since mikrobus is open and free to use. Actually we are planning our own LoRa and GPS mikrobus boards to be available out of the box on the new design
    - ASD1115 (4 channel I2C ADC)
    - MEMS digital microphone
    - GROVE connectors for I2C and Digital sensors
    - More sensors on board

     with KICAD 6 (nightly build)


    VASILIS VORRIAS01/25/2021 at 16:46 0 comments

    This is for developing and TESTING purposes for M10SENSOR board. Part of M10CUBE project.

    Not for production ready. Modify it as you like. Use it as an inspiration as well.
    It is only to show the concept to use many sub-modules on board.
    It is our first attempt to make a test firmware for the many sub modules (Sensors, LoRa, GPS, etc) of m10sensor board.

    A word of notice:

    we are on a redesign phase of the m10sensor board. Hardware may differ in the new board but the core of firmware done will remain the same. The way it is structured in separate header files will help everyone to delete and add any new hardware.

    Enjoy it.


    VASILIS VORRIAS01/22/2021 at 19:35 0 comments


    After about a year from introducing M10CUBE idea a lot have been happening.
    First we have hands on first version of PCB for M10INPUT, M10OUTPUT, M10SENSOR, M10PROTOTYPE, M10PSU
    Unfortunately because of the heavy work done on the M10SENSOR module, work on testing the other modules left behind.
    Fortunately these months with testing left us experience for the overall design too. New hardware ideas found on the table as well.
    So looking forward in overhauling the M10CUBE some things to consider are some thoughts.

    M10CUBE initial idea
    The initial goal for M10CUBE idea with what is in mind after 1 year remains almost the same:

    To design development ecosystem, capable to accommodate known platforms like Arduino and Raspberry.
    Not as separate products but as a unit and be able to interact each other. As far as we know there is no similar product in the market. M10CUBE must not only to able  to be used as a testing, developing or production ready hardware but all its parts can be reusable for other projects (or come from other projects).

    M10CUBE can become for the microelectronics DIY community as the tool known as “swish army knife “

    Not as good as it is each tool separately, but does the job. And does it well.

    Many Hat or no Hat hardware exists to plug on the  Raspberry Platform and many  excellent ad-dons (shields or whatever word various Arduino incarnations use) exist for the Arduino Platform .

    Many excellent PLC products exists for both Platforms. Many excellent company development hardware is out there. Without them new ideas will be impossible to implement.
    Still it is almost impossible to get these boards and make a production system.
    First of all because of the different PCB dimensions. That is natural.
    Arduino’ s miracle made well known companies to embed Arduino UNO bus on their dev boards.

    That is very well done but now IOT explosion, the plethora of the proposed system and buses  brought us in a situation without any standard on how all these devices to interconnect, easy and in an economical way.
    Is it a standard like this exist and I am aware of it? May me.

    Not even the I2C bus has a standard pin out. Grove connector system is on the correct direction but it is not enough.
    Some companies made attempts to fix the position of frequently used pins like SPI, I2C, UART but no one went beyond that to unite the two platforms in a full stack-able system so to be used from developing to production.

    Not to be misunderstood. There is no way to substitute a company's  developing boards here.
    Run your tests and experiment with these boards. Then design and build some PCBs with M10CUBE specs plug them together and voila!
    The professional stack-able  developing or production system is lying on your bench.
    Make it a PLC , a Home Automation controller, an Environmental sensor or anything you like. Use the boards again and again in other projects.
    The good thing is that you already know the enclosure dimensions and with a little copy paste your 3D printed enclosure is there! Share it with the community. That is a better idea on how all these can be connected together.

    We are not saying M10CUBE idea is best but we are trying to figure out how that can be done.
    None seems to care . Maybe because that is impossible?

    All these excellent products (Arduino PLC and Raspberry PLC products, M5stack, the list is endless) have one thing in common. Their ego. Mostly the care about “themselves” and not what other companies doing. Not a bad thing because to build an excellent product you need to be specific in the design board. Then is the market. You design something to make money. That drives the hole Industry. And that is a good thing. But not always good for the end user.

    The money lost the last 40 years because the companies fighting to push their own standards to consumer products. Money out of our pockets . Lost for ever.
    Just to remind the mobile charger...

    Read more »

  • 90X90mm PCB

    VASILIS VORRIAS01/21/2021 at 12:37 1 comment

    It looks that 91X91 PCB dimension is a bit strange. 90X90 seems more appropriate and does not reduce really the real estate of the board. PCB Calculations are easier that way.

    A small reposition on the 40 pin Raspberry connector made so the center of the connector to be aligned with the center of the mounting holes. The same way things done on the Raspberry Pi .

    It is very crucial on this redesign to fix PCB outlet, mounting holes and Raspberry PI 40 long pin connector that connects various boards together.

    PCB is still open for suggestions.

    We are talking now with a very old and established company in electronic design.

    Hopping that discussion will produce an even better M10CUBE design for the community.

    A PDF and a step file will help you to see the actual proposition

    We are open to discussions and criticism.

    1 - STEP file
    2 - PDF file

  • LoRa ping pong with buzzer sound

    VASILIS VORRIAS01/14/2021 at 13:05 0 comments

    LoRa ping pong test using the on board buzzer for ping pong notification. Modified for m10sensor

  • LoRa

    VASILIS VORRIAS01/11/2021 at 10:47 0 comments

    m10sensor is undergoing LoRa first tests. A problem fount on some tracks connecting NSS and SCK pins from E22-900M22S LoRa chip to SS_LORA and SCK_ESP pins of ESP32.

    So that you see is the result of the test. The brilliant library used is made by the excellent engineer Stuart Robinson.

    As soon tests completed and all subsystems go I will publish the total firmware.

View all 23 project logs

  • 1
    Step 1

    Since project is in development phase instructions for building will be published as soon as modules are tested OK.

View all instructions

Enjoy this project?



VASILIS VORRIAS wrote 10/23/2020 at 10:31 point


Today after many delays due to problems on the boards, production approved by for all 5 types of M10CUBE PCBs designed so far.
While waiting for delivery of the PCBs we are developing a first version of the firmware to support all boards.

  Are you sure? yes | no

VASILIS VORRIAS wrote 05/30/2020 at 08:19 point

If you have any comments or  ideas about possible applications on M10CUBE  project please inform us.
Even better if you have any skills concerning the development on the M10CUBE please consider joining our team. M10CUBE is a dynamic idea of how things may be in life.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates