Patent Description:
The current motion of installation of memory modules into computing devices may produce an elevated strain rate, which may result in damage to the memory module, the memory socket, and/or the circuit board. Accurately pushing DIMMs or other large components on electronic boards requires a balance between insertion force to ensure complete insertion and subsequent stress induced on the PCB.

Manually installing memory modules according to conventional techniques also may be labor intensive. In enterprise and manufacturing environments, hundreds, thousands, tens of thousands, or more memory modules may be installed. Systems that automate the installation process may decrease the installation time of memory modules, but both manual and automated installation may be prone to errors. These errors may include the use of too much force during insertion of a memory module into a memory socket, which may lead to broken components such as broken circuit boards, memory modules, and memory sockets. Moreover, improper installation of a memory module may lead to system failures or sub-par operation of the system. For example, memory modules that are not seated properly in a memory socket may cause the system to short-circuit. In some instances, improperly seated memory modules, which would otherwise be operational if seated properly, may be unavailable for use by the system. Additionally, troubleshooting improperly installed memory modules in systems that have a large number of memory modules may take a significant amount of time. Cited reference <CIT> relates to a device for inserting memory modules, such as Dual Inline Memory Modules (DIMM), into memory sockets, and a method for inserting such memory modules into memory sockets.

The present disclosure provides for an apparatus and method for inserting memory modules, such as Dual Inline Memory Modules (DIMM), into memory sockets.

One aspect of the disclosure provides a memory insertion apparatus configured to push memory modules into corresponding memory sockets. The memory insertion apparatus may include a frame and an actuation assembly coupled to the frame, and one or more cam assemblies each rotatably coupled to the frame and operatively coupled to the actuation assembly. Each cam assembly may have a central shaft extending in a longitudinal direction, and a plurality of cams each having a tip configured to engage one of the memory modules, the tip extending from the central shaft in a respective radial direction perpendicular to the longitudinal direction. A center of each cam of each of the cam assemblies may be offset from centers of adjacent ones of the cams by a pitch distance that is about equal to a pitch distance between centers of adjacent ones of the memory sockets.

Each of the cams may have a rounded generally triangular shape. The actuation assembly may include a motor, pulleys including a drive pulley and one or more cam assembly pulleys, each cam assembly pulley corresponding to one of the one or more cam assemblies, and a belt extending at least partially around an outer circumference of each of the pulleys, the motor being configured to rotate the drive pulleys, each of the one or more cam assembly pulleys being rotatably fixed to a respective one of the one or more cam assemblies, such that rotation of the one or more cam assembly pulleys rotates the respective cam assembly in a same rotational direction. The memory insertion apparatus may also include a non-contact measuring device that is configured to measure a distance between the cam assemblies and the memory modules.

Each of the cam assemblies may include eight cams. The tip of each cam may include a ball bearing concentrically located by a dowel pin. The tip of each cam may include a compliant material that is configured to partially compress when an external force is applied thereto. Each of the one or more cam assemblies may include an identical number and arrangement of the cams.

The one or more cam assemblies may include a first cam assembly and a second cam assembly, and the first cam assembly may be rotationally offset <NUM>° to <NUM>° relative to the second cam assembly, such that when each cam assembly is rotated in a same rotational direction, a center of each cam of the first cam assembly passes through a first vertically oriented contact position <NUM>° to <NUM>° before a center of each corresponding cam of the second cam assembly passes through a second vertically oriented contact position.

The one or more cam assemblies may include a first cam assembly and a second cam assembly, and the first cam assembly may be rotationally aligned in a same orientation relative to the second cam assembly, such that when each cam assembly is rotated in a same rotational direction, a center of each cam of the first cam assembly passes through a first vertically oriented contact position simultaneously with when a center of each corresponding cam of the second cam assembly passes through a second vertically oriented contact position. The one or more cam assemblies may together be configured to cooperatively perform a rocking push-in of each of the memory modules into the corresponding memory sockets, such that a first end of each of the memory modules is pushed before a second end thereof.

Each cam of each of the one or more cam assemblies may be offset from an adjacent one of the cams by <NUM>° to <NUM>° about a circumference of the central shaft. The cams of each of the one or more cam assemblies may be arranged in a sequence having odd-numbered and even-numbered ones of the cams. Each odd-numbered cam of each of the cam assemblies may be offset from a closest one of the odd-numbered cams by <NUM>° to <NUM>° about a circumference of the central shaft. Each even-numbered cam of each of the cam assemblies may be offset from a closest one of the even-numbered cams by <NUM>° to <NUM>° about a circumference of the central shaft.

The one or more cam assemblies may together be configured to cooperatively perform an in-phase push-in of each of the memory modules into the corresponding memory sockets, such that a first end and a second end of each of the memory modules is pushed simultaneously. Each cam of each of the one or more cam assemblies may be offset from an adjacent one of the cams by <NUM>° to <NUM>° about a circumference of the central shaft.

Another aspect of the disclosure provides method for pushing memory modules into corresponding memory sockets with an automated memory insertion apparatus. The method may include rotating one or more cam assemblies relative to a frame, each cam assembly having a central shaft extending in a longitudinal direction and a plurality of cams each extending from the central shaft in a respective radial direction perpendicular to the longitudinal direction, a center of each cam of each of the cam assemblies being offset from centers of adjacent ones of the cams by a pitch distance that is about equal to a pitch distance between centers of adjacent ones of the memory sockets. The method may also include applying, by the cams, an insertion force to the memory modules in the corresponding memory sockets, no more than two of the cams applying the insertion force at any time.

The applying may include the one or more cam assemblies together cooperatively performing a rocking push-in of each of the memory modules into the corresponding memory sockets, such that a first end of each of the memory modules is pushed before a second end thereof. The one or more cam assemblies may include a first cam assembly and a second cam assembly, and the first cam assembly may be rotationally offset relative to the second cam assembly, such that during the rotating, each cam of the first cam assembly contacts a first end of a corresponding one of the memory modules before a corresponding cam of the second cam assembly contacts a second end of the corresponding one of the memory modules. Each cam of each of the cam assemblies may be offset from an adjacent one of the cams by <NUM>° to <NUM>° about a circumference of the central shaft, such that during the applying, in a sequence a group of the memory modules, all odd-numbered memory modules in the sequence are inserted into the corresponding memory sockets before any of the even-numbered memory modules in the sequence are inserted into the corresponding memory sockets.

The applying may include the one or more cam assemblies together cooperatively performing an in-phase push-in of each of the memory modules into the corresponding memory sockets, such that a first end and a second end of each of the memory modules is pushed simultaneously. The one or more cam assemblies may include a first cam assembly and a second cam assembly, and the first cam assembly may be rotationally aligned in a same orientation relative to the second cam assembly, such that during the rotating, each cam of the first cam assembly contacts a first end of a corresponding one of the memory modules simultaneously with when a corresponding cam of the second cam assembly contacts a second end of the corresponding one of the memory modules.

The technology relates generally to a device for inserting memory modules, such as Dual Inline Memory Modules (DIMM), into memory sockets. The invention uses a series of offset cams that are closely packed and in phase with their neighbors to allow rotation motion of the cam assembly to actuate the pressing action. Each cam is made of a compliant material, e.g., rubber, and a stainless-steel sleeve on rollers to act as a pushing surface. This allows the system to push multiple DIMMs into corresponding memory sockets without exceeding force limits on the motherboards, and the compliance of the cams provided by the via the complaint material permits the memory insertion apparatus to compensate for a tolerance stack up that produces a height variation of the memory sockets.

For example, and as illustrated in <FIG>, a memory insertion apparatus <NUM> may include a frame <NUM>, an actuation assembly <NUM>, first and second cam assemblies 30a and 30b (collectively the cam assemblies <NUM>), and a non-contact measuring device <NUM> (e.g., a laser-based non-contact measuring device) configured to emit an energy beam <NUM> (<FIG>). The memory insertion apparatus <NUM> is configured to push a memory module <NUM> into a memory socket <NUM> mounted to a circuit board <NUM>, such as a motherboard. The downward force applied by the memory insertion apparatus <NUM> may cause locking clips <NUM> to rotate inward towards the memory module <NUM> and to secure the memory module into the memory socket <NUM> when the memory module is fully inserted into the memory socket.

As shown in <FIG>, the actuation assembly <NUM> includes a motor <NUM>, pulleys <NUM>, and a belt <NUM>. While the actuation assembly <NUM> is shown as including five pulleys <NUM>, other amounts of pulleys <NUM> may be used. For example, the number of pulleys may depend on the specific implementation of the cam assemblies <NUM>. The pulleys <NUM> include a drive pulley <NUM>, two guide pulleys 25a and 25b, and two cam assembly pulleys 26a and 26b that are rotationally fixed to the cam assemblies 30a and 30b, respectively. The drive pulley <NUM> is coupled to a driveshaft of the motor <NUM>, such that when the motor rotates its driveshaft, the drive pulley rotates. The guide pulleys 25a and 25b help guide the belt so that it can extend around the cam assembly pulleys 26a and 26b. When the drive pulley <NUM> rotates, the cam assembly pulleys 26a and 26b rotate the respective cam assemblies 30a and 30b in a same rotational direction as the rotation direction of the drive pulley, either clockwise or counterclockwise. The rotation of the cam assembly pulleys 26a and 26b rotates the respective cam assemblies 30a and 30b that are rotationally fixed thereto.

As can be seen in <FIG>, each cam assembly <NUM> may include a central shaft <NUM> and eight cams <NUM> extending from the central shaft in a plurality of radial directions perpendicular to a longitudinal axis L of the central shaft. The cams <NUM> may each have a rounded generally triangular shape, such that each cam has a tip <NUM> that defines the farthest point of the cam from the central shaft. The cams <NUM> may each include a compliant material such as rubber or polyurethane, which helps limit the maximum force that is applied to the memory modules <NUM>. For example, the cam <NUM> may include a carrier <NUM> made of metal or another strong material and a bushing <NUM> made of compliant material that sits between the carrier and the central shaft <NUM>. In other examples, the cam may be made entirely of a compliant material. In such examples, the cam may exclude a dowel pin, ball bearing, and compliant bushing. The tips <NUM> of the cams <NUM> that contact the memory modules <NUM> may include a ball bearing <NUM> concentrically located by a dowel pin <NUM>. The presence of the dowel pin <NUM> permits the ball bearing <NUM> to rotate when any lateral force is generated between the cams <NUM> and the corresponding memory modules <NUM>, thereby limiting the pushing force to a direction that is normal to the memory modules.

The cams <NUM> are closely packed against one another along the longitudinal axis L of the central shaft <NUM>. As used herein, "closely packed" means that a pitch distance between centers of adjacent ones of the cams <NUM> along the longitudinal axis L is about equal to a pitch distance between centers of adjacent ones of the memory sockets <NUM> into which the memory modules <NUM> are being installed. As shown in the figures, each cam assembly <NUM> has eight cams <NUM>, but in other examples, each cam assembly may have other numbers of cams, such as <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, or <NUM>, among others, depending on the configuration of memory modules <NUM> being installed.

Each of the cams <NUM> is offset from the directly adjacent cam by <NUM>° about a circumference of the cam assembly <NUM>. As shown in <FIG>, there are four <NUM>°-offset directly adjacent pairs of cams. More specifically, the cams <NUM> include eight cams 32a-<NUM>. If the first cam 32a is defined at a starting position of zero degrees, then the second cam 32b directly adjacent to the first cam is oriented at a position of <NUM>° relative to the first cam 32a about the circumference of the cam assembly <NUM>. Although an offset of <NUM>° between directly adjacent cams is used in the examples shown, that need not be the case, and other offsets may be used, such as <NUM>°, <NUM>°, <NUM>°, <NUM>°, <NUM>°, and <NUM>°, among others.

Each successive odd-numbered cam <NUM> is oriented about <NUM>° relative to the previous odd-numbered cam, such that the first, third, fifth, and seventh cams 32a, 32c, 32e, and <NUM> are oriented at <NUM>°, <NUM>°, <NUM>°, and <NUM>°. Each successive even-numbered cam is also oriented about <NUM>° relative to the previous even-numbered cam, such that the second, fourth, sixth, and eight cams 32b, 32d, 32f, and <NUM> are oriented at <NUM>°, <NUM>°, <NUM>°, and <NUM>°. Although an offset of <NUM>° between successive odd-numbered cams and successive even-numbered cams is used in the examples shown, that need not be the case, and other offsets may be used, such as <NUM>°, <NUM>°, <NUM>°, <NUM>°, <NUM>°, and <NUM>°, among others, depending on how many cams <NUM> each cam assembly <NUM> has or the particular configuration of the motherboard <NUM>.

Referring to <FIG>, the cam assemblies 30a and 30b may work cooperatively to perform a rocking push-in of each of the memory modules <NUM> into the corresponding memory sockets <NUM>, such that a first end <NUM> of an exposed longitudinal edge surface of each of the memory modules is pushed before a second end <NUM> thereof. The rocking push-in can be achieved because the first cam assembly 30a is rotationally offset about <NUM>° relative to the second cam assembly 30b, such that when each cam assembly <NUM> is rotated in a same rotational direction, a center of each cam <NUM> of the first cam assembly passes through a first vertically oriented contact position P1 about <NUM>° before a center of each corresponding cam of the second cam assembly passes through a second vertically oriented contact position P2. Although an offset of <NUM>° between the first and second cam assemblies 30a and 30b is used in the examples shown, that need not be the case, and other offsets may be used, such as <NUM>°, <NUM>°, <NUM>°, <NUM>°, and <NUM>°, among others, depending on how many cams <NUM> each cam assembly <NUM> has or the particular configuration of the motherboard <NUM>.

As the memory insertion apparatus <NUM> approaches the motherboard <NUM>, the cam assemblies 30a and 30b may be in the initial configuration shown in <FIG>. The memory insertion apparatus <NUM> may be positioned over a first group A of the memory modules <NUM>, with the first cam assembly 30a being positioned over a first end <NUM> of each of the memory modules, and with the second cam assembly 30b being positioned over a second end <NUM> of each of the memory modules.

In this initial configuration, the first cam 32a of the first cam assembly 30a is arranged at a position that is about <NUM>° counterclockwise from the first contact position P1 (the rotational position at which the of the first cam assembly 30a cams will contact the first ends <NUM> of the memory modules <NUM>). Also in this initial configuration, the first cam 32a of the second cam assembly 30b is arranged at a position that is about <NUM>° counterclockwise from the second contact position P2 (the rotational position at which the cams of the second cam assembly 30b will contact the second ends <NUM> of the memory modules <NUM>).

When the actuation assembly <NUM> rotates the cam assemblies <NUM> clockwise by about <NUM>°, the first cam 32a of the first cam assembly 30a will be the first cam to reach the first contact position P1, thereby contacting and pushing down the first end <NUM> of the exposed longitudinal edge surface of a first one of the memory modules 50a. When the actuation assembly <NUM> rotates the cam assemblies <NUM> clockwise by another <NUM>°, the third cam 32c of the first cam assembly 30a will be the second cam to reach the first contact position P1, thereby contacting and pushing down the first end <NUM> of a second one of the memory modules 50b.

When the actuation assembly <NUM> rotates the cam assemblies <NUM> clockwise by another <NUM>°, the fifth cam 32e of the first cam assembly 30a will be the third cam to reach the first contact position P1, thereby contacting and pushing down the first end <NUM> of a third one of the memory modules 50c. At the same time, the first cam 32a of the second cam assembly 30b will be the first cam to reach the second contact position P2, thereby contacting and pushing down the second end <NUM> of the first one of the memory modules 50a. If each <NUM>° rotation of the cam assemblies <NUM> takes about <NUM> millisecond, that would result in the second end <NUM> of the first memory module 50a being seated about <NUM> milliseconds after the first end <NUM> of the first memory module, thereby resulting in a rocking push-in of the first memory module over the <NUM>-millisecond period. The sequence of rotational positions of the cam assemblies <NUM> that push down of the first end <NUM> and the second end <NUM> of each of the memory modules <NUM> in the first group A may be as shown in Table <NUM> below.

As can be seen in table <NUM>, every <NUM>° of the rotational orientation of will result in no more than two cams pressing onto respective memory modules <NUM> at any one time, which will thereby limit the total force that is applied from the memory insertion apparatus <NUM> onto the motherboard <NUM> at any single moment in time. At some rotational orientations of the cam assemblies <NUM> (e.g., <NUM>°), only one of the two cam assemblies will be pushing onto a respective memory module, and at other rotational orientations (e.g., <NUM>°), each of the two cam assemblies will push onto a different respective memory module.

The opposite orientation of each two adjacent ones of the cams <NUM> will result in all of the odd-numbered memory modules in the group being seated first (when the orientation of the cam assemblies <NUM> is between <NUM>° and <NUM>°), and all of the even-numbered memory modules in the group being seated second (when the orientation of the cam assemblies <NUM> is between <NUM>° and <NUM>°). This effect can be seen in <FIG>, which shows every other memory module <NUM> having been pushed down (the odd-numbered memory modules) and the remaining memory modules not yet having been pushed down (the even-numbered memory modules).

After a single complete rotation of each of the first and second cam assemblies 30a, 30b, all the memory modules <NUM> will have been pushed into the corresponding memory sockets <NUM>, with the first end <NUM> and the second end <NUM> of each individual memory module being pushed at a different time. If desired, the first and second cam assemblies 30a, 30b may then be rotated again, in either the same direction or the opposite direction, to press each of the memory modules <NUM> again, just to make sure that the memory modules are fully seated into the corresponding memory sockets <NUM>.

After all the memory modules <NUM> are fully seated, the memory insertion apparatus <NUM> may be moved in the direction D (<FIG>) and positioned over a second group B of the memory modules <NUM>, at which time the first and second cam assemblies 30a, 30b can be rotated again to seat the memory modules in the second group.

<FIG> illustrate a memory insertion apparatus <NUM> that is a variation of the memory insertion apparatus <NUM> of <FIG>. The memory insertion apparatus <NUM> is similar to the memory insertion apparatus <NUM>, except for the differences mentioned below.

The memory insertion apparatus <NUM> has eight cams 132a-<NUM>, and each of the cams <NUM> is offset from the directly adjacent cam by about <NUM>° about a circumference of the cam assembly <NUM>. If the first cam 132a is defined at a starting position of zero degrees, then the second cam 132b directly adjacent to the first cam is oriented at a position of <NUM>° relative to the first cam 132a about the circumference of the cam assembly <NUM>. Each successive cam <NUM> is oriented about <NUM>° relative to the previous odd-numbered cam, such that the first through eighth cams 132a-<NUM> are oriented at <NUM>°, <NUM>°, <NUM>°, <NUM>°, <NUM>°, <NUM>°, <NUM>°, and <NUM>°. Although an offset of <NUM>° between successive cams is used in the examples shown, that need not be the case, and other offsets may be used, such as <NUM>°, <NUM>°, <NUM>°, <NUM>°, <NUM>°, and <NUM>°, among others, depending on how many cams <NUM> each cam assembly <NUM> has or the particular configuration of the motherboard <NUM>.

Similar to the cams <NUM>, some of the cams <NUM> (<NUM> and <NUM>) are illustrated as being made of a compliant material such as rubber or polyurethane, with the tips <NUM> including a ball bearing <NUM> concentrically located by a dowel pin <NUM>. Others of the cams <NUM> (132a-132f) are illustrated as being made entirely of the compliant material without the dowel pin or ball bearing. In practice, in a single embodiment of the cam assembly <NUM>, each of the cams <NUM> will have the same structure - all having the design of the cam 132a or all having the design of the cam <NUM>.

The cam assemblies 130a and 130b may work cooperatively to perform an in-phase push-in of each of the memory modules <NUM> into the corresponding memory sockets <NUM>, such that a first end <NUM> and a second end <NUM> of an exposed longitudinal edge surface of each of the memory modules is pushed simultaneously. This can be accomplished by having the first cam assembly 130a is rotationally aligned in a same orientation relative to the second cam assembly 130b, such that when each cam assembly <NUM> is rotated in a same rotational direction, a center of each cam <NUM> of the first cam assembly passes through a first vertically oriented contact position simultaneously with when a center of each corresponding cam of the second cam assembly passes through a second vertically oriented contact position.

As the memory insertion apparatus <NUM> approaches the motherboard <NUM>, the cam assemblies 130a and 130b may be in the initial configuration shown in <FIG>. The memory insertion apparatus <NUM> may be positioned over a first group A of the memory modules <NUM> of <FIG>, with the first cam assembly 130a being positioned over the first end <NUM> of each of the memory modules, and with the second cam assembly 130b being positioned over the second end <NUM> of each of the memory modules.

When the actuation assembly <NUM> rotates the cam assemblies <NUM> clockwise until the first cam 132a of each cam assembly reaches a corresponding contact position with the corresponding memory modules, the first cam of each cam assembly will contact and push down the first end <NUM> and the second end <NUM> of an exposed longitudinal edge surface of a first one of the memory modules 50a at the same time (i.e., in phase). When the actuation assembly <NUM> rotates the cam assemblies <NUM> clockwise by another <NUM>°, the second cam 132c of each cam assembly <NUM> will reach the corresponding contact positions, thereby contacting and pushing down the first end <NUM> and the second end <NUM> of the second one of the memory modules 50b at the same time. This will continue in the same manner each time the actuation assembly <NUM> rotates the cam assemblies <NUM> clockwise by each successive <NUM>° interval, until all eight memory modules <NUM> in the first group A are pushed into the corresponding memory sockets <NUM>. This will result in an in-phase push-in of all eight of the memory modules <NUM>.

The sequence of rotational positions of the cam assemblies <NUM> that push down on the first end <NUM> and the second end <NUM> of each of the memory modules <NUM> in the first group A may be as shown in Table <NUM> below.

As can be seen in table <NUM>, every <NUM>° of the rotational orientation of will result in exactly two cams pressing onto the memory modules <NUM> at any one time, which will thereby limit the total force that is applied from the memory insertion apparatus <NUM> onto the motherboard <NUM> at any single moment in time.

After a single complete rotation of each of the first and second cam assemblies 130a, 130b, all the memory modules <NUM> will have been pushed into the corresponding memory sockets <NUM>, with the first end <NUM> and the second end <NUM> of each individual memory module being pushed at a different time. If desired, the first and second cam assemblies 130a, 130b may then be rotated again, in either the same direction or the opposite direction, to press each of the memory modules <NUM> again, just to make sure that the memory modules are fully seated into the corresponding memory sockets <NUM>.

After all the memory modules <NUM> are fully seated, the memory insertion apparatus <NUM> may be moved in the direction D (<FIG>) and positioned over a second group B of the memory modules <NUM>, at which time the first and second cam assemblies 130a, 130b can be rotated again to seat the memory modules in the second group.

The operation of the memory insertion apparatus <NUM> or <NUM> may be controlled by an insertion controller <NUM>, shown in <FIG>. The insertion controller <NUM> may include a processor <NUM> and memory <NUM>. The processor may be any conventional processor. Alternatively, the processor may be a dedicated controller such as an application specific integrated circuit (ASIC), field programmable gate array (FPGA), etc. Additionally, the processor <NUM> may include multiple processors, multi-core processors, or a combination thereof. Although only one processor <NUM> is shown in <FIG>, one of ordinary skill in the art would recognize that several processors may exist within insertion controller <NUM>. Accordingly, references to a processor will be understood to include references to a collection of processors or dedicated logic that may or may not operate in parallel.

The insertion controller <NUM> may include all of the components normally used in connection with a computing device such as the processor and memory described above as well as an input device (e.g., a mouse, keyboard, touch screen, buttons, and/or microphone) and various electronic displays (e.g., a monitor having a screen or any other electrical device that is operable to display information). In this example, the insertion controller includes a display <NUM> as well as input device <NUM>. In some instances, the display may be a touch screen display capable of operating as a user input. The input device <NUM> and/or display <NUM> may be used to receive a selection of a circuit board model into which memory modules are to be inserted by the memory insertion apparatus <NUM> or <NUM>, as described herein.

The insertion controller <NUM> may also include a communication interface <NUM> to facilitate communication with other computing and storage devices. The communication interface <NUM> may include wired or wireless communication protocols such as Bluetooth, Bluetooth low energy (LE), cellular connections, as well as various configurations and protocols including the Internet, World Wide Web, intranets, virtual private networks, wide area networks, local networks, private networks using communication protocols proprietary to one or more companies, Ethernet, Wi-Fi and HTTP, and various combinations of the foregoing.

The insertion controller <NUM> may store in memory <NUM> position data of one or more circuit board models. The position data for each circuit board model may include the locations of memory sockets relative to a known location. For instance, the memory insertion apparatus <NUM> or <NUM> may have a known location where circuit boards are positioned relative to an initial starting position of the memory insertion apparatus. In some instances, the position data may be retrieved by the insertion controller <NUM> from another storage device, such as a networked attached storage device.

The insertion controller <NUM> may be configured to communicate with the non-contact measuring device <NUM> that measures the distance between the cam assemblies <NUM> and <NUM> and the memory modules <NUM>. The insertion controller <NUM> may be configured to communicate with the motor <NUM> of the actuation assembly <NUM>, to control the rotation of the pulleys <NUM> and the belt <NUM>, which in turn rotate the cam assemblies <NUM> and <NUM>. In this regard, based on the position data and known location, the insertion controller <NUM> may communicate with the actuation assembly <NUM> to rotate the cams <NUM> and <NUM> relative to the memory modules <NUM> on the circuit board <NUM> to push the memory modules into the respective memory sockets <NUM>. This process may be repeated until memory modules <NUM> are inserted into all memory sockets <NUM> on the circuit board <NUM>. The actuation assembly <NUM> may also have other components that are configured to move the entire memory insertion apparatus <NUM> or <NUM> relative to the circuit board <NUM>, between groups of the memory modules <NUM> such as the first and second groups A and B shown in <FIG>.

Referring to <FIG>, in addition to the operations described above and illustrated in the figures, various operations will now be described. The following operations do not have to be performed in the precise order described below. <FIG> illustrates a flow chart <NUM> showing an example memory insertion operation of the memory insertion apparatus <NUM> or <NUM>. As shown in block <NUM>, the memory insertion apparatus <NUM> or <NUM> may receive a selection of a circuit board model <NUM> via an input or command, such as a selection on input device <NUM>.

As shown in block <NUM>, based on the selection, the insertion controller <NUM> may control the actuation assembly <NUM> such that it moves the memory insertion apparatus <NUM> or <NUM> to a first group A of the memory modules <NUM>. In this regard, the insertion controller <NUM> may control the actuation assembly <NUM>, including the motor <NUM>, the pulleys <NUM>, the belt <NUM>, and other components that move the entire memory insertion apparatus <NUM> or <NUM>, such that the memory insertion apparatus is moved in accordance with a pattern corresponding to the selected circuit board model <NUM>.

As shown in block <NUM>, at each group of the memory modules <NUM>, the memory insertion apparatus <NUM> or <NUM> may insert the group A of memory modules into the corresponding memory sockets <NUM>. When the insertion is completed, the insertion controller <NUM> may control the actuation assembly <NUM> and advance the memory insertion apparatus <NUM> or <NUM> to the next group B of the memory module <NUM> in the pattern, as shown in block <NUM>. Then, steps <NUM> and <NUM> may be repeated until all groups of the memory modules <NUM> are inserted into the corresponding memory sockets <NUM>.

Claim 1:
A memory insertion apparatus (<NUM>) configured to push memory modules (<NUM>) into corresponding memory sockets (<NUM>), the memory insertion apparatus (<NUM>) comprising:
a frame (<NUM>) and an actuation assembly (<NUM>) coupled to the frame (<NUM>);
one or more cam assemblies (<NUM>) each rotatably coupled to the frame (<NUM>) and operatively coupled to the actuation assembly (<NUM>), each cam assembly (<NUM>) having:
a central shaft (<NUM>) extending in a longitudinal direction; and
a plurality of cams (<NUM>) each having a tip (<NUM>) configured to engage one of the memory modules (<NUM>), the tip (<NUM>) extending from the central shaft (<NUM>) in a respective radial direction perpendicular to the longitudinal direction,
wherein a center of each cam (<NUM>) of each of the cam assemblies (<NUM>) is offset from centers of adjacent ones of the cams (<NUM>) by a pitch distance that is equal to a pitch distance between centers of adjacent ones of the memory sockets (<NUM>).