ESP8266 Workshop - Wednesday - 18/02/15 - Deployment day

A warm invitation to folks to the next ESP8266 Workshop day on the 18/02/15 at 6:30pm.

We’ve reached the point where we’ve determined that we can now install various devices ‘in-the-field’ or at least inside MHV and leave them running.

This workshop will be the installation of the first round of peoples projects.


We need to resolve the issue of them falling over on restart before this. Either that or we’ll have to leave them on continuously (which will probably be fine for your wall plug version.)

May I suggest that people upload any project software, even if it is not yet complete, to our ESP8266Lib github.

This will allow sharing of code, problems and solutions. In the end we should have a common lib with often used functions.

Did anyone look at the ESD-12? Supposed to have 4M memory (rather than 512K), similar price
I ordered one anyway…

Did anyone look at the ESD-12? Supposed to have 4M memory (rather than 512K), similar price

It’s a little suspect that 512k * 8bits = 4M…

Agreed, this was my thought too.

However, it says “Large-capacity flash” and I know that this module is available with 512K (the common ones), 1M, 2M and 4M (e.g. see ) so this surely tries hard to indicate it is the latter.

Yet, China and all that, I will see when I get it…

FYI, I now built a new firmware and uploaded it to my directory on our github.
No guarantees…

I’ve started looking at I2C for use with temperature sensors and had some success (I can detect my LM75 Temperature Sensor on the I2C bus):

(sorry about the bad photo - software update borked my phones camera)

Running the software doing a scan:

I found this code i2c port scanner on

-- Based on work by sancho and zeroday among many other open source authors
-- This code is public domain, attribution to appreciated.

id=0  -- need this to identify (software) IC2 bus?
gpio_pin= {5,4,0,2,14,12,13} -- this array maps internal IO references to GPIO numbers

-- user defined function: see if device responds with ACK to i2c start
    function find_dev(i2c_id, dev_addr)
     c=i2c.address(i2c_id, dev_addr ,i2c.TRANSMITTER)
     return c

print("Scanning all pins for I2C Bus device")
for scl=1,7 do
     for sda=1,7 do
          tmr.wdclr() -- call this to pat the (watch)dog!
          if sda~=scl then -- if the pins are the same then skip this round
               i2c.setup(id,sda,scl,i2c.SLOW) -- initialize i2c with our id and current pins in slow mode :-)
               for i=0,127 do -- TODO - skip invalid addresses
                    if find_dev(id, i)==true then
                    print("Device found at address 0x"..string.format("%02X",i))
                    print("Device is wired: SDA to GPIO"..gpio_pin[sda].." - IO index "..sda)
                    print("Device is wired: SCL to GPIO"..gpio_pin[scl].." - IO index "..scl)

New pre-build firmware released today. Quite a few updates. Looks like they’re only using the 0.9.5 directory to keep historic versions, as the latest.bin is newer again than what’s been updated in the 0.9.5 directory.

This is identical to the old 20150127 fw, the one with fp added.

I have now gone through the full process of installing lubuntu from the distro CD, then building the SDK (0.9.5) and then building the nodemcu-firmware.

It is pretty straight forward and I could take people though the process if needed.

BTW, just earlier today a last minute checkin broke the build (it was trivial to fix though). I will build from time to time (it is a one minute job) and run the usual test to see if there is any progress.

I’m still getting ready for next weeks meeting. I guess that I’ve posted less than other people but I’m hoping to have an mqtt streaming temperature sensor system working by then.

Mine will be low power as in 5V powered by a USB wall plug.

This is identical to the old 20150127 fw, the one with fp added

That’s surprising, given below is in the change log.

Change log


fix float print.

update spiffs, add file.rename api to file module.

fix some file system bug. need more tests.

add support to 8Mbyte, 16Mbyte flash.

remove node.led() and node.key() api.

some update to lua_modules and examples.

build latest pre_build bin.

I’ve been working on the MSP430 RTC & Watchdog. It’s pretty simple at this stage and needs more testing but it should be finished in it’s first version by next week’s meeting.

I know, but a binary compare confirmed this.

However… my fw build from this morning (now uploaded) seems to be more stable. Just gone over 1500 reboots (2h=1440). Try it.

NodeMCU 0.9.5 build 20150213-1100-eyal  powered by Lua 5.1.4
run 1503

Program stopped at run 1850 (about 2.5 hours). Now running while publishing the runCount every 5 seconds. It stopped after 25 runs… Tried again (I know).

I move the mqtt discussion to a separate topic “esp8266 - mqtt”.

A new fw was actually released a few hour ago. nodemcu_20150212.bin. I will try it.

[later] It is OK. However, it does not include the node.compile() that was checked in the same day.