MicroPython on ESP8266 Kickstarter

All ESP8266 boards running MicroPython.
Official boards are the Adafruit Huzzah and Feather boards.
Target audience: MicroPython users with an ESP8266 board.
Damien
Site Admin
Posts: 647
Joined: Mon Dec 09, 2013 5:02 pm

Re: MicroPython on ESP8266 Kickstarter

Post by Damien » Fri Feb 26, 2016 6:15 pm

@kfricke Thanks! Glad you liked the update. It took me longer than expected to write and get the wording correct :)

danielm
Posts: 167
Joined: Mon Oct 05, 2015 12:24 pm

Re: MicroPython on ESP8266 Kickstarter

Post by danielm » Sun Feb 28, 2016 10:50 am

I'm considering migration from CC3200 to ESP8266 in my laser 3D printer controller project (http://forum.micropython.org/viewtopic.php?f=5&t=966).

I would like to ask ESP8266 MicroPython port developers to clarify following questions:

1. How many GPIOs and SPI/I2C/UART interfaces will be supported?

2. There are modules (12D/E, 14) with additional 3rd row available in the bottom part of it. Will these pins be usable as GPIOs and peripheral interfaces?

3. In case of the controller following pins/interfaces are necessary:
Mandatory:
1x SPI (SCK, MOSI, MISO) + 4x GPIOs as SPI NSS signal = 7 pins
1x SD (CMD, CLD, DAT0) = 3 pins (used for data, but python scripts may also be stored here)
1x UART = 2 pins
Highly desirable:
1x I2C (SDA, SCL) = 2 pins
Optional:
4x additional GPIOs = 4 pins
1x additional UART = 2 pins
Which of these requirements could be satisfied with MicroPython port for ESP8266?

4. Could you please release default pinout (preferably for modules 12D/E, 14) so I can design a board similar to the one in the attachment? Please state which pin(s) will be used for boot mode selection so I can design proper header for boot mode selection jumper(s).

5. Please recommend reliable ESP8266 module suppliers with reasonable pricing for:
a) small quantities (preferably in EU)
b) production quantities
Attachments
prototype_v2_MCU_both_sides_small.png
prototype_v2_MCU_both_sides_small.png (180.05 KiB) Viewed 26629 times

User avatar
Smrtokvitek
Posts: 7
Joined: Sun May 10, 2015 9:09 pm
Location: Czech Republic
Contact:

Re: MicroPython on ESP8266 Kickstarter

Post by Smrtokvitek » Mon Feb 29, 2016 8:46 pm

This is my first kickstarter project I'm supporting, really looking forward to it and 26k is around the corner. :twisted:

If the ESP32 will be good it would be nice to have a support for it in the future too. :)

mianos
Posts: 84
Joined: Sat Aug 22, 2015 6:42 am

Re: MicroPython on ESP8266 Kickstarter

Post by mianos » Mon Feb 29, 2016 9:21 pm

26K! Asyncio FTW!

Damien
Site Admin
Posts: 647
Joined: Mon Dec 09, 2013 5:02 pm

Re: MicroPython on ESP8266 Kickstarter

Post by Damien » Mon Feb 29, 2016 10:56 pm

@danielm, regarding your questions, I'll try to answer them as best I can:

1. The raw ESP8266 chip has 17 GPIO plus 1 ADC input. GPIO 0-15 are standard GPIO. GPIO 16 is used for deep sleep. The ADC input is separate. The number of GPIO available depends on the ESP module you use. At most you get 10, plus GPIO16 (which is not really that useful as general purpose IO). Note that 6 IO pins (of the original 17) are taken by the flash interface and are basically unusable. MicroPython will support all available GPIO, so that's 10+1. SPI and I2C will have software (bit-bang) versions so there can be as many of those interfaces as you have pins available for them. There is only 1 hardware UART that has tx and rx (plus another that has just tx).

2. Yes. Bottom row will be available if your module has it.

3. Your mandatory pin list contains 12 pins. There are only 10 available (excluding GPIO16). So that won't fit your requirements.

4. Pinout is simple: MicroPython will expose pins as their original number, eg machine.Pin(0), machine.Pin(15), etc. Hardware UART is on GPIO1/GPIO3 for tx/rx. Hardware SPI peripheral is on GPIO12/13/14/15 for MISO/MOSI/SCK/CS. I2C is software and can be on any pins.

5. I don't know of any good suppliers in the EU. You will need to go to China to get them.

Damien
Site Admin
Posts: 647
Joined: Mon Dec 09, 2013 5:02 pm

Re: MicroPython on ESP8266 Kickstarter

Post by Damien » Mon Feb 29, 2016 10:57 pm

Smrtokvitek wrote:This is my first kickstarter project I'm supporting, really looking forward to it and 26k is around the corner.
Thank you for the support! Hope you enjoy the ride of backing a Kickstarter project!

danielm
Posts: 167
Joined: Mon Oct 05, 2015 12:24 pm

Re: MicroPython on ESP8266 Kickstarter

Post by danielm » Tue Mar 01, 2016 10:06 am

@Damien, thanks a lot for your detailed answer.

I think I might be able to make minimal implementation (single laser source) with 11 pins. If I do not need to use deep sleep mode, can I use GPIO16 as digital output?

Is it possible to have two SPI objects created at the same time with the same MISO/MOSI/SCK pins and different CS pins? Or do I have to deinit current SPI object and init another one when I need to communicate with another SPI device?

pfalcon
Posts: 1155
Joined: Fri Feb 28, 2014 2:05 pm

Re: MicroPython on ESP8266 Kickstarter

Post by pfalcon » Tue Mar 01, 2016 3:26 pm

danielm wrote: I think I might be able to make minimal implementation (single laser source) with 11 pins. If I do not need to use deep sleep mode, can I use GPIO16 as digital output?
Yes, you can. One well-known ESP8266 board has a LED on GPIO16 (which, fairly, speaking not too good for deep sleep and low-power usage).
Is it possible to have two SPI objects created at the same time with the same MISO/MOSI/SCK pins and different CS pins? Or do I have to deinit current SPI object and init another one when I need to communicate with another SPI device?
How this should work is that there's single SPI bus object, and you can control CS of a particular device yourself (i.e. CS signal doesn't belong to SPI bus, it belongs to a particular peripheral device). Such details may be not yet well spelled in MicroPython HW API spec, because it's work in progress. And what you just read is my outlook at the matter, but as you see, that's exactly what you need in your need. So, I'm going to pursue that idea, though final OO interface may be a bit different, based on discussion (and debating) with other developers.



I also would like to remind, that the officially recommended board for the project is Adafruit Feather. Adafruit has distributors in EU. Mind again that we generally support ESP8266 chip, so any module based on it should work. But we selected Adafruit Feather for production testing. And mind that for questions with a particular module/board you purchased, you would need to go to your supplier as the 1st choice. That's why we recommend Adafruit - because we believe that they can answer any questions in the best way. As an example, Adafruit Feather ESP8266 board manual is 41 pages, so should cover many questions already. For comparison, I had hard time finding where an LED is connected on one well-known board mentioned above - the pin diagram for that board simply doesn't show/list any LEDs. And then I was surprised to find one of them on GPIO16, because, as I mentioned, that's very likely affects low-power usage. Did I mention that it was tough choice to skip creating dedicated ESP8266 board for MicroPython and go for software-only project? I think this was right decision, as board design would delay both project start up and results delivery. But I still have that glimpse of feeling that we missed opportunity to do something good hardware-wise to ESP8266 community, in particular, a board more oriented for IoT. Well, you can't have it all - at once. We'll see how it goes...
Awesome MicroPython list
Pycopy - A better MicroPython https://github.com/pfalcon/micropython
MicroPython standard library for all ports and forks - https://github.com/pfalcon/micropython-lib
More up to date docs - http://pycopy.readthedocs.io/

vfl68
Posts: 4
Joined: Sun Feb 28, 2016 9:54 am

Re: MicroPython on ESP8266 Kickstarter

Post by vfl68 » Tue Mar 01, 2016 4:25 pm

Hi
I don't think I'm a robot even if I love R2D2 and Asimov's stories. ;)

I'm doing some Python code on the Raspberry but I'm new on MicroPython and ESP8266.
I love the idea of mixing MicroPython and ESP8266, that's why I decided to support this project. My first kickstart support.

I'll be using the ESP8266 board from Olimex https://www.olimex.com/Products/IoT/MOD ... e-hardware. It's an EU supplier. It's missing an USB, but a lot of pins are available.

I'm mainly interrested in the MQTT module. I'm still thinking about the second one.

User avatar
kfricke
Posts: 342
Joined: Mon May 05, 2014 9:13 am
Location: Germany

Re: MicroPython on ESP8266 Kickstarter

Post by kfricke » Tue Mar 01, 2016 5:37 pm

First of all... Congrats for finishing this fully stretched Kickstarter campaign!

Besides an Huzzah feather, other ESP boards, the build environment and stuff... what else can one prepare for testing your hard work?

Post Reply