Development Roadmap: Difference between revisions

From
No edit summary
 
(61 intermediate revisions by the same user not shown)
Line 1: Line 1:
__NOTOC__
=Milestones=
[[File:ReplimatOpenConstructionSystem.pdf|thumb]]
12.14.2016
Timothy Schmidt
 
===Overview===
The Replimat Open Construction System is a practical self-replicating construction system. ROCS encompases a small number of component parts reused in many different ways to construct >60 everyday tools - including several of the tools necessary to fabricate more ROCS components from raw materials.
 
A high degree of self-replication is achieved by carefully choosing a small number of very versatile components, and reusing those components throughout the system. Many replimat components can simply be cut to form two smaller components without
creating waste. And all Replimat components are designed for disassembly, and cradle-to-cradle reusability.
All component parts can not yet be replicated, though this document details a development plan to increase the number which can be. Replimat components are constructed, wherever possible, from waste plastic, unprocessed trees or reclaimed lumber, stainless steel, aluminum, or other durable, reusable, renewable, recycled and recyclable materials.
 
Replimat components form a durable, repurposable, mult-use carbon sink for the waste streams of other processes.
 
===Licensing===
All replimat components and documentation are available under the AGPLv3+ (https://www.gnu.org/licenses/agpl-3.0.en.html ​ ) or TAPR OHL v1.0 (https://www.tapr.org/TAPR_Open_Hardware_License_v1.0.txt) licenses. These licenses require derivative works to be released to all parties under identical terms.
 
===Milestones===
* First full physical implementation
* First full physical implementation
* Automated frame factory development ongoing
* <del>Automated frame factory prototype</del>
* First full CAD implementation
* Reduction of [[vitamins]] components
* Incremental reduction of [[vitamins]] components
* Community bazaar
 
* VR pathfinder
==Components==
** part choice, translation, rotation, enumeration
==Hardware (ferromagnetic stainless steel)==
** implement verbs
====Rationale====
** app store applications
(Now favoring 316 surgical steel... more research happening)
** grid
Stainless steel is a temperamental alloy. Difficult to work and produce, components made from this material can cost three times as much as a similar component in hardened steel. I believe the cost to be justified, due to the critical nature of the nuts and
** pickling, i/o - ser
bolts in so many other parts of the system, and stainless steel’s extreme durability under virtually all conditions.
** animation - tweening
 
** physics
Offsetting the increased cost of stainless steel, the standardization on 12 total nut and bolt components across the entire system enables bulk purchasing, reduces storage and shipping requirements, simplifies inventory management, billing, and reclamation and
** <del>environment models, sounds</del>
reuse.
** <del>controller models</del>
 
** <del>CSG</del>
Stainless steels are available in magnetic, and non-magnetic varieties. The magnetic varieties tend to be less expensive, and the magnetic properties of the nut and bolt hardware are required for the operation of several components in the system - notably the solenoid pump / motor.
** <del>text edit control</del>
 
* EDA tooling
====Current components====
** netlist
M3xXX, M3xYY, M3xZZ bolts, M3 lock nut, M3 washer<br>
** component libraries
M8x50, M8x90, M8x130 bolts, M8 lock nut, M8 washer<br>
*** package model (3D), pad shape (2D, multiple layers - including vias), wiring pinout (list), art (2D)
M25xXX, M25xYY, M25xZZ bolts, M25 lock nut, M25 washer<br>
* Debian package
1000mmx40mmx40mmx3mm bar stock - coroplast might be good enough<br>
6mm stainless steel BBs<br>
====Interoperability====
====Development targets====
====Life cycle====
Long bolts can be cut to form shorter bolts and abrasive pellets for the ball mill.
Stripped, bent, or abraded nuts or bolts degrade to abrasive pellets for the ball mill.
 
==Frame==
====Rationale====
The modular frames in this system are constructed using only one component, repeated
and assembled in a variety of configurations, with the stainless steel hardware.
These frames assemble quickly, intuitively, and squarely in all dimensions and on uneven
surfaces, under water, or in zero gravity.
Frame members are easily manufactured from renewable and widely available raw
materials such as trees, square steel, aluminum, and other metal tube, even bamboo and
recycled thermoplastics.
Aluminum frame members retain perfect interchangeability and reusability after years of
intense sun exposure, submersion in water, etc.
Wood frame members retain near-perfect interchangeability and reusability across
lifetimes when stored in a home, or other controlled environment.
Unlike Isaacs or Jergensen frames, Replimat uses only lengths that are multiples of
200mm, equivalent to approximately 8 inches or 5 holes. Plus two and three-hole
members. This allows Replimat frames to be measured easily by sight in millimeters,
inches, and holes simultaneously.
====Current components====
1000mmx40mmx40mm (39.37inx1.57inx1.57in) 25 hole frame
Stainless steel hardware
====Interoperability:====
1000mm frame lengths can be cut to 200mm, 400mm, 600mm, and 800mm lengths without waste.
 
====Development targets:====
Self-reproducing frame drilling machine
 
==Sheet (coroplast)==
====Rationale:====
All-purpose sheet-stock. Waterproof, resists mold and decay even when submerged in
water for prolonged durations, insulating, foldable, impact and tear resistant, cuts with a
knife. Useful for making boxes, shingles, buckets, backpacks, kayaks, sinks, sluices,
rulers, drill guides and templates, and even some structural elements.
====Current components:====
https://www.wensco.com/CatSearch/251/corrugated-plastic
 
====Interoperability:====
====Development targets:====
Coroplast single-sheet casting machine to interoperate with the plastic shredder
and plastic press components. (provides: fresnel lens, coroplast, single-side coro,
flat sheet stock. Consumes: recycled plastic, fiber, mycofoam, epoxies, etc)
White / Black single sheet coro for heat insulation / absorption
 
====References:====
https://www.youtube.com/watch?v=ahExsx-hBsE
 
==Cord (550lb test nylon paracord, stainless steel cable?)==
====Rationale:====
Simplified selection of knots - holding, sliding,
====Current components:====
Commercially available 550 paracord (https://www.amazon.com/SurvivorCord-SAFETY-ORANGE-Paracord-Conductive-Patent-Pending/dp/B01DAPFYMA​ )
 
====Interoperability:====
====Development targets:====
Printable automatic cord braiding machine
https://www.youtube.com/watch?v=z9tgjUBpmLA
==Wheel (Bicycle wheel +adapter,coroplast bolted wheels, printed square-beam end cap + V-wheel + belt pulley + caster + integrated bearing?)==
 
====Rationale:====
====Current components:====
====Interoperability:====
====Development targets:====
 
==Electric fan==
====Rationale:====
Electric fans are incredibly prolific devices. Used to cool electronics, motors, and
evaporators, as well as people, livestock, greenhouses, and more. ROCS’ fundamental
component for moving air.
====Current components:====
====Interoperability:====
====Development targets:====
==Toilet==
====Rationale:====
Everybody poops.
====Current components:====
====Interoperability:====
====Development targets:====
Research regulation on portable toilets, composting toilets
Modular composting toilet
==Hose clamp (printable), hose barb, and 25mm tube==
 
====Rationale====
====Current components====
====Interoperability====
====Development targets====
* nut/bolt tightened version
==V-wheels==
====Interoperability:====
====Development targets:====
* Develop gridbeamish three-bearing blade guide
* Light (LED with spectrum suitable for vision + plant growth)
 
====Rationale:====
====Current components:====
====Interoperability:====
====Development targets:====
==Bench grinder==
====Rationale====
====Current components====
====Development targets====
* Printable grinder form for casting
==Shingles==
====Rationale====
====Current components====
====Development targets====
 
==Sink==
====Rationale====
====Current components====
====Development targets====
==Lathe==
====Rationale====
====Current components====
====Development targets====
* CNC metal lathe w/ tool changer and grinder attachment - allows for production of gears
==Portable Power==
====Rationale:====
====Current components:====
* Coroplast box
* Solar panels
* Recycled LiPo batteries
* Charge controller
* Bicycle tires
====Development targets====
Coroplast solar panel (transparent or translucent coroplast, solar cells, salvaged wire, solder, silicone epoxy)
Universal Controller battery charger
 
==Clothes washer / dryer==
 
====Rationale:====
====Current components====
====Development targets====
Refrigerator
 
====Rationale:====
====Current components:====
====Development targets:====
 
==Heater / air conditioner==
====Rationale:====
====Current compoponents====
====Development targets:====
==Hot and cold shower==
====Rationale:====
====Current components:====
====Development targets:====
==Tractor (lifetrak lite: fork pallet loader, farm tractor)==
====References:====
* http://opensourceecology.org/wiki/LifeTrac
 
==Printable valves==
====Rationale:====
====Current components:====
* 6mm stainless steel ball (BB)
* Printed spring?


====Development targets:====
=Goals=
* Make Replimat Tractors
** Source components
** Write documentation
** Draw CAD
* Make Replimat controllers
** Design controller boards
* Write software stack
** Enhance wifi based on these examples: https://github.com/esp-rs/esp-wifi/tree/main/examples-esp32c3/examples
** Rewrite NopSCADlib in Rust
*** Determine part data and structure
*** Write exploded / non exploded views and define exploded axis and distance per part
*** Define default rendering scene and colors
*** MCAD equivalent functions
*** Render subassemblies and assemblies exploded and non with instructions interspersed as markdown
*** Translate included models / constants into Implicit3D syntax
**** Mod 1 rack profile
**** rack T slot profile
**** pneumatic distribution block
**** endstop brackets
**** linear axis motor, bearing, bearing brackets
**** feet
**** clamp pads
**** backstop spacers
**** [https://www.thingiverse.com/thing:979154 sharp angle brackets]
**** openbuilds plates
**** nema-14/17/23/34 motor mount
**** nut block
**** [https://www.thingiverse.com/thing:2553557 triangular brackets]
* Make Replimat frames and plates
** Gather the required materials for making Replimat frames and plates such as metal, tools, and fasteners.
*** Metric frame widths: 20mm, 40mm, 80mm, 100mm
*** Inch frame widths: 1 inch, 1.5 inch, 2 inch, 3 inch, 4 inch
*** 2, 3, 4, 5, 10, 15, 20, 25, 30 holes long
*** carbon based powder coat


==Saw stand==
=Tasks=
====Rationale:====
==New contributors==
This tool is a necessary aid to anyone planing, ripping, or otherwise processing long
This list of items is curated especially for new contributors to the project, to provide introductory projects with which to familiarize themselves with the project infrastructure, function, and development process.
wood, metal, or plastic raw materials.
* Install the replimat [[software]] and clone the replimat git repo
====Current components:====
* Expand ferrule.scad to produce all ferrules in the accompanying datasheet
* https://www.amazon.com/gp/product/B000VEOPEC/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1
====Development targets====
==Modular Cookware==


====Rationale:====
==Interns==
====Current components:====
* Become familiar with the production toolchain
* https://www.amazon.com/gp/product/B01AX3FI4G/ref=oh_aui_detailpage_o00_s01?ie=UTF8&psc=1
* Load production code and operate production equipment
* https://www.amazon.com/Ball-Jar-Wide-Mouth-Bands/dp/B00B80TJLW/ref=pd_sim_79_3?_encoding=UTF8&pd_rd_i=B00B80TJLW&pd_rd_r=3AMCN85SQHPCZ32M2EBF&pd_rd_w=c2M0T&pd_rd_wg=k8FKF&refRID=3AMCN85SQHPCZ32M2EBF&th=1
* Attend group work and regular company meetings
* https://www.amazon.com/gp/product/B0190ZUNEI/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1
* Outreach prep


====Development targets====
==Video production==
==Plastics Recycling Center==
<youtube>9BUrNe3Vhtk</youtube>
====Rationale:====
* workstation bringup
https://www.qualitylogoproducts.com/lib/different-types-of-plastic.htm
* web dev bringup
====Current components:====
* video production bringup
* plastic shredder v0.1
* creating / updating a project
* filament extruder v0.1
===Segments===
* injection molder v0.1
* production montage
** cnc router
** chop saw
** packing
* use montage
** building a project
** driving a cargo cycle
** disassembly and packing away
* philosophy / voice over
* closing statement
* introduction
* pitch
* motion graphics and overlays


* Press v0.1
==Director / Interviewer==
* https://www.thingiverse.com/thing:1468596
* lead ins
* https://www.thingiverse.com/thing:677144
* points of interest
====Development targets:====
* Re-frame in gridbeam
* Ensure that each machine is supported by the Universal Controller
* Large-format coro, fresnel lens, multifocal concentrating solar fresnel, etc press
====References====
* https://preciousplastic.com/en/


==Robot arm==
==Experienced contributors==
* finish converting CNC router to grbl/Candle
* python script to convert FreeCAD file to STEP / STL
* <del>port CAD library to nopscadlib</del>
** implement .glb file export for OpenSCAD
** <del>implement 40mm standard</del>
** <del>model perforated T slot aluminum</del>
** automatic nut/bolt height adjustment when mounting plates
** add scale to renders
** parts should be indexed at first mounting hole, at origin
** model HGH20CA linear bearing as nopscadlib part
** model / find model for bicycle crank, arms, pedals
** <del>nopscadlib translation and rotation functions - translate_x, translate_y, translate_z?</del>
** nopscadlib lumber library
** implement cord library - point-to-point, curves, wires, hoses - based on NopSCADlib belt(); or sweep();
** implement fabrics library - curved flats for seats, etc
** implement linear axes in nopscadlib
** NESE module
** charge controller
** inverter / motor controller
** power cube assembly
** <del>solar panel - standard sizes</del>
** <del>hydraulic parts</del> - acquired from OSE, need to be imported fully
** motor - existing file
* VR CAD
** <del>[[:Category:Parts|part]] STL model loading</del>
** <del>[[:Category:Parts|part]] model positioning</del>
** <del>[[:Category:Parts|part]] model physics</del>
** <del>hand modeling and basic controls</del>
** snap [[:Category:Parts|part]] models to grid
** enumerate loaded [[:Category:Parts|parts]], parameters, and write out to file
** load file, placing and parameterizing [[:Category:Parts|parts]]
** load assembly of [[:Category:Parts|parts]], snap to grid, and avoid loading any part which clobbers an existing one.


====Rationale:====
==Tim==
====Current components:====
* contact Ashton about 40mm square tube
* https://www.thingiverse.com/thing:1652309
* reverse DNS
* https://www.thingiverse.com/thing:280263
* <del>wiki script to walk the database and read every current page contents</del>
** <del>backup every video</del>
* wiki script to submit an edit
* wiki plugin hooking edits for processing


===References===
==Forest==
4. Popular Mechanics Sept 1923
Hardware:
6. Elkinsdiy.com
* realtime Ethernet (UDP and maybe PTP) on microcontrollers
* implementing a DDS/DDA (numerically controlled oscillator essentially) on a microcontroller with high performance
* implementing a realtime Ethernet system on an FPGA, ideally without relying on a soft processor to handle packets
I do have a lot of ideas about using soft processors on FPGAs too, but I don't want it to be a complete crutch nor threaten the main realtime datapath
* there are a lot of PCBs that need to be designed, most of which are relatively simple or even trivial
* a lot of FPGA cores use the WishBone bus, but a lot of them also use the AXI bus (derived from ARM). I am not familiar with either one, but it seems like the AXI bus is a bit more complicated and easier to crash if you use it improperly


[[Marketing]]
Software:
* I really really want to write EDA software, but it can't be our first project unless it somehow will directly generate revenue
* learn more about OpenGL to where we can write an efficient CNC toolpath previewer
* implement a non-linear constraint solver for parametric 2D CAD
* create a GUI to display/edit parametric constraints/dimensions similar to Fusion 360, SolidWorks, FreeCAD, SolveSpace, etc.
* implement a traveling salesman algorithm for toolpath generation (Tim's used space curves before to approximate it)
* implement a trajectory planner that does acceleration and maybe jerk limiting. We don't necessarily need to limit ourselves to outputting lines and arcs only, because we are in control of the hardware, not to mention you can always approximate as arcs (or lines) at the final step of post-processing
* write a replacement for dxflib for importing DXFs, and use that replacement library to implement a reusable DXF geometry importer (better than the current ones out there...)

Latest revision as of 04:07, 19 October 2023

Milestones

  • First full physical implementation
  • Automated frame factory prototype
  • Reduction of vitamins components
  • Community bazaar
  • VR pathfinder
    • part choice, translation, rotation, enumeration
    • implement verbs
    • app store applications
    • grid
    • pickling, i/o - ser
    • animation - tweening
    • physics
    • environment models, sounds
    • controller models
    • CSG
    • text edit control
  • EDA tooling
    • netlist
    • component libraries
      • package model (3D), pad shape (2D, multiple layers - including vias), wiring pinout (list), art (2D)
  • Debian package

Goals

  • Make Replimat Tractors
    • Source components
    • Write documentation
    • Draw CAD
  • Make Replimat controllers
    • Design controller boards
  • Write software stack
    • Enhance wifi based on these examples: https://github.com/esp-rs/esp-wifi/tree/main/examples-esp32c3/examples
    • Rewrite NopSCADlib in Rust
      • Determine part data and structure
      • Write exploded / non exploded views and define exploded axis and distance per part
      • Define default rendering scene and colors
      • MCAD equivalent functions
      • Render subassemblies and assemblies exploded and non with instructions interspersed as markdown
      • Translate included models / constants into Implicit3D syntax
        • Mod 1 rack profile
        • rack T slot profile
        • pneumatic distribution block
        • endstop brackets
        • linear axis motor, bearing, bearing brackets
        • feet
        • clamp pads
        • backstop spacers
        • sharp angle brackets
        • openbuilds plates
        • nema-14/17/23/34 motor mount
        • nut block
        • triangular brackets
  • Make Replimat frames and plates
    • Gather the required materials for making Replimat frames and plates such as metal, tools, and fasteners.
      • Metric frame widths: 20mm, 40mm, 80mm, 100mm
      • Inch frame widths: 1 inch, 1.5 inch, 2 inch, 3 inch, 4 inch
      • 2, 3, 4, 5, 10, 15, 20, 25, 30 holes long
      • carbon based powder coat

Tasks

New contributors

This list of items is curated especially for new contributors to the project, to provide introductory projects with which to familiarize themselves with the project infrastructure, function, and development process.

  • Install the replimat software and clone the replimat git repo
  • Expand ferrule.scad to produce all ferrules in the accompanying datasheet

Interns

  • Become familiar with the production toolchain
  • Load production code and operate production equipment
  • Attend group work and regular company meetings
  • Outreach prep

Video production

  • workstation bringup
  • web dev bringup
  • video production bringup
  • creating / updating a project

Segments

  • production montage
    • cnc router
    • chop saw
    • packing
  • use montage
    • building a project
    • driving a cargo cycle
    • disassembly and packing away
  • philosophy / voice over
  • closing statement
  • introduction
  • pitch
  • motion graphics and overlays

Director / Interviewer

  • lead ins
  • points of interest

Experienced contributors

  • finish converting CNC router to grbl/Candle
  • python script to convert FreeCAD file to STEP / STL
  • port CAD library to nopscadlib
    • implement .glb file export for OpenSCAD
    • implement 40mm standard
    • model perforated T slot aluminum
    • automatic nut/bolt height adjustment when mounting plates
    • add scale to renders
    • parts should be indexed at first mounting hole, at origin
    • model HGH20CA linear bearing as nopscadlib part
    • model / find model for bicycle crank, arms, pedals
    • nopscadlib translation and rotation functions - translate_x, translate_y, translate_z?
    • nopscadlib lumber library
    • implement cord library - point-to-point, curves, wires, hoses - based on NopSCADlib belt(); or sweep();
    • implement fabrics library - curved flats for seats, etc
    • implement linear axes in nopscadlib
    • NESE module
    • charge controller
    • inverter / motor controller
    • power cube assembly
    • solar panel - standard sizes
    • hydraulic parts - acquired from OSE, need to be imported fully
    • motor - existing file
  • VR CAD
    • part STL model loading
    • part model positioning
    • part model physics
    • hand modeling and basic controls
    • snap part models to grid
    • enumerate loaded parts, parameters, and write out to file
    • load file, placing and parameterizing parts
    • load assembly of parts, snap to grid, and avoid loading any part which clobbers an existing one.

Tim

  • contact Ashton about 40mm square tube
  • reverse DNS
  • wiki script to walk the database and read every current page contents
    • backup every video
  • wiki script to submit an edit
  • wiki plugin hooking edits for processing

Forest

Hardware:

  • realtime Ethernet (UDP and maybe PTP) on microcontrollers
  • implementing a DDS/DDA (numerically controlled oscillator essentially) on a microcontroller with high performance
  • implementing a realtime Ethernet system on an FPGA, ideally without relying on a soft processor to handle packets

I do have a lot of ideas about using soft processors on FPGAs too, but I don't want it to be a complete crutch nor threaten the main realtime datapath

  • there are a lot of PCBs that need to be designed, most of which are relatively simple or even trivial
  • a lot of FPGA cores use the WishBone bus, but a lot of them also use the AXI bus (derived from ARM). I am not familiar with either one, but it seems like the AXI bus is a bit more complicated and easier to crash if you use it improperly

Software:

  • I really really want to write EDA software, but it can't be our first project unless it somehow will directly generate revenue
  • learn more about OpenGL to where we can write an efficient CNC toolpath previewer
  • implement a non-linear constraint solver for parametric 2D CAD
  • create a GUI to display/edit parametric constraints/dimensions similar to Fusion 360, SolidWorks, FreeCAD, SolveSpace, etc.
  • implement a traveling salesman algorithm for toolpath generation (Tim's used space curves before to approximate it)
  • implement a trajectory planner that does acceleration and maybe jerk limiting. We don't necessarily need to limit ourselves to outputting lines and arcs only, because we are in control of the hardware, not to mention you can always approximate as arcs (or lines) at the final step of post-processing
  • write a replacement for dxflib for importing DXFs, and use that replacement library to implement a reusable DXF geometry importer (better than the current ones out there...)