AutoScope 2.0 : X Axis Slippage

I noticed that the X knob needed just a bit of tightening. This, of course, required that most of the microscope be taken apart.

A nice find was that there’s a cutout in the lower casting. Almost exactly the correct size for an OLED display.

Back together again, with one of my “home sensor” tests (in this case, a laser Time of Flight sensor).

AutoScope 2.0 : Cameras

I’ve tried using the included lenses on three cameras, but none of them gave good image quality. So, my current work-around is to remove the camera lens and use the regular eyepiece lens — I printed an adapter which attaches the camera to the eyepiece. It gets a similar field of view as the eye. The attached photos are 10x with 25x eyepieces (250x) and 40x with 25x (1000x). Stained apple and a 0.01mm/div calibration slide.

I’ve had the best luck with a CS type mount camera. This one has a CS mount: If I was to buy it again, I’d try to find it without the lens, as I’m not using it. Maybe for another project. ūüôā I have not tried any “normal” microscope cameras, as I’m trying to keep the cost down. (I’ve not been overly careful, so you see specks, which is likely dust on the sensor.)

I was planning on discarding the outer part of the images. The idea was to bulk process them, having GIMP (or whatever) crop to the center portion of the image. Then run the cropped images through the stitcher. (The control software will have to be told how many steps to move, to make sure there is sufficient overlap, but that has to happen anyway.)

Since I’m getting nicer color out of the 2MP camera, I’ll be testing with that. I’m going to design a mount for the RGB sensor and attach to the other eyepiece. I’ll let you know how that works out.

AutoScope 2.0 : Home : RGB Sensor

I thought the TCS-34725 RGB color sensor ( might be the solution, but it’s not. I printed a little slide carrier in black, so I could cut out the ‘scopes light when out of range. That worked great, until the next day and I had sunlight.

The sensor is good at picking up reflected light off the top of the slide. Which is fine for other applications, but no good for us. (Unless we run the ‘scope in a dark room.) I’m not able to get clear in/out of range readings with the reflected light getting in the way.

I still may use the sensor, as a very-rough “print preview” of the scan. It does change values as I move across a sample. However, if ambient light changes, you get shifts in the color. So it’s not very repeatable.

XBOX Adaptive Controller : DIY Joysticks

I think that the Microsoft XBOX Adaptive Controller is a great idea. What I don’t like is that the accessories (like buttons or joysticks) are expensive. Here are some hints to making things less expensive and more accessible.

I’m testing PS2 style thumbsticks along with Arduino Leonardo (Micro Pro — the tiny board) as joysticks (for left and right USB of the Adaptive Controller). I’ve successfully connected and am getting good X/Y values on both sides.¬† Check out these YouTube videos for details:

For the buttons (which can connect with 3.5mm / 1/8″ headphone jacks), get two packs (10 pieces per pack) of these:

Or, four packs (4 pieces per pack) of these:

They allow you to easily wire stuff without having to solder. You need 19 of them. If you want just Up/Down/Left/Right/A/B/X/Y you need 8.

The stereo ones are cheaper (go figure) and work fine — wire L and Gnd. For the mono ones, + and -. Polarity does not matter, as these are switches.

These are the little joysticks I’m testing with:

Any analog type joystick (with Power, Ground, X, Y, Button [not needed]) should work. I’m using these because they are cheap, on hand, and good for the proof of concept. For actual designs, I’ll use bigger sticks.

I wire them to work with one of these:

You must use an Arduino Pro Micro (aka Leonardo) which has the¬†Atmega32U4 chip — because this chip can emulate a keyboard or mouse or joystick. The Arduino reads the values from the stick, and has code running on it that makes it act like a HID. It’s recognized both as a normal (albeit limited) game controller, and the XBOX Adaptive Controller recognizes it. (X/Y — have not figured out what Push Button to send under.)

I’m using the HTML5 Gamepad Tester which can be found here:¬†

Ports on the back of the Adaptive Controller map like this:

Left Digital – 14
Down Digital – 13
Up Digital – 12
Right Digital – 15
LS Press – 10 (don’t have this working yet)
LB – 4
XBOX – ?
X1 – Think this goes to analog
X2 – Think this goes to analog
Windows/Squares – 8
Three Lines – 9
L Trigger – 6
R Trigger – 7
RB – 5
RS Press – 11 (don’t have this working yet)
A – 0
B – 1
X – 2
Y – 3

Again, these are the default mappings I’m seeing via the Gamepad Tester. Your results may vary. Also: Regardless of the chip and controller, the built in “Controller Check” in the Windows 10 Control Panel keeps going to non-responding / locking up. I have no idea why. So I gave up trying to test with that and moved to the web based tester.

More to come, but know that I was able to hook up my own custom sticks to the XBOX Adaptive Controller and can use my own buttons with easy connections.

E-mail me (address is in left nav bar) if you are working on an accessibility project and need assistance.

Arduino Code, Joystick Library, and 3D Models can be found on GitHub (

You can also find the 3D Model at Thingiverse: