Saturday, November 19, 2011

Avago ADNS-9500 Up and Running

I spent most of yesterday designing, milling and building the new circuit board for the Avago ADNS-9500 chip.  It took most of today to work through all the software changes required to make it work.  It certainly has a much higher DPI capability that is pretty insane.  Moving the ball just a little jumps from the edge of one screen all they way over to the edge of the other screen (using two computer monitors).  I'm not sure I'll have much use for that in 5670 DPI mode, but it is there should I find a need for it.

From an electrical design standpoint, the ADNS-9500 is very similar to the ADNS-7550.  Changes included a new physical package layout, grounding one pin to select between 5V and 3.3V and bumping up the size of one of the capacitors.  Other than that, the two chips use exactly the same design.

From a software perspective, I had to make arrangements to download the SROM to the chip every time it boots up.  My attempts at this were pretty bad and just crashed my Teensy board.  After doing some Google searches, I found a sketch pre-made that worked like a champ.  I was able to combine it into my current software to make a working version.  I just updated the firmware software to the current version and all is working well.  There were a few minor additional changes required to make this chip do all that I had ADNS-7550 doing, but the firmware download was the biggest hurdle.  The key ended up being the need to store the SROM image in flash memory on the Teensy instead of the default SRAM since the flash has a much larger capacity. 

In addition, I'm using the taller version of the ball support on this new circuit board with a wider set of metal ball support contacts.  It is nice and silky smooth.  The three metal supports contact the ball just below the equator line.  It seems that the further I spread these out, the better the ball movement feels. 


  1. Hi John,

    Thanks for posting this. I'm also using the ADNS-9500 for a robotics project, and I was wondering if you had a circuit diagram for connecting the sensor. Thanks for your help!

    ryanolsonk at gmail

  2. I have sent you a variety of files via email that should help you with a schematic and code implementation.

  3. Hi John;

    I too would really appreciate the circuit diagram for connecting the sensor. I am trying to make a really accurate wheel encoder.

    Thanks John

    alw4travel at gmail

  4. Hi John,

    I too am in the same position using the 9500 for a robotics project. I am having trouble getting motion data and with uploading SROM firmware. If you have any circuit diagrams or code I may be able to glance at for reference to my own that would be great. Thanks.

  5. Hi John,

    Really great to read that someone has been successfully using the ADNS9500. I too am currently attempting to utilise this sensor for my robotics project but have also hit a road block with the circuit layout and motion detection. Would really appreciate it if you could share your knowledge regarding this.

    Zhen Yi
    guyfromearth [at]

  6. Hi John,

    For a short research Project I am trying to utilise the ADNS9500 on a quite "not common" application for this sensor, but am stugling to get it running. Maybe you could forward me some useful info / documentation?


  7. This comment has been removed by the author.

  8. I'll help where I can. Please send me an email and tell me about your project: inet2xtreme at yahoo dot com.