Code Monkey home page Code Monkey logo

esp31b's Introduction

##Arduino core for ESP31B WiFi chip##

###This is a beta project for a beta chip. Do not take it as final or stable. Intention is to have a working environment to test the new hardware and prepare the core and peripheral libs for the upcoming final ESP32 release.###

###This project brings support for ESP31B chip to the Arduino environment. It lets you write sketches using familiar Arduino functions and libraries, and run them directly on ESP31B, no external microcontroller required.###

  • Compile the toolchain for your platform Instructions or download one of the toolchains below:
  • Install Arduino 1.6.5+
  • Go to Arduino directory
  • Clone this repository into hardware/espressif/ESP31B directory (or clone it elsewhere and create a symlink)
cd hardware
mkdir espressif
cd espressif
git clone https://github.com/me-no-dev/ESP31B.git
  • Install Python 2.7 and have it included in the PATH
  • Extract/Copy the toolchain into hardware/espressif/ESP31B/tools directory
  • Restart Arduino

Also Compatible with the Arduino Eclipse plugin

Notes on compatibility

The following hardware should be working:

  • HSPI and VSPI SPI busses attached to any pin (VSPI is the devault SPI bus)
  • 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.

  • The noted pins for HSPI and VSPI are the default ones and can be changed with SPI.begin(sck, miso, mosi, ss) (ss can be defined with -1)
  • Pins 32 and 33 have been routed differently on the module and you need to have some high soldering skills to put a couple of resistors to make the pins work
  • Pins 6-11 are used by the onboard flash module (which I ws able to run only as 2MB)
  • Pins 1,2 and 5 can be floating, but if connected to external hardware, the noted levels need to be active at boot for the chip to enter proper boot mode
  • Only the first 8 pin interrupts/counters are implemnted but it's at the top of my ToDo list to enable all 16
  • LedC PWM, SigmeDelta and Touch need to be wrapped in classes

Pin Functions

Compatible with the following Async TCP library and WebServer

License and credits

Most of the original source comes from the ESP8266 Arduino Project so hats off to @igrr, @Links2004, @me(no-dev) and many others

Arduino IDE is developed and maintained by the Arduino team. The IDE is licensed under GPL.

Espressif SDK included in this build is under Espressif MIT License.

ESP31B core files are licensed under LGPL.

SPI Flash File System (SPIFFS) written by Peter Andersson is used in this project. It is distributed under MIT license.

esp31b's People

Contributors

me-no-dev avatar

Watchers

James Cloos avatar test avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.