From WiFridge to WeIOFridge

Now that I have my WeIO, I thought I could try to “migrate” my WiFridge (which already worked on an Arduino UNO + WiFly board and an Arduino UNO + Adafruit’s CC3000 shield)

I tried to use a WiDo from DFRobots but it it based on an Arduino Leonardo and the bootloader being larger than for an Adruino Uno, I can’t get my program to fit in memory ! I’ll try a bit later to either get my code lighter or remove the bootloader and program the chip directly.

So for now, I’ll just try to leverage WeIO power to get a new version of my WiFridge : the WeIOFridge !

I had first to connect 2 DS18B20 which are going into the fridge and freezer. But there is no direct support for it so I used a workaround described here : use the UART to “simulate” 1-wire protocol. At the time of writing, a new version of WeIO software should be out in a few days which is including all necessary librairies and a little helper to simplify the use of DS18B20 on UART port.

Then, I tried to connect a DHT22 for kitchen temperature and humidity… and got some troubles. But thanks to the help of WeIO team (see posts here and here), we finally managed to get it working. As for DS18B20, update for this will be included in next WeIO software which should be out soon.

And after a bit of coding

  • in Python for the server side : reading data from the sensors, and sending them to a private emoncms web site and any connected Web client
  • in JavaScript for a nice Web UI displaying instantaneous data

I now have this :

WeIOFridge UI & Emoncms

I am now stabilizing my code (still a few glitches…) and in a next post, I’ll describe the hardware connections and associated programs.


WeIO and DS18B20 temp sensor (1wire)

As of today, there is not yet a library for 1-wire for WeIO but interrestingly enough, you can read 1-wire data through a standard UART.

WeIO & DS18B20 640x480

Here is what I done

  • Download tar package provided by Uros (one of the WeIO creator) here :
  • Import it into my WeIO
  • Modifiy so that you don’t need to know ROM ID upfront and you can connect as many sensor as you want

  •  Run the code

 UART error… and hot fix !

There is still a problem with the UART. From time to time, it’ll throw some errors.

But re-running the program will work after 2 or 3 tries…


The source of the problem was identified and will be fixed in upcoming release

To fix this problem, you can simply change the file : /weio/IoTPy/pyuper/, line 55  (a soft reset must be done after this change)

 Main sources of informations

How to configure WeIO without Wifi

Although I understand that standard operation of WeIO is mainly based on Wifi, I believe that it should be possible to do initial configuration without Wifi. I mean : Wifi shouldn’t be required to configure… Wifi. It is a kinf of chicken and egg story…

In addition, I don’t have Wifi on my desktop PC. It is wired to my private network. I could have used my laptop… but… no… I wanted to be able to configure it without Wifi.

And it appears to be quite simple once you know were to look. There are a few things to know :

  • WeIO firmware is based on OpenWRT
  • Some WeIO script do the Wifi configuration and revert back to AP mode if if fails
  • You can connect directly to WeIO using USB port as it has an FTDI chip which allows to get to a serial console !

In the end, it is quite simple

How to configure Wifi manually

  • Connect WeIO to a USB port of your PC to the micro USB port available on the WeIO
  • In your favorite terminal emulator (I personnaly use KiTTY), configure the connetion as follow :
    • Connection type : Serial
    • Serial line to connect to : You have to find out which port is used. You may have a look into the device manager to see which one is used (COM 8 for me)
    • Speed : 115200
    • Data bits : 8
    • Stop bit : 1
    • Parity : None
    • Flow control : None

If the device is booted, after connecting, you should have something like that :

  • Just press ENTER and TA DA, root shell should appear

  • Then, you need to edit  /etc/config/wireless.sta to add your own wifi stuff (encryption, ssid and key)

  • Run the Wifi config script to tell WeIO to start in STA mode instead of AP mode

  • soft restart using the soft reset button on the board
  • Wait a little while until leds finished blinking
  • and only STA led should then be solid green
  • You’re now in STA mode and you can connect to it !

If you want a fixed IP

By default, WeIO will get an IP from your DHCP server. If you want to configure an IP without DHCP, you would need to edit /etc/config/network.sta BEFORE running wifi config script.

I did not try though.

A bit of troubleshooting

If WeIO fails to connect to the Wifi (wrong key, Wifi router not accepting connections…), WeIO will automatically revert back to AP mode… which will prevent you from trying to diagnose the source of the issue.

To disable this behavior (not definitively though), before trying to run the config script, run the following :

This will stop WeIO server and prevent it to come back to AP mode and let you the option to diagnose the issue. Once Wifi issue solved, don’t worry : at next reboot, WeIO server sill start again !


Credits : This was all done with the help of Uros & Drasko, fathers of WeIO, in the forum. Thank you guys for the quick replies.


Received my WeIO :-)

A few weeks months ago, I participated to WeIO funding on Indiegogo. And after (patiently) waiting, I eventually got my WeIO board a week ago !WeIO 640Now, after struggling a little bit to configure it (I have no Wifi on my desktop PC and there is no instruction on how to configure the damn thing without Wifi), I am now going to test the gizmo and see what I can do with it !

A new WiFridge for a start ?