Skip to the content
PCBKitNew board
2 layers100 × 70 mmSkrivebord, the printed circuit board in 3D

Height adjustable desk controlled with LiDAR

Size
100 × 70 mm
Copper layers
2
Thickness
1.6 mm
Parts
17
Nets
27
Pads
74
Tracks, vias
92, 0
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
30 Jul 2026
Updated
30 Jul 2026

Overview

Skrivebord is an open-source printed circuit board by matto24, from the matto24/smart_desk repository on GitHub, published under the MIT licence. It is a 2-layer board of 100 × 70 mm with 17 parts on 27 nets, routed with 92 tracks and 0 vias.

It is built around the IRLZ34N. Its parts include 6 resistors, 2 capacitors, 2 diodes, 2 transistors and 2 connectors. It belongs with the ESP32 and RISC-V boards of this library.

Main components

1

README

README.md

Desk Controller

Open-hardware controller for a motorized (sit/stand) desk. A Seeed XIAO ESP32-C6 measures the desk height with a VL53L1X time-of-flight lidar and drives the desk's up/down motor lines until it reaches a requested height, exposed over a small WiFi web server.

skrivebord is Danish for desk.

3D-printed enclosure holding the controller PCB
The press-fit 3D-printed enclosure — sensor opening on top, ventilation slots on the front.

How it works

  • The ESP32-C6 hosts an HTTP endpoint: GET /target?cm=<height>.
  • On request it powers on the lidar, reads the current height, then holds the UP or DOWN line until the measured height reaches the target.
  • Target height is clamped to a safe range (64–114 cm) and every move has a hard safety timeout, so the motor is never left running.

Repository layout

PathContents
kicad_files/KiCad 8 project — schematic, PCB, and fabrication gerbers
casing/3D-printed enclosure — see below
esp_program/ESP32-C6 firmware (Arduino / .ino)

casing/ — enclosure files

FileUse
box_top.3mf / box_bottom.3mfReady-to-print halves — press-fit together
box.stepNeutral CAD for editing in any tool (FreeCAD, SolidWorks, Onshape…)
casing.f3zEditable Fusion 360 source archive

esp_program/ — firmware

FileUse
main/simple_up_down.inoMain firmware: lidar-guided move-to-height over WiFi
lidar_xshut_test/lidar_xshut_test.inoStandalone lidar bring-up / XSHUT test

Building the firmware

  1. Install the ESP32 board support (Seeed XIAO ESP32-C6) in the Arduino IDE.

  2. Install the VL53L1X (Pololu) library via Library Manager.

  3. Open esp_program/main/simple_up_down.ino and set your WiFi credentials:

    cpp
    const char* ssid     = "XXX";   // <- your network
    const char* password = "XXX";   // <- your password

    Keep your real credentials out of git — leave the placeholders in the committed copy.

  4. Flash to the board, open the serial monitor at 115200 baud to see the assigned IP, then move the desk with e.g. http://<device-ip>/target?cm=90.

Hardware

  • Board / schematic / gerbers: open kicad_files/skrivebord.kicad_pro in KiCad 10. kicad_files/gerbers/desktop_control_v1.zip is the packaged fabrication output.
  • Enclosure: print box_top.3mf and box_bottom.3mf and press-fit.

License

Released under the MIT License — free to use, modify, and distribute, keep the copyright notice. The bundled Seeed XIAO KiCad libraries under kicad_files/libraries/ remain the property of Seeed Studio.

Parts

17
QtyValueFootprintReferences
4100Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R4, R5, R6
2100nCapacitor_THT:C_Rect_L7.0mm_W3.5mm_P5.00mmC1, C2
210KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR2, R3
21N914Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2
2G5LE-1Relay_THT:Relay_SPDT_Omron-G5LE-1K1, K2
2IRLZ34NPackage_TO_SOT_THT:TO-220-3_VerticalQ1, Q2
1Conn_01x06Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ2
1Screw_Terminal_01x04TerminalBlock:TerminalBlock_Xinya_XY308-2.54-4P_1x04_P2.54mm_HorizontalJ1
1XIAO-ESP32-C6-DIPESP:XIAO-ESP32-C6-DIPU1

Questions

How big is the Skrivebord PCB?

It measures 100 × 70 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Skrivebord use?

17 parts, built around the IRLZ34N. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Skrivebord KiCad files?

From the matto24/smart_desk repository on GitHub, at the commit this page was made from: the board is kicad_files/skrivebord.kicad_pcb and its schematic kicad_files/skrivebord.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Skrivebord design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers100 × 50 mmEspled, the printed circuit board in 3D

    Espled

    Yottabits/espled

    THE one and only esp8266 LED Controller

    52 parts6
  • 2 layers224.8 × 60.3 mmDeurnode nieuw, the printed circuit board in 3D

    Deurnode nieuw

    Hans-Beerman/Deurnode_ESP32-PoE

    KiCad design Deurnode for the MakerSpace Leiden, based on the Olimex ESP32-PoE

    38 parts4Apache-2.0
  • 2 layers111.3 × 68.1 mmMKS relay v4, the printed circuit board in 3D

    MKS relay v4

    3D-Printing-for-Microfluidics/3D_printer_control

    2nd generation 3D printer control software

    67 parts3GPL-3.0
  • 2 layersWatch cleaner pcb, the printed circuit board in 3D

    Watch cleaner pcb

    DavidJ-Saving-Time/watch-cleaner

    So this is a very rough draft of code designed to run on an esp32 to control a watch cleaning machine see this YouTube video https://youtu.be/Opr75n8DbYY I'll be adding to this and making it easier for people to use.

    16 parts3MIT
  • 2 layers31.8 × 114.8 mm3DWelderPCB, the printed circuit board in 3D

    3DWelderPCB

    destroyer796/3DWelder

    An overbuilt 3D pen that will use a chc pro hotend and custom dc extruder powered by a power tool battery

    17 parts3MIT
  • 2 layers83.8 × 50.8 mmShunt charge controller, the printed circuit board in 3D

    Shunt charge controller

    grillbaer/solar-power-supply

    Solar power harvesting for micro controller projects with li-Ion battery and highly efficient charge controller

    16 parts3MIT
  • 2 layers80 × 45 mmWifiOiler01, the printed circuit board in 3D

    WifiOiler01

    volw/wifiOiler

    Automatic, distance depending chain oiler for motorbikes with track recording (GPS).

    15 parts3GPL-3.0
  • 2 layers80 × 20 mmSpider dropper, the printed circuit board in 3D

    Spider dropper

    aidtopia/spider_dropper

    Mechanism to "drop" a spider (or other lightweight prop) for Halloween fun

    10 parts2