Selfmade controller for Scooba 230

Inside the Roomba and Scooba and more, Cool mods, Repair and Upgrades - including the all new iRobot Create Kit. Let's void that warranty baby!
Post Reply
User avatar
Serge_ISA
Posts: 34
Joined: May 16th, 2014, 1:57 am
Location: St.Petersburg, Russia

Selfmade controller for Scooba 230

Post by Serge_ISA »

First, please forgive me for my English. The text of this volume I was too lazy to translate and I used Google translator. :lol:

In this topic http://www.robotreviews.com/chat/viewto ... =1&t=15490, I was asked to write about my experiments are repair of Scooba_230.

So...
I have some experience in the repair Roomba and Scooba 3xx. So I thought well know products of iRobot.
How wrong I was! If I knew how many problems waiting for me, I would not buy on the cheap faulty Scooba_230!
If I first read the forums, I would have learned that it is absolutely non-repairable unit!
Scooba_230 not repaired, they just replaced under warranty or throw away!

But I had nothing left to lose, so it was decided to make of this at least something useful.
Do I have purchased Scooba were two problems. First - it does not turn on and do nothing.
Second, because of which the majority Scooba_230 rent in service center - full of holes "bladder" for clean water.

Here is the story of the restoration of the controller. About bladder repair (if successful) will be a separate post.

Trying to repair the controller ended in failure (see. Photo 1-4) - the controller is filled with some very hard compound.
I can hardly remove it and get access to the motherboard, but it was not enough.
Attempting to remove the motherboard over the fact that almost all the parts it came off and stayed in this terrible compound.
Bravo, iRobot! This I have not yet seen. :shock:
Image
Image
Image
Image
The funny thing is that for completely disposable design, all sensors and mechanisms connected to board over connectors!

So I got what I wanted for a long time - a complete platform for creating your own robot! :thumbup:
These things are expensive, and I had everything you need (body, wheels, motors, gearboxes and many sensors), and almost free.
So I decided to do its own controller and write a program for it.

To start using a different tool I removed the compound from the body (see photo 5). We can estimate the accommodation space of the controller.
Image
Then I found out the pinouts of each connector - see photo 6 (Thanks for the help forum users).
Image

Then I looked in their boxes with trash :D and found a candidate for the "brain" - the controller Atmel ATMega8. We had to take the ATMega16. Then one could connect all the sensors are no problem.
Scheme in the process has changed several times:
Figure 7 - the scheme to work with Cliff-sensors, work with Wall- and Virtual_Wall-sensors is not assumed;
Image

Figure 8 - scheme to work with and Wall- and Virtual_Wall-sensors, work with Cliff-sensors is not assumed;
Image

Figure 9 - the final scheme to work with Virtual_Wall-sensor and Serial-BlueTooth-adapter, work with Wall- and Cliff-sensors is not assumed.
Image

Figure 10 - calculations for all schemes.
Image

During the experiments, stopped working the native speaker (replaced by outside) and the LED "Ok" (instead I use the green LED "Power").

The controller has been assembled on the breadboard (see. Photo 11). I do not do the normal printed circuit board for a single product.
Image
Controller are installed in the body along with BlueTooth-adapter (see. Photo 12). Filled with thermoglue (see. Photo 13).
Image
Image

I have previously written in Assembler language. But this is a big project, so I learned BascomAVR (already good!). This is a very nice development environment.
We must bear in mind that my project - it's not the finished product. This "live" testing ground for training. Because the program is constantly being remade. Link to the current source and firmware - https://yadi.sk/d/35_ZunswZY8Pd

Function of the current version:
1. Automatic charge the battery (you can use Li-Ion).
Since the original charger does not work, I use a power supply 9V/0.5A from some modem.
If the charger is connected, run the red and green LEDs "Power":
Red lights, green is off - goes charging, the battery voltage less than 6V,
flashes red, green is off - comes charging voltage from 6 to 8,
green lights, red is off - comes charging, if the battery voltage increases from 8 to 8.4V or charger is disconnected, if the battery voltage has reached 8.4V and can now drop to 8V.
2. Cleaning mode.
To activate the cleaning, you need to unplug the charger (control of the connected charger), pour into a tank of clean water (control water availability) and briefly press the "Power".
If the battery is charged, the button "Clean" will light. Two minutes of the button will light. If the button is not pressed, the robot shuts down.
If you click on the glowing button "Clean", the robot emits a series of sounds and begin a 20-minute cleaning cycle. Backlight button "Clean" will blink.
In the current version there are two types of motion - left or right spiral and chaotic movement.
With spiraling robot starts cleaning. If you collide with an obstacle, proceeds to random movements. Then after 20 seconds. was not an obstacle, the robot re-enters the spiral movement. And so on.
Cleaning cycle can result due to several events. Pressing the button "Clean". Ended with clean water. Discharged battery. It took 20 minutes. from the beginning of cleaning. The robot is stuck and could not get out on their own.
3. Mode against the Stuck.
If, within 4 minutes did not work bumper or bumper constantly pressed, the robot "thinks" that stuck.
Then the robot turns off the pump and vacuum motors and trying to get out. There are 10 attempts. If the bumper does not change the state of, the robot "thinks" that finally stuck.
Then the robot turns off all motors, the red LED "Error" will light and 100 times played a short beep.
If at this time you click "Clean", the robot will continue cleaning cycle.
If the button is not pressed, the robot is turned off, the LED "Error" is lit.
4. Using the Scoobas Virtual Wall.
As usual. When you get close to the wall the robot turns away.
5. Work through BlueTooth-adapter.
Via BlueTooth-adapter robot can communicate with the host-system through emulation standard COM-port (settings 2400,8, N, 1).
You can send commands to the robot and receive a variety of messages.

Image

The current version supports the following commands:
? - help for command
s - output status information: the current mode of operation of the robot, the state of the battery sensor, clean water tank and buttons, as well as the rest of the cleaning.
w - power on, equivalent to pressing the "Power". Not available if the charger is connected.
c - cleaning mode on, equivalent to pressing the "Clean". Not available if the charger is connected, or not powered.
A group of commands controlling the movement of the robot and the on/off all motors. These commands are available only when the charger is not connected, powered on, but not activated cleaning.
Cursor keys - movement forward/backward, turn left/right. Response bumper not included.
Spacebar - stop/continue moving.
p - turn on/off the pump motor,
v - turn on/off the vacuum motor.

Video - http://rutube.ru/video/4f0c9f3d02458869 ... 5848f8fe1/

Thank you for your attention. ;)
Last edited by Serge_ISA on August 21st, 2014, 11:50 am, edited 1 time in total.
Other my projects can be viewed here - http://roboforum.ru/forum90/ , http://ixbt.photo/?id=user:1114936
User avatar
vic7767
Robot Master
Posts: 15556
Joined: January 14th, 2006, 7:31 pm
Location: Haughton Louisiana - USA

Re: Selfmade controller for Scooba 230

Post by vic7767 »

I see many hours of effort. Very good robot function and creation from nothing.
User avatar
Serge_ISA
Posts: 34
Joined: May 16th, 2014, 1:57 am
Location: St.Petersburg, Russia

Re: Selfmade controller for Scooba 230

Post by Serge_ISA »

Changes / additions to the current version (and bugs catching and optimization):
6. Works with all IR accessories Scooba_2xx-3xx / Roomba_5xx-7xx, that I could find.
Supported:
- Scooba Virtual Wall (and since the parameters of the signal strongly "walk", that is supported other equipment. For example, working with the VW of the Chinese vacuum cleaner)
- Roomba Auto Virtual Wall,
- Roomba IR Remote,
- Roomba Compact Base (now only decoded signals to her. Perhaps then I will try to write a docking-procedure).

The signal parameters, found in the experiments:
Image

Links to the current source and firmware:
https://yadi.sk/d/35_ZunswZY8Pd

Video (Roomba IR-remote):
http://rutube.ru/video/43bb2af5173ca9b5 ... cdf40d79f/

Video (Roomba- and Scooba-Virtual Walls):
http://rutube.ru/video/16860103ef5c6414 ... 4a029f8e2/

Video:
http://rutube.ru/video/ad005422c3a9925a ... c80fe5680/
Other my projects can be viewed here - http://roboforum.ru/forum90/ , http://ixbt.photo/?id=user:1114936
User avatar
Serge_ISA
Posts: 34
Joined: May 16th, 2014, 1:57 am
Location: St.Petersburg, Russia

Re: Selfmade controller for Scooba 230

Post by Serge_ISA »

After the restoration of the "bladder" ( http://www.robotreviews.com/chat/viewto ... =4&t=18123 ) has stopped working sensor CTE (Clear Tank Empty).
Therefore, in a selfmade controller I refused to work with this sensor.
I use the vacant input to control the temperature of the battery.

The modified scheme.
Image

Links to the current source and firmware - https://yadi.sk/d/35_ZunswZY8Pd

After trial runs with the new bubble, I changed the algorithm of the water pump and vacuum.
The first 12 min. after the launch goes quickly with working pump and vacuum.
Then the water runs out and the pump turns off, 1.5 times reduces the speed, the vacuum is running.


Video - Restoring Scooba 230:
https://yadi.sk/i/oYgwsFFRcPnBq
http://rutube.ru/video/791a3fcd0976ac60 ... 7dd2447e9/
Other my projects can be viewed here - http://roboforum.ru/forum90/ , http://ixbt.photo/?id=user:1114936
User avatar
Serge_ISA
Posts: 34
Joined: May 16th, 2014, 1:57 am
Location: St.Petersburg, Russia

Re: Selfmade controller for Scooba 230

Post by Serge_ISA »

Very interesting movement makes the original Scooba at the beginning of cleaning. This movement is not repeated - https://yadi.sk/i/wdZhnZnWcVpHM

I loved it "wag of the tail"! :lol: I did something similar. But even better.
Video #1 - https://yadi.sk/i/38sSnq2ecVpHb
Video #2 - https://yadi.sk/i/3HA6uYzYcVpHV

Subjectively improved the quality of cleaning.

Why iRobot does not use this variant of the motion? Unclear...
Other my projects can be viewed here - http://roboforum.ru/forum90/ , http://ixbt.photo/?id=user:1114936
iRobotBastler
Posts: 1
Joined: November 25th, 2019, 3:29 pm

Q: Motor Voltage Control

Post by iRobotBastler »

Thank you very much for your detailed instructions.
I just stripped my 230 to the bone. Now i like to build my own controller, using a raspberry pi zero.
I already downloaded your basic code an will try to use it as a base for my python code.
There is only two things i do need to understand in the beginning:
1. are the motors for pump and vaccum running on the full 7,2 volt or do you downscale it by some magic hardware thingy ?
2. what voltage are u using for the wheel-motors (slow, mid, high)

I would be very grateful if u give me a hint.

Would be grat
Post Reply