Target audience for MicroPython?

General discussions and questions abound development of code with MicroPython that is not hardware specific.
Target audience: MicroPython Users.
Picasso
Posts: 39
Joined: Fri Mar 22, 2019 12:13 pm

Re: Target audience for MicroPython?

Post by Picasso » Thu Mar 28, 2019 10:37 pm

Sorry, but here I really have difficulty understanding what you are saying ... You are saying a lot of things in these two sentences:
kevinkk525 wrote:
Thu Mar 28, 2019 2:28 pm
There is indeed the problem of github organisation. It mainly derived from pfalcon having to leave the project and therefore there's a split in micropython and micropython-lib. I hope Damien will have a solution for the micropythonlib/upip problem soon.
I hope you want to explain these things:
having to leave the project
Who made him leave the project, why was that and how has that be done?
therefore there's a split in micropython and micropython-lib
How is it, that leaving the project can lead to such a disaster for the project he 'supposedly' left. What has been the justification for getting in this situation?
the micropythonlib/upip problem soon
What is the micropythonlib/upip problem? I really never heard of that before. And why/how does this have anything to do with the micropython-lib situation?

kevinkk525
Posts: 969
Joined: Sat Feb 03, 2018 7:02 pm

Re: Target audience for MicroPython?

Post by kevinkk525 » Fri Mar 29, 2019 5:44 am

Picasso wrote:
Thu Mar 28, 2019 10:37 pm
Sorry, but here I really have difficulty understanding what you are saying ... You are saying a lot of things in these two sentences:
kevinkk525 wrote:
Thu Mar 28, 2019 2:28 pm
There is indeed the problem of github organisation. It mainly derived from pfalcon having to leave the project and therefore there's a split in micropython and micropython-lib. I hope Damien will have a solution for the micropythonlib/upip problem soon.
I hope you want to explain these things:
having to leave the project
Who made him leave the project, why was that and how has that be done?
therefore there's a split in micropython and micropython-lib
How is it, that leaving the project can lead to such a disaster for the project he 'supposedly' left. What has been the justification for getting in this situation?
the micropythonlib/upip problem soon
What is the micropythonlib/upip problem? I really never heard of that before. And why/how does this have anything to do with the micropython-lib situation?

I guess I can explain all of this in one answer.
pfalcon and damien worked closely together from the beginning (that's why he is often mentioned in copyright statements) but at some point they had their differences and damien revoked pfalcon's rights to change code on the micropython github. That's when pfalcon created his own fork. [If anyone else knows it better, please correct me]. I don't like talking about this but it's a fact and that fact has consequences.
Mainly the upip problem. The micropython-lib libraries can be downloaded from pypi using upip on the micropython devices. Many people used this method to deploy some libraries. However most of the micropython libraries on pypi are from pfalcon and a few months back he decided to not care if his libraries are compatible to the mainline micropython version and uploaded a uasyncio version that only worked on his fork. But as using upip was the standard way of deploying this, his decision brought chaos. Uasyncio is typically shipped within the firmware now but it's just a matter of time until pfalcon decides to upload another library that breaks compatibility to mainline. Therefore we can't reliably use upip to deploy micropython libraries anymore without checking first, if they are still compatible.
Kevin Köck
Micropython Smarthome Firmware (with Home-Assistant integration): https://github.com/kevinkk525/pysmartnode

safetyfactorman
Posts: 28
Joined: Sat Jan 24, 2015 10:34 pm
Location: vancouver/kelowna/lethbridge

Re: Target audience for MicroPython?

Post by safetyfactorman » Fri Jan 03, 2020 8:40 pm

I'm a bit late to this discussion, but would like to propose consideration of a different picture. I used to be a programmer in my previous life, but gave it up in 2002. I'm now back looking at it again, largely because of micropython. I would like to propose that micropython become an IEC61131-3 language, or, move towards becoming a part of the IEC61131-3 world.

I think that micropython is headed towards some kind of relationship with the IEC61131-3 world. I think that if micropython becomes an IEC61131-3 language, that it will revolutionize both the IEC61131-3 standard, and micropython.

For example, the openplc project seems to be trying to the same thing as micropython, but differently. By examining how openplc is implemented, it might provide leveraging points, or cross pollination with micropython. One example might be that openplc can run on a dedicated core in a multi-core arm chip, while running on raspberry pi. If micropython were run on a dedicated core in a multi-core chip, that might provide multiprocessing capability, or alternative means to extend the power of micropython, and make it play well, or better, with linux, for example.

In order to grow the micropython ecosystem, a quick way to grow it and move forward, would be to recruit support from codesys. codesys is a company that produces IEC61131-3 language programming for a large number of plc type environments. codesys also supports raspberry pi. Codesys supports aspects of open software. One example of that support is here:

http://www.oscat.de/images/OSCATBuildin ... 100_en.pdf
http://www.oscat.de/images/OSCATNetwork ... 121_en.pdf

OSCAT is for " Open Source Community for Automation Technology ". It is promarily a german organization, so far as I am able to determine.

If micropython can become a compliment to IEC61131-3, or a full partner language, then both will benefit.

If I could get openplc and micropython running on dedicated cores on raspberry pi, talking to each other, I would be in heaven...

User avatar
mattyt
Posts: 410
Joined: Mon Jan 23, 2017 6:39 am

Re: Target audience for MicroPython?

Post by mattyt » Sun Jan 05, 2020 9:24 am

Hiya safetyfactorman,

Thanks for sharing your thoughts!
safetyfactorman wrote:
Fri Jan 03, 2020 8:40 pm
I think that micropython is headed towards some kind of relationship with the IEC61131-3 world. I think that if micropython becomes an IEC61131-3 language, that it will revolutionize both the IEC61131-3 standard, and micropython.
What leads you to believe that the futures are entwined? MicroPython is a general-purpose language and the IEC61131-3 language is very constrained. I could understand that we could implement IEC61131-3 as a library but it's not clear to me how it would affect the language...
safetyfactorman wrote:
Fri Jan 03, 2020 8:40 pm
For example, the openplc project seems to be trying to the same thing as micropython, but differently. By examining how openplc is implemented, it might provide leveraging points, or cross pollination with micropython. One example might be that openplc can run on a dedicated core in a multi-core arm chip, while running on raspberry pi. If micropython were run on a dedicated core in a multi-core chip, that might provide multiprocessing capability, or alternative means to extend the power of micropython, and make it play well, or better, with linux, for example.
This kind of architecture is already possible with MicroPython. It would be nice to extend the MicroPython support on RPi but that's a whole different discussion, seemingly unrelated to 61131-3.
safetyfactorman wrote:
Fri Jan 03, 2020 8:40 pm
In order to grow the micropython ecosystem, a quick way to grow it and move forward, would be to recruit support from codesys. codesys is a company that produces IEC61131-3 language programming for a large number of plc type environments. codesys also supports raspberry pi. Codesys supports aspects of open software.
The Codesys and MicroPython licenses are incompatible. How would this be integrated?

Perhaps I've not understood what you're proposing; could you perhaps try to clarify?

safetyfactorman
Posts: 28
Joined: Sat Jan 24, 2015 10:34 pm
Location: vancouver/kelowna/lethbridge

Re: Target audience for MicroPython?

Post by safetyfactorman » Tue Jan 07, 2020 9:50 pm

corporations (codesys?) supports open software where it suits their corporate interests. openplc is an open platform for IEC61131-3.

for example, codesys is built to use, or built on top of (not sure) of the oscat open source control libraries. And codesys runs on a raspberry pi. So, codesys will use that which is beneficial to it.

https://store.codesys.com/oscat-basic.html?___store=en

http://www.oscat.de/images/OSCATBasic/o ... 333_en.pdf

As a segway, there is no reason why micropython could not use these same OSCAT libraries. They are proven code. It is quite a large amount of code perhaps, and too exapansive perhaps unaltered for the micropython platform. But it has a lot of code, which can be cherry picked (perhaps) to provide immediate solutions for problems that might otherwise be encountered. perhaps micropython could live on top of OSCAT also.

The money that will fund micropython is in the same ecosystem where codesys lives.

My understanding the goal IEC61131-3 is to bring standardization to the (then) 5 ways of writing software for progarmmable logic controller, and to facilitate the creation of a consistent standard. My understanding is that nobody has implemented IEC61131-3 in an entirely open manner.

I think the question to ask is: what does micropython bring to the table, and is it a fit for embedded control. And is IEC6131-3 the place for that to occur. Corporations generally won't embrace a technology, or buy a product, unless it is supported. If micropython has a support company, I can imagine it gaining traction in the corporate world at a faster pace than it is happening now.

The codesys and micropython licenses are not compatible. The micropython and OSCAT libraries may be compatible.

I'm not sure that micropython should be a IEC61131-3 language per se, because its capabilities are far beyond what IEC61131-3 solves. One question to ask is micropython complementary to iIEC61131-3, whilst still being an embedded environment. It may be that micropython and iec6113-3 environments should be peers. For example, on a raspberry pi, it should be possible to run micropython on one core, and openplc on another core and have them talk to each other by some mechanism (shared memory, mqtt, whatever).

The beauty of micropython is that it might be a perfect fit for oscat, and also for the IEC61131-3 world.

Perhaps that which IEC61131-3 can't do, (or do well), micropython can, or has the potential, to do.

Then there is the question of DCS vs PLC, (eg. honeywell tdc3000 versus modicon 984). Is micropython more suited to address issues that pertain to distributed control systems, and is it the perfect glue for creating distributed control systems.

Having familiarization with the codesys world might be advantageous to the micropython world.

User avatar
pythoncoder
Posts: 5956
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Re: Target audience for MicroPython?

Post by pythoncoder » Wed Jan 08, 2020 8:11 am

This seems primarily to be a commercial matter. Perhaps it should be raised with @Damien / George Robotics Ltd.
Peter Hinch
Index to my micropython libraries.

safetyfactorman
Posts: 28
Joined: Sat Jan 24, 2015 10:34 pm
Location: vancouver/kelowna/lethbridge

Re: Target audience for MicroPython?

Post by safetyfactorman » Mon Jan 13, 2020 12:54 am

https://www.researchgate.net/publicatio ... y_Research

Section 4 of the document gives a discussion of the architecture and design considerations of the openplc as per the design of Thiago Alves, which may be of benefit to the future direction of micropython.

I think that it would be beneficial for Damien George to take openplc under the umbrella of George Robotics, or to bring on board people with a background in IEC 61131-3.

stijn
Posts: 735
Joined: Thu Apr 24, 2014 9:13 am

Re: Target audience for MicroPython?

Post by stijn » Mon Jan 13, 2020 8:40 am

There are only limited amounts of time and money which can be spent on development, so allocating part of that for something of which it is completely unclear whether there is and will be enough interest for is tricky. I mean, you're the first person raising the issue here, and there's many other areas in which MicroPython also still needs work but for which there is more demand (well, visible demand). And, slightly related: how is adoption of OpenPLC in general these days? I meet with automotive/sensro industry people from time to time and most of them just run the standard PLC software of the brand which produces the PLC.

safetyfactorman
Posts: 28
Joined: Sat Jan 24, 2015 10:34 pm
Location: vancouver/kelowna/lethbridge

Re: Target audience for MicroPython?

Post by safetyfactorman » Thu Jan 16, 2020 4:59 am

Perhaps this question is better addressed at a later time.

The funder of micropython may be interested in the interfacing of micropython to other projects. IEC11631-3 is one. Perhaps homeassistant is another. Perhaps it will be up to some vendor to initiate this development.

From what I have gathered from looking at homeassistant, the paradigms that are driving that project may be worth evaluating and emulating. I just discovered it a couple days ago.

I don't think that it should be too hard to construct an interface between micropython and homeassistant. homeassistant already supports mqtt. i looked at openhab before, but it hasn't really gone anywhere. homeassistant appears to be exploding. micropython could do well to hitch a ride on the home assistant bandwagon.
Last edited by safetyfactorman on Thu Jan 16, 2020 3:59 pm, edited 1 time in total.

kevinkk525
Posts: 969
Joined: Sat Feb 03, 2018 7:02 pm

Re: Target audience for MicroPython?

Post by kevinkk525 » Thu Jan 16, 2020 6:31 am

safetyfactorman wrote:
Thu Jan 16, 2020 4:59 am
Perhaps homeassistant is another.
Inegrating with homeassistant requires a big framework and would basically be a different big project one has to maintain. That is unlikely to happen and would only serve a small group of people.

However, if someone needs homeassistant integration, I wrote a framework that does exactly that. You'll find it in my signature.
Kevin Köck
Micropython Smarthome Firmware (with Home-Assistant integration): https://github.com/kevinkk525/pysmartnode

Post Reply