Posts

Use User’s Geo Location for Smart Control

There are some products on the market of smart thermostats/controllers that rely on knowing the user Geo Location to act “smart” – is this really smart?

When user is at given location there are several methods to figure it out:

Active:

  • Pinging an IP address presence
  • Checking current WiFi network name
  • Using arping to check mac address presence

Passive:

  • Listening for specific packets

All above are good if you do not need an extra time to react and that’s the problem. You can shutdown all the lights when no one is present.

ESP8266 Secure CA Verification

While working on a secure cloud for the gang of the esp8266 based devices we are developing we need SSL – real and secure.

And this August is the month of the SSL issues , it seems , but thankful to the Espressifs’ quick support they are on the way out.

SSL Memory Leak

The latest SDK v1.3.0 introduced a bug that simply didn’t call the disconnect callback of esp connections under some circumstances and that in turn leaked memory.  It’s not clarified but the case was when you had a tcp listener and ssl connection after the ssl connection is over, your tcp listener connections did receive disconnect callbacks anymore.  You can get the fix from bbs.espressif.cn

IOT DESIGN MANIFESTO

Hi,

I have signed the IoT Design Manifesto – if you are into IoT. You should too.

Here is the link Sign The Manifesto.

These are the highlights of it:

  1. We do not belive the hype!
  2. We design useful things!
  3. We aim for the win-win-win!
  4. We keep everyone and everything secure!
  5. We build and promote a culture of privacy!
  6. We are deliberate of what data we collect!
  7. We make the parties associated with an IoT product Explicit!
  8. We empower users to be masters of their own domain!
  9. We design things for their lifetime!
  10. In the End We Are Human beings!

 

ESP8266 building OTA firmware for 2MB boards

During the past weeks i’ve worked on getting the FOTA upgrades work on the 2MB boards by Olimex.

The wonderful esp-link project by Thorsten von Eicken was a great example of  two things:

  1. How to concatenate the espfs filesystem image with the firmware images.
  2. How to properly write a new image to the flash.

It was a nice example to start with.

So after a lot of fiddling with  Makefiles, cgi routines and esptool  – i’ve finally got the OTA working.

IoT Security

Engineering Internet Of Things Secure network  for our upcoming IoT service.

Goals:

  • Security
  • Redundancy
  • End to End Security
  • Secure Firmware Upgrades

Threats:

  • DoS Attacks
  • DDoS Attacks
  • DNS spoofing /don’t even think of DynDNS/
  • Sniffing
  • man in the middle

Security:

  • Using a VPN -> takes the problem away and requires extra settup. Not user friendly. The only pro is that it can use an existing infrastructure if present. A Big NO
  • SSL -> expired certificates , heavy overhead, often exploited. Closed source library, may already be hacked. NO
  • AES all the Way. A big YES
  • DoS/DDoS prevention – redundant MQTT brokers, with dns/firmware fallback

So Why AES?

ESP8266 using different flash sizes – FOTA and Download tool

Which goes where – when using a bootloader for FOTA.

The files:

  • master_device_key.bin –  Obtained from Espressif Cloud
  • esp_init_data_default.bin – Stores default RF parameter values
  • boot.bin – bootloader
  • user1.bin and user2.bin – user firmware
  • blank.bin – blank settings , flash to get default parameters
  1. 512KB
  • master_device_key.bin 0x3E000
  • esp_init_data_default.bin 0x7C000
  • blank.bin 0x7E000
  • boot.bin 0x00000
  • user1.bin 0x01000
  • user2.bin 0x41000
  1. 1024KB Flash
  • master_device_key.bin 0x3E000
  • esp_init_data_default.bin 0xFC000
  • blank.bin 0xFE000
  • boot.bin 0x00000
  • user1.bin 0x01000
  • user2.bin 0x81000
  1. 2048KB Flash
  • master_device_key.bin 0x3E000
  • esp_init_data_default.bin 0x1FC000
  • blank.bin 0x1FE000
  • boot.bin 0x00000
  • user1.bin 0x01000
  • user2.bin 0x81000
  1. 4096KB Flash
  • master_device_key.bin 0x3E000
  • esp_init_data_default.bin 0x3FC000
  • blank.bin 0x3FE000
  • boot.bin 0x00000
  • user1.bin 0x01000
  • user2.bin 0x81000

 

Olimex ESP8266 module – MOD-WIFI-ESP8266-DEV

Finding the Right Development Board

When developing IoT applications with the ESP8266, two key requirements immediately become apparent: you need sufficient flash memory for your application and firmware, and you need a board that fits comfortably on a breadboard for prototyping and testing.

I faced this challenge and needed to evaluate my options. Soldering additional flash chips onto bare ESP8266 modules wasn’t practical, so I researched alternative boards:

  1. NodeMCU boards – These feature larger flash and breadboard compatibility, but come with integrated regulators and USB-to-serial converters that add complexity and bulk.
  2. ESP-XX modules with adapters – While available, these adapters tend to be awkward and add unnecessary overhead for development work.
  3. Olimex MOD-WIFI-ESP8266-DEV – A purpose-built development module with excellent specifications and clean design.

The winner: Olimex’s MOD-WIFI-ESP8266-DEV

ESP8266 tcn75a driver

Hi,

A simple i2c driver for the Microchip’s TCN75A thermometer – supports up to 8 thermometers. Driver works in one shot mode which is suitable for battery powered operations. The chip is with quite good specs for its price.

Code at github esp_i2c_tcn75a .

Usage:  checkout user/user_main.c for example usage.

Enjoy!

73

 

esp8266 UDP debugging

After a lots of lots of wasted hours  debugging an I2C driver it came out that the noise from the connected cheep USB2TTL converter is way too much. Would have lost months without the help of the new DS1054z scope i’ve got.

So i came up with this – a simple UDP debugging.

Simple socket to send udp messages.

dbg

Call dbg_udp_start(0) and you are ready to go. If you prefer not to flood your LAN with debug messages broadcasts then instead of 0 provide your workstation IP address.

Rigol DS1054Z

I’ve got a new tool at the LAB!

The Box: rigol_ds1054z_box

 

 

The Tool:  rigol_ds1054z_web

 

Having an oscilloscope is just priceless. You may need it rarely but there are times when you are just lost blind  without it. The video lists all you should now about it and a bit more

If you are considering to get one and you are in EU. I can recommend Silcon.cz – you will get a nice service there.