Anyone interested in Arduino Environment?

User avatar
ESP_Me-no-dev
Posts: 80
Joined: Mon Jan 04, 2016 6:30 pm

Anyone interested in Arduino Environment?

Postby ESP_Me-no-dev » Thu Jan 07, 2016 11:37 am

I've translated over just about everything over from ESP8266.

I have the following hardware working:
HSPI and VSPI SPI busses attached to any pin
UART 0 and 1 (0 is attached to pins 1 and 3) UART 1 can be attached to any pins
pinMode/digitalRead/digitalWrite/attachInterrupt
analogRead (duh) SDK functions are exposed (same goes for touch pads)
4 types of PWM! SigmaDelta, LEDC_HF, LEDC_LF and the old style based on timer (currently the one attached to analogWrite)
ccompare and 1 hardware timers with Interrupts
pinMatrix functions for easy signal routing (those are mostly the same as the ones in the driver lib)

Mostly everything should work the same as on ESP8266. Some methods are removed from the ESP and WiFi classes as they are not available anymore.
UDP Multicasts are not build into lwip yet so any service that depends on them would not work (mDNS, SSDP and such).
ArduinoOTA is also not working yet as it requires different rom layout.

Toolchains that I have tested and are working:
Mac OS X: http://static.ficeto.com/xtensa-esp108-elf-osx.tar.gz
Linux 32: http://static.ficeto.com/xtensa-esp108- ... x32.tar.gz
Linux 64: http://static.ficeto.com/xtensa-esp108- ... x64.tar.gz
Windows 32: http://static.ficeto.com/xtensa-esp108-elf-cygwin32.zip << Needs https://cygwin.com/setup-x86.exe installed (defaults are fine) and "C:\cygwin\bin" added to Path
Windows 64: http://static.ficeto.com/xtensa-esp108-elf-cygwin64.zip << Needs https://cygwin.com/setup-x86_64.exe installed (defaults are fine) and "C:\cygwin64\bin" added to Path

To compile sketches you need one of the toolchains above or to build it yourself. The toolchain should go inside the "ESP31B/tools" folder.
For Windows, Python2.7 needs to be installed and in Path.

I include inside my Async TCP and Web server as well (regular blocking server and client are there also) for those that want to run full speed and handle more than one client at a time.

https://github.com/me-no-dev/ESP31B
Last edited by ESP_Me-no-dev on Mon Jan 18, 2016 11:38 pm, edited 5 times in total.

xatax79
Posts: 5
Joined: Mon Dec 14, 2015 8:44 am

Re: Anyone interested in Arduino Environment?

Postby xatax79 » Thu Jan 07, 2016 12:03 pm

Hi,

Can you deploy also for ESP32 ?

Br, Xatax

User avatar
ESP_Me-no-dev
Posts: 80
Joined: Mon Jan 04, 2016 6:30 pm

Re: Anyone interested in Arduino Environment?

Postby ESP_Me-no-dev » Thu Jan 07, 2016 12:14 pm

When it's available :) all we currently have is ESP31B (look at markings at the module).
So it works on what we all have, will rework it for ESP32 (hopefully together with @igrr) when it's released.

User avatar
DAFlippers
Posts: 22
Joined: Sat Nov 14, 2015 9:20 am

Re: Anyone interested in Arduino Environment?

Postby DAFlippers » Thu Jan 07, 2016 12:59 pm

I'm definitely interested.

David

dendad
Posts: 1
Joined: Thu Jan 07, 2016 1:35 pm

Re: Anyone interested in Arduino Environment?

Postby dendad » Thu Jan 07, 2016 2:14 pm

I would like the Arduino environment too.
That makes it easier as I use a Mac.
Dendad.

User avatar
ESP_Me-no-dev
Posts: 80
Joined: Mon Jan 04, 2016 6:30 pm

Re: Anyone interested in Arduino Environment?

Postby ESP_Me-no-dev » Thu Jan 07, 2016 2:53 pm


User avatar
martinayotte
Posts: 141
Joined: Fri Nov 13, 2015 4:27 pm

Re: Anyone interested in Arduino Environment?

Postby martinayotte » Thu Jan 07, 2016 3:22 pm

Congrats to me-no-dev !!! ;)

User avatar
rudi ;-)
Posts: 1727
Joined: Fri Nov 13, 2015 3:25 pm

Re: Anyone interested in Arduino Environment?

Postby rudi ;-) » Fri Jan 08, 2016 2:46 am

me-no-dev wrote:...
I include inside my Async TCP and Web server as well (regular blocking server and client are there also) for those that want to run full speed and handle more than one client at a time.

https://github.com/me-no-dev/ESP31B
nice work! thanks!
give you us the "ESP31BmDNS.h" too? :mrgreen:
just in time is missing..

best wishes!
rudi ;-)
:mrgreen:


compiler error (toolchain)
:

Code: Select all

Arduino: 1.6.7 (Windows 7), Board: "Beta ESP31B Module, 80 MHz, 40MHz, QIO, 256000, 2M (1M SPIFFS)"

C:\Program Files (x86)\Arduino\hardware\Espressif\ESP31B\cores\esp31b\core_esp31b_i2s.c: In function 'i2s_slc_begin':

C:\Program Files (x86)\Arduino\hardware\Espressif\ESP31B\cores\esp31b\core_esp31b_i2s.c:130:23: warning: passing argument 2 of 'xt_set_interrupt_handler' from incompatible pointer type [-Wincompatible-pointer-types]

   ETS_SLC_INTR_ATTACH(i2s_slc_isr, NULL);

                       ^

C:\Program Files (x86)\Arduino\hardware\Espressif\ESP31B\cores\esp31b\core_esp31b_i2s.c:35:42: note: in definition of macro 'ETS_SLC_INTR_ATTACH'

   xt_set_interrupt_handler(ETS_SLC_INUM, fn, arg); \

                                          ^

In file included from C:\Program Files (x86)\Arduino\hardware\Espressif\ESP31B\cores\esp31b\Arduino.h:28:0,

                 from C:\Program Files (x86)\Arduino\hardware\Espressif\ESP31B\cores\esp31b\core_esp31b_i2s.c:23:

C:\Program Files (x86)\Arduino\hardware\Espressif\ESP31B/tools/sdk/include/freertos/xtensa_api.h:71:19: note: expected 'xt_handler {aka void (*)(void *)}' but argument is of type 'void (*)(void)'

 extern xt_handler xt_set_interrupt_handler(int n, xt_handler f, void * arg);

                   ^

C:\Program Files (x86)\Arduino\hardware\Espressif\ESP31B\cores\esp31b\core_esp31b_noniso.c: In function 'dtostrf':

C:\Program Files (x86)\Arduino\hardware\Espressif\ESP31B\cores\esp31b\core_esp31b_noniso.c:180:9: internal compiler error: Segmentation fault

         rounding *= 10.0;     

         ^

libbacktrace could not find executable to open



Sketch:

Code: Select all


/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the Uno and
  Leonardo, it is attached to digital pin 13. If you're unsure what
  pin the on-board LED is connected to on your Arduino model, check
  the documentation at http://www.arduino.cc

  This example code is in the public domain.

  modified 8 May 2014
  by Scott Fitzgerald
  
  modified 08 Jan 2016
  by rudi - esp31b pin 22
  
 */


// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  // modified for test with esp31b
  pinMode(22, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(22, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(22, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}

-------------------------------------
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪

User avatar
ESP_Me-no-dev
Posts: 80
Joined: Mon Jan 04, 2016 6:30 pm

Re: Anyone interested in Arduino Environment?

Postby ESP_Me-no-dev » Fri Jan 08, 2016 3:19 am

good catch on the warning. No clue on the segmentation fault though. Any chance there is something different on our toolchains?
I compiled mine on Mac using the instructions provided by espressif.

User avatar
rudi ;-)
Posts: 1727
Joined: Fri Nov 13, 2015 3:25 pm

Re: Anyone interested in Arduino Environment?

Postby rudi ;-) » Fri Jan 08, 2016 3:33 am

me-no-dev wrote:.. Any chance there is something different on our toolchains?
I compiled mine on Mac using the instructions provided by espressif.
have tested yours just in time with the compiled version for windows taken from Unofficial Development Kit for Espressif ESP32 (Windows)

had posted Mikhail, because this goes wrong too:

Code: Select all

..
uint8 temper;  // result in fahrenheit
float celsius;    // conversion in Celsius later

celsius = ( temper -  32 ) / 1.8 ;
..
but in linux build version named in espressif github and like you refering
there is no segmentation fault though. so i think Mikhail must go on in this again
think perhabs usual suspects are versions of : gmp & mpfr

thanks for your fast responding!
( and help in SPI pins )
best wishes
rudi ;-)
-------------------------------------
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪

Who is online

Users browsing this forum: Majestic-12 [Bot] and 76 guests