Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
|
Forum Index : Microcontroller and PC projects : How Stable/Reliable is MMBasic
Page 1 of 2 | |||||
Author | Message | ||||
memberx Newbie Joined: 20/04/2012 Location: AustraliaPosts: 24 |
I am looking at using MMBasic in a controlling and remote embedded designs that will need to operate reliably in a continuous operation. One concern with MMBasic is Error handling and lack of watchdog reset timer implementation which are absolutely essential for most embedded control applications. I don't know if Pic32 internal watchdog timer can be manipulated using Poke and Peek in a startup MMBasic program? Alternatively, external watchdog timer could be implemented using cheap and simple Pic10 controller but that means additional hardware. I would appreciate comments from existing users of similar applications, particularly regarding long term stability/reliability. Cheers John |
||||
Grogster Admin Group Joined: 31/12/2012 Location: New ZealandPosts: 9307 |
I woulden't say that. Correct code that has been properly debugged and tested before installation, SHOULD give minimal problems. This is certainly not true if the system was rushed into service, or not given suitable bench-testing to see if any errors crop up. New Zealanders here will know all about that with the desasterous Novopay system that our Government pushed into service, even knowing that there were fundamental problems with the system - now it is a technical nightmare for all involved, and there are some very red faces - but I don't think the GOvernment gives a damn, as most Governments just spend, spend, spend, and let someone else fix the problems. ...but I digress... I have used lots of PICAXE chips in industrial situations, and they have no such watchdog features, and I have not had any issues with them. Nothing due to code, anyway. Once stable and debugged and bench-tested, I have chips out there running 24/7 for more then 3 years now, and not one single glitch. Personally, I think that watchdogs are a bit over-rated, IMHO... EDIT: If you wanted to test MMBASIC, why not grab one of those CMM demos that you can get from Geoff's website, crank it up, and leave it running for several days non-stop. Check in on it from time to time, and see if it has stopped running. As far as I know, MMBASIC is about as stable as any other BASIC at this point - Geoff puts in a HUGE amount of his time, perfecting the code and fixing any bugs that are found. Smoke makes things work. When the smoke gets out, it stops! |
||||
panky Guru Joined: 02/10/2012 Location: AustraliaPosts: 1101 |
Hi John, I am fully in agreement with Grogster here - I have had my Caravan Battery Monitor program running continuously for almost a month now inside the front boot of my van. No heat issues whatsoever and no programming issues. MMB already has file i/o ON ERROR capability where you might want to trap read or write fails etc. but as for error trapping an internal programming error I can,t see where you would want to catch this and continue operation? Certainly you might want to know about out of range or unexpected events but surely these should be catered for in good programming techniques? The only place I can see that general error trapping might be usefull is in program development and testing but good coding can minimise the problem. Just my thoughts as others have raised the idea for discussion before and it is good to discuss different folks take on the issue, Cheers, Doug. ... almost all of the Maximites, the MicromMites, the MM Extremes, the ArmMites, the PicoMite and loving it! |
||||
Grogster Admin Group Joined: 31/12/2012 Location: New ZealandPosts: 9307 |
I thought that the whole watchdog thing, was designed to catch and auto-reboot the system, if it crashes. Provided the code is debugged and the system is stable anyway, you should not NEED a watchdog thing, IMO. Kinda like a PIC32 version of Microsuck's "Automatically restart" on BSOD in Windoze. I don't know how you would make it work anyway. If the PIC32 HAD crashed for some reason, then the system has crashed, and the watchdog feature would also fall over - unless it runs in the background and is part of the PIC32 die? Perhaps it is... Smoke makes things work. When the smoke gets out, it stops! |
||||
memberx Newbie Joined: 20/04/2012 Location: AustraliaPosts: 24 |
Thanks Guys, To clarify some points. I am not looking for Error trapping and WDT (Watch Dog Timer)as part of development and de-bugging process. My application is for multiple embedded controllers that will operate continuously. In case of lock up or freeze an automatic Reset should be performed and AUTORUN program re initialized. There are no issues with loss of RAM contents during Reset process in this application. Reality is that embedded micro controllers may lock up at some point in time for various reasons apart from buggy software, and it may not be practical to reset them manually. That is the reason why micro controllers intended for more critical applications have built in WDT . This is why it would be valuable to have some feedback from existing users that have been using PIc32 and MMBasic continuously in similar application for a long period of time. Has anyone experienced any issues with MMBasic itself during long continuous operation? |
||||
greybeard Senior Member Joined: 04/01/2010 Location: AustraliaPosts: 161 |
If it's mission critical then use a wdt. If the system doesn't have one easily usable, add an external cct to provide the functionality. There's plenty of ccts out there for a simple wdt. If you've got multiple embedded controllers, interconnect them so they can monitor and reset ( if required ) each other. |
||||
memberx Newbie Joined: 20/04/2012 Location: AustraliaPosts: 24 |
Since PIC32 already has built in WDT. I would like to know if it is possible to use MMBasic PEEK/POKE to set up and periodically reset existing WDT, without building additional hardware? |
||||
BobD Guru Joined: 07/12/2011 Location: AustraliaPosts: 935 |
The PIC32 internal WDT is described in the PIC32 Family Reference Section 9. Watchdog Timer and Power-up Timer. I just had a quick read and it is all about loading registers. If the registers are memory mapped then peeking and poking may be possible unless the addresses are protected. Why don't you get the reference I described and read it yourself. I can't upload it here as it is copyright material. It's only about 200K and 30 pages. |
||||
MicroBlocks Guru Joined: 12/05/2012 Location: ThailandPosts: 2209 |
A watchdog is not meant for resetting buggy code although it will do that. It will be good to use a watchdog if the environment is dirty and with that i mean interference. An enclosure, shielding and a good power supply should keep that out but in practice it is impossible to filter everything. Use some pic's in a car and you will see things lock up without a trackable reason. Brownouts can be detected and reliable resets can be done by supervisory chips. They are small and cheap. Maybe the internal watchdog is already used by MMBasic itself, if not it would be a great addition. Microblocks. Build with logic. |
||||
Grogster Admin Group Joined: 31/12/2012 Location: New ZealandPosts: 9307 |
@ TZA - Interesting point. Smoke makes things work. When the smoke gets out, it stops! |
||||
panky Guru Joined: 02/10/2012 Location: AustraliaPosts: 1101 |
Hi guys, Without labouring the point, my experience is that the MM hardware is solid as a rock. Also, Geof's MMBasic is operationally solid. Yes, occaisional bugs may surface which Geof is absolutely great at addressing quickly. However, keep in mind that these are invariably interpretation issues and in no way indicative of any "instability" in MMBasic. Again, my experience of over 45 years of hardware and software is that instability in actual chips (be they old 74xx, early op amps,micros etc) is rare - it is invariably poor grounding, noisy or cruddy power or with micros, less then ideal coding. It is always a challenge (for me) to make the hardware and software of my projects as stable as the actual chips. From everthing I read, the PICs are solid- from experience, Geof's interpreter is solid(and if there is a bug, it's easily identified and worked around, until Geof comes up with a fix). So, without getting boring(which I may be, sorry), I think an MMwith solid clean code and a decent clean supply should be solid as a rock! It certainly is for me. Cheers, Doug. ... almost all of the Maximites, the MicromMites, the MM Extremes, the ArmMites, the PicoMite and loving it! |
||||
Grogster Admin Group Joined: 31/12/2012 Location: New ZealandPosts: 9307 |
Well said, sir! And you make very valid points. So, you would remember the old 741 op-amp then? Smoke makes things work. When the smoke gets out, it stops! |
||||
MicroBlocks Guru Joined: 12/05/2012 Location: ThailandPosts: 2209 |
They don't include watchdogs in mcu's for nothing. Even the small pic's have one on board. With automated stuff that is often embedded and out of easy reach a watchdog is your last defense. Maybe it resets once a year, but that would solve an immediate problem at that moment. Maybe a bug in the software only happens under very rare circumstances, not one piece of software ever written is bug free! Maybe it happens at 0:00 on a Saturday night. It is good that in those cases you are 'covered' by an automated reset. I have stuff that is used in vehicles. Often they are hidden under the dashboard or some other place. Completely out of reach. Watchdog kicks in on some vehicles every day a few times, on another vehicle never. The alternator in the car is the worst enemy and you can have a power supply that filters good and when looked on a scope, not a ripple to be seen. Until it is in the field with moisture, temperature and pressure changes, vibrations, corrosion, etc. The watchdogs keeps these things (in my case GPS/GPRS trackers) running for years and years. I think the oldest is about 8 years now. In Maximites case is it a necessity? Not when it sits on your desk, once you put it in an enclosure, sell it or use it as a solution for some automation, you really need the backup of a watchdog. Microblocks. Build with logic. |
||||
panky Guru Joined: 02/10/2012 Location: AustraliaPosts: 1101 |
Hey grogster, yea, 741 was great - a bit fussy on power noise, lots of variation in offset from manufacturer to manufacturer and could get unstable at higher frequencies but for all that, let hackers like me do analogue stuff quickly and easily that would have been nigh impossible with discreet components( or certainly beyond my capabilities ) Sorry to get a bit off topic. Cheers, Doug. ... almost all of the Maximites, the MicromMites, the MM Extremes, the ArmMites, the PicoMite and loving it! |
||||
Grogster Admin Group Joined: 31/12/2012 Location: New ZealandPosts: 9307 |
With PICAXE, I have NEVER heard them mention that the chips have watchdog ability. Just how global is this across PIC's? I agree - but we all do the best we can at the time, and for the most part, I have managed to survive just fine in the PIC world WITHOUT any form of watchdog. Just my 2c... Well, that much IS true - PIC's really don't like car's alternator supply - they tend to be very noisy indeed, but you can then put LC power input filters in line with the +v to filter most of the crud off. For every situation, there is a solution. Smoke makes things work. When the smoke gets out, it stops! |
||||
MicroBlocks Guru Joined: 12/05/2012 Location: ThailandPosts: 2209 |
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=e n019863 It has 6 pins cost about 50 cent 0.375Kb flash 16 bytes! of ram one 8 bit timer and . . . . a watchdog timer. And believe me, if PIC chips did not have a watchdog timer they would not sell a single chip to manufacturers of products. The circuit is so simple it is included on all of them. (I am not 100% sure there is always an exception but every single one i ever used and looked at has it.) Microblocks. Build with logic. |
||||
djuqa Guru Joined: 23/11/2011 Location: AustraliaPosts: 447 |
PIC10F200 Clickable link VK4MU MicroController Units |
||||
Grogster Admin Group Joined: 31/12/2012 Location: New ZealandPosts: 9307 |
OK - interesting.... Smoke makes things work. When the smoke gets out, it stops! |
||||
isochronic Guru Joined: 21/01/2012 Location: AustraliaPosts: 689 |
Most commercial jobs are likely to specify a default to safe operation if there is a problem. And it is simple to periodically reset the watchdog timer if the software is running properly. Using one also makes the job spec address the issues of safe operation in unforeseen situations. <edit> In fact unless there is some definition of what is correct operation, and the software is testing for that as it runs, you don't know it is running correctly. A slow memory leak can take a long time to appear. |
||||
JohnS Guru Joined: 18/11/2011 Location: United KingdomPosts: 3802 |
I've used WDTs for years - whenever it seemed it MIGHT matter. Started with a uC that did not have one so external circuitry was added (not by me). Can't be too tough to add it in to MMBasic, just ask Geoff for the source if it can't be done in the BAS. Hardly ever being reset by a WDT = yes but when it saves you it's great!! John |
||||
Page 1 of 2 |
Print this page |