Page 1 of 1

Overall stability

Posted: Mon Jul 31, 2017 9:42 am
by flindt
Hi

Does anyone know have examples / references to instances of uPy being used in commercial products?
We are building products that will be running 24/7 for years on end, and while uPy will offer speed of implementation that are orders of magnitudes higher than plain C, I am not sure how to evaluate stability.

How would you guys feel about this? Is uPy ready for production?

cheers
Flindt

Re: Overall stability

Posted: Mon Jul 31, 2017 11:43 am
by kaybee
What is your hardware platform? My experience has been that the more established and more popular a board is, the better the stability. My ESP8266 boards seem to be quite stable, the ESP32 boards not quite so just as a general impression. I'm an electronics hobby sort of person so I haven't had a lot of 24/7 extended run times but have certainly had things running for multiple days.

Re: Overall stability

Posted: Mon Jul 31, 2017 12:47 pm
by flindt
For testing we are using an STM32F429DISC1.
And we will most likely be using the STM32F429 for the product.

Re: Overall stability

Posted: Mon Jul 31, 2017 1:20 pm
by graemef
I have been using uPy on the STM32F429DISCO for about a month and the only thing I have noticed stability wise is that when power is removed while the PYBFLASH drive is mounted, then more often than not the file main.py disappears and gets replaced with the default main.py.

So this is a sympton of unsafe ummounting as with other operating systems, but I guess it could happen if deployed as a product.

Haven't seen this problem when unmounting safely i.e ejecting the mounted partition.

Re: Overall stability

Posted: Tue Aug 01, 2017 7:18 am
by pythoncoder
@graemef The issue with mounting the board's filesystem on a PC is well known and is a property of USB's mass storage mode which isn't designed for multi-user access. I never use it and disable MSC mode in boot.py.

@flindt In my experience the Pyboard is highly reliable. I have a project which has four Pyboards running 24/7 - they are battery powered and wake on an hourly basis. Two of them are in unheated environments. In about 18 months operation none have failed. I appreciate that a hobby project knocked together by a retired engineer is no match for a commercial deployment - perhaps someone else will step forward.

As others have said, newer ports may be less solid than the Pyboard. A year ago the ESP8266 was very flaky. Now it seems reliable.

Re: Overall stability

Posted: Tue Aug 01, 2017 8:10 am
by flindt
@graemef
Ok. I will keep this in mind. Our product will no have USB available to the user, so this problem should be limited to development.

@pythoncoder
Thanks for the input. 4x18mths is still a big jump from my ½ hour tests :)

Re: Overall stability

Posted: Tue Aug 01, 2017 8:22 am
by pythoncoder
Over the last three years I've probably done more with the Pyboard than most - I don't think I've ever had one crash without the cause being traced to my own ineptitude ;)

Re: Overall stability

Posted: Tue Aug 01, 2017 8:32 am
by stijn
I never ran programs more than a couple of days but in my experience if there's a bug it's discovered soon, like in the first hour of running, after a couple of garbage collector runs. Exceptions would be if you have code paths which don't get used within an hour or so - but if you plan to run on such long term you should have unittested those to the max already. And of course there can be programmer errors like depending on date/running time but that's not related to uPy's stability.

Re: Overall stability

Posted: Wed Aug 02, 2017 9:42 am
by pythoncoder
Hmm. <Recalls weeks working 12 hour shifts hunting down bugs which cropped up once per blue moon...>

In any event these observations are common to all realtime systems.

Re: Overall stability

Posted: Thu Apr 19, 2018 7:20 pm
by jgriessen
I'm debugging a new board similar to G30TH where I have confirmed the hardware with a C program to flash different GPIOs. That C language test, miniblink using libopencm3, found one pin shorted by bad soldering of my prototype. What do you recommend to remove and simplify down so I can get a solid test using micropython? My crystal oscillator is running well at 16MHz.

You have recommended using the repl on a uart and disabling USB, so I will do that.
What else?