Asked — Edited

How To Connect Ezb To A Create 2

I have been looking on the forum for a wiring tutorial for the ezb and create 2. There are a lot of ideas and very complicated ideas that seem to work but no simple tutorial to connect ezb to a create 2.

Please let me know if there is a tutorial or can you provide me with one.

Thanks,


ARC Pro

Upgrade to ARC Pro

Unleash your robot's full potential with the cutting-edge features and intuitive programming offered by Synthiam ARC Pro.

#1  

Ellis you need to search the forum... there are many threads on this topic... @DJ did a video on how to build a roomba serial cable. Although slightly outdated it should help you... Also get a copy of the Create 2's ROI pdf file (I found mine by googling it)... It will tell you everything you need to know about serial connection to control protocols..

Edit I also was able to find a tutorial pretty easily in the learn section for creating the serial cable required to connect to the ezb... It was by Robot Doc...

#3  

I have read these tutorials. One problem is almost all but one talk about the Create not the Create 2. All of DJ's tutorials are awesome but they again are about the Create not the Create 2. I may be wrong but there are no tutorials talking about the Create 2. My create comes with a cable that is the round serial on one end and a usb on the other. I do not know if this cable is only for the computer, micro or both.

I know this may seem basic for most but with the Create 2 I do not know how to hook it to my ezb micro and wonder if the existing ezb plugin will work with the Create 2 without modifications.

#4  

@DJ has given you the tutorial on how to make the ezb4/roomba serial (in his above post) connector... The serial cables will be the same... I use the same cable I made for the Create 1 (400 series roomba) and for the Create 2 (Series 600 roomba). You need just 2 wires really... Roomba Rx and ground... (3 wires, adding Tx if you want to receive data back from the roomba). You can use the serial cable that came with your create 2.. splice it open... Check the Create 2 ROI manual (or Dj's link) for the correct pinouts of the 7pin mini din roomba plug. Grab a couple of female header wires and solder one to pin 7 and one to pin 3...

There is no roomba plugin just the native roomba control in ARC... It does work but I also have an ARC file floating around with a bit more control features... Check it out here... It may have to be tweaked but it should get you started... Roomba 500, 600 etc sample control

#5  

Thank You Richard!

This makes sense. I think I have it now. This was a clear once I found out that it is wired the same as the Roomba.

I really like am totally impressed with this forum.

Ellis

#6  

I just received and installed the new cable I purchased with the correct plug. I soldered in a servo cable connecting pin 3 (signal) and pin 7 (ground) as instructed in tutorials. I set the baud rate to the correct 115,200 rate recommended for the create 2.

When I first started it up it did nothing. After working with it a bit it started to move in different directions intermittently and would only work with stop sometimes. I am recharging the Roomba overnight to make sure it is at full charge. Is there something I am missing. I know the Ezb is communicating directly because it is sometimes responding to the Roomba movement control intermittently. Any ideas or recommendations.

#7  

I have rechecked my wiring. Everything seems to be perfect. Pin 3 to signal on Ezb and pin 7 to ground on Ezb. The Ezb Roomba Movement Panel is installed and the baud rate is set to 115,200 as per tutorial.

The Roomba either does nothing or is very intermittent.

The Roomba is a Create 2. I was wondering if the Correct signals are being sent to the Create 2. There seems to be a start command, a safe command and a stop command. I am wondering if this is my problem.

Here is the link to the manual.

https://cdn-shop.adafruit.com/datasheets/create_2_Open_Interface_Spec.pdf

See pages 7-9.

I am making a telepresense robot so I can let my grandchildren run the robot over the internet and I will set an Ipad on a stand on the Roomba so we can Facetime. I am trying to get them involved in Ez-Robot to peak their interest in robotics. They are very creative.

#8  

@Ellis Please take a look at this thread...

synthiam.com/Community/Questions/10951

where several others are discussing a similar issue.

I'd like to suggest that you try Richard R's design as I did and it worked great for me

Regards, Frank

#9  

Frank

I did read the article that you wrote on the 650 in the above link. I noticed that you said to use the UART instead of the send serial. I am actually connected to pin three on the Roomba which you said has been changed on the newer Roombas. You said that you other people have also had trouble with this connection.

I am pretty unfamiliar with the UART connections. Could you tell me where I can get Richard R's design or the link to the information so I can learn to connect to the UART and use Richard Rs motion script. It seems the UART is the way to go

I know I need to to do this sometime. I guess now's the time.

#10  

@Ellis, I suggest that you start with the sample project that Richard R made as shown in the pics below. You should be able to check and see if the Movement Panel drives your Roomba correctly.

User-inserted image

User-inserted image

In regards to my saying "pin 3" had changed, that was a typo... I was talking about the "DD-BRC pin" which is "pin 5"... sorry. That is the pin the previously could be used to wake up a Create 1 Roomba that doesn't work on a Create 2

I have tried a couple of ways to wake up the Create 2 Roomba. One way was by using a servo on the EZB controller to push the button and the second way was a SwitchBot controlled by my phone

User-inserted image

User-inserted image

Please keep sending updates on your telepresence project as it progresses. I'm very interested in your project

Regards, Frank

#11  

Thanks Frank that gives me motivation.

I have a question. I thought UART connectors have 4 wires but there are only 3 pins on the UART port on the Ezb..

How would I wire the UART port to the Create 2 plug? What pins on the Create cable would the three wires from the Ezb be connected to.

Does the Ezb use three wires ground, transmit and receive?

What are the wires black, red and white carrying. Black ground, red transmit and white receive or black ground, white transmit and red recieve?

I am trying to learn how to work with the UART.

#12  

@Ellis, This weekend I'll connect back up my EZB-based Roomba so I can better document the steps

frank

#13  

Thanks so much Frank. I am excited about getting my telepresence robot going.

Update: I have finally figured it out on the UARL. I was looking at the wrong ports. There is only 1 UART per board and it is labeled by pin. I am going to try tomorrow to wire it and install custom movement panel.

Let you know how it goes.

Thanks Ellis

#14  

@Ellis I just uploaded a public project "EZB Roomba Basic" that is a very simple version that you can test. I also set the speed to very slow which can be adjusted. This is based on the sample the Richard R published

I put very few features in it with the idea of adding more later when you are ready such as using Roomba power, remotely pushing the "Clean" button to get started and adding a mount for the iPad FaceTime feature with the plan of it being a telepresence robot

It uses UART1 TX/D5 to connect to the Roomba Pin 3 RX. This will also work with the Create 2. I'm using the Roomba 650 which is the basis for a Create 2, but contains the cleaning brushes.

It has a mobile interface, camera, Movement Panel and Init and Dock scripts

Here is a video... note that when docking the Roomba 650 activates the brushes

As for your above question of 3 wire verses 4 wire UART connections, 3 wire is fine as the ground is common.

The UART RX input would be connected to the Roomba TX pin 4

User-inserted image

Feel free to ask any question, this forum has a LOT of Roomba experts

Regards, Frank

#15  

Thanks Frank

I would like someone to look over the following informations to make sure I have done everything correctly before I start the Roomba Create 2.

I have rewired my Roomba to the UART port (Black 4 wire Plug on Ezb microcontroller).

I connected Roomba pin 3 Recieve (purple wire) to RX on Ezb UART port.

I connected Roomba pin 4 Transmit (Black wire) to TX on Ezb UART port.

I connected Roomba pin 7 Ground (orange wire) to GND on Ezb UART port.

See picture below:

User-inserted image

I am going to use Richard's Test Plugin.

#16  

@Ellis, I don't see the plugin you are referring to, but if it uses UART 0 that is correct... but just to be clear...

EZB UART TX pin should connect to Roomba RX pin... this is used to control the Roomba

The use of the Roomba TX pin connecting back to the UART RX pin is just for reading back any status that may be of interest... its not for controlling the Roomba

The way your description reads is that you are connecting UART TX to Roomba TX and UART RX to Roomba RX... this would NOT work

By the way, in the example I created I'm using UART 1 just in case you decide to try that too

Regards, Frank

PRO
Canada
#17  

@Ellis A couple things I noticed:

  1. You are connected to UART0, if Richard's Example Project uses UART1 so you'll have to make those changes in the project. (Or you could switch your connection points on the EZ-B side if you want)

  2. You will want TX to be connected to Receive and RX connected to Transmit. This is a common thing to have connected in reverse.

#18  

Thanks Jeremie.

I can switch the wires on the Ezb. Help me understand what the difference between UART0 and UART1 as far as I can see there is only one UART. Is it a software or physical difference?

The pins are marked TX, RX, GND and 3.3v. Is the 3.3v powerful enough to power Ezb?

PRO
Canada
#19  

There are actually 3 UARTs

UART0 is the connector that you are interfacing too UART1 is digital pins D5/D6 UART2 is digital pins D18/D19

UART0 is dedicated to only UART communication while UART1 and UART2 are alternate functions of the digital pins mentioned above.

Please see the EZ-Bv4 datasheet for reference.

3.3V is regulated voltage from the EZ-B on-board switching power supply. You won't need to plug anything into it.

#20  

This is great information. I will switch the wires to UART1. I will let you know how it goes.

Are the Digital ports on I oTiny also dual purpose digital and UART1 AND 2? I do not see a UART0. I would like to use l o Tiny for this controller.

#21  

@Ellis The ioTny does not have a UART port...

However you can use it to control the roomba if you switch all UartWrite commands for SendSerial commands...

#22  

I followed your and Franks instructions. I understand better now.

I wired the wires correctly with black ground and white signal to port D5 Ezb and white to pin 3 and black to pin 7 on Roomba plug. I ohmed the wires to make sure they were connected correctly before plugging the cable into the Roomba.

I loaded Riches Roomba sample plugin into the Ezb program, turned on Ezb controller heard the beep, connected to Ezb wireless and tried Riches sample plugin. It did nothing. I started all over again rebooting everything. Still didn't work.

Found out that after failing to work it disconnected wireless each time. I had to completely reboot everything and disconnect Roomba cable to get it to connect to wireless again.

I am not at all knowledgeable about the UART programming in Ezb. I looked at Richards software and could not fully understand what each script was doing. I finally took pictures and decided to see if anyone could help.

All I want to do is control the Roomba Create 2 with a movement panel, with speed control. I just want to be able to drive it around using Movement Panel with the panel, joystick, wireless and over the internet.

I am so frustrated I feel that my only choice is to look at Arduino board and their plugin. I have never bought another microprocessor other than Ezb. It is the greatest software, micro and support forum I have ever seen.

I see several people say it works great on UART but I have read over and over the tutorials and forum info to still no avail. Is it possible to have a Ezb script to provide a simple Movement Panel for Create 2.

I hope all my investment and time has not gone to waste with the Create 2 and Ezb on this project.

Create2.zip

PRO
USA
#23  

Ellis,

Take a deep breath...

There are so many tutorials and forum posts, after reading your previous posts i got the conclusion you ignored a few helpful resources e.g.:

  1. What is an UART, TTL/Serial Communication
  2. EZB Hardware e.g. UART locations and pin wiring
  3. Iotiny Hardware
  4. EZ-Script e.g. UartWrite and SendSerial

I understand you want fast results, but, without learning takes longer to move forward.

Quote:

I am so frustrated I feel that my only choice is to look at Arduino board and their plugin.

Sorry to hear that... but you don't know what is an Arduino and how painful will be for a newcomer without patience... First there is no plugin, there is an IDE where you drop code: (C Code), arduino is an open hardware, that means you need to find someone's forum or the arduino forum for help. If you don't ask the correct questions and/or after a few posts, your thread will go into silence mode.

I believe you are on the right place to get your project moving.

#24  

Hi @Ellis, I'm not sure if anyone ever mentioned this, but you need to push the "CLEAN" button on the Roomba just once so that the EZB can talk to it. The CLEAN light should come on...

If you still have a problem, please try the project I loaded "EZB Roomba Basic" as its very stripped down and I can help you troubleshoot it better.

User-inserted image

Frank

#25  

@Ellis

Quote:

I am so frustrated I feel that my only choice is to look at Arduino board and their plugin.
If you can't get it to work with your ezb4 or ioTiny then you will for sure have way more difficulty getting your Create to work with an arduino... If I were you I would stick with ez robot as arduino programming is many times more difficult to do...

#26  

I have to admit that I am exhausted with the amount of research I have done on this project. And I doubt that I have ignored any resources that I could find. I only want to create a Movement Panel that will work with create 2. I also have been told many things that turned out to be not exactly true. I was told that Create and Create 2 would be wired exactly the same which is true but they won't work on digital ports such as D0 and D1. Also that Create works fine but Create 2 does not on the same pins.

I have been helped a lot during my quest by really knowledgeable people. Richard R, Frank and several others have been trying to help. But most of the time information is left out as to where to find out what they are talking about. Sometimes I think I don't even understand what they are trying tell me. I have followed every recommendation and implemented it in my project but still couldn't get it to work.

I do program to some success with standard digital ports. I am continuing to lean.

My point with Arduino is that there is already written plugins to work with Create 2. There are not with Ez plugins. You are right I do not want to start learning C++. Ezb is a lot easier and I am still having problems. No telling what what I would do with C++. I just don't know how to go forward.

Frank please tell me where I can find your Ez Roomba Basic post. It sounds like it is what I am looking for. Also I may have forgotten to push the Roombas on button. I can't remember. Thank You Ellis.

#27  

Hi Ellis, Start a new project in ARC

Click on EZ-Cloud App

In the User: pick faengelm and then the EZB Roomba Basic

User-inserted image

Open it and note that you will need to change the connection IP & camera IP to match your EZB controller address

Connect to your EZB

Push the CLEAN button once on the Roomba while its in the dock

Use the back arrow on the Movement Panel to undock

Sometimes its takes a couple of forward & reverse clicks to get recognized or at times the IInit button.... after that its solid

see my youtube video using the Mobile Interface. I have a Roomba 650 which is what the Create 2 is based on

Let me know how it goes

Frank

#28  

Well Fantastic Frank with your Roomba EZB Basic.

I set everything up according to your instructions and everything worked perfectly.

I am going to attempt to tidy everything up and create a mobile app to control from an Iphone 10. Then I will be ready to talk to my grandchildren on a robot.

Very Cool. Thanks for your patience.

When I get every thing done I will send you a video.

Ellis

User-inserted image

#29  

Hello @Ellis, I am so happy to hear it works for you.

This will encourage @RoboHappy and @Nink in their projects

I'm not sure if you noticed, but I also have a mobile panel in my project. The really fun part is watching it seek the dock and recharge.

Its really funny, your telepresence robot looks a lot like mine....:)

User-inserted image

By the way, if your iPad supports IOS 11, you will be able to autoanswer Facetime calls...

Here is what I'm working on for the next versions of this project. I'll leave the Basic verion in place who might be starting from scratch

  1. Powering the EZB controller and camera from the Roomba SCP. Since its limited to 250ma I can't power a servo to push the CLEAN button. I'm currently using a SwitchBot to push that CLEAN buutton

  2. Powering the entire setup including the iPad by tapping the Roomba battery

  3. Remotely controlling the telepresence robot over the Internet

Regards, Frank

#30  

@Richard-R, I just wanted to say a BIG thank you for showing me how to use the UART to work with the later generations of Roombas

Without your help, I never would have gotten it to work as I had problems with the EZB Roomba panel on D0 using SendSerial

Regards, Frank

#31  

I thank both of you for your help. I hope to someday be able to help others. We will see.

Thanks Again

Ellis

#32  

My Roomba is WORKING!

I have a questions. The 650 Create 2 Roomba seems to loose all normal capability when Ezb is in control (on, connected and plugged in). Is this to be expected? When Ezb is control unit will bump into something and just keep pushing. I thought it would press bumper and change directions. It doesn't. I am going to disconnect cable and let it try on its own without Ezb and see if it works.

#33  

Hi Ellis, That is my fault.... I put the Roomba into "FULL" mode to run some tests and forgot to change the code back to the "SAFE" mode.

I will change the code in the project, but just so you know whats going on here is the change I'm making

Quote:

uartinit(0, 1, 115200) #UART port 1 sleep(20) uartWrite(0, 1,128,132) #Init iRobot create and place in full mode

I will be changing the "132" to a "131" for the "SAFE" mode which enables sensors. It will just stop when it bumps its something is it really not doing a cleaning mode and wont try to find its way around the room after a bump

If you'd like to look at the complete list of commands here is the iRobot OI spec www.irobot.com/~/media/MainSite/PDFs/About/STEM/Create/create_2_Open_Interface_Spec.pdf

It can be a bit hard to follow, but once you see some example, it will make sense

I'll keep adding features and am considering actually writing a EZB Roomba tutorial unless someone more experienced wants to do it. I'm open to ideas and suggestions starting with which advice on Roomba models a new user should pick... e.g. don't pick a 440 as it has no charging pads for docking

Regards, Frank

#34  

Thanks Frank

The info is great. I would be very excited about you writing a tutorial on the new version create 2. I think there is a lot of people out there that would love to use EZ-Robot to control their Create 2. Looking forward to it.

Ellis

#36  

Hi Nink, Thanks for pointing that out...looks like the adafruit site didn't like the ref from EZ-Robot Forum although the embedded link looked fine.

I changed it to the iRobot site which is a better location anyway and that works.

Good catch, Frank

PRO
Canada
#37  

Roomba turned up $200. Missing power cord (same as my Apple TV) and the invisible wall was broken (broken wire) but works great. Cleaned the house well :-).

I went to find my old roomba red din connector but it was lost, so I cut the end of an old mouse off. Problem was it only had 4 wires and none were ground (pin 6 and 7) so maybe this is why people are having trouble. Remember when you look at picture of a port your wiring for plug is mirror image so you may mix up pins. Any way I grabbed 2 jumper wires and just connected direct to EZB and works great.

I will buy a connector. Here is a photo to show exactly how it is wired to work with Franks demo.

User-inserted image

PRO
Canada
#38  

Found my tripod. How are you guys attaching iPads. I put some Velcro on mine but I think we need to make a pan tilt and spin.

Any thoughts on making a body for the robot?

User-inserted image

#39  

Hi Nink, I'm glad you got your Roomba working.

For anyone else who does not want to solder on that small connector, here is a cable I'm using from gumstik.com. No worrying about soldering to the wrong pins store.gumstix.com/cbl013.html

User-inserted image

The real beauty of it is that you can just clip it unto your EZB Controller with one additional M-F breadboard jumper... no soldering at all!

User-inserted image

This is the kind of stuff I thought about putting in a Roomba Basics tutorial

Regards, Frank

#40  

Hi Nink, I think you should look into a special iPad camera mount like this...

User-inserted image

I'm acutally using a tripod that came with that removable iPad/iPhone head

User-inserted image

I'm not planning on trying to motorize an iPad mount, but would be interested in your design. You wouldn't have to impement the PAN function as the Roomba could provide that axis of movement

Thanks, Frank

#41  

Hi Frank and Nink

I attached my tripod with these stick down Cable Tie Mounting Bases. The are cheap, very strong, and and since they are stick down easy to attach and remove when wanted. They use standard Cable Ties or Zip Ties to attach them to tripod.

User-inserted image

User-inserted image

User-inserted image

Frank I like your dual attachment and Nink I like your Roomba deal.

PRO
Canada
#42  

Hey Frank and Ellis,

If I understand the use case of our telepresence device, I sit at home while I steer my telepresence device from meeting room to meeting room and pull up a space at the table or hang out at the water cooler.

So if I am at home and my EZB is connected to my work network, how do I connect to it from home? Do we need to add a raspberry pi or some type of onboard compute as the EZB needs to have enough smarts on board to connect to an external location when powered up. As far as I know there is no way to get the EZB to call home directly. I think @PTP firmware allowed the V4 v1 to do this but does not (as far as I know) work on v4v2.

I am fairly new to EZB so not sure what options there are. Could we use mono or universal bot to establish a connection to robot and then control EZB from home ?

#43  

Hi @Ellis, I like your idea of the tie downs. Please send some pictures showing how you connected to the tripod legs.

I really love this forum... lots of sharing of ideas

Regards, Frank

#44  

Hi Nink, I haven't worked put yet how to control it from a remote location, but I'm testing several options some dependent on controlling a PC at the remote location and some without a remote PC

he first thing I'm working one is powering the EZB Controller and iPad from the Serial Port connector 200ma power or a means to tap the Roomba battery so that the person on the remote end doesn't have to plug in any chargers.... just using the self-charging features of the Roomba

User-inserted image

@ptp, How does your remote connection idea work?

Regards, Frankl

#45  

@Nink

Best option will be to have a local PC with remote access (many options, let me know if you need guidance, I have used about a dozen different ones).

If you have total control of the network (ie, you can forward ports on the LAN from the internet router) , and a dynamic DNS service so you always know your IP address, you can forward a port to the EZ-B ip address (I would remap from port 23 to a different port number since 23 is a constant hacker target) you can run EZ-B remotely, but you won't get as good performance unless you have gigabyte internet at both ends (and even then, probably not as good as a local connection with a remote desktop).

Alan

#46  

Team Viewer will do what you want... Not sure if it is free anymore but at least you won't have to forward any ports which puts your network at risk...

#47  

@thetechguru, Thanks for the great advice... here is what I setup based on your suggestion and I actually got MOST of it to work WITHOUT a PC at all at the remote end..

I can test this because I have two different ISPs at my house, Comcast and ATT.

On the remote end, I just have the EZB Controller on the Roomba connected to the ATT Wi-Fi network. I set Command TCP Port to 8023 and the Camera TCP port to 8024 in the EZB Controller and forwarded those ports in the ATT router to the IP address of the EZB Controller.

On the local end, I have a Windows 10 PC connected to the Comcast Wi-Fi network and running ARC with my EZB Roomba Internet program on it. The PC is able to control the remote EZB Controller over the Internet and view the EZB camera!

I then added a mobile Interface and was able to control it from my iPhone connected to the Comcast local Wi-Fi network.

The only thing I can't do on the iPhone is view the EZB camera.

@Ellis & @Nink, Since this is now starting to get more complicated I will post a sample app and start to added step by step instructions in a Tutorial

It can be a simpler setup if you follow @Richard-R suggestion and use a remote viewer with a PC at the remote end

Regards, Frank

PRO
Canada
#48  

Hi @Frank

wow that is a bit of an issue :-) Can't imagine we want to charge a batteries at 0.1C. The charger says it is 1250mA 20v and multimeter on Din plug reads 19.8v So we have a some room to play if Roomba is not charging. We could just tap charging pads and cross fingers with a voltage regulator but the fact they limited us to 200mA lets me think Roomba needs the other 1050mA to charge. So I think we will blow the fuse in Roomba charger when Ipad and roomba are charging.

Perhaps an idea (not sure if this will work) if we could tape over charging pad on bottom of Roomba and put a new metal pad on top that connects to an inline current measuring relay circuit and then back to the taped over pad. So when the current drops (Roomba is no longer charging) we cut power to Roomba and switch to charging the other devices. We could probably current check with an INA219 and an atmega328p (well below 200mA) and a relay. So if current drops (We can assume Roomba is no longer charging ) then we switch over to a voltage regulator to charge other devices.

#49  

Hi @Nink, Maybe I didn't state it properly. I'm not suggesting modifying the Roomba charging circuit and the serial port connector provides enough power to run the EZB controller and its camera. What's really nice is that I can always connect the the EZB controller as power stays on even when the Roomba shuts down on the dock I just use a buck converter to step down the Unregulated Roomba power for the EZB

The only problem is when you want extra power for servos or an iPad, but I have some yet untested ideas that I'd like to prove our before sharing

For my Use Case I assume an infirmed person at the far end who can't be plugging in chargers or pushing buttons

Your idea of modifying the charging pads is interesting, but the Roomba charging circuit is complex. Connect a voltmeter to the charging doc pads and note that it's only about 2v when there is no Roomba docked, I assume for safety even though the charger puts out 22v

Regards, Frank

PRO
Canada
#50  

I guess we can always use your magnetic charger from our other thread. It will actually line up now :-)

#51  

Oh, I like that idea.

The Roomba and dock would always be in alignment for the connection and the Roomba would pull away to disconnect it

Excellent!

I pursue that over the next few days

great teamwork...

I'll let you know if my other untested idea works too

#52  

Here is the picture of the strapdown for the tripod.

User-inserted image

I like to see others working on this.

I am going to use a surface tablet and skype. It is simple and should work perfectly.

I will let you know.

Ellis

#53  

@Ellis, Very nice mount

If you decide the use the Surface, I guess you could also let that serve as a ARC program on the Roomba

What are your plans to charge it?

frank

PRO
Canada
#54  

I like the straps. I was thinking I may build a light weight frame and disguise the Roomba. I thought about 3D printing but 10 rolls of fillament and one month later .....

here is my charger. Stealing Franks original idea. 4 extra large paper clips, 4 neodymium magenta (one on ether side of paper clip on charger so they hold in place), a lead acid 12v battery, a float charger and a voltage regulator.

Hot glue paper clips in place but keep them loose on the charger as the Roomba docks differently every time so the need to float around a little bit (wiggle them when almost dry) but can’t float to much or they will lock together and either blow a fuse or bbq your Roomba.

Need to change to lithium ion as battery is heavy. Also need a better magnetic connection idea but it all works.

User-inserted image

#55  

That was quick...

What will be using the extra power?

Is that just for the iPad?

Where you planning to have a servo push the CLEAN button?

PRO
Canada
#56  

Not sure why I need more power but 200mA I can’t charge EZB and IPad. I also need a PC on board as I can’t punch through firewall at work so I was going to put a mini PC with two video Ports on board (or a USB monitor) 1 for monitor (no point of having an IPad if I have a PC on board) the other for remote takeover of PC (HDMI dummy plug) I could just leave PC on desk at work but if I move telepresence to another area it will be on separate network segment so won’t be able to connect. If PC is on board with EZB then I should always be on same segment.

I think I will need some Servos. push elevator button, use a pointer, control gimble for monitor, run a Kinect for camera and depth or maybe 3D Lidar . Ohh I need some LEDs because you always need LEDs. An LTE Modem a GPS, a speaker, a decent microphone, temperature humidity sensor so I can complain about the weather.

OK I think I need more power LOL. (None of this will happen)

For clean button maybe I might just open it up and run a a couple of wires off the button. you think there would be a wake command for that.

#57  

Hi Nink,

wow! This is a lot more complex than my Use Case of an elederly parent living alone with a remote family caregiver controlling the Roomba for FaceTime visits

I have a couple of questions about your work environment: Will they let you put a non-company PC on their network? Will they let you connect a non-company device(EZB Controller) to your wireless network?

Also, do you have plans to add some type of camera to help you drive the Roomba around? I guess if you added a control gimbal for the monitor you could be running Skype as your camera.

Have you considered using a Windows tablet mounted on the tripod? That could handle the ARC programs and Skype

Its great to have have these different ideas as there is no single solution

Frank

PRO
Canada
#58  

Hi Frank, We have a "guest network" but it is behind a firewall and no inbound traffic. I think if I schedule my PC to make an outbound call say once a minute I should be fine, but I should test.

did not think about tablet, on a budget. I have an old acer aspire one laptop with windows but it is noisy and slow. maybe?

PRO
Canada
#59  

I started on the head assembly. Yep that’s my wife’s favourite popcorn bowl. I put a rotate servo for head in case I add arms and don’t want them swinging about and a tilt forward and backwards. I am not sure if I want a 3 DOF to tilt left and right. I think with a telepresence bot we are going to need to be as expressive as possible and tilting head side to side maybe helpful.

Also started work on a base to mount things. Odd shape as you still need bumper to work and accesss to remove dirt container. All good telepresence bot should also be able to clean up after themselves.

User-inserted image

PRO
Canada
#61  

@Frank "Man, you move fast..." Nothing is bolted together all I did was cut a hole in a bowl and stick it on top and take a photo :-)

Turns out the guest WIFI is fun. DHCP server issued a new address every time I connected and I had to play guess the segment before scanning. That won't work in production.

I think I will have to put 2 WIFI adapters on Windows PC 1 to connect to internet the other to EZ-B in Adhoc mode or worse case throw a router into robot as well. More Power, weight, cost....

#62  

Great examples.

I am using my Surface to skype and run Ezb. I have replaced my battery inside the Roomba with a 4500 mAh Roomba replacement battery.

I have not added the Surface to it yet. I will need to go direct to the battery if I do.

I am planning on plugging Surface into power until I get it figured out. I could make the auto power connection on the Dock as you did Nink. I could then charge the Surface battery automatically off of the Dock.

#63  

I forgot. I am going to look into VPN to do secure internet control. It would even then allow me to take control of my surface remotely and make calls and even operate any program on the computer.

#64  

@Nink, What battery and charger are you using?

Thanks, Frank

#65  

@Ellis Let me know if you figure out a way to tap the Roomba battery

I was hoping that the I would see battery power on the Roomba jack... nope

Frank

PRO
Canada
#66  

Hey @Frank battery is a 12V 3.5Ah lead acid. Think I paid about $20.

The charger is a 12V charger with a 12v float charger on it. This is important so you don’t overcharge and can keep topped.

I connect direct to EZB and not to LIPO so EZB always runs off lead acid battery.

It was really what I had laying around from other projects but if I was to buy I would build a couple of lithium pack from 18650 batteries and a specialized charger.

#67  

I don't know if that question was for me but I am using the Roomba Dock.

PRO
Canada
#68  

Here is my latest head assembly. I swapped out my nock off MG996R for Ez- robot HDDs. and added a 3rd servo so now I have yaw pitch and roll.

I decided to go with an iPad for now, I found my old IPad 2 and it seems to do FaceTime OK. It is so slow I can’t use it for anything else. I will use the acer laptop for EZ-robot I think so I don’t have to spend money and it should have enough horse power if I disable all the back ground bloatware to run EZB and a remote takeover app.

@Ellis think I will use your idea and do a VPN tunnel and route all traffic back to my house as I am worried I am going to get all sorts of network issues. So adhock on 2nd network card on acer and iPad and EZB can connect to that and then route all traffic over VPN to home network.

User-inserted image

#69  

@Nink If your iPad can run IOS 11, FaceTime can auto answer

Frank

#70  

@Nink, Some interesting info from @DJ in another post that may remove the need for VPN synthiam.com/Community/Questions/5919

Quote:

Posted 2 hours ago

  1. Opening ports is fine, long as it's ONLY to the EZ-B

  2. no one can relay from the EZ-B to any other computer in your network

  3. You can change the port of your EZ-B if you don't want tcp 23 (for what ever reason). This is done in the EZ-B's config - OR - most routers when opening a port allow you to specify the Internal and External port. So you can make the internal 23 and external what ever you want...

I know that I have been able to control over the Internet to an EZ-B

Frank

PRO
Canada
#71  

Hi @Frank

There is no way I could get (or would ask) my IT department to port forward to EZB. I have tons of respect for @DJ but if someone hacked into the EZB remotely and jumped onto the network at work DJ and I would both be on the front page of the New York Times.

On the iPad 2 sadly it only supports IOS 9. Now I have another problem to solve :-(.

PRO
Canada
#72  

Spent some time in roughing a frame. It is too tall so will have to cut down as it is top heavy. Was thinking of fiberglass over cardboard or maybe just some of that plastidip on paper mache to keep it lighter.

Laptop is 20v 2.5 amp so need to add another 12v battery in series and get a 24v float charger.

Ptp suggested a pico projector, it’s a good idea but they are expensive for a decent one 500+ lumens. I need a way to control remote as well.

I was thinking of stealing Rollis arms and padding out with some ezybits blocks to do some simple tasks.

I ended up using a HDD servo for switch.

User-inserted image

User-inserted image

#73  

Hi @Nink, I like your design.

I'm still pursuing using the Roomba battery to power everything and will let you know how that turns out... using step downs for 7.5v for EZB/servos and 5v for iPad

FrankE

#77  

Hi,

Thanks to everyone on this project. I upgraded to work with Alexa and added mobile interface. I will do more as time permits.

The Alexa integration was done using web interface and ISY 99i. I use ISY to control all lighting and sensor at home. I have the ability to access X-10 and INSTEON now and it can be upgraded for others. I also use for outside X10 sensors which send text alerts but also can send commands to robots. Currently InMoov reports on sensor activity.

If you run on PC and then look at mobile interface, it will show you Roomba Voltage. On a previous post I showed that I added a MP1584 DC to Dc converter inside V4 to control high voltages from Roomba charging.

I uploaded a video to you tube. More suggestion appreciated. I am have some issues with playing songs to Roomba. I get some but crash Roomba sometimes.

#78  

Hi Jack, Thanks for sharing the video... very nice

I'm not sure if you saw this in a previous post, but here is the link to the full Roomba interface spec

www.irobot.com/~/media/MainSite/PDFs/About/STEM/Create/create_2_Open_Interface_Spec.pdf

in reagrds to the playing a song issue, here is some sample code that I use


uartWrite(0, 1, 140, 0, 4, 70, 10, 70, 10, 70, 10, 65, 60) # load song
uartWrite(0, 1, 141, 0)  # play song

Please share some details on how you accomplished the Alexa-Roomba interface. I previously used IFTTT to handle the Alexa EZB interface

Regards, Frank

#79  

Hi frank,

Thanks for the code.

I use ISY 99i controller with network interface. This controller gives me the ability to control all lights, X-10 and Insteon. It can handle ZigBee and ZWave too but I don't use either.

It interfaces with Alexa so you can use through the web. It also can send commands to a web page so I send http://192.168.1.122:90/exec/?password=admin&script=ControlCommand("clean",ScriptStart) to start Roomba ro run that script and http://192.168.1.122:90/exec/?password=admin&script=ControlCommand("stop",ScriptStart) to run that script

You could do this through a web page also.

But this gives me huge flexibility. I can start something at a certain time. I can read in X-10 sensors, send a command to EZ Robot and turn on lights etc.

I guess you can use IFTTT but this works for me internally.

I have many other programs ISY handles like sunrise and sunset routines etc.

BTW - That demo runs on Roomba battery with DC-Dc converter I told you about the other day.

Here is link to this unit on amazon.

ISY99

Takes some work and add on modules but it does a lot of automation.

I am not sure we can send web commands from EZ V4? that would be great if possible.

Let me know if you have any more questions.

Jack

#81  

Hi Jack, I really like your use of icons in your mobile interface

synthiam.com/Community/EZCloud/RobotAppDetails.aspx?id=5666

User-inserted image

I'd like to suggest that you consider using Safe mode instead of Full mode as @Ellis had pointed out a problem in my original use of the Full mode

User-inserted image

Also, if you are having intermittent issues, try adding the "Start" command per the Roomba OI spec. It seems like it really not always required

User-inserted image

Thanks again for posting your project Frank

#82  

Frank,

Thanks for the input. I will make changes and upload.

I would really like to be able to have the ability to run scripts in mobile mode so I can monitor Roomba systems. I guess we have limited ability in that area.

I have several Roombas that I am working on. One scheduling is shot so I will use this to at least test stating on a schedule with ISY for now.

The main reason I use the ISY is for better centralized control of all IoT projects and systems.

I believe Roombas can only handle 20 KG of weight about, 20 lbs. Do you know if true?

Thanks for the help. I will be making more changes soon.

#85  

Hi all, I have been researching the problem of waking up a DOCKED sleeping Create 2 (in my case Roomba 650) for MANY days now and starting to loose hope of finding a solution. I have researched many forums besides this one and found solutions lacking except for the relay across the Clean pins mod that @rbaroni implemented or my servo pushing the clean button. Right now I've directly tapped the Roomba battery to provide the additional power for the servo and the iPad (needed for telepresence) using buck converters. My Roomba firmware is at \r\nr3-robot/tags/release-stm32-3.7.5:6216

I have tried every combination of suggested control sequences and BRC pin pulses suggested and come to the conclusion that there is a bug as suggested by this site

www.thinkingcleaner.com/compatibility.html

User-inserted image

I have checked various other sites such as RobotReviews, Hackster.io and even the robotics.stackexchange where iRobot engineers participate.

My current workaround is to use the IFTTT Sender plugin to control a WeMo power outlet to remove the dock power for 2 minutes. After that, pulsing the BRC line low does indeed wake up a sleeping docked Roomba every time... biut its not elegant

PRO
Canada
#86  

Nice find on the wake on power mode. 2 Minute delay is a little rough though (I assume cap bank to handle temporary connection disruption in docking contacts). 20 pound is not lot, I have frame, EZ-B and battery alone at around 10 pound adding Mini PC, pico projector, ipad, gimbal, robot arms& hands, kinect, cables plastic... ummm maybe I need to rethink my design.

#87  

Nice work Frank.

Sometimes am getting Roomba hanging and have to pull battery out to reset. I guess I am sending something to Roomba it doesn't like. I wanted it to do some routine tasks, but finding it is a little unreliable to start on its own.

#88  

Hi Jack, Rather then pulling the battery, try holding both the spot AND dock buttons for 10 seconds to perform a reset.

Also, rather then trying my rather complex means to disable dock power to get BRC to work when waking a sleeping Roomba, just unplug the power cord to the dock for two minutes to see if the BRC pulse wake up works for you

I'm hoping to get a couple of people to check to see if my solution really works... it's very stable for me.. it's so nice to hear the wake up song and see the green Clean light on a sleeping docked Roomba after so many failures

Thanks, Frank

#90  

Jack, Can you confirm my power off in dock fix for waking a sleeping docked Roomba?

Thanks, Frank

#91  

Hi Frank,

Unfortunately not at this time. The Roomba I am using would not dock so I retired and I use as a test bed at this time.

I have other Roombas but haven't had the chance to play with. I did do the manual reset and that works good.

This Roomba I cannot figure out what is wrong other than the board is going bad. I traced everything back to the board and will not dock or even charge when placed on docking station. I have 4 Roombas and it will not dock on any. I have to plug in manually so limits what I can do for now.

But it is a good test platform and everything else works on it.

Jack

#92  

Jack, I know what you are going through with used Roombas

I finally decided to buy a Create 2 so that I have a known tested standard to work with

@ellis & @nink & @robohappy can you test my manualy cutting power to the dock solution to wake a sleeping docked Roomba via BRC pulse?

Thanks Frank

PRO
Canada
#94  

Thanks Frank. Good option. I appologise for not testing your solution to the need to push the clean button to activate. It is the first time it has been warm in Toronto for a long time so I am getting a vitamin D fix. I will check workaround as soon as bad weather permitting.

#95  

Hi Nink, Enjoy those rays... I'm not on any schedule... I'm retired..

Thanks, Frank

#96  

@faengelm,

I'm not sure if this is what you are refering to but I had the usual issue of needing to wake the Create 2 up from a sleep and the only reliable solution I came up with is to carefully remove the top pieces and get access to the clean button. I neatly soldered two fairly thin guage wires to the switch and neatly ran them up to a relay module that activates with 3.3 volts and I control it with a digital output on the EZB Controller. Then control the relay with a simple script.

Turn relay control on Wait 1 second (for example) Turn relay control off

This works really well. Just make sure the relay module you use has a control current that doesn't exceed the ezb controller digital output source current. The relay modules I use have a buffer transistor between ezb controller digital output and the relay coil input so requires very little source current from ezb controller digital ouput pin. Hope this helps....Rick

#97  

Thanks for all the good information.

I am going to get back to my create 2 soon.

#99  

Hi Rick, Thanks for the update. I'm glad the relay worked for you. I'm going to try that now. I have been using a servo to push the Clean button

I noticed you had reported the problem on Robotics.StackExchange and several others had the same issue. The iRobot employees on that forum just seeem to think its bad cables

Recently I have been spending a lot if time trying to get the BRC pulse method to work per the iRobot Create 2 OI spec

User-inserted image

My testing has shown that this does REALLY work BUT ONLY IF

  • the robot is sleeping undocked, i.e. not charging
  • the robot is fast charging, i.e. not trickle charging as it is most of the time

I could force a docked sleeping robot to respond by turning of the power for 2 minutes for the power supply caps to discharge, but this is not dependable method for a telepresence robot

Thanks, Frank

#100  

Hi Frank,

thanks for the link to files for bin mod. Unfortunately I have been buying up used, broken down Roombas and people keep the dust bins!

When I get a dust bin I will print and use.

What is the max weight are you putting on the unit?

Jack

#101  

@rbonari, I took the inner lid off and here is a picture of what I see

User-inserted image

I checked the contacts on SW5 with an ohmmeter and it seems that either set closes on a depression of the switch.

Which contacts did you use?

Not a fun disassembly...:(

Thanks, Frank

#102  

As I'm working on my Roomba based telepresence robot, I noticed that most of the commercial telepresence robots just rely on a remote operator to drive them around... no SLAM until you get into the expensive models.

and my current design supports remote operators just fine... but not much fun navigating remotely through a limited vison camera located 1000 miles away

While I wait for the availability of the EZ-Robot Lidar with SLAM, I thought I'd play with a simple waypoint to waypoint navigation approach.

Nothing really exotic here, just using multiple Roomba docking stations... not a practical solution for a large environment, but possibly OK for getting from a charging dock located out of the way of foot traffic to a location near a senior on a couch for a 2 way video chat... just manually back up a bit from the final dock to get a good video chat view

A great feature of Roomba is its ability to find and home in on a dock with a 6 foot radius... and the dock can be moved without remapping.... not easy with SLAM

Frank

#103  

@faengelm,

Check and make sure to use the side of the switch that when you press it you get the lowest ohm reading and when you let up it reads open. It has been awhile since I did this. Just make sure and test before you put back together. Also I would use thin wire like wire wrap wire so that you can route it up through the top cover easily....Rick

PRO
Canada
#104  

Nice work @Frank. I wonder if it is possible to tap into the iRobot virtual wall and that way you can put them in various locations to resync your location.

In reality what we really need is the LIDAR working and a SLAM of the environment and then feed that data into the Unity plugin the team is working on in the other thread. There are commercially available LIDAR now for < $100 so I have to imagine EZ-Robot can just take one of these and adapt their plugin to work with it.

#105  

@Nink, I had looked into the Virtual walls/lighthouse but for some reason I could never get my Roomba to pick up their codes through the IR sensors. I tried several. Not sure if this would also require a remote person to turn them on as I assume they turn off to save the battery

However, I could read the docking IRs through the Omni, right and left sensors.

I was thinking about writing some code to use a dock as a buoy and pass near it on my way to a final destination... e.g. see Green followed by Red as I pass by on the way out then Red followed by Green on the return

anyway, just kinda for fun awaiting SLAM

BTW, one problem your separate battery and charger solution solves is that Roomba battery will run down if the Roomba is docked with a bigger load than just the Roomba circuitry.

The trickle charger on the Roomba does NOT sense the drop in voltage due to the additional load. In fact, the Roomba OI reports current flowing out of the battery under trickle charge when the EZB is connected!

The only way to get the charger to go back into a sustained fast charge if the battery drops is to send a reset (7) command after the battery drops to about 15.5v

Frank

#106  

Frank,

Ran multi meter back to the contact point on board. Checked ok back to board.

And you are correct, a lot of work to get back there.

Jack.

#107  

If you ever wondered how to find out the firmware version of your Create 2 or Roomba 500/600, here is some info from the iRobot® Create® 2 Open Interface (OI) specification.

www.irobot.com/~/media/MainSite/PDFs/About/STEM/Create/create_2_Open_Interface_Spec.pdf

Quote:

NOTE: To determine the firmware version on your robot, send a 7 via the serial port to reset it. The robot will print a long welcome message which will include the firmware version, for example: r3_robot/tags/release-3.3.0.

If you have the iRobot Communication Cable for Create-2

store.irobot.com/default/parts-and-accessories/create-accessories/communication-cable-for-create-2/4466502.html#start=3

You can connect it from your Create 2 to your Windows laptop and load the free terminal tool called PuTTY

www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

Configure PuTTY to use your Windows COM port and pick 115200 as the baud rate rest of settings are fine Reset your Create 2 by holding BOTH the Spot and Dock buttons for 10 seconds to reset it. When it reboots, PuTTY will display the welcome message

If you prefer to use EZB Controller to do the above, you could write a script to send the Reset (7) command and read the welcome message

I haven’t yet received an answer from the iRobot Create 2 group on what the correct version is nor how to get an update. They directed me to the non-iRobot site for answers on these types of questions

User-inserted image

Here are the versions I found on my Create 2 and my Roomba 650 \r\nr3-robot/tags/release-stm32-3.5.4:6058 \r\nr3-robot/tags/release-stm32-3.7.5:6216

I've not seen any operational difference between them

Frank

#108  

@rbonari, I'm looking into using your idea of a relay across the Clean button contacts because I've found the Clean button to be something that always works.

However, I found a strange case where the Clean button doesn't work. Can you confirm this on your robot?

  1. Back the robot out of the dock by pulsing the Clean button relay

  2. As the robot starts the cleaning cycle, stop it by using the Movement Panel Stop, not the Clean button relay

On my robot, the clean button no longer functions, but the OI to the EZB is still working.

Thats really not a problem, because I can still use the Movement Panel to move the robot around and even dock it

If you really want the Clean button relay to have control again, just send a Stop (173) command which turns off the OI and allows the Clean button to work again

Thanks, Frank

#109  

Per a great suggestion from @ptp, I’m testing using IR to wake the Create 2 from its slumber while trickle charging on a dock.

From my past posts, you are probably aware this is a major problem for any Roomba based telepresence robot, i.e. removing the need for someone on the remote end to push the Clean button to start the Roomba so that it can be remotely controlled

I purchased a standard Roomba IR Remote and added a relay that the EZB controller can activate. I can happily report that it DOES indeed wake a sleeping trickle charging Roomba on its dock. In fact, it does acts very similar to pushing the Clean button.

User-inserted image

By using this technique, you would NOT have to disassemble the Roomba to add a relay across the Clean button contacts. You could clean up this mod by replacing the IR remote with an Arduino board with a IR LED and software.

User-inserted image

However, I need to warn you about a couple of non-show stopping issues. The IR remote acts similar to the Clean button but not exactly the same. A short press on the Clean button turns on the green LED and a second short press starts the cleaning cycle. A long press has no effect. Short presses can be used to interrupt and restart the cleaning cycle

On the IR remote, a short pulse (500ms) will do nothing while docked, but a single long pulse (> 1500ms) will start the cleaning cycle. You can interrupt the cleaning cycle and restart the cleaning cycle with short pulses. Long pulses just seem to toggle the green LED.

One more thing If you choose to stop the cleaning cycle using the OI movement commands from the EZB controller, which is what we really want to do for a telepresence robot, the IR pulses will no longer be able to control the Roomba. If you wish to regain control via IR, you must send a Stop (173) command

It sounds confusing, but wit works well and finally provides a means to remotely awaken a sleeping trickle charging Roomba for a telepresence Use Case

Frank

PRO
Canada
#110  

Very cool, Glad you worked out a way to make it work without having to mod the Roomba. I ordered a broadlink adapter a while ago and it just arrived in mail today. I purchased it to control remote for pico projector and other IR RF devices. Hopefully I can program it with the Roomba remote and then use it also to turn Roomba on and off

Great idea @ptp. Thanks for testing it out @frank

User-inserted image

#111  

Well... I've got some good news and some bad news...

I've had some email discussions with the iRobot STEM Program Manager and the good news is that I now know what the pulsing BRC line didn't work... the bad news that is was never designed to work while the Roomba is docked! Even though the spec didn't point that out.

A means to remotely wake a sleeping Roomba is critical to a telpresence robot where no local power-on action manual intervention is desired.

Here are sections of the iRobot® Create® 2 Open Interface (OI) Specification based on the iRobot® Roomba® 600 www.irobot.com/~/media/MainSite/PDFs/About/STEM/Create/create_2_Open_Interface_Spec.pdf

User-inserted image

On closer reading of the above, I began to wonder why iRobot would be concerned about saving battery power on a docked charging Roomba? It turns out, they weren’t! This section was meant to only apply to an UNDOCKED Roomba according to discussions I had with their STEM Program manager!

It turns out that there is yet ANOTHER power saving mode on Roombas that iRobot says was mandated to pass environmental tests, namely Reduced Power Standby Mode. Other than my discussions with iRobot, the only reference I had ever seen to this mode was for Wi-Fi based models such as the 690 or 890 but it also applies to wired 600 series

homesupport.irobot.com/app/answers/detail/a_id/10221/~/what-is-reduced-power-standby-mode%3F

User-inserted image

Here is how I tested their solution: Dock the Roomba with charger Hold BOTH the Spot & Dock buttons for 10 seconds and listen for the reset song The OI should be responding until the Reduced Power Standby Mode kicks in o Wait for the OI to stop responding ( this could take some time depending on battery charge state) o If Roomba is in Fast charge mode, you will need to wait for trickle charge to occur Hold ONLY the Spot button for 15 seconds o The should be a descending tone song o Send a Start (128) command o The OI should be available for movement commands

But this didn't seem that have any advantage over a Clean button push

On top of all this, I have found that a sleeping docked Roomba will wake up every 4-5 minutes a post a message about battery status that looks like this

bat: min 530 sec 6 mV 16393 mA 758 tenths-deg-C 287 mAH 2696 state 19 mode 6

but I haven't foudn a way to use that post to send OI commands

My suggestion to anyone building a telepresence based Roomba to not try to remootely wake a docked Roomba using the OI but instead to rely on ONE of these techniques to activate the Clean button via the EZB controller:

  • add a servo to push the Clean button
  • add an IR sender mounted on the Roomba
  • add a relay across the contacts

I have searched various DIY Roomba sites and noone has an OI soluion and iRobote confirms this behavior is by design

Frank

PRO
Canada
#113  

You can certainly stuff a lot of stuff in that space like Lipo batteries, the EZB controller and a windows PC in that space. Nice.

#114  

Hi Frank,

Thanks for addition info. I updated my interface for mobile. Let me know what you think.

Is there a way to get sensor data on mobile interface, say sonar information>

I cannot see a way to do this.

Thanks.

Jack

#115  

Jack, I’ll check that tonight

What is the name of the project you posted?

Frank

#116  

Hi Jack, I assume its the Roomba 500_test project you are referring to.

The Mobile Interface can access variables you set in the program.

For example, your script "battery_check" could loop and update the variable $voltage so you could display that in the Mobile Interface

That variable $voltage is automatically accessible in the mobile interface and could be accessed in a "script label" that you add in the mobile interface... for example

User-inserted image

I think you are talking about these sensors

User-inserted image

So you would need to modify the battery_check script to read the additional sensors you want access and add the script labels in the mobile interface

If this doesn't make sense to you, I could modify the battery_check script, as a sample, to add a sensor you would like to access so you can add the rest of the senors and Mobikle Interface script labelslater

Frank

#117  

Hi Frank,

This my project working on for Roomba.

Roomba Test

Actually I wanted monitor IR sensors.

Also, I have been buying up broken Roombas. One was doing the circle dance with a nine beep error. Use this program to disable sensor and see if would go in a straight line. It circled. I replace the right wheel/ motor assembly and it is fixed.

I may want jut want to dedicate an EZ unit for testing these Roombas as they come in.

Thoughts?

Jack

#118  

Hi Jack, I loaded your Roomba Test project and modified the battery test script which was actually based on original work done by Richard R

I addded in the reading of two IR senors so you could use that as a sample. This creates the two variables which can be read by the mobile Interface

$left_signal $front_left_signal


$voltage=20 # default value
uartinit(0, 1, 115200) # Init UART
sleep(500)
uartWrite(0,1,128) # Send Start(128) command

repeatuntil(IsConnected(0)=0)
  uartinit(0, 1, 115200) #have to clear the buffer
  sleep(500)
  $RX_DATA=0
  
  uartWrite(0,1,142,22) # Voltage check command
  sleep(50)
  
  uartWrite(0,1,142,46) # Light Bump Left Signal command
  sleep(50)
  
  uartWrite(0,1,142,47) # Light Bump Front Left Signal command
  sleep(50)
  
  #*** Add other sensors commnands here ***
  
  $rx = UartAvailable(0, 1) # Read UART 
  print(&quot;******* $rx= &quot; + $rx)
  
  if ($rx=6) # number of return bytes expected **** be sure to bump this number when more commands are added ***
    $RX_DATA = UARTRead(0, 1, $rx) # read all the bytes from UART 
    $MSB=GetByteAt($RX_DATA,0)
    $LSB=GetByteAt($RX_DATA,1)
    $voltage=($LSB+(256*$MSB))/1000
    $voltage=$LSB+(256*$MSB)   
    print(&quot;$voltage= &quot; + $voltage)
    
    $MSB=GetByteAt($RX_DATA,2)
    $LSB=GetByteAt($RX_DATA,3)
    $left_signal=($LSB+(256*$MSB))/1000
    $left_signal=$LSB+(256*$MSB)   
    print(&quot;$left_signal= &quot; + $left_signal)
  
    $MSB=GetByteAt($RX_DATA,4)
    $LSB=GetByteAt($RX_DATA,5)
    $front_left_signal=($LSB+(256*$MSB))/1000
    $front_left_signal=$LSB+(256*$MSB)
    print(&quot;$front_left_signal= &quot; + $front_left_signal)   
    
  endif 
  
  

  if ($voltage&lt;13.9)
    uartWrite(0,1,143)
    print(&quot;Low battery, attempting to dock&quot;)
    halt()
  endif 
    sleep(2000)  
endrepeatuntil

I also added two "script labels" to your Mobile Interface so that the variables could be displayed in real time

On the mobile interface, the script labels look like this

User-inserted image

I just added in text that looks like this "front_left_signal= " + $front_left_signal

Frank

#119  

Frank,

Thank you. I will test and get back to you on this. It looks like a good way to do it.

Jack

#120  

Frank,

I believe the way you set this up it will only read when connected to PC not just by using mobile alone?

Have you noticed that EZ camera can "see" the IR signal coming from docking station and virtual walls as white flashing light. I guess it sees IR. Not sure how to use this yet.

I want to create to types of apps here, one for mobile and one for PC. Mobile is for demo off site uses. PC I have a bunch of ideas that I will update you with when I do.

In the mobile app I want to do something other than just move around, maybe lock on to Gyph and track.

Jack

#121  

Hi Jack, You don't need a PC connected running ARC to see variables in the Mobile Interface. Here is what I'm looking at in the Mobile Interface on my iPhone when I'm running my Roomba software.

User-inserted image

The only trick is to be sure you launch the Roomba variables read script in your "OnConnect" in the desktop setup to have the Roomba variables populated

User-inserted image

Here is a tip from @DJ on how that script launch works in th Mobile Interface synthiam.com/Community/Questions/11120

You can access the IR lights you see flashing in the docking station and virtual walls using these commands in the Roomba Interface

User-inserted image

User-inserted image

User-inserted image

Frank

#122  

Hi Jack, I understand your desire to have the Roomba do move than just move around with a joystick... we all want real in home navigation.

I'm anxiously waiting for the EZ Robot Lidar add-on to be released

In the meantime, I've toyed with simple concepts like this.

Its just using some dead recogning; back for x seconds, turn left for y seconds, drive straight for z seconds... and then seek the next dock

I found another guy on youtube who used the dock as a sync up location before opening the fridge..

I know several others like @ptp and @CochranRobotics have been working on a Lidar navigation solution

Frank

#123  

Frank,

I understand now how you get things to run under connection script. Thanks. But how do you designate where to send to a label box on mobile interface. It needs a name of the script label control or label control? I do not see a way to designate a name to either.

Am I missing something here?

Thanks.

Jack

#124  

Hi Jack, The Mobile Interface can read any variable you set in the main program that is run by the connection script.

Just to test this, try this:

In your connection script set $test="1234"

Then in your Mobile Interface create a Script Label and set the text to be "Test= " + $test

After saving your program, run the Mobile interface on your phone and you will see the Sript Label contains the text you assigned in the connection script

Frank

#125  

Hi frank,

Ok that works but I tried to run a loop check battery temp and throws an error.

This is very crude way of doing this I guess. I would like to be able to run a script on a label inside that interface.

I guess the only way to get real time value is to have a button run a script and take that global variable and update the label.

Is that how you update your variables?

Also just to throw out to you. Thinking of taking a Roomba, running at night or when no one is around. Have it carry a ultraviolet light throughout the house to kill germs.

They have robots in hospitals now that cost a fortune. I would use Roomba as a test bed for now with making something else later.

One thing needed would be is to have it run a specified route then return to charge.

Thoughts?

Jack

#126  

Hi Jack, The script does not have to exist in the Mobile Interface. Instead launch a looping script like this in the main interface and launch it with the Connect Control


$voltage=20 # default value
uartinit(0, 1, 115200) # Init UART
sleep(500)
uartWrite(0,1,128) # Send Start(128) command

repeatuntil(IsConnected(0)=0)
  uartinit(0, 1, 115200) #have to clear the buffer
  sleep(500)
  $RX_DATA=0
  
  uartWrite(0,1,142,22) # Voltage check command
  sleep(50)
  
  uartWrite(0,1,142,46) # Light Bump Left Signal command
  sleep(50)
  
  uartWrite(0,1,142,47) # Light Bump Front Left Signal command
  sleep(50)
  
  #*** Add other sensors commnands here ***
  
  $rx = UartAvailable(0, 1) # Read UART 
  print(&quot;******* $rx= &quot; + $rx)
  
  if ($rx=6) # number of return bytes expected **** be sure to bump this number when more commands are added ***
    $RX_DATA = UARTRead(0, 1, $rx) # read all the bytes from UART 
    $MSB=GetByteAt($RX_DATA,0)
    $LSB=GetByteAt($RX_DATA,1)
    $voltage=($LSB+(256*$MSB))/1000
    $voltage=$LSB+(256*$MSB)   
    print(&quot;$voltage= &quot; + $voltage)
    
    $MSB=GetByteAt($RX_DATA,2)
    $LSB=GetByteAt($RX_DATA,3)
    $left_signal=($LSB+(256*$MSB))/1000
    $left_signal=$LSB+(256*$MSB)   
    print(&quot;$left_signal= &quot; + $left_signal)
  
    $MSB=GetByteAt($RX_DATA,4)
    $LSB=GetByteAt($RX_DATA,5)
    $front_left_signal=($LSB+(256*$MSB))/1000
    $front_left_signal=$LSB+(256*$MSB)
    print(&quot;$front_left_signal= &quot; + $front_left_signal)   
    
  endif 
  
  

  if ($voltage&lt;13.9)
    uartWrite(0,1,143)
    print(&quot;Low battery, attempting to dock&quot;)
    halt()
  endif 
    sleep(2000)  
endrepeatuntil

[

Any variables that are updated in the main interface will show up in the Mobile Interface

Regarding your "night patrol", its a great idea that is waiting on the EZ-Robot Lidar release with navigation...

In the meantime, the only thing I can come up with is that lame approach I had using multiple docking stations and a script. Your script could just have it drive a pattern for a while like it was doing floor cleaning and then dock

The Roomba is actually pretty quiet when you remove the main and side brish moters and the vaccuum in the dust bin

Keep the Use Cases coming. I love the ideas

Frank

#127  

I have some GREAT NEWS for those interested in using Create 2 as a telepresence robot! Those of us working in the area are aware of the issue of waking the Create 2 while it is docked and trickle charging.

I've had extensive discussions with the iRobot STEM Program Manager and they said that pulsing the BRC pin only works if undocked. The agreed to send me a beta test version of firmware that resolves this issue and I can report that it works great!

Right now its still in beta so you will need to send an email to create@irobot.com referencing a post on another forum

robotics.stackexchange.com/questions/12846/irobot-roomba-620-similar-to-create-2-enters-power-saving-mode-although-the-is/15623?noredirect=1#comment25934_15623

to receive the firmware update which comes on a plug in transfer device called an OSMO

This is much easier than our previous approach of adding a relay across the CLEAN button contacts or a servo pushing that button or using an IR sender to wake up a docked sleeping Create 2

Regards, Frank

#128  

Hi Frank,

Nice work on the create2 ! Haven't had a chance to work with mine in quite some time. You have sparked my intetest to start working on it again !

You seemed to mention that EZ-Robot still plans to come out with their Lidar Navigation System. Is this actually going to happen? Still haven't seen the hardware items they said would be released quite along time ago. Also haven't seen any software updates of late. Is Ez-Robot still doing ok and have they switched completely over to focusing on the education side of the business. As far as the Lidar system they could have a cheaper version for the educational market and one for makers that has more capability. Thanks Much...Rick

#129  

Hi Rick,

Thanks for the feedback

I don't have info on Ez-robot's plans for the Lidar they mentioned a while back

Maybe @Jeremie could get us an update as that's the missing piece in my telepresence robot

Frank

PRO
Canada
#130  

Great news Frank! I remember when iRobot used to deliver firmware updates that way for the Roomba years ago:)

In terms of the LIDAR, usually silence means we're working hard on something;)

Wish I could say more:)

#131  

Hi Jeremie, The new wireless Roombas like 690 or 890 can do OTA updates, but the Create 2 is based on the older units like a 650

Regarding the Lidar and SLAM, I anxiously waiting for you to break your silence:)

Thanks, Frank