Skip to main content

ESP8266_RTOS_SDK and Debian

If you search the Internet for ESP8266 you will get Arduino related results. It seems that the world see ESP8266 as a part of Arduino. This may change in the future.

I prefer not to use Arduino for ESP8266 development because that approach was technically a work-a-round. Arduino IDE was designed for its own devices. I don't want to use an IDE which generally comes with unnecessary dependencies and constraints. I want to have the full control of the device that I'm working on. That's why I started my earlier ESP8266 developments with esp-open-sdk. I'm okay with the command line approach and a simple text editor.

Now I want to utilize the real time operating system and explore its potentials. ESP8266 is powerful enough for RTOS. I searched the Internet for ESP8266 and RTOS, and I found many paradigms. ESP8266 is in a constant development. People were trying all sorts of approaches because in the beginning they were left alone. And now Espressif seems to take over all the tested approaches and to standardize them.

Espressif is supporting FreeRTOS. I think it is a good deal since FreeRTOS is a matured real time operating system with many organizational contributors, and it is a part of Amazon Web Services. FreeRTOS applications can be upgraded to SAFERTOS the Safety Critical Real-Time OS. It feels like a serious deal.

ESP8266_RTOS_SDK is based on FreeRTOS. I found many outdated tutorials on the Internet. The SDK is evolving. There is a note on its roadmap:

ESP8266_RTOS_SDK's framework is quite outdated and different from the current esp-idf and we are planning to migrate ESP8266_RTOS_SDK to esp-idf eventually after v2.0.0.

The copy of the ESP8266_RTOS_SDK master branch that I'm working on right now is already implementing esp-idf which stands for Espressif IoT Development Framework. It scaffolds makefile and centralizes configurations with a menu driven tool. And it also standardizes the flashing and monitoring tools. Your makefile becomes simpler. However, the esp-idf will force you to learn the details of the device and its development framework. That is a good thing.

ESP8266_RTOS_SDK relies on Xtensa toolchain. Espressif ESP8266 is based on the Tensilica Xtensa L106 32-bit RISC microprocessor core. Tensilica is a subsidiary of a Nasdaq listed company Cadence Design Systems. Knowing the companies behind ESP8266 give me a better confidence in it. A bonus: ESP8266EX was crowdfunded.

The Debian side is simplified since Espressif already made Linux the priority development platform. You only need to export the IDF_PATH and the path to the Xtensa toolchain. You only need to do it once by appending the instructions into the ~/.profile and ~/.bashrc files. See the notes below.

Notes

  1. ~/esp is the home for Espressif toolchains. The ESP8266_RTOS_SDK and the Xtensa toolchain are kept there.
  2. Export the IDF_PATH. Append this line 'export IDF_PATH="$HOME/esp/ESP8266_RTOS_SDK"' into ~/.profile and ~/.bashrc files.
  3. Export the Xtensa toolchain path. Append this line 'export PATH="$HOME/esp/xtensa-lx106-elf/bin:$PATH"' into ~/.profile and ~/.bashrc files.
  4. Execute the followings once to immediately export the paths:
    • $ source ~/.profile
    • $ source ~/.bashrc 

Comments

Popular posts from this blog

Setting Up PyScripter for Quantum GIS

PyScripter is a general purpose Python Integrated Development Environment (IDE). Quantum GIS (QGIS) is a desktop GIS application that can be extended with Python plugins. Both are open source softwares. We intend to use PyScripter as an IDE to build QGIS Python plugin. We are using PyScripter 2.4.1.0 and QGIS 1.6.0 in Windows. PyScripter does not come with Python. On the other hand, QGIS is built in with Python. Thus, we will setup up PyScripter to use the build in Python in QGIS. We assume both PyScripter and QGIS are already installed. Preparing PyScripter batch file We assume that QGIS is installed in C:\OSGeo4W\ folder and PyScripter is installed in C:\Program Files\PyScripter\ . 1. Copy qgis.bat in C:\OSGeo4W\ bin to pyscripter.bat 2. Edit pyscripter.bat to remove the last line that read something like this start "Quantum GIS" /B "%OSGEO4W_ROOT%"\apps\qgis\bin\qgis.exe %* and replace it with this in one line Start "PyScripter" /B "C:\Progr

Using React in Foundation for Sites

This post was the precursor to the Foundation-React Template . React and Foundation are two different web UI frameworks addressing different needs. They evolve differently. Both of them are powerful on their own accord. Fusing them together may create superpower. We will walk through the process of adding React into Foundation. We will start by installing both Foundation and React through command line interface (CLI). Then we will create a simple Todo web app. Along the way we will highlight the development process. But before all that, let us summarize React and Foundation. The details can be found at their respective websites. Both of them are well documented. React is a run-time UI rendering engine. It renders dynamic UI elements in its own fast virtual DOM, and only update necessary changes to the slow browser DOM. This behaves like a  double buffering DOM which makes any UI update feels fast. React wraps a UI rendering script in a component. A React component can be bound

MicroSD Card Module with SPI Connection

A MicroSD card can be directly connected to a 3.3v microcontroller without the need of any additional module. However, a cheap module such as shown in the picture above can be handy in terms of wiring and card replacement. Yet, if you get the module from China then you are on your own, you have to figure it out yourself how the module works. The module above needs 5v VCC to operate. The 5v is needed by the 3.3v LM1117 regulator to power the MicroSD card and the 74125 bus buffer (the 14-pin IC in the module above). Hence, the bus buffer is operating at 3.3v. The VCC is connected directly to the input of the regulator and no where else. Thus, the VCC is solely meant for the regulator. The right-side SPI bus (CS, SCK, MOSI & MISO) is connected directly to the 3.3v bus buffer. No line in the SPI bus that is connected to the VCC. Thus, the SPI bus does not follow VCC. The buffer is 5v tolerant so the right-side SPI connection can be driven at either 3.3v or 5v. Hence, the SPI ca