Astronomical Display: Initial Designs

October 13, 2024

Original Design and Attempts

Note the main project is discussed here. This page presents how I initially thought the laser projector would operate.

Doubly rotating mirror

The initial concept was fairly simple. 100 or so laser diodes would be arranged in a circle of about 30 cm diameter and pointing inwards at a centrally located mirror. The mirror would be mounted on a motor which spins along an axis that is perpendicular to the plane of the circle. This by itself would generate a ring of laser light, which does not cover a hemisphere. So in addition, the mirror is geared to spin along an axis that is perpendicular to the motor axis (and within the plane of the circle), and the choice of gear ratio is such that each laser traces out a spiral shape along the hemisphere, after which timing is applied to render pixels on the hemisphere. A clever effect here is that the gearing may be fractional relative to 1 motor turn such as to rotate the mirror phase slightly with each motor rotation (requiring multiple motor rotations to complete one mirror alignment period), thus providing a laser multiplication, so that each laser traces not one but many spirals on the hemisphere, with a corresponding improvement in pixel resolution. The mirror would have to spin rapidly and consistently, to avoid jitter of the displayed pixels, so magnetic gears are to be used along with optimization of the spinning mass distribution.

The mirror spins along two perpendicular axes, and at a fast enough rate to not cause visible flicker in the projected scene. This means that changes in balance and moment of inertia need to be minimized, so the mirror does not vibrate uncontrollably and worsen resolution (or shake apart the whole projector). For a strictly balanced rotation about one axis, it is necessary that within each slice in a plane along the axis, the center of mass is on the axis. It is possible also to have a balanced rotation by loading the axis material in tension and compression, where the condition is relaxed to having the curve that passes through the center of mass of each slice being itself balanced relative to the axis, which may be a helical or a V-shape among others. We won't consider the latter case here, and rather just design the rotating parts to be symmetric about the rotation axis as much as possible. This will satisfy one axis balancing.

However there is a second axis to consider. When the mirror spins about this second axis, it may change in moment of inertia about the first axis. If this happens, conservation of angular momentum will require the rotor to speed up or slow down correspondingly, which will cause direct perturbations in the mirror angle and will vibrate everything around the motor. Thus we need to position the mirror such that its moment of inertia about the first axis is constant. This may be done by placing the centers of mass at the corners of an equilateral polygon of 3 or more sides centered on the second axis of rotation. If you have a "fidget spinner", tape some coins onto the spinner to break the symmetry, then try spinning it and turning it about an axis perpendicular to its spin, and you can feel the phenomenon in effect. Note this does not work with 2 masses - as they rotate about the second axis, they alternate from fully extended to fully aligned with the first axis, thus making a sort of worst case scenario for this second-order unbalance (I had to learn this the hard way when making a small BattleBot with a rectangular spinning blade, which vibrated loose within seconds after the start of the competition). With 3 or more masses, as some masses get closer to the first axis, some other masses get further, so the overall moment of inertia is constant. However this symmetric arrangement is not the only answer. In fact it is possible to achieve this in an unbalanced manner with a specially offset line (which represents a cross-section through the mirror). This optimal position matches one side of an equilateral triangle centered on the origin. (this script is an example calculation)

Magnetic gears

To reduce noise and vibration, instead of mechanical meshing gears I wanted to use magnetic gears to transmit rotation from the first to the second axis. For this, I purchased 300 small 1/16 inch cube magnets from kjmagnetics, with the expectation that I would use less than half and use the remainder for prototyping. This was a good decision because after gluing the magnets for the prototype gears, the glue was left in a thin layer on the magnets, making them difficult to reuse in the final design. Accurately sizing and assembling the gears was a challenge. While the magnets were all of a uniform 1/16 inch size as advertised, arranging them in a circle meant they were in contact along the corners and edges, and due to rounding of the edges the actual circle diameter for a close packed arrangement was smaller than a calculation based on 1/16 inch separation. The first circle I milled out using 1/16 inch calculation was thus bigger than necessary, and the magnets preferred to stay closely packed to each other, leaving one large gap after inserting them into the milled slot. The magnets sticking to each other was actually advantageous as otherwise it would have been impossible to assemble, since they already have a tendency to fly apart and rearrange themselves into a lower energy (linear, magnetic dipoles aligned) configuration if not constrained within the milled slot. However this means that the circle diameter has to be chosen by experiment, and after the unsuccessful first assembly, accurately measuring the gap by using a tapered piece of paper later matched with calipers (since metallic calipers will stick to and disturb the magnets, and will not fit easily in the gap anyway), and reducing the diameter by the amount expected to eliminate the gap, a good gear size was achieved with all magnets closely packed. This of course is important when the goal of the gearing is to minimize vibration. This two-step process was carried out for the stationary and rotating gears, with attention paid to orienting the magnets in the proper direction since the arrangement is akin to a fixed crown gear.

 
Testing the magnetic gear concept with 3D printed parts was just sufficient to tell that it could work; the resolution of the 3D printer was not adequate for good alignment and fixturing of the magnets and I heavily relied on glue to hold everything in place (using a cyanoacrylate nail glue).

 
Using CNC-milled plastic parts for the magnetic gears gave a much better result, however getting the right size required a round of iteration due to rounded corners of magnet cubes (and their rotation relative to each other) changing the calculation from the ideal case. Assembling the gears without the magnets flying out all over the place was done by using a holder, in which the magnets are photographed. The gears, to which the magnets will be glued, are the plastic discs seen next to the magnets here.

 
The completed magnetic gear assembly, with motor and mirror attached. The magnetic gear worked really well, running smoothly and quietly despite various unequal gaps between magnets, which would be completely impractical with meshing gears. It is surprising that magnetic gears (and gearboxes) are not more popular.

Gear ratio

The gear ratio sets the number of mirror revolutions about the second axis (deflecting laser vertically) per revolution about the first axis (deflecting laser horizontally). The length of a cycle is defined by when the mirror returns to the same horizontal and vertical location, and is given by the smallest integer number of first axis revolutions to complete an integer number of second axis revolutions. This is important to choose carefully as it defines the laser multiplication ratio, the update rate, and the uniformity of the projected pixel coverage. The use of magnetic gears requires that the number of teeth is divisible by 2, which is not a major limitation since any gear pair could have the number of teeth on each gear multiplied by 2 and satisfy this requirement. It is possible to pick a gear ratio that gradually shifts the phase of the second axis relative to the first axis in a Vernier principle, thus making for a very long cycle length and a large multiplication ratio. For instance a ratio of 10:8 would complete a cycle in 4 primary and 5 secondary rotations, while 50:48 would take 24 and 25 turns respectively. If a laser can project at the same vertical but different horizontal locations within a cycle, this means one physical laser becomes "multiplied" into many different points and the pixel resolution increases. This however requires that the number of lasers and number of turns on each axis are chosen such that projected laser beams from different mirror phases do not overlap each other and are uniformly spaced. Since the mirror has an acceptance angle in both the horizontal and vertical directions, which will define where the projected laser beams start and end, finding a matching combination is not a straightforward task. (Here is a scilab script to search through valid combinations based on maximum and minimum gear diameters)

In fact through this exercise I found that it was often too easy to get a high multiplication, which would mean a single laser scans over a very large area, which in turn means for a constant pixel size (hence shorter pixel time) it will become increasingly dim. This is separate from the issue of low refresh rate at high multiplication ratio, which could be addressed to an extent by spinning the mirror faster. The brightness issue can be resolved by using a higher power laser, but this adds significant expense and eye safety hazard. So I was increasingly becoming less enthused about multiplication, and more concerned about minimum brightness and practicality. The mirror size is important, as due to the changing theta and phi angles it will not be fully intersecting the laser beam for most of its rotation (a further brightness penalty), whereas it is desired to maximize the acceptance angle (which allows for more pixels per laser) by using a larger mirror. This was simulated in scilab (script here) and projected mirror size shown below.


A view of the mirror as seen from the direction of the laser at different mirror angles with fixed gearing between theta and phi, to verify the choice of mirror size and acceptance angle.

I picked what seemed like a reasonable combination of gear and mirror sizes which gave a nice uniform tiling in theta and phi (simulation script), assuming the beam would be scanned in the direction of the mirror normal axis.


The lines that would be formed in theta (x-axis) and phi (y-axis) by a beam if it were reflected by doubling spherical angles to the mirror normal axis, with a gearing ratio that gives 32 acceptance windows and 4x multiplication per laser diode.

Have you noticed the error in this approach yet? The assumption that the doubly rotating mirror will simply scan the beam along theta and phi is incorrect! In fact the reflection from the mirror will be based on the angle between its normal axis and the incoming laser beam axis, and is not easily representable in spherical coordinates (I tried to complete the derivation but didn't get to the end as the expression did not seem to be anything insightful). Instead switching to rectangular coordinates and 3D vectors of unit length, we can compute the actual reflection direction using vector multiplication by doubling the component of the beam projected along the mirror normal. With vector L pointing from the origin to the laser diode, the incoming beam from L towards the origin, the mirror at the origin with plane normal M, the reflected beam going out from the origin towards R:

R=L+2*((M-L)-((M-L).*M)*M)  where .* means dot product, and all vectors are unit length

Substituting that in the simulator, we obtain a much less orderly image. It seems unlikely that we can obtain uniform pixel coverage with this method so we start over again.


A simulation of the actual 3D scan pattern expected from the doubly-rotating mirror arrangement with 16 lasers. With all the curves intersecting at different angles, it is not possible to achieve a uniformly spaced pixel basis that would be reasonable for a projector.

Magnetic circuit oscillator

Instead of the mirror rotating about a secondary axis, it could oscillate up and down, activated by an electromagnet. This gives added flexibility because the rate of oscillation can be programmatically tuned (as opposed to a fixed gear ratio), and it increases the laser duty cycle to 100 % of the acceptance window (as opposed to some fraction of unusable vertical mirror angles when a full second axis rotation must be completed). A magnetic circuit could be designed so that the electromagnet coil is stationary and there are no mechanical connections to the rotating assembly, with favorable implications for vibration reduction. Also I have wanted to make a magnetic circuit for some time, so this seemed worthwhile to study further.

Overall, while it seemed like the magnetic oscillator could work based on a few FEMM simulations and resonance frequency calculations, doubts regarding repeatability of oscillation angle and actual forces developed by a prototype that would be expensive to manufacture have prevented me from pursuing this further.

Other spinning things

With the previous learning experience in mind, I tried to think of a design that would have reasonable multiplication ratio, update rate, and a projection pattern that simulates a point source, such that there is no impact of focal length. One possibility is to place the laser diodes on a spinning structure. This principle is similar to the "holographic" (not in any strong sense) blade-type LED displays, which spin a row (or propeller shaped structure) of LEDs and synchronize the LED flashes to create what appears to be a transparent circular monitor. This product has recently been appearing in the consumer market and works by transmitting power wirelessly to the spinning board (using a high frequency coil similar to wireless charging of cell phones) which has a CPU on it that carries out all the computations and possible wireless communication with controller software. The resulting displays have a high resolution and good refresh rate. If laser diodes were used instead of LEDs this could project outwards onto a hemisphere surface with a similar principle. The main challenge would be designing the spinning assembly to be balanced, and aligning all the lasers.

Instead of spinning the lasers, it is possible to spin a mirror whose normal is along the horizontal, and have a few sets of lasers arranged along the vertical underneath the mirror, reflecting off the mirror upwards to make a projection. The lasers may be arranged in a plane-like rather than hemispherical layer, following a principle similar to the Fresnel lens. However the resulting projected curves are not nice circles but rather misaligned cardioids.

A continuously curving mirror, such as a reflective cone, could be spun to achieve reflections in two axes, however the curved surface would cause a lensing effect on the reflected laser beam and upset its collimation, which would cause the projected spot to be faint and blurry. Likely some clever optics could be used to counter the lensing from the curved mirror, but this would be difficult and/or expensive to implement on all lasers for this type of small scale project.

Another idea is to spin a structure that contains hundreds of small mirrors, each angled differently along a horizontal axis. If a disc-like structure is used, which would be easy to fabricate, the reflections would take place along the perimeter of the disc, which makes the projection not ideal (the reflection angle is correct, but the reflection location is offset within the disc plane from what would correspond to a point source). However, if a cone-like structure is used, along with an upward-pointing laser, each mirror could be angled such that it generates a reflection that is on the same line as an ideal point source. Since this seemed promising, I made a quick prototype of this idea.

"Disco cone" reflector


A plot illustrating the cone reflector idea (scilab script). A laser beam comes from the bottom right corner and goes towards the top left corner (red dashed lines). The mirrors (blue lines) are tilted to reflect the laser beam at specified angles (black lines). The mirror center positions and angles are fixed by specifying that all the black lines intersect at a virtual origin point behind the mirrors and are uniformly spread in vertical angle. The mirrors that are further back are reached by the beam when there is 3D separation of the different layers.

A set of scilab scripts was written to place the mirrors along the cone to make the reflector. The angle of each mirror, and its height on the cone, were easy to calculate from a 2D plane diagram. The 3D position of each mirror, particularly its tangential location along the circle of the cone at the geometrically defined height, was much more difficult to assign. When laying out the mirrors, it is necessary that any two mirrors do not mechanically overlap (crash into each other) and also that a mirror close to the laser diode does not block the beam from reaching mirrors further back beyond its design angular allotment. The mechanical overlap criterion is relatively easy: calculate the 3D points for 8 corners of two cubes, find local X,Y,Z direction vectors aligned with the sides of each cube, then for both cubes test that each of one cube's 8 corners is not inside the volume bounded by the other cube's 6 sides (with appropriate handling of edge cases such as a corner being exactly on a side, or two corners overlapping). As the cone expands, there is a lot more perimeter length available for mirror placement so mechanical interference is not a problem. The two innermost mirrors are very likely to interfere, so they are placed manually to face in opposite directions. The third innermost mirror is placed manually to not interfere with the first two, and the rest may be placed by the optical criterion with low risk of mechanical interference.

The optical overlap criterion is relatively more complex. If all (equal-size square) mirrors were at the periphery of a spinning disc, from the view point of a laser beam each mirror is within its path for an equal amount of time, and this time matches the angular fraction of a circle that is covered by the mirror side length as seen from the center point. If we then take one such mirror from the periphery and move it inwards to a smaller radius, it still intersects the beam for the same amount of time, however this period is now defined not by the edges of the inner mirror, but by the edges of the adjacent outer mirrors. The "angular size" of a mirror placed on a cone and seen from the outside is thus defined by its larger-radius neighbors, complicating the layout procedure.

We seek to have a high angular resolution, thus it is necessary to squeeze as many mirrors as practical onto the cone. There is not much benefit to having more mirrors than lasers, so we can set a target of 128 mirrors, for a vertical resolution of 128 pixels. With 5 mm mirrors, a disc arrangement would require approximately 204 mm diameter, so there should be plenty of room. The cone angle may be varied freely, however to simplify manufacture a low angle is preferred (a high angle makes for a tall cone which has a lot of material and is anticipated to be difficult to balance for smooth spinning). Unfortunately at a low angle, the required mirror density increases at smaller radius, just as available placement perimeter decreases, so low angles are not possible. Therefore a cone angle of 60 degrees is used.

Surprisingly, mirror placement is difficult even though it is a small fraction of the available cone surface area, because the optical overlap is a strict condition. Since we seek to center the laser beam on each mirror, an inner-radius mirror must be bounded by two outer-radius mirrors, so there is not an easily stated algorithm to place all the mirrors. Rather I implemented a script to start from the inside and move outwards, blocking out the required angular aperture of each mirror and checking that the newly placed mirror does not infringe on any previous apertures. The initial placement for each mirror is chosen at random, and then slightly adjusted in fractional steps to not overlap existing apertures. This is not the most efficient process as many of these random arrangements need to be thrown out when the last few mirrors cannot be placed, and the placement started over again, however it does eventually yield working arrangements. Note that to achieve the dimensions specified here, it was necessary to reduce the aperture of inner-radius mirrors to about 1/4 that of the outer-radius mirrors. This is justified because the inner-radius mirrors reflect the beam almost directly along the spin axis, and the projected circle has a physically smaller radius, so it does not require a high pixel resolution. This exercise and the resulting shape reminded me of the unusual reflectors used in some fire alarm indicators.


A fire alarm indicator has a reflector around the flash tube on the right, which is not a nice symmetric shape but rather has many jagged angles and curves. Perhaps this was numerically optimized for improved visibility of the strobe light at different angles and distances.

With a known mirror arrangement, it was then necessary to 3D print a mechanical structure to hold the mirrors at the design locations. For this I used OpenSCAD, a free software that generates 3D format objects from scripts. The list of 3D locations and angles from Scilab was exported into a OpenSCAD script, and placement of solid backing layers behind each mirror was specified. (The OpenSCAD files are available here.) It was necessary to also clean up some of the backing layers so that outer-radius backing would not interfere with neighboring inner-radius mirrors, which was done as a shape difference operation in OpenSCAD. The innermost (and top) three mirrors required a special cylinder structure for support since they were placed so close together, while the rest had a standard cuboid support structure joining the main cone (the cuboid support was made hollow inside to reduce mass). An inner stiffening tube and bottom spokes were added, and the cone thickness was made to be 1 filament layer (0.5 mm) to reduce overall mass and printing time. The cone was printed in one operation on a Workhorse SE 3D printer, requiring approximately 13 hours. The 5 mm square mirrors with adhesive backing, sold as disco ball mirrors in large sheets, were then attached each to its backing surface.


3D preview of the cone design in OpenSCAD.

 
The reflector cone after 3D printing and after attaching mirrors.

While the prototype overall proved the concept, it exposed some important difficulties to consider. The resolution of the filament-based 3D printer was not sufficient for the optical elements, as the backing plates had various wobbles and ridges that may be expected to upset the vertical angle of the mirror. Further, the adhesive backing on each mirror, applied in a fibrous paper-like matrix, could bunch up unevenly and again upset the vertical angle. The cone itself was large and I could anticipate that, secured on top of a brushless motor, it would wobble or vibrate rather than spin along an ideal axis. What caused me the most hesitation was the need to properly align all 128 mirrors. The angle along the spin axis doesn't matter too much, but the vertical angle should be well controlled. Perhaps with SLA (or other high resolution) printing, and a uniform thickness adhesion layer (such as a low viscosity instant-setting glue), the mirrors could be placed on the cone without any adjustments required. However note that for 128 mirrors to cover a 90 degree reflected beam range (45 degree mirror angle range), the difference between mirrors is 0.35 degrees, and each mirror should be adjustable to no worse than +-0.17 degrees. On a triangle with hypotenuse of 5 mm, this corresponds to +-15 micrometers short side, which is about the thickness of a thin sheet of paper. This is within the limit of practicality, however the effort required to align all 128 mirrors this accurately, and the requirement for them all to remain in alignment over long time scales, seems excessive to continue developing this concept. It is possible to 3D print a cone where each mirror has an integrated flexure-based alignment mechanism, but this would increase mass and likely reduce radial balance. Additionally, the requirement of aligning 128 mirrors does not lessen the requirement of aligning 128 lasers, indeed the alignment must be fairly strict to match the calculated apertures, and the timing resolution of turning the lasers on and off must be accurate to better than 1 part in 1280 (since the mirrors are placed irregularly on a grid of 1280 locations). Overall, the predicted difficulty of implementing this idea precluded it from further development.

 
The reflector cone viewed from the top, and from the bottom as would be seen by the incoming laser beam.