I opened up a broken laser printer yesterday to find one of the important sections (this is an example photo from Google Images), trying to learn from the design of the laser+polygon mirror motor within:

enter image description here

I was able to find the pinout of the driver chip, and successfully got the motor running at a very high RPM, as well as the laser to reflect off the rotating mirror, forming a simple linear pattern on the end surface.

Now, here is the part that's mysterious to me:

  • The mirror is just a standard BLDC (not a stepper nor an encoder-based servo).

  • The hexagon of mirrors is rotating at unknown/inexact speed.

  • There is such a high speed of rotation and such a short mirror length (I measured each side of the hexagon's mirrors to be about 2 cm long).

So how do they control the laser to reflect at the exact rotation-timing/angle of each mirror so as to (hit the photoreceptor drum at highly accurate positions and) produce printing quality in the thousands of DPI, i.e. better than 0.03 mm resolution?

In other words, how is the timing of the on/off laser pulsing coordinated with respect to the mirror angle in the below picture?

enter image description here

  • 4
    \$\begingroup\$ Interesting question. I am not an expert. I'd observe that for a BLDC, then the speed is known, even if it is slightly inexact. If there were any feedback from the motor, e.g. a reflection back to the laser, or some sensor on the motor itself, then the speed might be quite accurately known by the printers hardware and software. For example, one accurate position 'pulse' per mirror 'flat' might be fine if the speed of the mirror doesn't change much during its sweep. Only a WAG, though. \$\endgroup\$
    – gbulmer
    Commented Oct 18, 2015 at 14:02
  • 3
    \$\begingroup\$ I trust you're wearing eye protection (in these experiments)... The rest is a good question. \$\endgroup\$ Commented Oct 18, 2015 at 14:04
  • 2
    \$\begingroup\$ The rotation of the mirrors is very exact. It is a synchronous motor with small and constant load angle aflter all. \$\endgroup\$
    – venny
    Commented Oct 18, 2015 at 14:11
  • 2
    \$\begingroup\$ @RespawnedFluff: Good idea on patent-reading suggestion. I now found this relevant one. And regarding your sensor proposition, I'm sure there is -- I'm at work and will check when I go home. However, I did learn there is a "synchronization detector" for post-reflection, as described in this document briefly. \$\endgroup\$
    – sasha
    Commented Oct 18, 2015 at 14:42
  • 5
    \$\begingroup\$ If the rotation speed is off by a small margin, then the circuitry simply need to adapt. Adjusting the speed of a motor with a mirror is difficult. Compensating for it by adjusting the electronics controlling the laser is easier. All you need to do is detect the error in the rotation speed, not necessarily correct it. \$\endgroup\$
    – Cort Ammon
    Commented Oct 18, 2015 at 17:40

2 Answers 2


It's hard to know exactly how your specific unit works, but in general there is a timing sensor that is used to read back the mirror's position, as in the diagram below. It doesn't continuously read every position but only once per face change. The measured error is used to compensate the firing of the laser circuit.

Diagram showing location of timing sensor

There are more detailed patents on the kind of (digital) compensation circuit that makes it possible to use this non-continuous sensing method, e.g. US5754215A that enable the use of cheap motors.

These data Da, Db, Dc, Dd and De are determined by measuring time spans between the moments when the respective reflection beams from respective sides A, B, C, D and E of the polygon mirror 4 irradiate the origin sensor 6 and the moments when the reflection beam of the following side subsequently irradiates the origin sensor 6 under a rotating condition (the proper standard rotating condition) such that the scanning speed on the surface of the photo sensitive drum 5 through respective sides A, B, C, D and E reaches a predetermined constant value. The time spans can be measured via a measuring device while rotating the polygon mirror motor 13 and simulating scanning conditions, or alternatively can be measured after assembling entire elements and when the rotating condition of the polygon mirror motor reaches the standard condition. These measurement data are afterward stored in the ROM 101 and then transferred to the respective addresses A1, A2, A3, A4 and A5 in the RAM 102.

The whole point of that being

thereby even the polygon motor having a poor processing accuracy can be controlled at the standard rotation so that the scanning speed by the rotation is brought about to a target value like a polygon motor having a high processing accuracy

The combination of patentese and Japanese authors is a killer :)

That particular patent actually goes on to talk about controlling a PWM motor with the resulting data.

When the target-error calculation program 101b is executed by the CPU 100, the respective addresses A1, A2, A3, A4 and A5 are accessed in sequence for the corresponding sides A, B, C, D and E which receive laser beams in response to rotation of the polygon mirror 4. Namely, through the execution of the program, in response to rotation of the respective sides and at the position of the origin where the scanning of the subsequent side is initiated, the data corresponding to the immediately previous side among the data Da, Db, Dc, Dd and De is referred to, and any difference between the referenced data and the value in the capture register 12b is calculated as an error. This program is a simple one which primarily performs the mere reference to data and calculation of a difference such that further explanation of the content is omitted. Further, the target-error calculation program 101b causes the CPU 100 to execute the PWM motor control program 101a after storing the calculated error in the RAM 102.

But there are ICs for controlling a brushless motor that are specifically marketed for laser printer mirrors. ON Semi has whole bunch of them e.g. LB11872H, LB1876, LV8111VB. These use PLL speed control circuitry internally. The latter two chips boast "direct PWM drive" as well, which is not very clear to me what it means, but I assume they convert the control signal internally (from PWM). So as long as you have control data they probably work just as well. There's not much in the way of application notes for using these (in an actual laser printer). My guess is that those who need them know how use them. Rohm (which holds the aforementioned patent) also makes a bunch of these "direct PWM driver" ICs for brushless motors, also marketed for laser polygonal mirrors, e.g. BD67929EFV. There's even a paper talking about this [PWM] control technique for brushless motors: http://dx.doi.org/10.1109/ICEMS.2005.202797 (I have not yet read it.)

Re: "how exactly does this timing sensor receive the beam?" I think that was somewhat obvious from the diagram: through a mirror (labelled there "1st Reflection Mirror") which is struck only when the laser switches mirror faces. That's a different mirror than the main mirror used to illuminate the OPC drum. Presumably there could be other arrangements. For a color laser printer, there typically are (or rather were) multiple sensors, one per beam (color channel) as explained in a more recent Lexmark patent US9052513, which as you can see proposes a way to reduce the number of sensors. (That's probably among the reasons why you can buy a color laser printer for under $100 these says.)

In an LSU of an electrophotographic color imaging device, it is typical for each imaging channel to have its own optical sensor, called an “hsync sensor,” to detect its laser beam having been deflected from a polygonal mirror and to create a beam detect signal for use in triggering video data being included in the channel's laser beam for impinging on the channel's corresponding photoconductive drum. In more recent LSU design architectures, two beams share a single hsync sensor with one of the channels creating the start of scan (SOS) signal and the other channel using a delayed version of that SOS signal. Because one channel is imaging off of a facet of the rotating polygonal mirror that is not associated with the optical sensor generating the SOS signal, scan jitter can be induced into that channel. With such LSUs generating laser beams on-axis relative to the facets of the rotating polygonal mirror, the laser beams impinge on the polygon mirror such that only the variation in one or more facet cuts of the mirror is seen to induce scan jitter.

  • 1
    \$\begingroup\$ It sounds like the same kind of PLL that enables CRT monitors to work by synchronising once per line. If the motor is driven at a constant speed and there's sufficient mechanical inertia on the mirror polygon, a very accurate PLL lock should be achievable. \$\endgroup\$
    – pjc50
    Commented Oct 18, 2015 at 15:26
  • 1
    \$\begingroup\$ @Respawned: A bit more detail would be appreciated; for example, how exactly does this timing sensor receive the beam? Do you mean that, prior to each line that is to be printed, an initial laser firing is sent at a timing that the microprocessor then believes corresponds to the angle matching the timing-sensor's location? And then, if there is an offset error in the timing, and so the timing-sensor doesn't record a detection, then what? How does the microprocessor know the amount of error to compensate by? \$\endgroup\$
    – sasha
    Commented Oct 18, 2015 at 15:43
  • 1
    \$\begingroup\$ @sasha It actually doesn't need to know where the beam is, with all that great of accuracy. What it does need to know is where the beam is relative to the previous rows of dots. If the beam is off by 1/16", you wouldn't notice. It'd just look like the paper fed slightly uneven. What matters is that the beam is over the course of the page. Also, they can just have the laser "on" in the region of rotation that the timing sensor operates, since it's not pointed at the photodrum. They can also run their detector at a much higher rate, and look for the laser grazing the edges of the sensor. \$\endgroup\$
    – Cort Ammon
    Commented Oct 18, 2015 at 17:36
  • 1
    \$\begingroup\$ @ChrisH Yes. I was simply pointing out just how far off you can be, but if the relative positions of the dots from row to row are perfect, you wont even notice that you were offset one direction or the other. \$\endgroup\$
    – Cort Ammon
    Commented Oct 19, 2015 at 18:06
  • 1
    \$\begingroup\$ @RespawnedFluff: Marked as answer (of course :-). For the synchronization-beam detection: Any thoughts on why they would use an in-between mirror (same is true in my OP photo), instead of directly using a sensor at that position? \$\endgroup\$
    – sasha
    Commented Oct 30, 2015 at 0:11

As long as the rotation speed is consistent on short timescales it is possible to work out the current position from the timing of pulses on the "beam detect". Simplistically the time between pulses would give the the rotation speed and then combining the known rotation speed with the time since the last pulse would give the current position.

One thing to bear in mind is that the absoloute positioning on a mono laser doesn't have to be super-accurate, only the relative positioning between adjacent lines. Color lasers usually use a belt as an intermdiate between the different color print engines and the paper and I would assume that they have some kind of detection in place on that belt to allow them to line up the different colors.

  • \$\begingroup\$ Can you talk about this "beam detect" -- is this some sort of sensor at the polygon mirror spin stage, or after beam reflection? \$\endgroup\$
    – sasha
    Commented Oct 18, 2015 at 14:50
  • \$\begingroup\$ I'm assuming that what the asker has labeled as "beam detect" is some kind of optical sensor that will be triggered by the laser once per beam pass (also: see respawned fluff's answer) \$\endgroup\$ Commented Oct 18, 2015 at 14:54

Not the answer you're looking for? Browse other questions tagged or ask your own question.