Main > Main Forum
New Trackball Design for easier installation
PL1:
--- Quote from: StefanBurger on January 21, 2020, 05:50:38 pm ---Regarding ball bearings
The ball bearing need to fit inside the big barrel that holds everything together (the one shape with the lib on the top).
And in addition to that, the three ball bearing that define the postion of the ball need to be as far away from the center and as high/ close to the balls widest point as possible to place the center of gravity of the ball as low as possible. Otherwise, if the ball gets pushed hard, it would escape the three ball bearings to "crash" against the housing with immediate high friction which result in a hard stop (bad gameplay experience).
Besides of that, friction during normal operation need to be at a minimum (only the three contact points of the three ball bearings.
To make a long story short: I tried different sizes of ball bearings and it turned out, they need to as small as possible. One of the attached fotos shows a selection of ball bearings with an 1 Cent coin as size reference.
--- End quote ---
I made a parametric test model to visualize if the 8mm transfer bearings I mentioned earlier could work.
They are too large to work with a 2-1/4" trackball, but it looks like they can work with a 3" or larger ball.
Here's the OpenSCAD code if anyone wants to see if a combination of trackball size, ring size, and bearing mount angle will work.
- The default settings work, but changing the Bearing Block Angle from 45 degrees to 44 degrees causes the bearing mount hole to protrude through the ring. (closer to zero ==> contact point is higher on the ball)
- To see the trackball, remove the comment marks ("//") from the two "translate" and "sphere" lines (32 and 33) after "// TB placeholder"
--- Code: ---// Trackball Test for Transfer Bearings
/////////////////////////////
// Define variables
/////////////////////////////
TBDia = 76.2; // Trackball Diameter 2.25" = 57.15mm 3" = 76.2
VertWiggleRoom = 1; // Vertical wiggle room so TB clears base/sensor
RingHeight = 16;
RingOuterDia = 76;
RingInnerDia = 68;
BBAngle = -45; // Bearing Block Angle
BBDepth = 30; // Bearing Block Depth
BBWidth = 20; // Bearing Block Width
BearClear = 1.5; //Bearing clearance
BearDepth = 8; // Bearing base depth
BearDia = 12; // Bearing base diameter
// Number of fragments (polygon sides) used to render a full circle.
$fn = 180; // Default = 180 Typical range = 6 - 360
// 6 will render a circular hole as a hexagon, 8 will render a circular hole as an octagon.
// Lower the number for faster rendering, raise the number for smoother rendering.
/////////////////////////////
// Make the part
/////////////////////////////
// TB placeholder
//translate([0, 0, TBDia/2+VertWiggleRoom])
//sphere (d=TBDia);
// Ring
difference(){ // Outer cylinder minus Inner cylinder and Three Bearing Mount Holes
translate([0, 0, RingHeight/2])
cylinder (RingHeight, d = RingOuterDia, center=true); // Outer cylinder
//
translate([0, 0, RingHeight/2])
cylinder (RingHeight+0.1, d = RingInnerDia, center=true); // Inner cylinder
//
translate([0, 0, TBDia/2+VertWiggleRoom])
rotate([BBAngle, 0, 0])
translate([0, TBDia/2+BearDepth/2+BearClear, 0])
rotate([90, 0, 0])
cylinder (BearDepth+0.1, d = BearDia, center=true); // Bearing Mount Hole 1
//
translate([0, 0, TBDia/2+VertWiggleRoom])
rotate([BBAngle, 0, 120])
translate([0, TBDia/2+BearDepth/2+BearClear, 0])
rotate([90, 0, 0])
cylinder (BearDepth+0.1, d = BearDia, center=true); // Bearing Mount Hole 2
//
translate([0, 0, TBDia/2+VertWiggleRoom])
rotate([BBAngle, 0, 240])
translate([0, TBDia/2+BearDepth/2+BearClear, 0])
rotate([90, 0, 0])
cylinder (BearDepth+0.1, d = BearDia, center=true); // Bearing Mount Hole 3
}
//
// Bearing Blocks
intersection(){ // Intersection of Ring Center and Three Bearing Blocks
translate([0, 0, RingHeight/2])
cylinder (RingHeight, d = RingInnerDia, center=true); // Ring Center
union(){ // Three Bearing Blocks
// Bearing Block 1
difference(){ // Block minus Bearing Mount Hole
translate([0, 0, TBDia/2+VertWiggleRoom])
rotate([BBAngle, 0, 0])
translate([0, TBDia/2+BBDepth/2+BearClear, 0])
cube ([BBWidth, BBDepth, BBWidth], center=true); // Block
translate([0, 0, TBDia/2+VertWiggleRoom])
rotate([BBAngle, 0, 0])
translate([0, TBDia/2+BearDepth/2+BearClear, 0])
rotate([90, 0, 0])
cylinder (BearDepth+0.1, d = BearDia, center=true); // Bearing Mount Hole
} // End Bearing Block 1
//
// Bearing Block 2
difference(){ // Block minus Bearing Mount Hole
translate([0, 0, TBDia/2+VertWiggleRoom])
rotate([BBAngle, 0, 120])
translate([0, TBDia/2+BBDepth/2+BearClear, 0])
cube ([BBWidth, BBDepth, BBWidth], center=true); // Block
translate([0, 0, TBDia/2+VertWiggleRoom])
rotate([BBAngle, 0, 120])
translate([0, TBDia/2+BearDepth/2+BearClear, 0])
rotate([90, 0, 0])
cylinder (BearDepth+0.1, d = BearDia, center=true); // Bearing Mount Hole
} // End Bearing Block 2
//
// Bearing Block 3
difference(){ // Block minus Bearing Mount Hole
translate([0, 0, TBDia/2+VertWiggleRoom])
rotate([BBAngle, 0, 240])
translate([0, TBDia/2+BBDepth/2+BearClear, 0])
cube ([BBWidth, BBDepth, BBWidth], center=true); // Block
translate([0, 0, TBDia/2+VertWiggleRoom])
rotate([BBAngle, 0, 240])
translate([0, TBDia/2+BearDepth/2+BearClear, 0])
rotate([90, 0, 0])
cylinder (BearDepth+0.1, d = BearDia, center=true); // Bearing Mount Hole
} // End Bearing Block 3
//
} // End union of Three Bearing Blocks
//
} // End intersection of Ring Center and Three Bearing Blocks
//
--- End code ---
Your current design is the better approach for small trackballs, but transfer bearings might be an option to consider if you scale up to larger sizes.
--- Quote from: StefanBurger on January 21, 2020, 05:50:38 pm ---Usage of optical mouse sensor/ speed of motion
I attached some fotos of a conventional product. Before I come up with the idea to the actual design, I tried to fit a conventional TB to that formfactor.
But as you can see by the look of those fotos, it's just not possible because of the required space for the both encoder wheels. In my opinion, thats the main reason for the formfactor of conventional TB's.
Those conventional encoder wheel TBs also have the problem regarding center of gravity of the ball: at the one side, the contact points of their ball beiring should be as high/as for out as possible, at the other side the bearings also have the encoder wheels attached that require space inside the housing from the ball bearing center too the housing top.
To make a long story short: a Arcade-Button form-factor with encoder wheels is impossible.
It was mentioned, that the granularity of the mouse measurements is to high, which results in fast movements with minimal turning of the ball.
Thats right, but basically all mice/track ball regardless of interface transfer delty X and delt Y values. This of the optical mouse trackball a just higher due to higher resolution.
They can be scaled down by adjustments in the software. There is also a theretical possibility, to place a microcontroller (e.g. Arduino MEGA 32U4 or something similar) between mouse sensor and gaming PC to adjust the value. I've done that with some conventional TB before (see attached foto): It reads the values from the PS2 interface of that other trackball, inverts one of the axes and scales both axes before it forwards the converted values via USB to the PC. Unfortunatly that would increase complexity alot and would also have slight impact on costs.
--- End quote ---
Two important considerations when choosing a laser mouse for this are the DPI (Dots Per Inch) and Inches per Second (IPS) ratings.
- Some mice allow you to adjust the DPI.
- Check to ensure that the IPS rating is faster than the trackball can be moved.
http://forum.arcadecontrols.com/index.php/topic,121927.msg1293874.html#msg1293874
--- Quote from: StefanBurger on January 21, 2020, 05:50:38 pm ---PS: my pictures where refused to be uploaded for security reasons. Any idea what's behind?
--- End quote ---
Forum software sometimes throws a false positive. :banghead:
Cropping or resizing those pictures about 3-5% appears to work.
Scott
jimmer:
--- Quote from: PL1 on January 21, 2020, 08:02:15 pm ---
I made a parametric test model to visualize if the 8mm transfer bearings I mentioned earlier could work.
They are too large to work with a 2-1/4" trackball, but it looks like they can work with a 3" or larger ball.
--- End quote ---
When I thought about using these I assumed without looking that they were just running in Teflon, like spherical bearings, which wouldn't be rolly enough. But now I see there is more to the story. Some of them (expensive ones) have ball bearings with return channels like in a linear screw bearing. Cheap ones like this https://www.bearingboys.co.uk/Medium-Duty--Plain-Fitting/MG8-Chrome-Ball-Transfer-Unit-129569-p indicate a bed of ball bearings but I don't know how that is supposed to work, maybe they run up the wall, hit the lid and shuffle sideways or something.
I've never felt one of these things, be interesting to see someone mount a ball on 3 of them and see how it rolls. Rolling on (spinning) is only needed for some games of course.
But the big picture is: 3 roller bearings work very well and they are very cheap, so there's no need for an alternative.
RandyT:
I just stumbled upon this. This is a concept I played with about 8 years ago. Even bought a big box of bearings for eventual production. Still trying to figure out what to do with them :).
While this is a very nice and well-thought out package design, it's exactly how a PC optical trackball works, in a different form-factor. They use nylon bearings however, as free-spin is usually not necessary or even desirable in that application.
The issue I ran into, and was mentioned by others, was reliably sensing the surface of the ball for accurate tracking. The older Logitech PC trackballs actually have a special dot pattern on the ball to aid in tracking. I think the newer ones are mixed with mica or other refractive material under a clear outer shell, which indicates some changes had to be made, possibly to support higher resolutions. If a special ball were to be produced with a similar pattern, tracking would work pretty well, at least with slower, non-free-spinning movements. Logitech must have patented the device, but I haven't really looked into it.
However, I went through many iterations of ball types on my prototype, even going as far as sanding and marking a swirled ball with a sharpie to try to get the accuracy close to that of the standard encoder-wheel based units. Some of what I experienced was the usual jitter and skipping one might expect from an optical mouse on an incompatible surface. I will suffice it to say that I didn't feel (at the time) that it was something worth pursuing. That doesn't mean that someone else won't be successful (tracking modules have improved, as things do), but I did put more than just a little time into the project.
In the end, where accuracy is concerned, it probably can't be as good as the encoder wheel variety (at least in this application.) As far as ball movement and feel, you can't really do much better than the 3 bearings design. Unfortunately, I think both will have a tradeoff where a sacrifice will be made in one, for the strengths of the other. But if that doesn't end up being the case, I would love to talk with the person who gets past the hurdles :)
Gasman5422:
You could sell this design on one of several 3D printing sites which would allow consumers to buy it directly.
Marsupial:
--- Quote from: Gasman5422 on February 10, 2020, 11:07:58 am ---You could sell this design on one of several 3D printing sites which would allow consumers to buy it directly.
--- End quote ---
I'd buy a printed set