machine control, reloaded

tosqa.com laser 3d-printer frees

machine control, ‘CNC’ Beauty …

3 … and the beast

4 Doe-het-zelf CNC nú

apparaat- job motor- bediening scheduling aansturing

status & rendering end-stops voortgang naar gcode spindle

3D data hot-end/-bed previews communicatie temperatuur

Gebruikers Informatie Machine Interface Verwerking Interface

Alles in één: MakerBot, UltiMaker, …

5 Het hele plaatje

gedeeld apparaat standalone gebruik kenmerken apparaat

CAD ontwerp low-end relais, servos, (Sketchup?) Linux boards licht, pompen

eigen code pick & place, ontwikkelen soldeerpasta

eigen h/w low-end integreren plotters, lasers

uitwisselen high-end 3D: depositie, (Thingiverse?) PC processing UV printers

kunstenaars, trajectory maatwerk architecten planning machines

6 Modulaire keuzes

alles in de browser alles ≥ Linux alles via de CAN bus ontwerp-proces + multi-platform host: direct of via bediening / status multi-language network / serial bridge

JavaScript, HTML5 host engine in Go ARM µC met CAN AngularJS, D3 (SVG) LevelDB, MQTT ChibiOS RTOS WebSockets dataflow architectuur CAN firmware upload real-time, responsive hardware discovery RJ12 klik-systeem

Gebruikers Informatie Machine Interface Verwerking Interface

Google Chrome BeagleBone Black LPC11C24 Safari (FireFox) (RasPi, Odroid) “SSB” & “IOU”

7 BeagleBone Black

of een Raspberry Pi of andere willekeurige Linux-computer CAN-bus single stepper board SmoothieBoard, met 1x LPC1769 en o.a. 5 stepper drivers

5x Tosqa’s Single Stepper Board - elk met een LPC11C24

11 Tosqa

Host engine (Go) Web browser pipe socket JavaScript exec Process AngularJS

JeeBus Flow

serial Interface Device Tosqa CAN bus USB HTTP LevelDB JavaScript Tosqa Host (BeagleBone)

Ethernet (LAN / WLAN)

12 • “HTML enhanced” - declaratief, attributes + {{…}}

• SPA: Single Page Application (de URL is N E P)

• static pages + JS, alles gebeurt in de browser

• bi-directionele data binding, geen DOM manipulatie:

13 Dataflow

• denk aan pipes, maar dan overal binnen één proces

• visueel ontwerp == later nog zien (snappen!) hoe het zat

• iedereen “doet het” nu: FBP, Scratch, NoFlo, Node-Red

• ook: Grasshopper, Quartz Composer, Pure Data, Max/MSP

• perfecte match voor Go’s CSP: channels en goroutines

• terminologie in Tosqa: gadgets, pins, wires, circuits, feeds

14 Alles is een Gadget

$ tosqa-host info Registered gadgets and circuits: ! AddTag Attach CanBridge CanSerial Clock CmdLine Concat3 Counter DataSub Delay Dispatcher EnvVar FanOut FbpParser Forever GcodeInterp GcodeParser GcodeScanner HTTPServer JavaScript LevelDB MQTTPub MQTTServer MQTTSub Pipe Printer ReadFileJSON ReadFileText Repeater RpcHandler SerialPort SinglePlanner Sink SketchType SocketCan StepGen TimeStamp Timer WSLiveReload Waiter WebSocket-default WebSocket-jeebus circuitFill dbdump dbexport dbget dbimport dbkeys dbput demo help info init main mqttpub mqttsub tableFill try1

15 Visuele Circuit Editor

(Max/MSP voorbeeld)

16 SSB v1.2 (Single Stepper Board)

IOU v0.0 (Input/Output Unit)

17 SSB 10..25V (opt) CAN bus + power v1.2 NTC temp JTAG debug LEDs (2x) power ok

reset button CAN bus current + power adjust boot button 3.3V switcher LEDs (2x) red + green

Bottom: mag-pos encoder end stops (2x) / I2C

18 BeagleBone + CAN “cape” LPC1769 + LPC11C24 (12V loodaccu eronder)

STM32 ARM + LCD (eBay)

LPC11 ARM bordje + 2x rotary encoders

19 The End Beginning!

• Website ➤ http://tosqa.com/ (en GitHub)

• Code + PCBs ➤ 100% Open Source (MIT/BSD)

• Tosqa team ➤

Peter Brier, Tim Castelijn, David Menting, Emile Nijssen, Peter Uithoven, Jean-Claude Wippler

• Vele uitdagingen ➤ Doe je mee?

20