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 »

LoRa_PingPong.zip

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

Download

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

View all 14 files

  • THOUGHTS ON M10CUBE AFTER ONE YEAR

    VASILIS VORRIAS9 hours ago 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 in general

    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.

    All these excellent products (Arduino PLC and Raspberry PLC products, M5stack, the list is endless) have one thing in common.

    Their ego. 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.

    M10CUBE tries to overcome that attempting to make a concept, a platform, a "glue", a development platform, a production ready hardware or all the above. M10CUBE is a dream to help the community to use the tow platforms like a LOGO

    Not an easy thing or if I may say, very very hard to achieve.

    That is why needs M10CUBE needs a lot of inspiration a lot of discussion, a lot of courage and a little bit of luck.

    That been said concluding what M10CUBE must be.

    That is M10CUBE hardware specs are still for discussion before we are going back to drowning board.

    So far we have:

    1 - A hardware platform that will accommodate The Raspberry PI 4.

    Plans for future. Compute module or other modules is easy to design.

    2 - A 40 long pin connector for interconnecting the various stacked PCBs. The connector has the same footprint as the Raspberry Pi.

    Plans for future. A high speed duplex differential bus can be used instead. Same idea used in modern PLCs today. All other hardware on board can remain the same. That is easy for PCB designers to make something completely different as the inter-board communication as concern.

    3 - A proposition for PCB dimensions 90x90mm

    - A proposition for outer dimensions of the box 100x100mm. A possible construction of 100x100x100 mm cube can be constructed accommodating various modules.

    4 - Directions and template hardware will help others to design various boards using STM32, Analog, CAN BUS, Encoders etc. Only imagination stops someone to design something useful and benefit from others work on M10CUBE.

    5 - Project always will be OSHW certified. So you can copy and make money if you like. In fact we like to see you doing it.

    So many years in industry one thing we learn for sure. The only way for a product to be a success story (and probably designers make money) must be open source and best to be OSHW certified.

    One thing we learn from our testing on m10sensor was, that plug in modules saved our time . So on redesigning we will consider all components to have a snap in capability.

    For instance hardware debugging the LoRa subsystem lot of m10sensor...

    Read more »

  • 90X90mm PCB

    VASILIS VORRIAS2 days ago 0 comments

    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

    https://drive.google.com/file/d/1yRPqU383x6fnzrjMYXi4AUmQ6xDtixmj/view?usp=sharing

    https://drive.google.com/file/d/1-Jwz05DQahxnaDgEAwje6dV2fpPQ8MXz/view?usp=sharing

  • 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.

    https://stuartsprojects.github.io/

    https://github.com/StuartsProjects/SX126X

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

  • 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

View all 17 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