Close
0%
0%

m10cube

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.

FIELD OF APPLICATIONS:
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 to put their name in public

Soon...

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)
https://www.raspberrypi.org/forums/viewtopic.php?f=41&t=455&hilit=vorrias
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.

Directives:
-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 M10CUBEs...

Read more »

m10cube.png

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

Preview
Download

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

Download

M10PR03-01.png

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

Preview
Download

M10DX01-01.png

Digital Input Output module

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

Preview
Download

M10SE01-01.png

Sensor module

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

Preview
Download

View all 13 files

  • m10sensor build and working

    VASILIS VORRIAS11/09/2020 at 20:53 0 comments

    Today 09/11/20 the "real" m10sensor is build and working perfect.

    m10sensor was build and thankfully no major problems on the PCB. Minor things that can be correcter to a next version.

    So far we build the stand alone sensor (no need for the Raspberry to be on the field but still you can plug it in).

    Underneath is the PCB hosting the SDS011 dust sensor. Raspberry module goes on top of that (next image)

    While waiting to receive Lo-Ra module, GPS, and the I2C extension components (the unpopulated space on m10sensor PCB) enjoy in the image of  the m10sensor collecting real time environmental data and sending them in influx database and grafana running on Raspberry Pi 4. All sensors are working perfect.

    We are also preparing a platform (in WordPress) for searching the sensors on a map  and view real time data in grafana.

    OTA is working as well so I do not have to go to the balcony every time m10sensor needs (that is very often indeed ) improved firmware.

    Below is how the M10CUBE looks like with Raspberry modules attached.

    At the moment only spacers keep boards together since the boxes are in development.

  • ARRIVIAL OF PCBs

    VASILIS VORRIAS11/07/2020 at 17:54 0 comments

    All five PCB types arrived some days ago. I Started building the M10CUBE system and checking for errors.
    Then trying to fix the fitting inside frames.
    From first impressions only minor problems. Will be fixed on the next version.

    Soon test results will be published.

    First version of the sensor board firmware is written and sends data to the influx and grafana running on the Raspberry .

    I will publish the firmware as soon as testing is OK.

    If you need any info please ask. I will be happy to provide.

  • PRODUCTION APPROVED

    VASILIS VORRIAS10/23/2020 at 10:33 0 comments

    Today after many delays due to problems on the boards, production approved by jlcpcb.com 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.

  • PROTOTYPE BOARD

    VASILIS VORRIAS10/19/2020 at 17:21 0 comments


    Prototype board, plus Breadboard area, plus holes to mount the FINE DUST. PM 2.5 & PM 10
    MODULE SDS011

    This board (without the SDS011) will be used as the bottom board in the RASPBERRY frame.


  • SENSOR REDISIGNED

    VASILIS VORRIAS10/19/2020 at 17:13 0 comments


    Development and fabrication of M10SE01-01 stopped in favor of M10SE02-01 Some serious issues discovered during building in Breadboard an experimental version of M10SE01-01 circuit and that was:

    UART0:RXD and UART0:TXD pins can not be used and better remain only for programming the ESP32 MINIKIT. Having one UART less we decided to remove RS485 communication.

    The RS485 idea was to connect other M10SE01 modules distant apart for sensing the near by environment. Since that is not possible any more an I2C solution was adapted using the ideas taken from a Sparkfun design.

    The 2 RJ45 connectors remaining in hope to daisy chain from one board to the other the 2 differential I2C signals. Board sent for fabrication

    SPECS:

    Ambient Light, UV Light, VOC, Digital Sound (MEMS)

    Temperature, Humidity, Barometric

    ESP32 minikit, GPS, LoRa, I2C EXTENDER (2XRJ45 FOR DAISY CHAIN)


  • DESIGN PROBLEM IN M10SE01-01

    VASILIS VORRIAS10/08/2020 at 10:50 0 comments

    Development and fabrication of M10SE01-01 stopped in favor of M10SE02-01
    Some serious issues discovered during building in Breadboard an experimental version of M10SE01-01 circuit and that was:
    1- UART0:RXD and UART0:TXD pins can not be used and better remain only for programming the ESP32 MINIKIT.
    Having one UART less we decided to remove RS485 communication. The RS485 idea was to connect other M10SE01 modules distant apart for sensing the near by environment. Since that is not possible any more an I2C solution  was adapted using the ideas taken from a Sparkfun design. The 2 RJ45 connectors remaining in hope to daisy chain from one board to the other the 2 differential I2C signals.
    Design and testing among others in progress before sending board for fabrication

    Digital MEMS microphone for sound level metering

    GPS

    LoRA

  • FINAL PCBs

    VASILIS VORRIAS10/02/2020 at 10:35 0 comments

    3/09/2020

    At last after many days of redesigning and trimming ready to send for PCB fabrication (hoping everything is correct.) a complete set of M10CUBE modules.

    New naming convention is introduced

    M10PR01-01 (Prototype board and can be used as the bottom PCB on CPU frame)
    M10PS01-01 (PSU module)
    M10DX01-01 (8xDigital Inputs + 8xDigital Transistor Outputs)
    M10DO01-01 (8xRelais Outputs 16A)
    M10SE01-01 (Sensor board + ESP32 + RS485, +LoRa + GPS)

    All design files can be found on GitLAB

    https://gitlab.com/m10cube/m10

  • ESP32 MINI KIT

    VASILIS VORRIAS09/19/2020 at 10:18 0 comments

    19/10/2020

    Wemos mini D1 (run out of pins) changed in favor of ESP32 MINI KIT. More power and more pins. That m10-sensor version fulfills all my expectations for this modular board to be part of a big sensor network we are building in Volos Greece and can fulfill the German Luftdaten Air monitoring network . Well to be honest we wanted to go one step beyond. Not exactly sure if we succeed, but we are trying hard hoping this work to be inspiration for others since it is modular and contains the 40 pin Raspberry connector. That is can be used as Raspberry HAT and use the power of the Raspberry for more compute work (SQL server, LORA-WAN gateway e.t.c). Ready to send for PCB fabrication.

    Contains:

    1 - TEMT6000 sensor (AMBIENT LIGHT)
    2 - ADC ADS1115

    3 - CJMCU-680 or BME280 sensor (TEMPERATURE, HUMIDITY, BAROMETRIC).
    4 - GPS (RS232 module)

    5- CYML-8511 sensor (UV LIGHT)
    6 - VOC (Volatile Organic Compound) CJMCU-4541 sensor.
    CARBON MONOXIDE CO , ITROGEN DIOXIDE  NO2 , THANOL C2H5OH
    HYDROGEN H2, AMMONIA NH3, METHANE CH4

    7 - Digital Sound Level
    INMP441 MEMS MICROPHONE

    8 - RS485

    9 - LoRa (E22-900M30S or E22-900M22S)

    PLUS
    - ESP32 Mini kit
    - SD card
    - One 4pin JST 2mm Connector for SDS011 (Fine Dust PM 2.5 and PM 10 sensor)
    - One 4pin JST 2mm connector for experiment (only +3V3 and GND connected)
    - Two 4pin JST 2mm Connectos for digital IN/OUT (can be used as for DS18B20 sensors) - Two 4pin JST 2mm connectors for any Grove I2C Sensors
    - Optional switching PSU module 24V - 5V (m10-sensor can be used as autonomus)
    - Optional 24V connector (same as other M10CUBE modules)
    - Optional 3V3 PS (If more power 3V3 from needed than ESP32 module can provide)  

  • M10-SENSOR

    VASILIS VORRIAS08/05/2020 at 06:11 0 comments

    05/08/2020

    More on m10-sensor PCB. That is almost the final population concerning m10-sensor. The jumpers on the right change the functionality of the board. Many boards can be connected via external cable with RS485, by modifying the jumpers, board can be used for various sensors. That is because Wemos D1 mini has not enough pins. Circuity is done. Routing is not.

    Planning the same board but with Wemos D1 ESP32 version. That is pin compatible with Wemos D1 mini ESP8266 (white coloured pins on ESP32 image)but have more pins (and power). That way the space occupied by the jumpers is not needed so can be freed to accommodate the bigger Wemos D1 mini ESP32 (6 Euros!).


  • M10-PCB-TEMPLATE

    VASILIS VORRIAS07/18/2020 at 13:11 0 comments

    18/07/2020

    This latest version of m10-template includes a modification to corners. The larger space that exists between PCB and the frame leaves room to pass up to 5X 1mm wires for inter M10CUBE connection like carrying high speed LVDS RS485 connection between I/O modules and CPU, or getting PSU values to other PCB for monitoring. In general all 4 corners can accommodate  extra wiring for passing through to other PCBs in the M10CUBE space for signals that not met by the 40 pin RASPI connector. Since has no cost It will be an option for someone to use.
    Big holes 1,2,3,4 are 3.3 mm in diameter. That is for the pass through 3mm threaded rod to mechanical stabilize the frames.
    small holes are for mounting the PCB on the frame

    PCB dimension remains the same 91X91 mm

View all 13 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?

Share

Discussions

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

PRODUCTION APPROVED

Today after many delays due to problems on the boards, production approved by jlcpcb.com 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