Neato XV Omega 2+ ( With Vera->Alexa instructions)

News and information about the Neato XV-11 Robotic Vacuum. All discussion and troubleshooting questions go here.

Neato XV Omega 2+ ( With Vera->Alexa instructions)

Postby jnex26 » September 22nd, 2017, 6:31 pm

Not sure if anyone is interested, but here goes I have successfully connected My XV 21 to my wireless network and configured a simple Vera command to start cleaning, this has been linked to Alexa too.

So this is based upon the work done here http://www.robotreviews.com/chat/viewtopic.php?f=20&t=20072, I have taken it slightly further.

What changes have I made well I have built a power regulator circuit so rather than taking 3.3v from the mainboard I can take it from the battery points where the batteries plug into the mainboard ( this means no dangerous soldering on the board as I suck as soldering, another thing I discovered was that the supply from the batteries is rather dirty, So i just kept adding Caps to smooth it out.
PowerRegulator.dsn.png
PowerRegulator.dsn.png (9.46 KiB) Viewed 231 times


Another difference is I have built a very small USB plug and wired it in, I have also de-soldered the pins on the omega 2.... quick note here it's real easy to kill the omega 2 doing this, I did not take pictures of the process because to be perfectly honest I didn't think it would work.

The Power regulator I use was a bucky LM2574, do not use LVR's they are simpler to make work but I found the HEAT was monstrous, hence the problem of needing to really smooth the output.

The attached image shows the placement I have put all the components to the dead space on the front left motor housing, ( the motor is on the right, and there is empty space on the left), Note I have had to create an additional array of CAPS to smooth the flow, this actually worked better for me as there really is not allot of space here.
2017-09-22 16.31.53.jpg


The Plugs I used for the USB socket are [url]http://www.ebay.co.uk/itm/262814319020/[url]

the Pin out on them goes as follows,
backofUSB plug.png
backofUSB plug.png (7 KiB) Viewed 231 times


USB Data- > Omega USB D-
USB Data+ > Omega USB D+
USB + > Omega Pin 11 ( Via 1K Resistor)

For the Power.

Grnd -> Ground on the Powerboard.
3.3v -> Pin 7 on the LM2574

LM2574 Pin 5 -> Mainbaord +Lead
LM2574 Pins 2,3,4 -> Mainboard GRN Lead

you can splice them into the cable or as I did was tin the ends and put them in the plug holes before seating the plug, they really are not going anywhere.

I used an Epoxy to seal the end of the plug but ultimately the plug is removable so I can still gain access to the USB bus if I need to.

Configuration, This part I found VERY lacking, the latest version of the Omega software does not have Bash nor does it have a fully featured busybox, note as I said above the Alexa integration is via the Vera hub.

first thing is once you have your omega setup, assign it a static IP..... Vera no worky well on dynamics or internal DNS, ssh into your omega2

then install bash

Code: Select all
opkg install bash


then you need a fully featured busybox luckly mipsel give us a nice quick download

Code: Select all

cd ~
wget https://www.busybox.net/downloads/binaries/1.26.2-defconfig-multiarch/busybox-mipsel
ls -l
chmod +x busybox-mipsel
ls -l
./busybox-mipsel


This configures gives us an independent busy box, so we need to create our XV script.
Code: Select all
vi /root/xv


Code: Select all
#!/bin/bash
#/root/xv

#error out if already high
fast-gpio read 11 | grep -v ': 0' && exit 1

T="$(echo /dev/ttyACM* | awk '{ print $1 }')"
echo T="$T"

#clear out old data
[ -e "$T" ] && cat "$T" > /dev/null && sleep 1

fast-gpio set 11 1

while [ ! -e "$T" ]
do
sleep 1
T="$(echo /dev/ttyACM* | awk '{ print $1 }')"
done

#emulate screen settings
/root/busybox-mipsel stty -F "$T" -echo -icrnl



cat "$T" > /tmp/xv.tmp &
sleep 1

echo "$@" > "$T"
sleep 1

if [ $1 == "clean" ]
then
 if grep -q Cleaning "/tmp/xv.tmp";
   then
     echo "Neato is cleaning."
   else
    echo "clean" > "$T"
    sleep 1
 fi
fi

echo "geterr" > "$T"
sleep 1

fast-gpio set 11 0

rm -f  /tmp/xv.tmp


Code: Select all
chmod a+x /root/xv


Now we need to create a ssh trusted logon.

on the Vera hub we need to create a SSH private and public key.

Code: Select all
dropbearkey -t rsa -f /root/.shh/id_dss


Add the public key to /etc/dropbear/authorized_keys on the omega2.

Nearly there.

Finally, create a manually triggered scene. in the Vera control center, leave it entirely blank apart from one line in the heading "Also, execute the following Luup code:"

Code: Select all
os.execute("/usr/bin/ssh -y -i /root/.ssh/id_dss root@YOURIP /root/xv clean")


Add this scene as available to Alexa in the Vera portal and discover devices., then the command is Alexa Start Cleaning.

BUGS

so far on my Neato there are issues with it initialling waking up, I'm looking for a way to issue a "wake up command before running the command"
Attachments
2017-09-22 22.11.37 (1).jpg
Last edited by jnex26 on September 23rd, 2017, 6:45 am, edited 1 time in total.
jnex26
 
Posts: 2
Joined: September 22nd, 2017, 4:59 pm

Re: Neato XV Omega 2+ ( With Vera->Alexa instructions)

Postby jnex26 » September 23rd, 2017, 6:44 am

Video of it in Action, I have also solved the "Wakeup" bug when asking to clean, so when we need to clean it will test if the command worked first time reruns the clean command, if it did not. If it did work first time then the script just exits.

https://youtu.be/SEPNOWvmV1A
jnex26
 
Posts: 2
Joined: September 22nd, 2017, 4:59 pm


Return to Neato Robotics

Who is online

Users browsing this forum: calebleemcd, moradi2, vic7767 and 356 guests