A basic NodeMCU and Simba OS example

Ok, I had heard of Simba OS but hadn’t managed to try it, as quoted “2Simba is an RTOS and build framework. It aims to make embedded programming easy and portable”

I found a Node MCU board to play about with, so lets crack on.

Install it

Install Simba in the Arduino IDE 1.6.10+ as a third party board using the Boards Manager.

Open File -> Preferences.

Add this URL to Additional Boards Manager URLs and press OK.

https://raw.githubusercontent.com/eerimoq/simba-releases/master/arduino/esp/package_simba_esp_index.json

Open Tools -> Board: … -> Boards Manager… and type simba in the search box.
Click on Simba by Erik Moqivst version x.y.z and click Install and press Close.
Open Tools -> Board: … -> Boards Manager… and select one of the Simba boards in the list.

In the example below its a common anode RGB led connected to D0, D1 and D2. Another thing to note there are 4 URLs that can be added but the assumption is that you just want the ESP8266 one. If not they are

https://raw.githubusercontent.com/eerimoq/simba-releases/master/arduino/avr/package_simba_avr_index.json
https://raw.githubusercontent.com/eerimoq/simba-releases/master/arduino/sam/package_simba_sam_index.json
https://raw.githubusercontent.com/eerimoq/simba-releases/master/arduino/esp/package_simba_esp_index.json
https://raw.githubusercontent.com/eerimoq/simba-releases/master/arduino/esp32/package_simba_esp32_index.json

Schematic

 

 

Code

Fairly basic stuff, I though about using the pin_toggle function but just went for writing 0 and 1 out

Being a common anode RGB led I wanted it switched off to start with hence the pin_write(&led1, 1) , if you have a common cathode type you would obviously set this to 0 instead

#include "simba.h"
 
int main()
{
 struct pin_driver_t led1;
 struct pin_driver_t led2;
 struct pin_driver_t led3;
 /* Start the system. */
 sys_start();
 
 /* Initialize the LED pin as output and set its value to 1. */
 pin_init(&led1, &pin_d0_dev, PIN_OUTPUT);
 pin_init(&led2, &pin_d1_dev, PIN_OUTPUT);
 pin_init(&led3, &pin_d2_dev, PIN_OUTPUT);
 
 pin_write(&led1, 1);
 pin_write(&led2, 1);
 pin_write(&led3, 1);
 while (1) {
 /* Wait half a second. */
 pin_write(&led1, 0);
 thrd_sleep_ms(500);
 pin_write(&led1, 1);
 thrd_sleep_ms(500);
 pin_write(&led2, 0);
 thrd_sleep_ms(500);
 pin_write(&led2, 1);
 thrd_sleep_ms(500);
 pin_write(&led3, 0);
 thrd_sleep_ms(500);
 pin_write(&led3, 1);
 }
 
 return (0);
}

Upload the sketch and all going well, flashy RGB led

 

This is a basic baby step using Simba OS, I recommend looking at http://simba-os.readthedocs.io/en/latest/index.html if you want to know more

ESP32 specific site started and other news

We decided to eventually register a domain name and setup a site dedicated to the ESP32 – http://www.esp32learning.com , we will keep our existing couple of items on this site but from now on will focus on ESP8266 only here.

So bookmark the site and pay a visit

We also plan to add some video tutorials and resources but the first efforts haven’t been great, still looking at an easy setup. Video creation isn’t something any of us have done before

Other ideas being mooted about were some sort of ebook (kindle, giveaway) and maybe even a mobile app, the mobile app coming about after looking at some utterly dire Android apps relating to Arduino content recently. These are ideas that we’d like to do but usually time constraints get in the way.

X1 shield ESp8266 OLED learning kit

More ill advised purchases from far eastern electronics sites, you bet. This is another collection of ESP8266 boards and shields that I acquired, on first viewing they appear to be very like the Wemos Mini board and shields but as I discovered the pinouts and size were different, so you cannot interchange boards sadly.

As you can see from the image below the collection is pretty similar to Wemos and you will also see that this is based on the previous ESP example which is similar to a D-Duino

 

After a bit of digging I found all of these shields on – https://github.com/lspoplove/X-project

The link above has schematics and board layout in pdf format but no gerbers to make your own that I could see which is a pity

So basically its a choice for someone starting out, you can choose the wemos mini and sgields (which you can many folks selling a complete set) or you can go down this route, me personally I will stick with the Wemos (genuine brand) as they seem to be slightly better documented with schematics, example code.

Now if someone can bring out a board with shields with some different devices that would be interesting

 

Links

You can pick up a collection of these for $14, so a nice low cost economical way of getting started with the ESP8266

AliExpress.com Product – X1 shield &new NODEMCU wifi ESP8266 ESP-12F 1.3 inch OLED learning kit and X-(DHT11 2812b Battery button DHT22 Relary Buzzer…)

A D-Duino or a Wemos actually its neither

This was an interesting board that I bought, I had been looking at D-Duino’s for a while wanting to buy them for a couple of project ideas. These boards are basically an ESP8266 and an OLED display integrated on one board, the main usage is for some terrific wi-fi examples that are present on the web.

The wi-fi examples come from https://github.com/spacehuhn , there is a couple of good ideas and projects them with interesting code examples to learn from

The thing here is this is not a D-Duino, its also labelled as a Wemos module – nope it’s not one of their boards either and this where the old worry comes in – have I been burned with another poorly documented clone board . So is it even an accurate clone of the D-Duino board – the good news appears to be a yes

The pinout below is correct, its a pin for pin match with the device I purchased, here is a picture of the D-Duino

 

 

Arduino Setup

You need to add ESP8266 support to your Arduino IDE

I selected a Wemos D1 R2 MIni in the IDE and the code I uploaded is from the section below

 

Code

I uploaded the Packet monitor example from the following location, some terrific examples this person has in his github repos. Not going to rip off his code here but take a visit

https://github.com/spacehuhn/PacketMonitor/blob/master/esp8266_packet_monitor/esp8266_packet_monitor.ino

 

Links

There are a ton of links for these boards, the price ranges from about $15 to $20 from what I have seen
AliExpress.com Product – Elecrow D-duino Combination for Arduino ESP8266 and OLED Integrated 0.96″ Develop IOT DIY Kit

AliExpress.com Product – ESP-WROOM-32 WIFI-BT Dual-mode 2.4GHz 0.96″ OLED ESP32 For Wemos D1 AP STA