[Microbit-Python] SPI APIs on BBC micro:bit and ESP8266

Radomir Dopieralski radomir at dopieralski.pl
Sun Nov 20 12:19:49 EST 2016


You sometimes get unreliable transmission if your use a different
spi mode than the device expects (it then reads the value from the
bus at the wrong moment, and can read it when it is changing).


On Sun, 20 Nov 2016 17:06:52 +0000
Nevil Hunt <nevil.hunt at hotmail.co.uk> wrote:

>  Marc-Andre,
> 
> 
> As regards...
> 
> 
> * the connection is rather unreliable: we had lots of data loss or
>   data corruption, with bytes not being transmitted or with lost bits
>   - we tried several different baud rates without success
> 
> 
> I'd certainly be interested if you can find out why.
> 
> I hooked a micro:bit up to a SPI RAM about a month ago and was able
> to write then read back from it, however it was a bit unreliable as
> sometimes the 'Reads' returned corrupted data.
> 
> From my recollection it looked like it was the 'Write' that was
> getting corrupted as repeated 'Reads' always returned the same
> corrupted data.
> 
> I used the 'Bus Pirate' to try and debug it but I wasn't able to
> determine whether it was a h/w or s/w problem...then I ran out of
> time and haven't returned to it!
> 
> I have however been in touch with Paul from Microsoft who has a
> micro:bit talking to an SD Card with s/w written in 'C' so it looks
> like the micro:bit SPI interface can be made to work!
> 
> 
> Cheers,
> 
> 
> Nevil
> 
> 
> ________________________________
> From: Microbit <microbit-bounces+nevil.hunt=hotmail.co.uk at python.org>
> on behalf of M.-A. Lemburg <mal at egenix.com> Sent: 20 November 2016
> 15:04 To: For Pythonic MicroBit related discussions
> Subject: [Microbit-Python] SPI APIs on BBC micro:bit and ESP8266
> 
> Hello,
> 
> over the weekend, we tried to get a connection from a BBC Microbit
> to an ESP8266, both running the latest MicroPython for the resp.
> platform, established via SPI.
> 
> We found several problems with this:
> 
> * the SPI APIs on the ESP8266 are all non-blocking and return
>   whatever is currently in the buffer (using 0x00 for missing data
>   and 0xff in case no connection is available)
> 
> * the SPI APIs on the Microbit are all blocking, only returning
>   if all data is sent / received
> 
> * the connection is rather unreliable: we had lots of data loss or
>   data corruption, with bytes not being transmitted or with lost bits
>   - we tried several different baud rates without success
> 
> On the plus side, we did get SPI to work fine between two Microbits,
> but that's not really what we were after, since we wanted to get
> one of the Microbits in our mesh network connected to a WLAN and
> work as gateway.
> 
> The blocking nature of the MB APIs make it difficult to write
> interfaces which aim at being fault tolerant and work as
> gateways. Having non-blocking versions would be better for this
> sort of application.
> 
> Are there better ways to connect MBs and ESP8266 ?
> 
> We also tried I2C, but gave up, since the pins on the MB for
> accessing I2C were too tiny to connect to without a breakout
> board.
> 
> BTW: We were impressed by the new radio module. Getting MBs
> to connect using these low level radios is really easy.
> 
> Cheers,
> --
> Marc-Andre Lemburg
> eGenix.com
> 
> Professional Python Services directly from the Experts
> >>> Python Projects, Coaching and Consulting ...
> >>> http://www.egenix.com/  
> 
> eGenix.com - Professional Python Software, Skills and
> Services<http://www.egenix.com/> www.egenix.com
> eGenix™ is your leading partner for Python and database focused
> custom projects, services, coaching, consulting and products. We
> implement business ideas ...
> 
> 
> 
> >>> Python Database Interfaces ...
> >>> http://products.egenix.com/  
> 
> eGenix.com Products<http://products.egenix.com/>
> products.egenix.com
> eGenix.com offers a large portfolio of products for Python and
> Python-based applications, many of them focusing on database
> connectivity.
> 
> 
> 
> >>> Plone/Zope Database Interfaces ...
> >>> http://zope.egenix.com/  
> 
> eGenix.com: eGenix.com Plone & Zope Products<http://zope.egenix.com/>
> zope.egenix.com
> Plone/Zope Database Connectivity. eGenix.com has been actively
> working in the field of Python database connectivity for more than 15
> years. Using our Zope and Plone ...
> 
> 
> 
> ________________________________________________________________________
> 
> ::::: Try our mxODBC.Connect Python Database Interface for
> free ! ::::::
> 
>    eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
>     D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
>            Registered at Amtsgericht Duesseldorf: HRB 46611
>                http://www.egenix.com/company/contact/
> 
> eGenix.com: Company: Contact<http://www.egenix.com/company/contact/>
> www.egenix.com
> We provide various ways of contacting eGenix.com depending on what
> area of interest you have. EMail. General Questions: info at egenix.com
> Support: support at egenix.com
> 
> 
> 
> _______________________________________________
> Microbit mailing list
> Microbit at python.org
> https://mail.python.org/mailman/listinfo/microbit
> 
> Microbit Info Page -
> Python<https://mail.python.org/mailman/listinfo/microbit>
> mail.python.org The MicroBit is a small programmable device for
> children created by the BBC (in partnership with various other
> organisations, such as the PSF).
> 
> 
> 



-- 
Radomir Dopieralski


More information about the Microbit mailing list