Papers
Topics
Authors
Recent
Search
2000 character limit reached

MillingVibes: Vibration Quality Dataset

Updated 9 July 2026
  • MillingVibes is a 3-axis vibration dataset capturing 1-second snippets of milling operations labeled as 'good' or 'bad' based on the machined surface quality.
  • It employs a frequency-domain preprocessing pipeline using spectrograms and min-max normalization to support a quantized CNN model for embedded classification.
  • Designed for process quality rather than fault detection, the dataset supports tiny machine learning deployments with precise energy and runtime profiling.

Searching arXiv for the MillingVibes paper and closely related dataset papers to ground the article. MillingVibes is a publicly available 3-axial vibration dataset of a milling process performed on a Maho MH 800C industrial machine tool. It was created for supervised process quality monitoring rather than conventional machine-condition monitoring: each datum contains 1 second of vibration from the machine structure and is labeled according to the resulting surface quality of the workpiece as ^^^^0^^^^ or ^^^^1^^^^. The dataset was developed as the basis of an end-to-end TinyML flow that spans dataset generation, labeling, preprocessing, model development, deployment, and embedded evaluation on a microcontroller (Langer et al., 22 Aug 2025).

1. Definition and research scope

The dataset is situated in the context of Industry 4.0 retrofitting of long-serving machine tools, especially where space-limited or rotating locations make wired data and energy transmission impractical. In that setting, MillingVibes was designed to investigate whether process quality of a milling operation can be assessed from vibration data recorded at a remote machine location approximately 1.40 m away from tool and workpiece. Its role is therefore narrower and more specific than generic fault datasets: it targets process quality and surface-quality assessment in milling, with binary labels derived from the produced surface rather than from a purely internal machine-state taxonomy (Langer et al., 22 Aug 2025).

This focus distinguishes MillingVibes from many industrial vibration corpora that are mainly oriented toward machine condition, fault/no-fault monitoring, or unsupervised anomaly detection. The dataset provides 3-axis vibration signals together with binary labels, ^^^^0^^^^ for acceptable surface quality and ^^^^1^^^^ for unacceptable surface quality. The motivating failure modes include excessive chatter caused by high feed rates, dry milling, worn cutting inserts, and partial insert detachment, but the labels themselves encode resulting quality, not a fine-grained causal diagnosis. This suggests that MillingVibes occupies an intermediate position between classical condition-monitoring datasets and manufacturing-quality datasets: the monitored signal is structural vibration, while the supervisory target is the machined surface.

2. Machine tool, machining protocol, and sensing geometry

The acquisition platform consists of a Maho MH 800C industrial machine tool with a Siemens WEISS 2SP1 working spindle and a Siemens Sinumerik 840D SL console driven by G-code scripts. The workpiece material is aluminum alloy EN AW 7075. Machining is performed with a milling head of diameter 20 mm at a milling depth of 2 mm per pass, and the patterns are milled on a cuboid workpiece whose geometry is verified digitally before real machining. Automated G-code generation is implemented in Python by decomposing motion into sequences of linear movements that translate directly to machine instructions (Langer et al., 22 Aug 2025).

Two pattern types are used. The spiral pattern comprises movements in ±x\pm x and ±y\pm y with variable-length axial movements and continuous material contact. The zig-zag pattern comprises one-axis movements in ±x\pm x with constant movement length and is deliberately designed to cover more area than the workpiece, thereby creating short breaks with no material contact between linear passes. The base spindle speed is 3000 rpm. Initial patterns are milled at constant feed until one 2 mm layer is removed, after which further patterns are milled at forward feed rates from 960 to 3000 mm/min.

Faulty and normal process states are generated through controlled changes in operating conditions: high feed rates induce excessive chatter and poor surface quality; dry milling increases friction and surface defects; worn cutting inserts and partial detachment generate built-up edge and severe chatter marks. The sensor is a 3-axis piezo-electric vibration sensor, enDAQ S5-E25D40, mounted on the y-axis carriage of the machine approximately 1.40 m from the milling tool and mechanically coupled using adhesive tape. Sensor axes are aligned with the machine axes, and all three axes are sampled at 8,000 Hz with a resolution of 0.8 mg per sample.

3. Segmentation, labels, and dataset composition

Dataset construction proceeds in two segmentation stages. First, full pattern recordings are decomposed into individual linear movements. For the zig-zag pattern, segmentation is straightforward because the brief no-contact intervals between passes separate the signal. For the spiral pattern, where material contact is continuous, segmentation is performed by inspecting time series and spectrogram jointly: spectral gaps and changes in spectral line positions are used to distinguish successive movements. In practice, the spectrogram of each axis is displayed in Matplotlib, an operator draws a bounding box over the region corresponding to an individual linear movement, the associated time-series segment is extracted, and the movement is annotated with axis and direction such as +x, -x, +y, or -y. Minor temporal overlaps are corrected afterwards to ensure disjoint segments (Langer et al., 22 Aug 2025).

Second, each movement segment is divided into non-overlapping 1 second snippets. A movement with contact duration 5.3 s therefore yields five 1 s snippets, each containing 8,000 samples per axis. These snippets become the basic dataset samples. After machining, a domain expert visually assesses the workpiece surface. Each pattern or partial pattern is labeled as "^^^^0^^^^" for a smooth surface with acceptable quality or "^^^^1^^^^" for a rough surface with chatter marks and unacceptable quality. All snippets belonging to movements that contributed to that surface region inherit the same label.

The final split reported for the TinyML study is as follows:

Split 0^ 1^
Training 549 323
Test 149 92

The dataset therefore contains 872 training segments and 241 test segments, corresponding to approximately 78.3% training and 21.7% test. Each sample contains 3 channels and 8,000 time samples per channel, for 24,000 raw time samples per datum. The classification problem is described as relatively balanced, and no global dataset normalization is applied; instead, preprocessing uses instance-wise normalization.

4. Signal representation and preprocessing pipeline

The preprocessing pipeline used with MillingVibes is frequency-domain and spectrogram-based. A raw vibration CNN operating directly in the time domain was attempted but found ineffective and discarded. The retained pipeline begins with per-sample min-max normalization to the interval [1,1][-1,1]:

x=2xminxmaxxminx1  xX\underline{\mathbf{x}}' = 2 \cdot \frac{\underline{\mathbf{x}} - \min \underline{\mathbf{x}}}{\max \underline{\mathbf{x}} - \min \underline{\mathbf{x}}} - 1 \qquad \forall \; \underline{\mathbf{x}} \in \mathbf{X}

The normalization is instance-wise rather than dataset-wise, and the authors state that this improved performance, especially under quantization (Langer et al., 22 Aug 2025).

For each axis, a spectrogram is then computed using a short-time Fourier transform with a Tukey window of length LTukey=NFFT=256L_{\text{Tukey}} = N_{\text{FFT}} = 256, and successive windows overlap by 8 samples. The STFT is given as

X(n,k)=m=+w[nm]x[m]exp(j2πkNFFTm).X(n,k) = \sum_{m=-\infty}^{+\infty} w[n-m]\cdot x[m]\cdot \exp\left(\frac{j \cdot 2\pi \cdot k}{N_{\text{FFT}}}\cdot m\right).

For a 1 second sample, this produces 32 time frames and 129 frequency bins per axis. Over the three axes, the initial spectrogram tensor therefore has shape 3×32×1293 \times 32 \times 129.

To reduce computation and memory, average pooling with a window of 8×28 \times 2 in time and frequency is applied. This compresses the tensor from 3×32×1293 \times 32 \times 129 to ±y\pm y0, a factor-16 reduction in the number of elements. A logarithmic magnitude transform,

±y\pm y1

is then applied in floating point, after which the feature maps are quantized to signed 8-bit integers in the range ±y\pm y2 using TFLite calibration based on training data. The resulting INT8 tensor of shape ±y\pm y3 is the direct input to the deployed CNN.

5. TinyML model, embedded implementation, and reported performance

MillingVibes is unusual among machining datasets in that it is inseparable from a fully specified deployment target. The training pipeline is implemented in Keras and TFLite, and the embedded target is an STM32L4R5ZI Nucleo board with an ARM Cortex-M4F core at 120 MHz. The final classifier is an 8-bit quantized convolutional neural network designed for extremely few parameters, with 12.59 kiB parameter storage. Training uses batch size 16, a maximum of 200 epochs, the Adam optimizer, an initial learning rate of ±y\pm y4, exponential decay of 0.95 every 50 steps, and early stopping with patience 5 (Langer et al., 22 Aug 2025).

On the MillingVibes test set, the final spectrogram-based CNN reaches 100.0% test accuracy on 241 samples. The quantized TFLite model maintains the same test accuracy as the floating-point Keras model. For the reported test distribution, this means that 149 ^^^^0^^^^ samples and 92 ^^^^1^^^^ samples are correctly classified, with no misclassifications.

The embedded implementation uses STM32Cube IDE v1.10.0, STM32Cube.AI v7.3.0, and GCC v11.3.0 with -Ofast. CNN-related flash consumption is 12.59 kiB for model parameters and 39.75 kiB for the STM32Cube.AI runtime library, for a total of 51.34 kiB. CNN-related RAM consumption is 7.72 kiB for activations and 4.37 kiB for the runtime library, for a total of 12.09 kiB. Because each inference starts from the raw 3-axis, 8,000-sample signals in float32, the input signal alone requires approximately 93.75 kiB of RAM.

Runtime and energy characterization are reported per subtask. The six preprocessing tasks together require approximately 69.1 ms, CNN inference requires 15.4 ms, and the complete pipeline therefore requires approximately 84.5 ms per 1 second sample. The measured CNN-only energy per inference is approximately 1.462 mJ, while preprocessing plus CNN requires approximately 8.022 mJ. The authors explicitly note that preprocessing, especially spectrogram computation and logarithmic scaling, dominates runtime and energy.

6. Availability, nomenclature, and relation to adjacent datasets

MillingVibes is released through Fraunhofer FORDATIS as “MillingVibes: 3-Axial Vibration Data of a Milling Process Performed by a Tooling Machine,” credited to Tim Hauke Langer, Matthias Widra, and Volkhard Beyer. The repository URL is https://fordatis.fraunhofer.de/handle/fordatis/300, the DOI is 10.24406/FORDATIS/236, and the license is Creative Commons Attribution 4.0 International (CC BY 4.0). The dataset metadata describe 3-axial vibration data from an aluminum milling process on a Maho MH 800C, with each data point containing 8,000 samples for each of the x, y, and z axes. Each datum corresponds to a 1-axis milling movement in +/- x or +/- y, and labels are encoded as "1" for 0^ surface quality and "0" for 1^ surface quality (Langer et al., 22 Aug 2025).

A recurrent source of confusion is the existence of a different vibration dataset, VBL-VA001, which is sometimes informally referred to as a “MillingVibes / lab-scale vibration dataset” in repository and code, even though its formal name in the paper is VBL-VA001. That dataset consists of vibration recordings from five small electrical water pumps under four conditions—normal, unbalance, misalignment, and bearing fault—and is intended for machinery fault diagnosis with machine learning. It is therefore distinct from MillingVibes in platform, labeling criterion, and task definition (Atmaja et al., 2022).

The difference is substantive. VBL-VA001 is a lab-scale balanced four-class fault dataset in which each sample is a 5 second multiaxis recording from water pumps. MillingVibes, by contrast, is an industrial milling-process dataset whose labels are derived from domain-expert surface inspection and whose central use case is structure-integrated process quality monitoring under TinyML constraints. This distinction matters when interpreting reported accuracies: the datasets operationalize different targets and should not be treated as interchangeable benchmarks.

7. Limitations and future directions

The reported limitations are tied to both dataset scope and deployment assumptions. MillingVibes was recorded on a single machine type, with one spindle, one workpiece material (EN AW 7075), a constant spindle speed of 3000 rpm, and feed rates restricted to 960–3000 mm/min. The machining paths are restricted to spiral and zig-zag patterns on a cuboid workpiece. The induced process degradations are soft faults—chatter, roughness due to high feed, dry milling, and tool wear or insert detachment—rather than catastrophic failures. The supervisory target is binary, with no granularity in roughness magnitude, fault source, or process-parameter identification. The preprocessing chain is also expensive relative to the compact CNN, and the STM32Cube.AI runtime introduces substantial flash overhead relative to model size (Langer et al., 22 Aug 2025).

The future directions proposed in the paper therefore move in two directions. On the dataset and task side, the authors propose extending binary process-quality classification toward fault-type classification, configuration estimation, and critical movement pattern detection, as well as broadening the data to other machine tools, materials, tools, operating conditions, and additional labels such as tool-wear level or chatter-frequency zones. On the implementation side, they propose replacing the library-based runtime with bare-metal C code, investigating low-power FPGA accelerators for spectrogram and CNN processing, co-optimizing preprocessing and classifier design through hardware-aware neural architecture search, and exploring alternative feature extractors and TinyML architectures. A plausible implication is that MillingVibes functions not only as a fixed benchmark, but also as a reference schema for future datasets that couple machining-process supervision with edge deployment constraints.

Topic to Video (Beta)

No one has generated a video about this topic yet.

Whiteboard

No one has generated a whiteboard explanation for this topic yet.

Follow Topic

Get notified by email when new papers are published related to MillingVibes Dataset.