diff --git a/controller-host/main.lua b/controller-host/main.lua
index 86bb120..7298ebf 100644
--- a/controller-host/main.lua
+++ b/controller-host/main.lua
@@ -7,7 +7,10 @@ local errorMessage = nil
 local oldPrint = print
 
 function print(...)
-	local string = string.format(...)
+	local string = ""
+	for _, v in ipairs({...}) do
+		string = string .. v
+	end
 	love.mqtt.send("controller/stdout", string)
 	oldPrint(...)
 end
diff --git a/controller-host/mqtt/client.lua b/controller-host/mqtt/client.lua
index c385a89..9241419 100644
--- a/controller-host/mqtt/client.lua
+++ b/controller-host/mqtt/client.lua
@@ -1078,7 +1078,7 @@ function client_mt:_apply_network_timeout()
 					local allData = ""
 					while true do
 						local size = math.min(totalSize, 16384)
-						local data, err = sync_recv_func(size)
+						local data, err = sync_recv_func(size, ...)
 						if not data and (err == "timeout" or err == "wantread") then
 							loop.timeouted = true
 							coroutine_yield(err)
diff --git a/controller-host/mqtt/luasocket.lua b/controller-host/mqtt/luasocket.lua
index d4334c6..b189c2d 100644
--- a/controller-host/mqtt/luasocket.lua
+++ b/controller-host/mqtt/luasocket.lua
@@ -45,7 +45,7 @@ end
 -- Set connection's socket to non-blocking mode and set a timeout for it
 function luasocket.settimeout(conn, timeout)
 	conn.timeout = timeout
-	conn.sock:settimeout(timeout, "t")
+	conn.sock:settimeout(timeout, "b")
 end
 
 -- export module table
diff --git a/get-image.lua b/get-image.lua
index 611e004..12f3b7f 100644
--- a/get-image.lua
+++ b/get-image.lua
@@ -20,6 +20,7 @@ local function onMessage(data)
 end
 
 local function onConnect(connack)
+	print("Connected")
 	if connack.rc ~= 0 then
 		print("Connection to broker failed:", connack:reason_string())
 		os.exit(1)
@@ -29,7 +30,7 @@ local function onConnect(connack)
 		topic = "spider/telemetry/#"
 	})
 
-	print("Connected and subscribed")
+	print("Subscribed")
 end
 
 client = mqtt.client {
diff --git a/spider-cam/spider-cam.py b/spider-cam/spider-cam.py
index b495be0..169f015 100644
--- a/spider-cam/spider-cam.py
+++ b/spider-cam/spider-cam.py
@@ -29,7 +29,7 @@ def process_request(request):
 	global mqttc
 
 	image_count += 1
-	if image_count > 30:
+	if image_count > 10:
 		image_count = 0
 		print(f'Request completed: {request}')
 
diff --git a/spider-host/main.go b/spider-host/main.go
index b210c2d..70e03ef 100644
--- a/spider-host/main.go
+++ b/spider-host/main.go
@@ -2,7 +2,6 @@ package main
 
 import (
 	"fmt"
-	"github.com/blackjack/webcam"
 	mqtt "github.com/eclipse/paho.mqtt.golang"
 	"log"
 	"time"
@@ -45,79 +44,6 @@ func onPing(client mqtt.Client, msg mqtt.Message) {
 	publishTelemetry(client, "pong", msg.Payload())
 }
 
-func handleWebcam(client mqtt.Client) {
-	cam, err := webcam.Open("/dev/video0")
-	if err != nil {
-		log.Fatalf("Could not open webcam: %v\n", err)
-	}
-	defer cam.Close()
-
-	supportedFormat := cam.GetSupportedFormats()
-	//log.Printf("Supported formats:\n")
-	imageFormat := webcam.PixelFormat(0)
-	for format, description := range supportedFormat {
-		if description == "10-bit Bayer GBGB/RGRG" {
-			imageFormat = format
-		}
-	}
-
-	//width, height := 1296, 972
-	//width, height := uint32(2592), uint32(1944)
-	width, height := uint32(640), uint32(480)
-
-	if imageFormat != webcam.PixelFormat(0) {
-		_, _, _, err = cam.SetImageFormat(imageFormat, width, height)
-		if err != nil {
-			log.Fatalf("Could not set image format: %v\n", err)
-		}
-	}
-
-	supportedFramerates := cam.GetSupportedFramerates(imageFormat, width, height)
-	log.Printf("Supported frame rates:\n")
-	for _, format := range supportedFramerates {
-		log.Printf(" - %s\n", format)
-	}
-
-	controls := cam.GetControls()
-	log.Printf("Controls:\n")
-	for _, control := range controls {
-		log.Printf(" - %s\n", control)
-	}
-
-	//cam.SetAutoWhiteBalance(true)
-	//cam.SetControl()
-
-	//err = cam.SetFramerate(10)
-	//if err != nil {
-	//	log.Fatalf("Could not set framerate: %v\n", err)
-	//}
-
-	err = cam.StartStreaming()
-	if err != nil {
-		log.Fatalf("Could not start streaming webcam: %v\n", err)
-	}
-
-	count := 0
-	for {
-		err = cam.WaitForFrame(100)
-		if err != nil {
-			log.Fatalf("Could not start streaming webcam: %v\n", err)
-		}
-		frame, err := cam.ReadFrame()
-		if err != nil {
-			log.Fatalf("Could not read frame: %v\n", err)
-		}
-		if len(frame) > 0 {
-			count++
-			if count > 30*4 {
-				print("Publishing frame\n")
-				publishTelemetry(client, "camfeed", frame)
-				return
-			}
-		}
-	}
-}
-
 func main() {
 	opts := mqtt.NewClientOptions()
 	opts.AddBroker(broker)
@@ -138,7 +64,6 @@ func main() {
 	}
 
 	InitBattery()
-	//go handleWebcam(client)
 
 	slowTelemetry := time.NewTicker(3 * time.Second)
 	defer slowTelemetry.Stop()