Monday, January 21, 2013

Teardown: Roomba wheel assembly taken apart - Hair/debris cleaning - Roomba 760, 770, 780

Today I was preparing my Roomba 780 for it's weekly home-cleaning job... and I noticed that the left wheel was very stiff.
I searched online for some solution, or some disassembling guide.
I found nothing usefull, so I'm going to report here my experience in Roomba wheel assembly dismounting, cleaning from debris/hair, and reassembly.

I suspect this is the kind of issue that precede a broken wheel motor and/or a roomba continuously circling due to a stuck wheel...

So... here we go! :-)

Place your Roomba upside down.
  1. twist off the 4 circled screw
  2. remove the battery cover
  3. remove the battery
  4. remove the brush (and re-twist it's screw to not lose it)
  5. remove the front wheel


Here is our Roomba ready for disassembling.
Gently pull up the bottom plastic cover.

And now we have a bottom-naked roomba.

Here is a detail of the left wheel, the one I need to fix.
Remove the 3 circled screws.
The right screw will come off, the 2 left screws won't come off (on my unit).

Some other image of the still mounted roomba left wheel assembly



After twisting off the 3 screws, you can pull out the wheel assembly.
Here is the, now empty, "slot" of the wheel assembly.

Here are some images of the wheel assembly form different points of view.





Now, let's take it apart.
You should try to unhook the spring before twisting off the 3 circled screws.
I didn't unhook the spring during my disassembly, the hooked spring made the disassembly a little harder.
Pay attention to the spring, it's very strong, and it's hooked to tiny plastic hooks.


Here is the spring, and the 3 screws of the wheel assembly.

Dismantled wheel assembly.
The electrical connector is in the lower part, and it's connected to the motor with some wire.


Here you can see the switch that detect if the roomba is placed on a floor (wheel pushed inside by the roomba weight when on floor) or not (wheel pulled outside by the spring).

Here you can see the wiring from the switch to the connector.
Squared in white, you can see 2 tiny metal pins: they are holding the connector in place.
You should gently push them out with the tip of a tiny screwdriver.
Use the screwdriver even to pull out the wire of the switch.

Here is the lower part of the wheel assembly... naked.

and here is a detail of the part that hold the electrical connector, you can see 2 holes for the 2 pins that hold the connector in place.

And here we have the top part of the assembly, with the dismounted electrical part.

Now here is the tough part.
Disassemble the wheel gear box.

There are 6 screws that hold the gearbox together.
The 4 white circled screw hold the two pieces of the gearbox. These 4 screws were very tight.
The 2 black circled screws keep the electrical motor attached to the gearbox.



But the tough part is not the gearbox, but the pin that hold the grey gearbox to the blue wheel assembly.
This big pin is fitted in the blue plastic, and in fact is the articulated joint that allow the wheel to move up and down.

The only way to push the pin out is by using brute force, a screwdriver and a hammer.
Update: an anonymous commenter suggested that it may be a lot easier to push the pin out in the opposite direction. It's better you try to push the pin on both side, justo to see if there is an easier side. Maybe I hammered the pin out the wrong side :-)

Find a good place, and start hammering the pin out.
Here you can see the pin coming out.
...after some minutes of hammering...

...now I can use the pliers to finish the job.

and here we have it: finally the gearbox is detached from his articulation.

Eureka: dismantled gearbox!


Removed some gears.
And now what?
Well... at this point I've learned that I can't dismantle any further, the wheel and it's gear are firmly locked on their axis.
But at least I can turn the wheel without the fear of breaking the gears :-)

Now that I've ruled out the possibility that there was something wrong in the gearbox... let's try to clean the pin of the wheel.
I've used some paperclips to create some hooks, to take out the debris and the hair.



 
Here you can see a mix of debris and hair... there was a lot of them.

After taking out a lot of debris, the wheel was still very stiff...
The space you have to work with is very small, nothing bigger than 1mm can enter between the wheel and it's case.

So I decided to go for a more radical route :-)
After looking carefully at the wheel, I marked the internal reinforcement ribs, and then...

Pierce all the wheels!



mmmh... let me see...
...I'm still too far from the debris/hair...

...after drilling another hole...

...now I can clearly see the debris!

Some more cutting... and now my roomba have lightened wheels , like a sport car :-)
And using some bended paperclip I can finally clean it for true.

There were A LOT of hair/debris near the axis of the wheel.

After cleaning, it's time to remount everything up.
I've created a long hook for the spring...
...so place the spring...
...and hook it back in place...





Finally, some tape to close the hole of my brand new roomba lightened wheel :-)


Put the wheel assembly back in the roomba and...





...huston, we have a problem!
I wasn't able to reput the wheel articulation pin fully back in place (see the squared pin in the following image)

and the not-in-place pin conflicted with the pin-holder on bottom-cover of the roomba
The Roomba engeneers placed a pin holder on the bottom, like if there was any possibility that the pin could slip out of place by itself... I mean, it took me much effort and many dozens of hammer strokes to push out the pin... in this universe there is no way this pin could slip out by itself :-)

So, let's do some roomba-bottom-cover modding :-)

Before the modding:

After modding with cutter :-)
Nothing will stop me from putting everything back in place :-)

Now my roomba is assembled back together, and is once again going strong! :-)

This Roomba wheel assembly cleaning operations took me between 3 and 4 hours.
Now the wheel is spinning better, it's not as good as the other wheel, but its much better than before cleaning.
Update: after cleaning some rooms with my roomba, now the cleaned wheel spin very well, it seem to be even smoother than the right wheel.
After all this wheel assembly cleaning operation worked exactly as intended :-)


My roomba model is Roomba 780, but from the image I find online it seem that this wheel assembly module is the same on Roomba 500/600/700 series (Roomba 530 555 560 570 580 620,780, 770, 760)
My roomba is about 13 month old, I use it every week in my home, each week it clean about 5 rooms.

As you may guess, I hate poorly documented guide...I believe that if you are going to make a guide/howto about dismount something, having a lot of Hi-reslutions image is going to help a lot.(you can click any image to see it bigger, or you can CTRL-click any image to see it full-res)
Now, anyone can see what it take to dismount a roomba wheel :-)

If you have a stuck roomba wheel, before deciding to trash it, maybe you can simply try to make 1 or 2 hole in it, and try to clean it's axis :-)
If you can turn the wheel by hand, maybe you can even clean the wheel without dismounting it at all (now that I've dismounted it, I know that :-)

I hope this series of image can be useful to the brave that will venture in the roomba wheel assembly dismounting :-)

Wednesday, December 26, 2012

Single click conversion form any format to EPUB, using Calibre - Calibre and windows command line batch scripting - How to set EPUB metadata authors and title from filename

This summer I've bought a Kobo Touch eBook reader as a gift for my girlfriend.
It's a very nice eBook reader... so nice that a week after I bought another one for me :-)
Now, after some month, and after too many manually converted eBooks, I've decided that I need to automatize the PDF/RTF/mobi/whatever to EPUB format conversion.
This, as a side effect, will also enable my girlfriend do autonomously convert and upload her eBooks to her Kobo Touch :-)
To do that I wrote a script that will do the conversion from whatever format to EPUB, using Calibre and my standard format conversion parameters.

For my conversion needs, I've always used Calibre, its a very nice, powerful, and free eBooks management software.
Calibre can do an enormous amount of things... but in the end, after setting it up, I simply need it to take a PDF file and convert it to EPUB; then I will simply copy this EPUB on my Kobo.
After all a Kobo, when connected to a PC, will function exactly like a simple flash drive :-)


My tiny script will call the ebook-convert.exe command of Calibre, and will pass all the needed parameters.
The script will then create a new EPUB file in the same folder of the original file.

Script installation
Download the script from here (UpdateDownload here the new version of the script, more info here)
Put the script in your Calibre executable folder
Script utilization
Drag and drop the file you want to convert to EPUB on the script
after dropping the file on the script you'll see the command window running the conversion process
The black command windowswill automatically close after a successful conversion (and will repain opened in case of error)

After the conversion, you'll find the new converted EPUB file in the same folder as the original file.
And you are done! :-)

Filename format
The filename should have the following format: "Authors - Title"
Something like "Isaac Asimov - Nightfall.pdf" is a good filename.
The first "-" will be used to separate author's name form title.

If there are no "-" in the filename, The author will be set to "unknown", so a file like "Nightfall.pdf" file will result in a "unknown - Nightfall.epub"

Extra conversion parameters
The script use some extra conversion parameter that, in my experience, works better that the default one:
  • remove-paragraph-spacing: I hate empty space between paragraph
  • flow-size 50: this will force the internak HTML files that compose the ebook to have a max file size of 50Kb, the end results is that the ebook reading experience will be faster
  • unwrap-factor 0.25: (only for PDF files) help the algorithm that detect the PDF  file structure, producing a better EPUB (in my limited experience)
Feel free to change, or remove, these extra conversion parameters.
If you need to add/change some conversion parameter, here you can find the parameters supported by ebook-converter.exe command.

Update 01/01/2014
I've updated the script, you can download the updated version here.
As requested by a reader the new version of the script can convert multiple files at once, and won't overwrite already existing epub.



Inside the script...
Here is a color-coded version of the EPUB conversion script, the same script you can download here. (UpdateDownload here the new version of the script, more info here)
(color coded version of the script created by the courtesy of http://hilite.me/)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
@echo off
setlocal EnableDelayedExpansion

rem  find script path
set scriptPath=%~dp0
set scriptPath=%scriptPath:~0,-1%
rem "%scriptPath%\pyprogram.exe" /myparam=123_abcd


set filename=%~n1

REM split authors from title using the first "-" as separator
REM using ! and EnableDelayedExpansion instead of % so that filename containing parenthesis wont cause issue
FOR /F "usebackq tokens=1* delims=-" %%a in ('!filename!') do (
  set autore=  %%a  
  set titolo=  %%b  
) 

rem trim authors name extra space from left/right
for /f "tokens=* delims= " %%a in ("!autore!") do set autore=%%a
set autore=%autore%##
set autore=%autore:                ##=##%
set autore=%autore:        ##=##%
set autore=%autore:    ##=##%
set autore=%autore:  ##=##%
set autore=%autore: ##=##%
set autore=%autore:##=%
echo. Authors: "%autore%"


rem trim titles extra space from left/right
for /f "tokens=* delims= " %%a in ("!titolo!") do set titolo=%%a
set titolo=%titolo%##
set titolo=%titolo:                ##=##%
set titolo=%titolo:        ##=##%
set titolo=%titolo:    ##=##%
set titolo=%titolo:  ##=##%
set titolo=%titolo: ##=##%
set titolo=%titolo:##=%
echo. Title: "%titolo%"


echo.
echo.

REM if the filename doesent contains any "-" then %titolo% will be empty
IF "%titolo%"=="" (
  set titolo=!autore!
  set autore=unknown 
)


set InputfileParameters=--remove-paragraph-spacing
set PDFInputfileParameters=
set EpubInternalHTMLsplitSize=--flow-size 50

IF "%~x1"=="PDF" set PDFInputfileParameters=--unwrap-factor 0.25

"%scriptPath%\ebook-convert.exe" "%~1" "%~dp1%autore% - %titolo%.epub" %InputfileParameters% %PDFInputfileParameters% %EpubInternalHTMLsplitSize% --authors "%autore%" --title "%titolo%"

IF %ERRORLEVEL% NEQ 0 pause


UPDATE - How to set EPUB Authors and Title metadata from epub filname:
I've just created a new script that will modify the metadata on any EPUB.

This script will take the Authors and the Title from the filename, and will set them in the EPUB metadata.
So you can rename the EPUB file to something like "Asimov - Nightfall.epub" and then drag and drop this epub on my script: my script will set the epub metadata Authors/Title to the one you specified in the filename.

This script work using Calibre, so you need to place this script in the same folder where you have the Calibre executable.
The script is very similar to the one explained above, for epub format conversion. I simply use the "ebook-meta.exe" calibre command instead that "ebook-convert.exe".

You can download this script from the following link: Click here to download the script "Force Author Title on EPUB.cmd"


Feel free to ask any question :-)

Wednesday, November 2, 2011

Compact theme for Google Reader via GreaseMonkey script - More clear, more readable, hidden header, hidden top navigation bar, less unused white space - Perfect for small screen

Not everybody like the new (1/11/2011) Google Reader user interface.
I don't like it, especially because I use Google Reader on a netbook with a 10" screen of 1024x600 pixel.
The new theme have too much white, unused, space. Too much header. and few space for actual contents.
Just some hour after the release of the new interface there have been a big proliferation of "fix" for the new interface, especially on userscript.org (Greasemonkey script archive).
After testing them all, I've come up with my own version of these script.
My script is based on "Google Reader Back", I've just added some code to hide some more element (feed title, top navigation bar, top header with search button).

This layout fit perfectly the way I use Google Reader on my netbook.
Here is my script

Google Reader Compact For Small Screen  (http://userscripts.org/scripts/show/116957)

Here are the result, before:

Grcbefore

and after, with my script installed

Grcafter
Fell free to use it or modify it.
A big thanks to Hoong Ern, the developer of Google Reader Back (http://userscripts.org/users/416220) upon which is based my script.
Comments and suggestion are welcome.