diff --git a/processes/devicepipe.js b/processes/devicepipe.js
new file mode 100644
index 0000000000000000000000000000000000000000..e730cbb93ae054cc07ea2cf1b69485098130ba0e
--- /dev/null
+++ b/processes/devicepipe.js
@@ -0,0 +1,142 @@
+/*
+
+browser -> filesys
+
+*/
+
+const WebSocketServer = require('ws').Server
+const fs = require('fs')
+
+const STATUS_UNKNOWN = 'unknown...'
+const STATUS_OPENING = 'opening...'
+const STATUS_OPEN = 'open'
+const STATUS_CLOSED = 'closed'
+const STATUS_ERROR = 'error'
+
+// port to issue on,
+let port = '2042'
+let deviceName = 'lp0'
+
+const WSS = new WebSocketServer({port: port}, () => {
+  if(process.send){ // check if we have a parent to send to
+      process.send({
+      startup: true,
+      port: port
+    })
+  }
+})
+
+let WS = null
+
+WSS.on('connection', (ws) => {
+  console.log('vfpts websocket connects')
+  // handles,
+  WS = ws
+  // send current status
+  sendSerialStatus()
+  // handlers,
+  ws.onmessage = (msg) => {
+    if(typeof msg.data === 'string'){
+      // probably a control object, do
+      let data = JSON.parse(msg.data)
+      if(data.type === 'echo'){
+        sendToBrowser(msg.data)
+      } else {
+        console.log("how to handle:", data)
+      }
+    } else {
+      if(Buffer.isBuffer(msg.data)){
+        if(serport){
+          serport.write(encode(msg.data, true), 'utf8')
+        }
+      }
+    }
+  }
+  ws.onclose = (evt) => {
+    // shutdown,
+    console.log('ws closes, pipe exiting')
+    process.exit()
+  }
+})
+
+// send wrapper
+let sendToBrowser = (msg) => {
+  if (WS) {
+    WS.send(msg)
+    return true
+  } else {
+    return false
+  }
+}
+
+// device business,
+
+let findDevice = () => {
+  let file = 'lp0'
+  fs.open(`/dev/usb/${file}`, 'w', (err, fd) => {
+    if(err){
+      console.log(err)
+    } else {
+      // integers: 100 count in one mm, thx roland
+      let hx = 1000
+      let hz = 1000
+      let hy = 1000
+      let cm = `PA;PA;!PZ0,${hz};PU$${hx},${hy};!MC0;\u0004`
+      console.log('attempt for', cm, 'to')
+      console.log(fd)
+      fs.write(fd, cm, (err, bytesWritten, buffer) => {
+        if(err){
+          console.log(err)
+        } else {
+          console.log('numBytesWritten', bytesWritten)
+          console.log('buffer', buffer)
+        }
+      })
+    }
+  })
+  /*
+  fs.readdir('/dev/usb', (err, files) => {
+    if(err){
+      console.log(err)
+    } else {
+      console.log(files)
+      for(file of files){
+        if(file === deviceName){
+          console.log('ok')
+          // let's write to it...
+          // first we have to open it...
+          //
+        }
+      }
+    }
+  })
+  */
+}
+
+let sendSerialStatus = () => {
+  if(serport){
+    if(serport.opening){
+      sendToBrowser(JSON.stringify({
+        type: 'serial status',
+        status: STATUS_OPENING
+      }))
+    } else if (serport.readable){
+      sendToBrowser(JSON.stringify({
+        type: 'serial status',
+        status: STATUS_OPEN
+      }))
+    } else {
+      sendToBrowser(JSON.stringify({
+        type: 'serial status',
+        status: STATUS_CLOSED
+      }))
+    }
+  } else {
+    sendToBrowser(JSON.stringify({
+      type: 'serial status',
+      status: STATUS_CLOSED
+    }))
+  }
+}
+
+findDevice()
diff --git a/processes/filepipe.js b/processes/filepipe.js
deleted file mode 100644
index 51f84d9aed74a7983c4532bee4a4d40298ffe36b..0000000000000000000000000000000000000000
--- a/processes/filepipe.js
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
-
-very fast ~~picket ship~~ pipe transport (server)
-
-*/
-
-const WebSocketServer = require('ws').Server
-const SerialPort = require('serialport')
-const Delimiter = require('@serialport/parser-delimiter')
-
-const STATUS_UNKNOWN = 'unknown...'
-const STATUS_OPENING = 'opening...'
-const STATUS_OPEN = 'open'
-const STATUS_CLOSED = 'closed'
-const STATUS_ERROR = 'error'
-
-// port to issue on,
-let port = '2042'
-let pid = '8031'
-
-const WSS = new WebSocketServer({port: port}, () => {
-  process.send({
-    startup: true,
-    port: port
-  })
-})
-
-let WS = null
-
-WSS.on('connection', (ws) => {
-  console.log('vfpts websocket connects')
-  // handles,
-  WS = ws
-  // send current status
-  sendSerialStatus()
-  // handlers,
-  ws.onmessage = (msg) => {
-    if(typeof msg.data === 'string'){
-      // probably a control object, do
-      let data = JSON.parse(msg.data)
-      if(data.type === 'echo'){
-        sendToBrowser(msg.data)
-      } else {
-        console.log("how to handle:", data)
-      }
-    } else {
-      if(Buffer.isBuffer(msg.data)){
-        if(serport){
-          serport.write(encode(msg.data, true), 'utf8')
-        }
-      }
-    }
-  }
-  ws.onclose = (evt) => {
-    // shutdown,
-    console.log('ws closes, pipe exiting')
-    process.exit()
-  }
-})
-
-// send wrapper
-let sendToBrowser = (msg) => {
-  if (WS) {
-    WS.send(msg)
-    return true
-  } else {
-    return false
-  }
-}
-
-// now the usb,
-let serport = null
-let comname = ''
-
-let sendSerialStatus = () => {
-  if(serport){
-    if(serport.opening){
-      sendToBrowser(JSON.stringify({
-        type: 'serial status',
-        status: STATUS_OPENING
-      }))
-    } else if (serport.readable){
-      sendToBrowser(JSON.stringify({
-        type: 'serial status',
-        status: STATUS_OPEN
-      }))
-    } else {
-      sendToBrowser(JSON.stringify({
-        type: 'serial status',
-        status: STATUS_CLOSED
-      }))
-    }
-  } else {
-    sendToBrowser(JSON.stringify({
-      type: 'serial status',
-      status: STATUS_CLOSED
-    }))
-  }
-}
-
-// COBS https://github.com/tcr/node-cobs
-
-function encode (buf, zeroBack) {
-  var dest = [0];
-  // vfpt starts @ 1,
-  var code_ptr = 0;
-  var code = 0x01;
-
-  function finish (incllast) {
-    dest[code_ptr] = code;
-    code_ptr = dest.length;
-    incllast !== false && dest.push(0x00);
-    code = 0x01;
-  }
-
-  for (var i = 0; i < buf.length; i++) {
-    if (buf[i] == 0) {
-      finish();
-    } else {
-      dest.push(buf[i]);
-      code += 1;
-      if (code == 0xFF) {
-        finish();
-      }
-    }
-  }
-  finish(false);
-
-  if (zeroBack) {
-    dest.push(0x00);
-  }
-
-  return new Buffer.from(dest);
-}
-
-
-function decode (buf)
-{
-  var dest = [];
-  for (var i = 0; i < buf.length; ) {
-    var code = buf[i++];
-    for (var j = 1; j < code; j++) {
-      dest.push(buf[i++]);
-    }
-    if (code < 0xFF && i < buf.length) {
-      dest.push(0);
-    }
-  }
-  return new Buffer.from(dest)
-}
-
-let findSerialPort = () => {
-  let found = false
-  SerialPort.list((err, ports) => {
-    ports.forEach((serialport) => {
-      console.log('port:', serialport.comName, serialport.productId)
-      console.log(serialport)
-      if (serialport.productId === pid) {
-        comname = serialport.comName
-        console.log(`found port at ${comname}, opening`)
-        openPort()
-      }
-    })
-  })
-}
-
-let openPort = () => {
-  serport = new SerialPort(comname, {
-    baudRate: 3000000
-  })
-  serport.on('open', () => {
-    sendSerialStatus()
-    serport.on('error', (err) => {
-      sendSerialStatus()
-      console.log('port error', err)
-    })
-    const parser = serport.pipe(new Delimiter({delimiter: [0]}))
-    parser.on('data', (buf) => {
-      // serialport doesn't guarantee packet sized events
-      //console.log('serport receives: ', buf)
-      let op = decode(buf)
-      if(op[0] === 252){
-        // NEXT: write this as a JSON, ship -> vfpt, splash it uuup
-        console.log('LLM: ', buf.toString('utf8'))
-      } else {
-        //console.log('<- de-cobs: ', op.length)
-        if(WS){
-          WS.send(op)
-        }
-      }
-    })
-  })
-}
-
-findSerialPort()
-
-// this causes node to req. time from the OS more often (as often as possible)
-// meaning that our events are handled more often, and we drop ring times by some ms
-// does burn cycles though,
-
-let reminders = () => {
-  setImmediate(reminders)
-}
-reminders()