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

Sending Emails via SMTP

msmtp  requires a minimal setup for sending emails via SMTP compared to sendmail. Here is a configuration for you to send emails from a web host to an external SMTP server. Prior to doing that, you must check whether there is a clear communication channel between your web host and the SMTP server. You can use Telnet . Set up msmtp You are going to set msmtp as an MTA . Hence, you need to remove all other MTAs such as postfix and sendmail: $ sudo apt-get --purge autoremove postfix sendmail Install msmtp and related utilities: $ sudo apt-get install msmtp msmtp-mta mailutils Configure msmtp: $ sudo nano /etc/msmtprc # Set default values for all following accounts. defaults # Use the mail submission port 587 instead of the SMTP port 25. port 587 # Always use TLS. tls on # Set a list of trusted CAs for TLS. The default is to use system settings, but # you can select your own file. tls_trust_file /etc/ssl/certs/ca-certificates.crt # The SMTP server account mx host mail.mx.example

fatal: Couldn't find remote ref master

If you are using Github then  master is now known as main . Whatever you want to do with a master must now be referred to a main . If you search for this error message on the Internet then you will encounter with a lot of old discussions on how to set up your master properly which is probably not what you are looking for. The master  is your problem. Rename it to main . I wrote Git My Way about two years ago. Today I created another Github repository. I got this  "fatal: Couldn't find remote ref master"  error message when I wanted to sync the new repo for the first time with my notebook using the notes I wrote in the blog. All the discussions around the error message I found on the Internet were perplexing. Then I recalled that Github had renamed master to main  due to the master-slave connotation. We always have a master copy of a code, never a slave copy. Now suddenly a word context has been diminished for good. What is going to happen to the existing vast documen