A Neato control framework built on the ESP8266


Want to help keep this project going? Help us out on atreon, by clicking HERE

Neato Scheduler is a framework built on an ESP8266 Wifi serial adapter, that allows you to interface wirelessly to your neato botvac (65, 70e, 75, 80, 85, D75, D80 and D85) and provides you a few important features that even newer models don't have. You won't have to use that clunky neato interface on your botvac ever again.

  • Schedule several cleanings a day
  • Kick off a cleaning remotely with the push of a button
  • View issues with your botvac while you're not at home
  • View battery level and health
  • View current cleaning status
  • Set your devices time remotely
  • Show lidar map information in near real time.


Simply connect the color coded wires to the connectors in the image below. Its that easy!

The current test architecture is run on a ESP8266. Our components list is as follows.

Arduino/Wifi: ESP8266 ESP-12S
Breadoard Kit: Elegoo


To load the bin file to your esp module, you'll need to download esp tools from HERE, and the firmware from your profile page once logged in.

To flash the image to your device, you'd use the command:
esptool.py --port SERIAL-PORT-OF-ESP8266 write_flash -fm dio 0x00000 FIRMWARE-NAME.bin

Curious what we've been working on, and our way ahead? Here is a list of what we have worked on and its status. We are adding new features each day, based on user feedback. Check back to see what's in store.

Status / Title Description
Create Site Acquire domain and build site and API's
Add scheduling to the page Add cleaning schedule to the dashboard
Create api Create api for ESP8266 to call back to
Admin Management Create an admin management page
Callback functions create a callback function for the 8266 so that it reports that it has connection back to the site
Battery status Create a battery status push back to the server to show users remotely
Issue Tracking Create a callback for neato botvac issues. Issues are now published back to the servers and displayed for users.
Parse serial Pull the serial and push it during callback and registration. (Grab serial information initially)
Perform action Make the bot perform the action scheduled remotely
Create video(s) Create a video on how to install the unit, program the unit, and creating an account on the homepage. Need to finalize the video about the website, but marking as complete.
Check bot status Determine if we're already cleaning, to prevent running a clean statement again (We determine if it's on the charger)
Encrypt site Get a certificate and secure the site.
Battery Graph Create a battery graph using google charts, so you can view battery usage for the last 24 hours.
Over the air updates Add over the air updates for the device and show users in the interface when their device has an older version of the firmware. *UPDATE* there is now a firmware check in your device list. When a new version is available for your device, you will be notified.
Update Time Write the functions that would allow setting the time on your device remotely.
Improve Device Issue Widget Make the device issue widget appear when new issues arise. It currently only works when refreshing the page. The issues table now slides into view when it detects an issue with your device. If you're loading your page for the first time (or refresh), It will also also show a banner at the top that you have to acknowledge.
Metrics issues with multiple devices Fix the dashboard so that metrics and the issue warning banner work correctly. Currently, the battery metrics get confused when there are more than one device. The issue banner fires even when issues have been confirmed.
Fix issues table The issues table has a bug that causes a device to post twice with all serials associated with the users account. Fix the backend db call.
Add lidar support and mapping Create a callback function from the neato to the website, and generate a widget for lidar maps
Fix lidar mirror The lidar data is in mirror based on the data as it's being returned. Flip the returned array to generate the correct image.
Make page more responsive Change all dashboard (that can be) to async refresh instead of sync. This should speed up the users experience.
Add refresh indicator Add a way for users to know that each widget is being refreshed.
Create contact page Need to create a contact page for members to contact us with suggestions or issues they're experiencing.
Create independent webpage I will be creating a new website for those who want to host their own page to control their neato bots. This will allow you to call your own services instead of ours, so you're not pushing data to our servers.
Make install simple Test edge connector attached to the ESP8266 for easy installation (been ordered) Ordered device doesn't work. Need greater offset to make it fit.
Integrate with Alexa Create an api for interfacing with Alexa for voice controlled cleaning
Local IP Display a link to the local IP of each device on the dashboard so users can click it while on the same network, and it will bring up the configuration pages. This is in leu of going to neato.local and will benefit those with multiple devices which may conflict with mdns names.
Turn off display after hours After installing the 8266, the device never goes to sleep due to checking for actions.

Curious on we've been fixing or adding? Here is a list of what each new firmware entails.

Release Date Version Filename Description
2017-09-07 12:07:02 1.6 firmware1-6.bin Added the ability for each neato to set it's local time automatically based on your profile settings.
2017-09-07 12:06:36 1.5 firmware1-5.bin Added lidar support to push back maps to the server. (for viewing on your dashboard)
2017-06-09 02:12:44 1.4 firmware1-4.bin Fixed an issue with serial collection on hard shutdown (using the switch). It was collecting the wrong information after the latest serial collection change.
2017-06-08 02:24:22 1.3 firmware1-3.bin Added the error reporting routine to go along with the backend add-ins. Each device will now report back when there is an issue.
2017-06-07 22:59:32 1.2 firmware1-2.bin Changed the way i'm pulling the battery metrics. It's now pulling only the numbers and not the item name. This decreased the base64 (faster transmit times) that's being pushed to the server and eliminated the parsing on the server.
2017-06-07 22:57:17 1.1 firmware1-1.bin Changed the way I'm pulling the serial number. Now it only pushes the serial number instead of a bunch of unrelated information that the server needs to parse.
2017-06-07 08:32:57 1.0 firmware1-0.bin Initial push for ota. Includes version checking.

These videos will show you how to solder, program, and then create an account on our website. Stay tuned for additional videos, when we add new features.