Here is the LEGO® MOC (alias for My Own Creation) used for the ARNEIS project.


Various software applications and public resources have been used for the realization of this LEGO® project:



Used For

Bricklink Studio

Full featured CAD application

Project design, BOM creation, rendering, instruction manual editing, export to ldr

Bricklink PartDesigner

Single LEGO® Part Editor

Creation of parts still not available in Bricklink Studio. Correction of parts not working whern exported to ldr


Open Source CAD application

Check correctness of ldr files


Centralized resources for LEGO® CADs

Reference for getting last parts used in Bricklink PartDesigner

ARNEIS Conveyor

This conveyor is designed to move “mignon” (miniature) bottles. The main idea is to use a chain where some kind of pushers are used to move bottles over a flat surface.

The chain is not used as a base surface for the bottles due to the difficulty of ensuring that it will stay horizontal during the movement.

A special support is designed to hold the OAK-D-Lite AI Camera used in this project. It is possible to change the tilt of the camera by using the dedicated linear extender arm.

The white wall acts as a background for taking better snapshots of the bottles during their trip on the conveyor.

bottles conveyor

Driving the conveyor

In order to verify the correct operation of the conveyor a small MicroPython program has been developed.

Navigate to the Pybricks home page and follow the instructions to activate the IDE for your browser and your operating system.

In this project two motors are used:

  • 1x Technic Motor Powered Up XL (Item no. bb0960c01): used to drive the conveyor

  • 1x Technic Motor Power UP L (Item no. bb0959c01): used as a Speed Dial

With the XL motor connected to the Port B of the Technic Hub and the L motor connected to the Port A, use the following source code to program the Hub:

from pybricks.pupdevices import Motor
from pybricks.parameters import Port, Stop
from import wait

# We'll use two motors. One is a dial
# to set the speed of the other motor.
motor = Motor(Port.B)
dial = Motor(Port.A)

# Say hello :)
print("Hello, Pybricks!")

# First, we'll move the dial to zero.
dial.run_target(500, 0, Stop.COAST)

while True:
    # Set the speed based on dial angle
    speed = dial.angle()*3
    if abs(speed) < 50:
        speed = 0

    # Run motor at desired speed

    angle = dial.angle()
    print("angle=" + str(angle) + "    ", end='\r')

    # Wait briefly, then repeat

You may adjust the speed and direction of the conveyor by rotating the dial (clockwise or counterclockwise).

Project resources

Files : the LEGO project in Bricklink Studio CAD.
arneis-conveyor-oak-d-lite.ldr : the LEGO project exported in LDraw file format.
arneis-conveyor-oak-d-lite.png : a 3D rendered version image.
arneis-conveyor-20220312.gif : a 3D rendered video of rotating MOC.
arneis-conveyor-20220312.pdf : building instruction manual.
arneis-conveyor-oak-d-lite-build.mp4 : a 3D rendered video of building MOC.