Development Roadmap: Difference between revisions

From
No edit summary
No edit summary
 
(47 intermediate revisions by the same user not shown)
Line 1: Line 1:
__NOTOC__
=Milestones=
 
===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
==Frame==
** part choice, translation, rotation, enumeration
====Rationale====
** implement verbs
The modular frames in this system are constructed using only one component, repeated
** app store applications
and assembled in a variety of configurations, with the stainless steel hardware.
** grid
These frames assemble quickly, intuitively, and squarely in all dimensions and on uneven
** pickling, i/o - ser
surfaces, under water, or in zero gravity.
** animation - tweening
Frame members are easily manufactured from renewable and widely available raw
** physics
materials such as trees, square steel, aluminum, and other metal tube, even bamboo and
** <del>environment models, sounds</del>
recycled thermoplastics.
** <del>controller models</del>
Aluminum frame members retain perfect interchangeability and reusability after years of
** <del>CSG</del>
intense sun exposure, submersion in water, etc.
** <del>text edit control</del>
Wood frame members retain near-perfect interchangeability and reusability across
* EDA tooling
lifetimes when stored in a home, or other controlled environment.
** netlist
Unlike Isaacs or Jergensen frames, Replimat uses only lengths that are multiples of
** component libraries
200mm, equivalent to approximately 8 inches or 5 holes. Plus two and three-hole
*** package model (3D), pad shape (2D, multiple layers - including vias), wiring pinout (list), art (2D)
members. This allows Replimat frames to be measured easily by sight in millimeters,
* Debian package
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
 
==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
==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====
=Goals=
====Current components====
* Make Replimat Tractors
====Interoperability====
** Source components
====Development targets====
** Write documentation
* nut/bolt tightened version
** Draw CAD
==V-wheels==
* Make Replimat controllers
====Interoperability:====
** Design controller boards
====Development targets:====
* Write software stack
* Develop gridbeamish three-bearing blade guide
** Enhance wifi based on these examples: https://github.com/esp-rs/esp-wifi/tree/main/examples-esp32c3/examples
* Light (LED with spectrum suitable for vision + plant growth)
** 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


====Rationale:====
=Tasks=
====Current components:====
==New contributors==
====Interoperability:====
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.
====Development targets:====
* Install the replimat [[software]] and clone the replimat git repo
==Bench grinder==
* Expand ferrule.scad to produce all ferrules in the accompanying datasheet
====Rationale====
====Current components====
====Development targets====
* Printable grinder form for casting
==Shingles==
====Rationale====
====Current components====
====Development targets====


==Sink==
==Interns==
====Rationale====
* Become familiar with the production toolchain
====Current components====
* Load production code and operate production equipment
====Development targets====
* Attend group work and regular company meetings
==Portable Power==
* Outreach prep
====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


==Refrigerator==
==Video production==
<youtube>9BUrNe3Vhtk</youtube>
* 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


====Rationale:====
==Director / Interviewer==
====Current components:====
* lead ins
====Development targets:====
* points of interest


==Heater / air conditioner==
==Experienced contributors==
====Rationale:====
* finish converting CNC router to grbl/Candle
====Current compoponents====
* python script to convert FreeCAD file to STEP / STL
====Development targets:====
* <del>port CAD library to nopscadlib</del>
==Hot and cold shower==
** implement .glb file export for OpenSCAD
====Rationale:====
** <del>implement 40mm standard</del>
====Current components:====
** <del>model perforated T slot aluminum</del>
====Development targets:====
** automatic nut/bolt height adjustment when mounting plates
==Printable valves==
** add scale to renders
====Rationale:====
** parts should be indexed at first mounting hole, at origin
====Current components:====
** model HGH20CA linear bearing as nopscadlib part
* 6mm stainless steel ball (BB)
** model / find model for bicycle crank, arms, pedals
* Printed spring?
** <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.


====Development targets:====
==Tim==
* contact Ashton about 40mm square tube
* reverse DNS
* <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==
6. Elkinsdiy.com
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


[[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...)