Tag Archives: Mosquitto

Size Matters… Neo AIR

tmp897DWhen it comes to size, this one is as good as any… the FriendlyArm Nano Pi Neo Air.

You’ve probably read my blog about the Nano Pi Neo, a device I can only describe as “cute” because of it’s really small size - but powerful non-the-less. Well, the AIR version takes things a stage further. No video, no USB (well, no connector anyway) and no Ethernet connector which makes it EXCEEDINGLY THIN.  But it DOES have Bluetooth and WIFI including a socket for an optional external antenna (it also has on-board antenna).

tmp39E7So – H3 Cortex A7 Quad-Core processor – which means that a variety of alternative operating systems to the default Ubuntu will work (just as well as I for one have no interest in Ubuntu). The board is 40mm square and the highest point on the board before you (optionally) fit the (provided) connectors, is the micro-USB connector, which could make for a MIGHTY small controller!

The Neo AIR comes complete with 8GB of on-board  eMMC loaded with Ubuntu. I really don’t see the point of this as it is so hard to fully make a copy as against just replicating SD cards. Aside from anything else – all these boards call themselves or refer to PI – and the PI comes with Debian – not Ubuntu!  However – reporting this for the record. Idling power (depending on operating system as little as 1 watt (i.e. 200ma at 5v). Headers for 3  USB 2.0 ports (but no connectors) 512MB RAM and finally a DVP camera interface. Connectors include UART, SPI, I2C, GPIO, IR, SPDIF and I2S (though actually making use of these will be down to software support!)

Here’s a handy pinout:

tmp4E0F

The whole thing weighs less that 10gms.  I’m thinking this could well make a minimal system for talking to Alexa DOT – perhaps with some IO all in one tiny box!!

tmp23CAA heatsink was provided but no box – but then again any box would probably be of a height to accommodate connectors and I’d really like to see this in a super thin box – or even on the back of a Nextion display.

I note that another blog has covered the use of the board with the Ubuntu operation system so I won’t get into that here.

Note the micro SD connector bottom left in this photo and the power connector/ OTG port top right. There is also a separate 4-way connector for serial debugging.

I tried to use one of my NEO SDs with DIETPI but the software worked – but without WIFI – I could not see a way to fix that and have written to the  DIETPI site in case their software can be updated. That would be good.

Meanwhile I’ve just tried the latest ARMBIAN – blew the SD – popped it in – it works – (serial monitor) – went into NMTUI (command line WIFI etc. etc.) – works a treat. How there is NO mention of Bluetooth in that setup but as I don’t need that right now I’m not too bothered. One of our readers has already commented “No Bluetooth” so I’m guessing that remains off the table for now. I could of course use FriendlyArm’s image but that means re-jigging my script with umpteen installs which probably would not work. Erm, no.

Right now I’m in the middle of running my script from the serial terminal. WinSCP works with an IP address (it would be so much better if Samba were installed from the start so that the domain name worked) and I have noticed that when bringing up a terminal, it is SLOW – I suspect that is down to the WIFI signal – I noted when using Armbian in the past that the WIFI was not that hot on other boards – using DIETPI on he NEO it was marvellous – but that’s not working for the AIR so far.

I did note earlier that the TIME was wrong on the unit (no doubt an issue with Armbian) as it said the last log-in was November 1st – it is November 7th and I’ve only just installed Armbian.

Accordingly my script has been sitting here in a loop complaining that “binding.gyp has a modification time 180293 in the future” and it looked like it was going to sit there and wait that long! As I write this I’ve used the DATE command and all came along nicely if slightly more slowly than normal. First time I’ve ever had that date issue.

And while all of this was going on – the board was only just warm, certainly not warm enough to warrant a heatsink.

HOWEVER – initial impressions – once my script was done.. WINSCP – slow as a DOG. Not remotely in the same league as a typical Raspberry Pi – or even the NEO - HOWEVER - According to TKAISER of Armbian this is because the board needs an external aerial – which begs the question – why didn’t that come with the board!! On close inspection there is no internal aerial… dohhh…..

Update Nov 08, 2016: Ok, aerials on the way – I’m using it with a GPS aerial which is hardly ideal and the WIFI seems solid enough. I hope the proper aerials are small!! I read elsewhere that the chip used is the Ampak AP6212 as used on  Raspberry Pi 3 and there’s a link to more info on that… https://github.com/seemoo-lab/bcm-rpi3 (https://github.com/seemoo-lab/bcm-rpi3). Still running cool enough to NOT need a heatsink.

Update Nov 11, 2016: While waiting for the aerials – and in another blog, TKaiser of Armbian just happened to mention they have a utility to copy an SD setup to eMMC.  It is part of the standard installation and is:

/usr/lib/nand-sata-install/nand-sata-install.sh

So I ran it in a terminal and after a while – it told me to reboot without the SD. I did that and LO – not only a working AIR but a much faster AIR. I took the SD, inserted it into the other board, booted up – repeated the operation – and lO – TWO working AIRS– a quick change of name of one of them and Bob’s your uncle! Well impressed!

Update Dec 20, 2016: Here's a thing. After not using the Neo for a little while, last night I decided to do an apt-get update/upgrade. The update failed due to inability to contact some sources. I tried 3 or 4 times - no joy. I decided that either the WIFI was in trouble or a source was offline and to leave it until this morning.  I got up this morning and the update was fine.. but when it came to the upgrade, I got a message to say the disk was full.  8GB of eMMC - i was sure I'd only used half of that.  Anyway I went off searching - and discovered several large LOG files - deleted the larger onces and now all is well - I've recovered over 2GB of log space. Hmm.

Facebooktwittergoogle_pluspinterestlinkedin

Toying with HA-BRIDGE

Thanks to readers in here I’m having a play with HA-Bridge to act as a device gateway between my home control (generally ESP8266) devices and Amazon Echo.

I’m only scratching the surface and haven’t gotten past “Alexa, turn X on”, “Alexa turn X off” and “Alexa set X to 30%”  but it’s a start and hopefully someone in here will fill in the blanks.

So, assuming you have an Amazon DOT or Echo (at £49 the DOT is the best toy I’ve bought for ages – just bought another one for the house – as this one is hiding in my office)…

The BEST way to control gadgets by voice up to now IMHO is using our own Node-Red software and an HTTPS certificate – but then – it’s not trivial as has been discussed elsewhere (unless you’ve done it before) to get the HTTPS and Amazon talking to each other.

So I played with simpler solutions (I like to try everything) but just recently decided to have a go at HA-Bridge – now – this IS EASY if you don’t go to the wrong repository etc…

First things first – Aidan was playing with this and he could not get anywhere as he had an old version of JAVA on his Raspberry Pi – he solved THAT problem as such. I found that I had to use root access for ALL of the code below.

    echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | sudo tee /etc/apt/sources.list.d/webupd8team-java.list
    echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | sudo tee -a /etc/apt/sources.list.d/webupd8team-java.list
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
    sudo apt-get update
    sudo apt-get install oracle-java8-installer

So that's Java up to version 8. On a NEO AIR I got an error message when running “java –version” until I rebooted.

Now to install HA-Bridge - easy -  go to your PI directory on the Pi or similar - make a directory - called, say, "habridge" - and enter that directory. I grabbed the JAVA file directly in Windows and copied it across-  giving it execute permissions - not sure if that was necessary but I'm just repeating what I did.

All I did was grab the JAVA file from here.

So the general idea is that this Java file will run - and give you a web page in which you can create and run "devices" that the Dot or the Echo will recognise. But it will want to use Port 80 by default (normal web page port) and I of course have a web server there...  I tried running it - failed due to lack of permissions - so I ran it as ROOT - that failed due to the port being in use.

sudo java -jar -Dserver.port=82 ha-bridge-3.2.2.jar

I ran this - note the reference to port 82 - and lo - it works - ok - another matter getting it to run from power up but we’ll come to that.

Ok so THEN I discovered that my MQTT installation – Mosquitto did not include the client tools… so…

sudo apt-get install mosquitto mosquitto-clients -y

Off I went to a browser : 192.168.0.20:82

HA Bridge

Ok, here's the bit that floored me - this might save you a little work. I used MANUAL ADD to add these devices - here's one of them... these will respond to on, off and a value - and send MQTT messages accordingly. That's it - all you then have to do is tell Alexa to search for new devices - and use them.

So what we have here is only marginally better than the simple node-red node - i.e. we now have % lighting control - who is going to show us how to develop this to do temperature and other stuff!

HA Bridge

If you don't need user and password for your MQTT  (-P and –u) - don't use them.

The only thing that appears fairly useless is the middle item - intensity control - which could be used for lighting or heating. So "turn office television to 25" works - you get the value 25. "turn office television up" or "down" shifts the value by around 25% - and that's GREAT for lighting but no use for heating - I would want an actual value to set the heating to that value - but up and down to shift the temperature by - maybe 1 degree.

You can in fact say “turn X up by one”.

SO - easy voice control - create lots of devices... this whole operation other than blogging it took merely a few minutes and thanks to readers who pointed me in this direction.

This software does not seem able to control responses – you get “OK”  - how then would you ASK the thermometer to return it’s current value!?!?! Well, you can’t so there is still life in our HTTPS solution – but this is VERY easy to set up.

Having now followed the instructions here and here (see “writing a unit file in the latter link) made a “unit” startup file – I now have the whole thing running from power-up on the same Pi that runs Node-Red and Mosquitto.

Essentially here’s what I ran having created a UNIT file as per the first of those two links above.

sudo systemctl enable habridge.service

sudo systemctl  start habridge.service

That’s it – program runs – survives power cycle.

Here’s another explanation of how to do this! http://xbmcnut.blogspot.co.uk/2016/10/installing-ha-bridge-on-your-raspberry.html

So much to learn, so little time.

Facebooktwittergoogle_pluspinterestlinkedin