Machine Mayhem '19
Wrangling a machine together can be arduous. You can do anything you'd like, but you only have a week, and are maybe not experts yet. To that end, fab class provides - in the shape of this brief page, and its children - a small set of advice, a suggested direction, and a kit of parts and controllers that should get you to most of where you might like to go.
mechanical design: PGD
control architecture: squidworks
browser dataflow: cuttlefish (must be logged in to gitlab)
embedded dataflow: ponyo (must be logged in to gitlab)
router circuit (must be logged in to gitlab)
stepper circuit (must be logged in to gitlab)
module circuit (must be logged in to gitlab)
power routing
Recitation
setup: x: port a z: port b ? ee: port d yl: port e (-80spu) yr: port f
... install adafruit samd boards from arduino library manager
... serialport no callback?
Hardware Kit
You have enough material and parts to make up to four of the: Platonic Gantry Designs documented at that link. These look like this:
Further documentation for these things is at the page here: they are parametric - can be fabricated at a handful of lengths and widths - and some collection of them can be cobbled together (with well-designed mechanical appendages, or duct tape - all valid answers) to make multi-degree-of-freedom machines.
The collection of mechanical bits you have access to is as follows:
Thing | Size | QTY | What For? | Vendor | PN / Link |
---|---|---|---|---|---|
Acrylic | 1/4" 12x24" | 4 | Chassis / Beams | McMaster | 8505K755 |
625ZZ Bearings | 5x16x5mm | 45 | Rollers | VXB | link or McMaster 6153K113 |
Shoulder Bolts | 5x6xM4 | 45 | Bearing Shaft | McMaster | 92981A146 |
Bearing Shims | 5x10x0.5mm | 64 | Bearing Standoffs | McMaster | 98089A331 |
Heat-Set M4 Tapered Inserts | M4 | 50 | Shoulder Bolts -> 3DP Parts | McMaster | 94180A351 |
Heat-Set M3 Tapered Insert | M3 | 64 | Mechanical Design w/ Plastic | McMaster | 94180A331 |
Nylon Locknuts | M3 | 200 | McMaster | 93625A100 | |
M3 SHCS | 16mm Long | Beam Joinery | 200 | McMaster | 91292A115 |
M3 SHCS | 10mm Long | Motor Mounting | 16 | McMaster | 91292A113 |
M3 FHCS | 16mm Long | Carriage Joinery | 100 | McMaster | 92125A134 |
M3 Washers | - | w/ all M3 SHCS | 200 | McMaster | 93475A210 |
20T or 16T GT2 Pulley | 10mm or Wider, 5mm Bore | 4 | Power Transmission | Amazon or SDP/SI | Amazon Link |
6mm Wide GT2 Belt | - | 5m | Power Transmission | Amazon or SDP/SI | Amazon Link |
Circuit Kit
To coordinate machine control, you have a set of controllers developed as part of the squidworks project. squidworks is a protocol / tool / scheme for distributed control of modular hardwares. It nests virtual dataflow interpreters inside of genuine dataflow networks, to organize modular code inside of modular hardware. It's graphs all the way down.
The circuits you have here are already bootloader'd and code-loaded: routers will boot to USB, and should be accessible to cuttlefish once you're running it - and steppers have a stepper-motor build already running onboard: you should be set to connect them, power them up, and set up a control network.
The Router (1) |
---|
A message passing device, this thing hooks 6 of the ATSAMD51's SERCOM USARTS up to RS-485 Differential Driver and then hooks those up to RJ10 connectors (read: phone handset jacks). It runs ponyo and you can see the schematic, board and documentation here. |
![]() |
The Module Board |
---|
A do-what-you-will-with-it device, this thing breaks all of the ATSAMD51's pins out to fab-lab-friendly sized castellated pins, so that you can solder it to some-circuit-of-your-design. The thing is ready to run ponyo, and invites you to, indeed, write some CPP and integrate some new devices onto the network that it will happily join over that RS-485 link. Schematic, board and documentation here. |
![]() |
The Steppers (4) |
---|
A motor-turning device, this thing is one of the aforementioned module-boards, soldered to a heavy duty, motor-wrastling, no-amps-barred TMC262 stepper driver which itself slices and dices 24v of power with the help of four (4!) PN-Pair mosfets (that's two whole h-bridges baby) to drive (probably) NEMA17 stepper motors, to which these things will be attached when you get them. This also runs ponyo and you can see the schematic, board and documentation here. |
![]() |
Power Distribution Bits |
---|
These are tiny bus-bar type devices, that should make power routing a little bit easier. Included in the kit are (1) bypass capacitors for spare charge (these are actually important for the stepper motors to work properly), (2) TVS Diodes and Bleeders, (3) 5V Regulators (also necessary) and (4) routing blocks. These are all documented and explained in this power distribution repo. |
![]() |
Electrical Kit
Circuits need power, and networks need wires. To hook it all up, you also have this list of parts in the kit:
Thing | QTY | What For? | Vendor | PN / Link |
---|---|---|---|---|
PSU-24-350 | 1 | 350W of watts | MeanWell | Amazon |
NEMA17 | 4 | Spinning | Amazon Amazon | |
Modular Data Cable RJ9 | 100ft | Channel for RS485 UART | Digikey | AT-K-26-4-B/100 |
Modular Data Plugs RJ9 | ~ 25 | RS485 Plugs | Digikey | AE10314-ND |
Modular Data Line Tool RJ9 | 1 | Making RJ10 Cables | Amazon / Commodity | Amazon |
Orange Hook-Up Wire | 50ft | Routing 24V | Digikey | CN101A-50-ND |
Red Hook-Up Wire | 50ft | Routing 5V | Digikey | CN101R-50-ND |
Black Hook-Up Wire | 50ft | Routing Ground | Digikey | CN101B-50-ND |
Power Entry Module | 1 | AC Hookup, Switching | Digikey | 486-3979-ND |
Power Entry Fuse | 1 | Danger Barrier (already installed in the above) | Digikey | 486-1226-ND |
Network Cables
Some notes on making network cables:
- network cables can be made two ways: only one is correct - rj10 tabs should be on the same side of the ribbon cable i.e. the cable is a 'straight through' type, not a crossover. this means that tx meets rx, etc.
- the transmit / receive ports are RS-485 Differential Driven, meaning there is no common gnd connection between boards besides the power bus.
The connectors I use here (and that are in your kit) are called 'RJ10' Jacks and Plugs. These are standard for old (wired!) phone handsets, but also 'generally useful'.
One cool thing about RJ45 is the modularity of the cables. We can use commodity crimping tools to make our own lengths:
- one side cuts, one side strips. use both at the same time to get the right length of stripped wire
- use the '4p' crimp, note the tab direction in the crimp
- pinch! the plug has a plastic tab inside that should come down to meet the wire jacket
these videos show an RJ45 connector: the RJ10 is nearly identical, just smaller
make sure those tabs are on the same side of the flat cable
Developing Controllers
Squidworks
Since you have the circuits, you are free to implement a squidworks controller using cuttlefish (browser code) and ponyo (embedded code) For more documentation on squidworks, follow the link.
!TODO: video from webcam-to-penplotter