And now… SMING Framework

As if the LAST announcement about an Arduino development environment wasn’t good enough (if you read my blog I acknowledged that the Arduino IDE was not as good as Eclipse) – there’s an ECLIPSE Arduino environment called Sming Open Source Framework.

They’ve not YEY gotten MQTT working apparently but there is so much stuff they have – it has to be worth following..  and here’s the rub – it is C++ as against C – and that suits me down to the ground!

So what do you get apart from normal Arduino stuff?

File system, EPROM support (again doctored as the ESP chips have FLASH), json library and again this is based on the 1.0 API so it’s bang up to date.

May battle commence.


10 thoughts on “And now… SMING Framework

  1. I avoid IDE squabbles as it wastes more time than it saves – build/install your own toolchain and use your favourite editor – oh and use Linux when possible

  2. Well I agree re: editor – but I can’t agree on Linux.. I wasted SO much time messing around with the original toolchain and Linux before getting the Espressif set up Windows which works a treat and I’m guessing that even with developers – the majority of us are on Windows.

  3. I already had time and money invested in the PIC camp when Arduino first came out, so I never really got into it.

    I’ve been pretty successful with my few ESP8266 experiments in C using the esp_mqtt project as a base. So, this long weekend I set myself the task of just writing a small native ESP8266 test sensor (with dummy data for now), running as a web client, that will hit one of my servers twice a minute. First I pored over the Espressif SDK documentation and examples, selected the IoT example as a starting point, then tried to figure out how to hit my url. I waded through a bunch of code about the DNS lookup and then getting the IP then how to create a call, then set which callback to do… what? struct this, pointer that… I didn’t get very far in two hours.

    Had lunch then tried the same thing, but using the SMING framework which I had downloaded last night.I started with their Thingspeak example – cloned it, made some fast changes to the URL and messages, compiled it, flashed it… and it started running, faithfully receiving 404s… which reminded me I should probably write the server-side handler. So I banged together a 12-line PHP handler. uploaded it…. Boom. Working. So… in two hours with SMING, I had gone from nothing to a working remote sensor proof of concept.

    I know that alot of my problem today is that I didn’t find a nice web-client example to start with in the Espressif SDK docs or examples, but still… there’s alot to be said for working with a higher level language for basic stuff, as long as it compiles efficiently… and so far it seems to.

    I avoided the whole Lua thing because I felt that the ESP8266 is simply too small a platform to be running scripts on. But SMING, since it is compiled… and it leverages the fairly mature Arduino libraries…nice. I can spend less time trying to figure out the SDK ,and more time writing actual apps. 🙂

  4. @anakod: Is this an independant development from the recently released ESP8266 Arduino IDE and Libraries?

    1. Yes, it is a fully independent development, but because Arduino ESP and Sming both make goals to be compatible with standard Arduino functions, it’s compatibility between himself in many aspects also.

      Main difference of Sming, is that this is not just Arduino level API, but also small flash file system with FTP access and powerful web servers\clients supporting HTML templates for page rendering. You can look examples in github repo (all of them tested on hardware, so it should work 🙂

  5. I tried the instructions to get going on Windows, Cocolatey/eclipse/etc.. All loaded fine. In eclipse when I build one of the sming examples I get

    “undefined reference to `NMI_Handler’ MqttClient_Hello line 0, external location: c:\Espressif\ESP8266_SDK\lib\libmain.a(nmi-vector.o) C/C++ Problem

    How do I fix this? Should note that the install did not set any of the paths, and the path in the projects for the esp stuff was wrong.. I had to change the include to ${ESP_HOME}/ESP8266_SDK/include. The current one points to ${ESP_HOME}/sdk/include which does not exist.

    Or maybe I did something dumb.. help please

Comments are closed.