Published
Edited
Aug 24, 2022
Insert cell
# Wafer Prober Dashboard
Insert cell
import {create_wafermap, die_positions} from '@mjmdavis/test-station-graphic/2'
Insert cell
import {chart, randomLine} from '@mjmdavis/test-results-plot'
Insert cell
wafermap = create_wafermap(diameter)
Insert cell
chart
Insert cell
chart.update(randomData.runs)
Insert cell
diameter = 300
Insert cell
maxVal = 300
Insert cell
wafermap.update(randomData)
Insert cell
data = ({
id: 1,
name: "TurboEncabulator",
wafer: {
diameter: diameter,
die_size: {
width: 26,
height: 33
}
},
runs: [
]
})
Insert cell
randomData.runs[randomData.runs.length-1]
Insert cell
randomData = {
var max_id = 1336;
var positions = d3.shuffle(die_positions(data.wafer.diameter, 26,33))
while (true) {
max_id += 1
var good = Math.random() > 0.2 ? true : false;
var line = randomLine(good)
data.runs.unshift({
id: max_id,
status: good ? "OK":"Bad",
position: positions.pop(),
measurement: d3.range(maxVal).map(x=>[x, line(x)])
})
yield data
await Promises.delay(2000);
if (positions.length < 1) {
data.runs = [];
positions = d3.shuffle(die_positions(data.wafer.diameter, 26,33));
}
}
}
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more