[Microbit-Python] Lock-up due to some combination of radio and pwm.

Nicholas H.Tollervey ntoll at ntoll.org
Fri Jan 27 06:04:49 EST 2017


Hi,

I'm hope to have a release of the editors with an updated runtime come
out relatively soon. Unfortunately, it's a case of lining things up and
making sure everything is ready / tested and those people I'm relying on
to do something actually do it.

N.

On 27/01/17 10:27, David Booth via Microbit wrote:
> Hi Nevil, Damien, Mark
> 
> Re Micro Python lock up when Radio and PWM output used on micro:bit.
> 
> Damien found that my firmware was out of date and sent me a fix which
> involved merging two hex file.  Unfortunately my programming skills were
> not up to performing this merger and so David Whale sent me this idiots
> guide (me) to producing a microPython editor on my PC screen which
> incorporated Damien's fix but enabled me to write any microPython script
> as I would in the editor I would have got via microbit.org
> <http://microbit.org>. This solution written by Nicholas Tollervey is
> given at the end of this email.  This worked. So I recommend you follow
> the instructions but remember if you do not update your new editor, over
> time it might get out of date again.
> 
> *Question for Damien*
> *
> *
> *For people like me with older micro:bits and poor C skills, will there
> come a time when linking into the microPython editor via
> www.microbit.org <http://www.microbit.org> will give them an editor that
> will by-pass this problem or should the microPython documentation warn
> them that if they want to use radio and PWM to use the following procedure?*
> *
> *
> Regarding Ticket 583  https://support.microbit.org/helpdesk/tickets/583
> <https://support.microbit.org/helpdesk/tickets/583>
> 
> Ok, so I have a simple scheme for how you can fix this, the idea came
> from Nicholas Tollervey late last night!
> 
> 1. go to: https://github.com/bbcmicrobit/PythonEditor
> <https://github.com/bbcmicrobit/PythonEditor>
> 
> 2. press the CLONE OR DOWNLOAD button
> 
> 3. Choose the DOWNLOAD ZIP option
> 
> This will download a complete web based python editor.
> 
> 4. Unzip this on your computer - you should now have a PythonEditor folder
> 
> 5. get Damien's patched .hex file from
> here: https://micropython.org/resources/firmware/microbit-micropython.hex <https://micropython.org/resources/firmware/microbit-micropython.hex>
> 
> 6. rename Damien's .hex file as 'firmware.hex' and replace the
> firmware.hex that is in the PythonEditor directory that is now on your
> computer with this patched version.
> 
> 7.  double click on editor.html - this should launch a complete python
> editor web page in your browser.
> 
> 8. Paste your code into this editor window, then press the DOWNLOAD
> button. This will generate a .hex file that has your script and Damien's
> latest MicroPython 'firmware' inside it (which apparently has the PWM
> fix inside it that he was talking about)
> 
> 9. Test your code again to see if the PWM lasts for longer, and report
> back to us on how this goes?
> 
> Hope this helps!
> 
> 
> 
> David Whale
> micro:bit support
> http://microbit.org/team
> 
> 
> On 26 January 2017 at 18:14, Nevil Hunt <nevil.hunt at hotmail.co.uk
> <mailto:nevil.hunt at hotmail.co.uk>> wrote:
> 
>     Hi David/Mark/Damien,
> 
> 
>     Are there any updates on this lock-up issue?
> 
> 
>     By the way if you or anyone else on this mailing list is at the BETT
>     Show tomorrow (Friday) then I will be on the micro:bit stand for at
>     least part of the day so come over and say 'hello'!
> 
> 
>     Cheers,
> 
> 
>     Nevil
> 
> 
> 
>     ------------------------------------------------------------------------
>     *From:* Microbit
>     <microbit-bounces+nevil.hunt=hotmail.co.uk at python.org
>     <mailto:hotmail.co.uk at python.org>> on behalf of David Booth via
>     Microbit <microbit at python.org <mailto:microbit at python.org>>
>     *Sent:* 31 December 2016 23:17
>     *To:* For Pythonic MicroBit related discussions
>     *Cc:* David Booth
>     *Subject:* Re: [Microbit-Python] Lock-up due to some combination of
>     radio and pwm.
>      
>     Hi Mark
>     I have been having problems getting github to accept my input.  It
>     keeps asking me to verify my email address which I have done several
>     times.  So I have now re registered and submitted a comment.  
>     However it did not let me send .hex or .py files
> 
>     However you should know that in the interim Damien George has my hex
>     files and has reproduced the problem.  I have sent him my .py files
>     so he can investigate further.
> 
>     Happy New Year
>     David
> 
>     On 30 December 2016 at 12:04, Mark Shannon <mark at hotpy.org
>     <mailto:mark at hotpy.org>> wrote:
> 
>         Hi Nevil and David,
> 
>         Could you please submit an issue for this.
>         https://github.com/bbcmicrobit/micropython/issues/new
>         <https://github.com/bbcmicrobit/micropython/issues/new>
> 
>         It is frustrating knowing that there may be a problem, but not
>         being able to fix it.
>         All I need is a brief description of what goes wrong and, most
>         importantly, some code that causes the problem.
> 
>         Cheers,
>         Mark.
> 
>         On 23/12/16 18:44, Nevil Hunt wrote:
> 
>             Hi David,
> 
> 
>             I've also encountered some similar symptoms this week, namely a
>             micro:bit locking up such that a reset doesn't bring it back
>             to life.
>             Only a power cycle brings it back to life.
> 
> 
>             My set-up has some similarities with yours in that I'm
>             sending Radio
>             commands from one micro:bit to another using the suggested
>             method of
>             "radio.send(str(x))" with the receiving micro:bit locking up
>             from time
>             to time. However I think the lockups might not be due to the
>             Radio
>             commands. I too have the receiving micro:bit driving pins
>             with PWM (in
>             my case Servos) and with a bit of experimenting it looks
>             like it might
>             be these "pin1.write_analog(x_angle)" commands that are
>             causing the
>             lock-ups since by commenting out these "write_analog"
>             commands (but with
>             all the Radio commands still running) it hasn't locked up in
>             over an
>             hour. By comparison, with the "write_analog" commands still
>             active, ~5
>             mins is the longest it runs without locking up.
> 
> 
>             Maybe you could see if commenting out the "write_analog"
>             commands on
>             your setup has the same effects. It may not stop other
>             errors but I'd be
>             interested to see if it stops the lock-ups.
> 
> 
> 
>             Cheers,
> 
> 
>             Nevil
> 
> 
> 
> 
>             ------------------------------------------------------------------------
>             *From:* Microbit
>             <microbit-bounces+nevil.hunt=hotmail.co.uk at python.org
>             <mailto:hotmail.co.uk at python.org>>
>             on behalf of David Booth via Microbit <microbit at python.org
>             <mailto:microbit at python.org>>
>             *Sent:* 23 December 2016 15:09
>             *To:* For Pythonic MicroBit related discussions
>             *Cc:* David Booth
>             *Subject:* Re: [Microbit-Python] List of error codes and
>             their meanings
> 
>             Hi Damien
> 
>             I have a related question regarding run time errors in micro
>             Python.
> 
>             I have three micro:bits. The first I call Rx because it
>             basically
>             receives x axis acceleration data in string form, via the
>             radio from the
>             other two micro:bits Tx1 and Tx2.  Rx poles Tx1 then Tx2
>             with 100 ms
>             gaps. Nicholas Tollervey showed me how to avoid the Type
>             None error when
>             converting the string to an integer in RX and I now have
>             three simple
>             script which enable Rx to drive pins P0 (from Tx1) and P8
>             (from Tx2)
>             with a PWM signal.
> 
>             However after running perfectly well for anything from 10
>             seconds to a
>             minute Rx freezes. On the very few occasions an error
>             message has
>             scrolled it appears to be saying that "received is not a
>             string" and
>             possibly there is a value error.  However on 98% of
>             occasions Rx is
>             frozen to the extent it cannot report the error. Since
>             spurious errors
>             do not worry me, provided Rx continues with the polling
>             loop, is it
>             possible to suppress catching run time errors and if it is
>             possible is
>             it likely that the While loop would continue?
> 
>             Sometimes pressing reset restarts the system but sometimes I
>             have to
>             remove the battery.
> 
>             Thank you  and a Happy Christmas
>             David Booth
>             ps will you be at BETT?
> 
> 
>             On 20 December 2016 at 23:31, Damien George
>             <damien.p.george at gmail.com <mailto:damien.p.george at gmail.com>
>             <mailto:damien.p.george at gmail.com
>             <mailto:damien.p.george at gmail.com>>> wrote:
> 
>                 There are many exceptions and they can occur for many
>             reasons.  Almost
>                 all are based on CPython and the exceptions form a
>             hierarchy.  Eg,
>                 indexing a list with an out-of-bounds index will raise
>             IndexError,
>                 which derives from LookupError, which derives from
>             Exception, which
>                 derives from BaseException.
> 
>                 For a list of implemented exceptions in MicroPython see
>                
>             https://github.com/bbcmicrobit/micropython/blob/master/source/py/objexcept.c#L192-L280
>             <https://github.com/bbcmicrobit/micropython/blob/master/source/py/objexcept.c#L192-L280>
>                
>             <https://github.com/bbcmicrobit/micropython/blob/master/source/py/objexcept.c#L192-L280
>             <https://github.com/bbcmicrobit/micropython/blob/master/source/py/objexcept.c#L192-L280>>
> 
>                 On 21 December 2016 at 08:35, David Whale
>                 <david at thinkingbinaries.com
>             <mailto:david at thinkingbinaries.com>
>             <mailto:david at thinkingbinaries.com
>             <mailto:david at thinkingbinaries.com>>> wrote:
>                 > Is there anything in the docs that lists all the errors
>                 (exceptions) that
>                 > can occur in MicroPython and what they mean?
>                 >
>                 > The closest I found was this:
>                 >
>                 >
>                
>             https://github.com/bbcmicrobit/micropython/blob/a20fbe82c919cea9519ce5a1140103f518b51caa/inc/py/qstrdefs.h
>             <https://github.com/bbcmicrobit/micropython/blob/a20fbe82c919cea9519ce5a1140103f518b51caa/inc/py/qstrdefs.h>
>                
>             <https://github.com/bbcmicrobit/micropython/blob/a20fbe82c919cea9519ce5a1140103f518b51caa/inc/py/qstrdefs.h
>             <https://github.com/bbcmicrobit/micropython/blob/a20fbe82c919cea9519ce5a1140103f518b51caa/inc/py/qstrdefs.h>>
>                 >
>                 >
>                 > Thanks
>                 >
>                 > David
>                 >
>                 > microbit.org-ticket: 460
>                 >
>                 >
>                 >
>                 > _______________________________________________
>                 > Microbit mailing list
>                 > Microbit at python.org <mailto:Microbit at python.org>
>             <mailto:Microbit at python.org <mailto:Microbit at python.org>>
>                 > https://mail.python.org/mailman/listinfo/microbit
>             <https://mail.python.org/mailman/listinfo/microbit>
>                 <https://mail.python.org/mailman/listinfo/microbit
>             <https://mail.python.org/mailman/listinfo/microbit>>
>                 >
>                 _______________________________________________
>                 Microbit mailing list
>                 Microbit at python.org <mailto:Microbit at python.org>
>             <mailto:Microbit at python.org <mailto:Microbit at python.org>>
>                 https://mail.python.org/mailman/listinfo/microbit
>             <https://mail.python.org/mailman/listinfo/microbit>
>                 <https://mail.python.org/mailman/listinfo/microbit
>             <https://mail.python.org/mailman/listinfo/microbit>>
> 
> 
> 
> 
>             _______________________________________________
>             Microbit mailing list
>             Microbit at python.org <mailto:Microbit at python.org>
>             https://mail.python.org/mailman/listinfo/microbit
>             <https://mail.python.org/mailman/listinfo/microbit>
> 
>         _______________________________________________
>         Microbit mailing list
>         Microbit at python.org <mailto:Microbit at python.org>
>         https://mail.python.org/mailman/listinfo/microbit
>         <https://mail.python.org/mailman/listinfo/microbit>
> 
> 
> 
> 
> 
> _______________________________________________
> Microbit mailing list
> Microbit at python.org
> https://mail.python.org/mailman/listinfo/microbit
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: OpenPGP digital signature
URL: <http://mail.python.org/pipermail/microbit/attachments/20170127/c41be1fd/attachment.sig>


More information about the Microbit mailing list