Do you like my hacking? If so, please consider leaving something in the
Fediverse (Mastodon etc): @Sprite_tm@social. spritesmods.com
Joshua Wise (joshua@joshuawise.com) mailed me about an optical sensor chip with 'A2050' on it. Seems the chip is compatible with the A2051, which in itself isn't directly compatible with the ADNS2610, but the basic idea of reading the pixels of the CCD is the same. Joshua created a program for Linux to read out the sensor; it's here. Another note: Some mice have the Vcc of the sensor switched by the microcontroller; if you try this hack with such a mouse you'll need to connect the Vcc directly to the sensor chip.
Carsten Gross mailed me:
Hi,
I'm working on an university project
(http://www.siski.de/~carsten/diplomarbeit.html) and I'm using
your webpage as base for my idea to use an optical mouse as
motion sensor for a model car.
I removed the original optics of the mouse and replaced it with a
lens with f=4,6 mm. To check wether the image of the world (as
seen by the mouse sensor) is focussed I'm using a modified Linux
version of the software downloadable on your page:
as my mouse has a ADNS-2610 (and not one of the older chips).
Please see the attachment for a modified version of the software
by Joshua Wise now running with the ADNS-2610 and Linux.
Using the different optics the focus is now near infinity. This way
the sensor can be mounted at a safe place in the model car.
Perhaps it is necessary to add specles on the floor ;-)
The source of the software is downloadable here.
He mailed me a second time:
Im the meantime we built our own board with the sensor chip here
and use it as movement and direction detector.
Please see this for the
images of the sensor board and the lens. I connect the
synchronous serial port of the ADNS-2610 with some simple "glue"
logic to the SPI interface of the Atmel AT91RM9200. This way I
can use the Linux-kernels and microcontrollers hardware support
for reading the data from the motion sensor.
The lens is adjustable and the focus can be adjusted to generate
a sharp image and the maximum "quality" value in register 4.
EaterOfPies mailed me: "This also works with A1610 / ADNS-1610 sensor IC. It appears to be pin compatible but i couldn't find any documentation on it."
I have received several questions about using this device as a barcode-scanner. Yes, that would probably be possible, but one would need the right software for that, and I'm not interested in writing it. If you think it's a good idea; knock yourself out; the sourcecode of my program is provided in the zip-file :)
If you used this information or software in any useful project, I wouldn't mind being mailed about it. One thing: mails containing not much more than 'It doesn't work here, help!' will be deleted.
83 commentsCan this mouse be used for optical character recognition(OCR) for the purpose of identifying printed text?
My mouse is having a different sensor BCE076B2 a 8 pin chip please help me ail me at vignesh2153@gmail.com Help me guys need ur help soon
Im new to this but want to start with this kind of project please assist me.how to start up with this project guys!!!??
Hi! how many milliseconds does it take to read the complete picture from the sensor? I mean, 324 values are quite a bit of data...
Hi I have a problem,need for your help. I want to use of Optical mouse to measure distance. The distance is dominated to an around 3*3cm area and I want to use of Optical mouse to measure and register alterations of distance. I could get dimensions of mouse position in C (with GetCursorPos function), but now I have problems with scaling of real dimension and founded dimension. Please help me.
Hi @all. Google is your Friend! I know it is not quite easy to find this Sensor. Mouse of Logitech - M-BT58 named "Skipper" would help you. On the other Hand google for the Sensor. It is possible to buy this Sensor in Elektronic-Shops in Germany. But the newer Sensors (with Picture Transfer) came nowadays from Taiwan and nowhere else in the world. This dismisses!
Hi Ed. Can you tell me please, as example a mouse/or more which has/have ADNS2610? I opened a couple of mouses, but was not so lucky to find this kind of sensor. Thaks a lot.
hey ed i want to make optical mouse cam but i've no more idea about this how and what to do so please guide me
Hi Ed! On the previous page, you say to cut the wires to connect it up to a serial plug. If I do that, the mouse will no longer update the computer with its position information. I didn\'t see the scanner software mention that it had any motion-flow algorithms, so I imagine it was doing it the easier way, and sending the output of the CCD as pixel information to the position on the screen the OS mouse was at? If that\'s the case, doesn\'t that mean the SCK- and SDIO-pins should be just soldered to, so the socket is plugged in parallel to the normal tracks? If so, doesn\'t the voltage drop cause problems? Thanks for a very interesting hack! Sarah@Untamed.Co.UK
by the way, before you ask for software, look at the open source linux usb mouse libs. its already done for you. left a bit...up a bit...down....intercept
this is interesting, but for those posting about obtaining the image for tracking and guidance purposes, you may be best leaving the scanning and image processing to the very capable hardware inside the chip. optical mods to infinity, maybe with an electronic variable optical zoom lens, could be the key to ultra low cost guidance systems for small drones and missiles. simply using the x,y info from a mouse usb with infinity focus will give enough data to lock a missile onto a moving target in a clear, or at least low contrast sky. infra red sensitivity is good enough to read a turbojets heat signature for a night lock even more secure. these chips contain pretty much the same tech as top of the range weapons systems of 20 years ago but a less than a dollar a piece.with the current exploitation of off the shelf technology, it would be little wonder if mouse tech was found in guided missiles less than the size of a rubber bullet. certainly the electronics and power would weigh in at less than 10 grams
Can you show how you connected the paralell cable? Did you use some kind of solder to the circuit board of the mouse? Please explain.
Hi man...i am arun...actually m doin a project on optical mouse.. my idea is to use optical sensor as the sensor in a joystick.. wat i need is that i need to interface two USB MICE and get X and Y coordinates from that seperately eg : x1 y1 and x2 y2... it would be really helpful if u culd suggest me an idea to interface usb optical mouse and get X and Y from it.. please mail me at arunk.beece@gmail.com Thanks
disregard my post under this one as it refers to the very first link in the blog
an update to the agilent 5988-5774EN.pdf datasheet... it is now located @ http://www.avagotech.com/docs/AV02-1184EN
Hello, I saw your awsome work with the mouse scaner, but, I have a question, when you say \"diode\", what kind of diode are you meaning?Led Diode o diode only? What model of diode are you meaning? email: qopsinonstudios_ct@hotmail.com thanks
That post about frame rate was quite interesting! I have been meaning to do this hack for ages, I just found another IC that seems to do the job, \'A2051\', there are also others with serial out. My plan is to use it to read the last 2 or 3 digits of the LCD on my gas meter for allow me to track gas usage... A completely non-invasive method that is 100% accurate for energy monitoring purposes. The hard part is OCR on the image in a micro controller...
Mitsumi PS/2 mouse have that sensor. Model ECM-S6702. I make that scheme today. It is nice, but image transfer to computer is too slow.
Do you can put the brand and model of mouse that were used? I opened five mouses and none of them has the ADNS2610. I would like to do the experiement with a mouse that was tested. Thanks a lot.
Do you can put the brand and model of mouse that were used? I opened five mouses and none of them has the ADNS2610. I would like to do the experiement with a mouse that was tested. Thanks a lot.
Hallo, entschuldige, ich spreche leider kein englisch. Aber ich finde Deine Idee mit der Maus sehr toll! Muss ich in den nächsten Tagen unbedingt mal ausprobieren. Ich programmiere ein bisschen in Visual Basic 6,0 und freue mich daher ganz besonders über Dein VB-Programm, insbesondere über die mir bis dahin unbekannte API Funktion. Man lernt ja nie aus :-) Nochmals vielen Dank für Deine Arbeit und viele Grüße aus Deutschland. Peter Übrigens, ich bin über Wikipedia: http://de.wikipedia.org/wiki/Maus_(Computer) auf Deine Seite gestoßen.
Would be cool if you can use the mouse as scanner and mouse at the same time.
Hi, I would like to know how get captured the scanned images from optical mouse in to VB.. Plz let me know plz send me mail: gnyanu@in.com
Hi, its working.. i have used LOGITECH: M-BT96a and its running well.. thanks to mark_mmjq.. i really respect you sir.
I\'ve tried this. I\'m using a USB optical mouse (microsoft intelimouse), on a laptop running windows. I\'m not sure where one of the files should be.
hi need some help on spi interface of adns2610 with microcontroller how did u achieve 250ns of hold of LSB address in read cycle plz help my mail address is gauravy06@gmail.com
If anyone has a question about the frame rate of that method it is because although the internal image processor has access to the image at 1500 fps the chip was never intended to send that image across the serial line in real operation, that is more or less a debug feature and when you request the raw image it doesn\\\'t just store the current image and send it to you, it actually sends you the first pixel of the first image then the second pixel of the next image and so on and so forth. what this means is that its 18^2 times slower than the actual frame rate which is seen by 1500/18^2 = 4.629 repeating which is pretty close to the frame rate you observed. And now that I\\\'ve typed all of that I finally looked up at the post date, oh well maybe someone will find my rantings useful. I\\\'m actually thinking about modifying one of these things to mount to the underside of a robot that\\\'ll travel at around 10 fps so I figure if I raise it 12x its designed height and focus it then it\\\'ll work in counts per foot instead of counts per inch and handle the higher speed.
Alarming information you have heere. Acknowledgment for sharing.
Great post! Just wanted to let you apperecive you accept a newsubscriberr- me!
good issue thanks
hi,I wonder if we use the usb cable,how can we do it,thank you. my email: notbaidu@gmail.com
I've got a Razer Copperhead ( http://www.razerzone.com/gaming-mice/razer-copperhead/ ) and it's got a 2000 dpi laser sensor, I'd love to see what it can see, it has upgradeable firmware too so it might be possible to hack its software. I'll have to crack mine open when I get back from my travels and see what kind of guts it has...
hi, i am working on uni project which is titled as "using an optical mouse image sensor as an electronic microscope". i am thinking of using ccd image sensor. pl mail me for guidance as how to startr for that. samsnjoy@gmail.com
hi, may i know how to implement this optical mouse image sensor as an electronic microscope?
Hi, you can use this model of mouse LOGITECH: M-BT96a to make this project and please follow the instruction in the 1st page. Have Fun!!!
Hi,I am a student of university.i am working on the project that you have done.can you sent me the AVR program of it? thank you bye my email address is: silvercity2222@yahoo.com
the max frame rate that I got was only about 4.5 fps. I'm not sure why it is that slow; the chip can support up to 1500+. Source: http://www.hardwaretipsandtricks.com/articles/13/1/What-is-a-Mouse/Page1.html I wonder if there is a way to modify the program to use serial port/USB instead. Would it be faster?
May I know what was the maximum framerate achieved by you ? I'm guessing somewhere in the order of 10-15 per second.
Not really; the device can only send one pixel off each frame it grabs back to the host device, that's what makes it slow. The sw was written in VB6.0, but might work in 5.0 too.
Is it possible to increase the framerate at which the program receives the image? I'd like to use it for motion detection. PS: Is the program written in VB 5.0?
Hi, Cool reading. I wonder if you know if it is possible to read the mouse movement but without the computer understanding that it is a mouse. I would like to have the computer to just read the signal but not move the mousepointer. Any remarks would be appriciated...
I wish I was smart like you guys...
ABCTOPBIZ MAKES USB AND RF OPTICAL MICE USING THE 2610 CHIP http://www.abctopbiz.com/products.asp
Hi, very interesting hack, this and all the rest. Do you think it is possible to change the small ccd sensor with a ccd sensor taken from a mobile phone camera? keep up
Dear Big Jerminia,Is this code (on this page) working with any mouse sensor which has SCK and SDIO pins ?
I've been looking to build a small *cheap* 3-axis computer-controlled robotic positioning system and have been considering using the innards of cheap optical mice for position encoders. Was thinking of mounting a disk on each drive axis with dashes printed on the outer radius and using the mouse to count the dashes as they move past. I figure I can get pretty good accuracy, depending on how big I make the disk. Your code looks like a great place to start on this endeavor. Is the chip you used something I'd expect to find in a no-name optical mouse that I can pick up for a few bucks at the computer store? If not, can you recommend a particular model? Also, if you have any different ideas for a cheap encoder? Saw optical mice on sale for $3 each the other day, which is pretty cheap! -N
Hi, I just wanted you to know that I ported your hack to the Arduino and Java on the computer side, which should open Linux and Mac users to the marvel of low fidelity image capture. See http://www.bidouille.org/hack/mousecam/index.en.php I also tried to get color pictures using an RGB LED but this was inconclusive :)
Great work!!! See page 5 of this* PDF - it lists many Agilent optical sensor models and you can compare their specs. It also includes their laser versions (as oppose to led), which have a max CPI (counts per inch) of 2000, compared to the one in this project which is 200 CPI or something. I'd like to do some experimenting with this. *http://www.avagotech.com/assets/downloadDocument.do?id=2557 Regards pinout
Sir Emrah,thanks a lot i respect you too... thanks for your nice instructions. have a nice day....
Good Day Sir, Thanks 4 your Nice Project, i truly respect you. i hope you make another project to make to all interesting. by the way sorry for my grammar..thanks a lot.
I have just tried it with an infra red led. i received strange and often creepy pics from this thing! As a plus though i was able to make a very good fingerprint scanner using the chip and a switch for the shutter. i am currently using the S2083 chip. Apparently your program works with a lot more than just ADNS 2610! i just need a program to analyse the finger prints and find a match.....DIY finger scanner! roooock on! as a side note tried to take a pic of my eye with mouse scanner. still seeing a red spot once in a while but got a cool pic from that too. dont try that one it sux.
I repeated the hack. It quite hard to find mouse with small chip. All new mice are with much bigger chips, with USB/PS2 integrated. Here is my link: http://www.vabolis.lt/2008/02/16/pele-skaneris/ I also modified software, as my LPT is dead and I am using PCI lpt card.
Hello, I am unable to recive any communication from Joshua Wise,about the variant chip that he/she uses the 2051 which even i am using. Can you provide me contacts,if you do know that. thanks rupin
I don't mean to sound critical, but I wish you had commented your code and named your variables in a more understandable manner to make things a little easier for us ;)
You can check out the video here... http://www.youtube.com/watch?v=_C25xKt1thY
Tonight it could see a 3cm diameter black circle and a 10x0.5 cm line drawn on a white paper from about 60cms. The cam's lens is all the way down... otherwise the image is very bad, and focus distance is very close.
Thanks for this article :) I got a sample pack of ADNS-2610's from Avago. They work just fine... the datasheet is very helpful, and it worked on the first attempt. I didn't have the lenses, so I mounted it in an old web cam casing, that increased the range too (about 8-10cms) ;) Next step it interfacing it to a PIC18F452 via SPI... As a response to the people who asked about the diode... any diode is fine really... I used an 1N4001. Connect the cathode to pin 5 of the printer for and the anode to pin 12. The ASCII schematic tells you to that pin 3 of the sensor is the data in/out pin. It goes to the connector pin 12 directly, and to pin 5 via the diode. This guy explained here pretty good... http://www.instructables.com/id/SXHM2U8F6S98JUE/ Have fun creating ;)
hjhjhjk crass on my bike men
I have an OM02 mouse chip and this program does work. Maybe there are timing issues on your PC or the interface is not quite right, but I can confirm that the program DOES work with the OM02 chip
Excuse that I use the program the translator! Dear sir! I was very much interested with this idea! But a little in other variant, mice with the infra-red gauge, and frequency of interrogation up to 1500 times a second and the sanction of a matrix up to 6.2 mp now are issued, I think that using simple optical system it is possible to try to create the device for the control of strongly heated up details of a computer, the characteristic of sensitivity of this sensor control but if it will turn out interestingly and cheaply is certainly unknown Yours faithfully, Alexander Russia Perm icq 298-083-921 uralecolog@yandex.ru scype strazzarts
Dear Sir, what kind of diode can be used here?
Dear Sir,the similar question to the first comment:on your schematic, i was wondering what the plus in the middle of the connection meant 12----------+------SDIO 5 -----|<|--+ at that point, do you mean to seperate/split the wire? also, what kind of diode can be used here? Please mail the answer to me as soon as you have time, My mail address: mark_mmjq@yahoo.com thanks a lot!
che cagata.....non funziona...lo dico a mio cuggino!
Dose any one try using OM02 optical mouse sensor to do the same thing? The chip have a 2-wire serial port, using the TCLK and TIO pin to access the internal register. But i don't have detailed info on how to read the register. I tried using the same program on this page, but failed. Does anyone have any idea?
hi...can you give that kind of mouse...for our project??
You should try grouping 4 sensors together and patching their outputs into one whole picture, then add a lens.
good resources: http://www.mstarmetro.net/~rlowens/OpticalMouse/ http://www.roboternetz.de/wissen/index.php/Maussensor (German)
another test with your app in scan mode shows that the motion detection seems to work somewhat, but apparently the image data register (0x08) is not mentioned in the data-sheet for a reason..
first shot at reading the sensor failed, might have been due to bad connection. will try again. hints for linux install xlibs-dev and/or libx11-dev or search for package names of the include files of the source code. compile with gcc -o parspi parspi.c -lX11 run with /.parspi get error message for port (ubuntu -> /dev/lp0) compile again. get "lock parport0: Invalid argument" give up..
cheapest optical mouse "g-627" found a few minutes ago at media-markt in germany for 7.99 € contains the PAN3101 CMOS Optical Mouse Sensor by PixArt Imaging Inc. at a first glance on the ds, it might be compatible to the one you're using. according to the ds, it has a better performance (?) controller ic marking: a2611 0631cdc-g fn1q6qa01 cheers
If you used this for a barcode scanner you might need a differnt lens to get the focus right for rading the width of the bars/spaces.
Dear Sir,the similar question to the first comment:on your schematic, i was wondering what the plus in the middle of the connection meant 12----------+------SDIO 5 -----|<|--+ at that point, do you mean that is 5V or another VCC like 12V or SDIO pin connect with 12pin and 5pin of parallel port? Please mail the answer to me as soon as you have time, My mail address: ohcomeon20@yahoo.co.kr thanks a lot!
when can we expect the version of software that will works with laser mouses
GOOD WORK and good program ineed more program connected with coputer
Perhaps this sensor would lend itself to autonomous tracking (of aircraft let's say.) A 'rougher' stage would direct the PZT (Pan Zoom Tilt) platform in the correct direction. A fine resolution co-axial 'zoom stage' would keep things locked on target. Additional fixed position 'rougher stages' continue monitoring for multiple targets. A pc would co-ordinate target allocation. Everything gets recorded to DVR. Basically this is a robust transient event detector/logger. triox_compound@hotmail.com
i hop to inderstand this project and i want to give my part
Dear Sir,the similar question to the first comment:on your schematic, i was wondering what the plus in the middle of the connection meant 12----------+------SDIO 5 -----|<|--+ at that point, do you mean that is 5V or another VCC like 12V ? If it is 5V,could I connect the two "+" to the pin 7 of ADNS2610 directly? Please mail the answer to me as soon as you have time, My mail address: myoym@hotmail.com thanks a lot!
Dear Sir,the similar question to the first comment:on your schematic, i was wondering what the plus in the middle of the connection meant 12----------+------SDIO 5 -----|<|--+ at that point, do you mean that is 5V or another VCC like 12V ? If it is 5V,could I connect the two "+" to the pin 7 of ADNS2610 directly
hey the link to the source code is not working....can u help...or email it to ragz123.at.hotmail.com
the link http://sprite.student.utwente.nl/~jeroen/projects/mouseeye/ to the file .zip dont' work may you hellp me to have the program ? Tanks Luca info@tesla-web.com
Hi, I need ur help i went through ur project can i know which optical mouse hast his sensor can we use any other microcontroller instead of the cypress
i really need help on this. its kind of pathetic, i know, but i dont want to end up waisting the mouse and having to go out and find another one. on your schematic, i was wondering what the plus in the middle of the connection meant 12----------+------SDIO 5 -----|<|--+ at that point, do you mean to seperate/split the wire? also, what kind of diode can be used here?
Had an intriguing idea: for those times you need "autoland" because your drone decided to lose comms thanks to interference this would work well. Have it also detect low battery and if comms drops out it cuts motors to 30% and begins a slow descent a bit like a lunar lander, with ground detector to shut off motors completely.