Takacs Ideas Page DONE TODO BLOCKS
OSE_Automation this page tracks robotic automation systems that will work with the MES. this is focused on machines that will take orders from operators or the MES system to preform tasks Such as Logistics, inventorying, Manufacturing, Assembly and track and trace.
OSE MES code https://github.com/takacsjd/OSE_MES -Worked on main python script file -some research on octoprint integration
D3D_Ohio_v18.02 -setting up endstops, had issues here Issuing M119 to show endstop status - I only see Xmin Ymax Zmin
All electrically are closing the contactor. Issues: -Zmin does not show up when triggered but is on Zmin pin. check out firmware -Why is only Y Max showing up? arn't these all mins? Y max shows triggered when depressed when I issue M119 properly, and not energized when not depressed. BUT does not STOP the Y Axis! Yikes! BECAUSE what is stopping it is supposed to be a Y min... NEEED to fix in FW -XMIN is working fine...
Follow up 5/7/2019
https://wiki.opensourceecology.org/wiki/D3D_v19.02 --> use this to get down how they are doing this in production. maybe check out how FW is setup for 19.02 and do NP ++ compare with mine... why are my ES reporting so oddly>?
- Focused on Machine SQL tables
- Working on the concept of "Tools"
- - All machines have tools they use Assembly instructions will remark what TOOLS a machine requires to execute the instruction.
- For example, we will have interchangable extruder types.
- I also intend us to have "cartridge" interchangeable filament D3D EZSwap Filament Cartridges
- - All machines have tools they use Assembly instructions will remark what TOOLS a machine requires to execute the instruction.
- Worked on Daemons some more.
- Produced a GIT repo for MES:
MES_SDS worked on project management and schedule here.
MES SQL system and Daemon design. MES Core Dispatch - Primary Daemon that takes and order from the commercial paid orders table to supervises other processes to see the product all the way to shipping.
MES_SDS - MES core design documents, machine dispatch service, Part design language [PDL], Machine control section, using Octoprint as a basis for automated print clusters.
I need a working printer to do anything!
So, REALLY need to get my ducks in a row on the D3D... I just need to start from the ground up, to difficult to follow our prior build docs. AND I need to make the docs we need!
Here is what Dist. partner Marcin is selling, so it must be tried true and stable :https://wiki.opensourceecology.org/wiki/D3D_v19.02
- Added my printer firmware to a GIT repo: https://github.com/takacsjd/D3D_OH_V18092_FIRMWARE
- Reflecting that software is technically a "part" that needs assembled though "flashing" to controlers parts. I should track software and versions just like to track everything else
with the MES... Need to table this in MES SDS feature requests. (maybe later tonight I kick off a GIT for that?)
Taking orders and continuously printing parts
- There is a print queue request for octoprint and some discussion on it. Might roll with this. Just needs a connector to the ERP system to get a list of pending commercial orders. Basic connectivity is the goal right now.
- This feature is huge and needs a page. And consideration of how we will organize machine automation features - I'd like to, for now, have each machine use a linux (raspi?) machine for managing machine operation.
- so, here is born D3D Mass production DS and D3D Mass production SDS these will cover hardware and software solutions for having a D3D geneology printer preform unmanned printing and ejection; maybe even QC.
- DS is a design spec. more tailored to mechanical or electro-mechanical machines. SDS is a software design specification for some software project.
- short term tho - I need to have a queue of orders from the website use some sort of GCODE starter. (octoprint API? or some sort of net connected printer control to just STREAM gcode from the RASPI to the RAMPS)to run a GCODE file for ejection of a print, and one for printing to start.
- checking the bed for stuff visually before printing, machine vision checking of prints after printing yadda yadda yadda are all just feature requests of these down the totem pole.
- Open Source Commercial Webpage SDS - Here is where I will track the project for a distributive enterprise documented open source website for selling microfactory produced goods.
this page will be a blog for the factory owner, and will integrate with the Enterprise Resource Planning ERP system for putting commercial orders in queue, that the MES MES SDS will consume to produce product.
4/1/2019 to 4/2/2019
D3D_Ohio_v18.02 wiring and inital startup attempts
Bringing my commercial website online - considering only open source options OSE DE Webstore
ERP in simple terms is the business side of things, money, accounting, purchasing sales. It is the highest level of the industrial business computer system.
Here's a good article: http://processengineering.co.uk/article/2017704/the-automation-syste
- 1 ERP- buiznasssss
- 2 MES (Manufacturing execution system)- takes direction from the buisness side to manage all aspects of production, accounting that production, and implimenting track and trace on produced goods though their lifecycle.
- 3 SCADA (Supervisory control and data acquizition)- this will be the system that sends out supervisory commands to all the plants machines based on what the MES wants to
do with orders from the ERP.
- 4 PLC PID PC - or in our case all our machines. this is how the machines execute direction given by SCADA
- 5 sensors actuators and hardware - this is how the parts in the machine execute orders from the machine. like the position data of 3d printer head, its temperature and other data. this layer also shoots that data all the way up to all the other layers.
MES SDS manufacturing execution system software design specification A MES system keeps track of-
- Raw material supply
- Orders upon the factory for products
- Placing and tracking orders made for raw materials or components to fulfil stock or quota determined by MES analetics or people
- WIP (Work in progress) products and product componets
- A ton of other things
BIT SDS Buisness Intelligence System software design specification A BIT keeps track of and does:
- sales and bean counting
- Accounts receivable
- basically, tracks performance and resources... very related to the MES.
D3D_Ohio_v18.02 firmware and connections
Look like I'm about to ellipse when I ordered the D3D parts last year. Moving the work indoors and having beat being out of work sick a week and other life changes I will focus on resuming efforts here - Not to easy to start a business with a child and family while maintaining balance with them. What may help other developers in the future is developing "Days" of the week for each of you - Sunday is my day to focus on hobbies and some of the house chores I focus on. While I enjoy being with my daughter every second of the day, Having break days is proving to be a good rest.
So, less talking/Writing and more doing! I need the D3D and my other cluster printers up so I can start making products, products, products.
I've thought of several products to have on release, and general business missions statements that I will capture in my log today. On the D3D today, I will focus on wiring and extruder / printer calibration.
Business / Mission statements
Product general mission - Do more with less. I want to have minimal, minimal electronic platforms. I'd like most or all products to be focused on Raspi, arduion, relays and a small count of basic discretes. Mechanical parts will also be standarized. So, for example I would select a micro, small, large and xlarge motor I want to use that could conceivably enter into the ecology at some point. I would always use these same motors in similar mounting traditions, and have special boards to make them controlable or ROS (Robot Operating system) compatible. AND all these boards will be easily drillable with our D3D circuit mill, and would be able to use the D3D pick and place. Same idea with electronics frames. Modular, low part count products both electrially and mechanically. More with less.
1. Low part count Robot Vacuum (as discussed with OSE team at large)
2. Drill (as discussed with OSE team at large
Haven't been on for awhile- been pretty busy and cold to get out to the workshop. going to move the operation indoors, so I can finally get this printer running tonight!
Also, I've been considering products I want to print, and the structure of my store.
goal is to get this and the other four printers up and running, then jump right into a development of a MES (manufacturing execution system) linked store where people can buy prints on my printers, and I can request them.
After that, it will be all about products, products products built with OSE values that I can sell - and the rest of the machines I may need to make them. Making this as automated as possible.
first of these will be an ROS robot modules that will help with production, and compleate ecology requirements for industrial robots, ect followed by robot mower, snowplows and vaccume cleaners.
Lofty goals, hoping to land somewhere near them.
Happy new year! working on the D3D oh today D3D_Ohio_v18.02
-today I am starting with compleating wiring of the D3D prusa I3 Extruder - the idea here is to get basic operation; once I at least have this running I'll look into building our most recent extruder iteration.
-I have the workarea cleaned up and the other three printers set up on newly built workbench - none of them are functional, all have clogged old style extuders. cannot wait to get a good extruder live on these guys!
D3D_Ohio_v18.02 Design and printing of 1" D3D PVC drilling jig.
D3D_Ohio_v18.02 Drilling and mounting of D3D - testing cutting methods and test fit with .5" scrap PVC. printing of new extruder parts on new printer
D3D_Ohio_v18.02 recieved new prusa I3 printer!
D3D_Ohio_v18.02 -Work on purchasing -work on a friction mount for the D3D axis - this would friction clamp onto the PVC with screws; and expose a magnetic mounting hardpoint.
D3D_Ohio_v18.02 Hiatus getting 3d parts sourced for D3D extruder. Incorrect JHead was in my home stock, ordered proper J-HEAD and confirmed good fit. Ordering rest of required vitamins to build extruder today. build of new D3D extruder
D3D_Ohio_v18.02 Finish belt routing. Mounting axies to frame. Z bed mounting some electronics work
- assym of x and y axis to PVC frame. Some electronics rigging.
- research on how to setup the printer.
D3D_Ohio_v18.02 2hrs repair of airwolf 3d so we can print the http://opensourceecology.org/wiki/File:Prusa_i3_mk2_extruder_adapted.fcstd Debugged issues with Geeetech mark 8 extruder - fillament jammed. Disassym and emersed hotend in acetone.
- looked for details on assym. of the d3d (Programming, settings ect)
D3D_Ohio_v18.02 PVC cuts and D3D assym.
D3D_Ohio_v18.02 assembly of axis modules
D3D_Ohio_v18.02 Modified CAD drawing to use short idler. Calculations redone and posted to calcs page for team review.
D3D_Ohio_v18.02 Frame added. small adjustments to items. Beginning adding in short idler.
D3D_Ohio_v18.02 Updated drawing. moved around X Y and z axis per meeting feedback. More work to do this weekend.
D3D_Ohio_v18.02 - updated drawing (Pending), BOM on dev template.
3/4/2018 to 3/9/2018
D3D_Ohio_v18.02 - updated drawing.
Contracted Pnemonia, have been slow on getting to things past few days. Still trying to get a print out of my old I3 - If someone has parts or can provide D3D prints, please contact me.
3/3/2018 - 3/4/2018
D3D_Ohio_v18.02 -- Played around in freecad, trying to resize be part to 12", then need to resize axis to match. Once I have the right rod lengths and the U-Axis accomidating the 12" bed, I can measure the length and render a pvc frame. I'm having issues moving the assymbly around. Have to get past the learning curve.
-Also worked on my home printer so I can start printing D3D parts. I added a thermister to the heated bed and worked on getting my mark8 extruder to behave.
Corner ends at 1/2 inch and 1" size have arrived.
https://markforged.com/metal-x/ you can sinter metal looks that the cool way is to print metal bond in resin the normal way, then cut that.
-Going to start having this log just be a quick blurb of what I did and what pages I edited. this stuff needs to start living in my DS branch off of the 3dprinter FS D3D DS.
D3D Functional Specification --Filled out!
D3D Ohio 18.02 Design Specification -- Added stuff! This is where my D3D work will now live. If I mess with it, I will mention that here.
Found a Basis for a render http://opensourceecology.org/wiki/File:Medium_Size_Version_12_in.FCStd
I have a great deal to learn in Freecad on more adv. assym work. Such as how There are parameters for assymblies, and there is a linked parameter for rod lenght between the Right and left Y universal axis so you can change lenght in one spot. super cool.
Attempting print again. Modeling 3D3 12" PVC Morning rendering:
2/23/2018 to 3/1/218
Family sickness, bed versus late night hours Occasional printing and tuning attempts to get parts out for D3D
Parts for D3D continue to come in. purchasing corner ends from amazon per what was modeled by Ruslan
2/22/2018 to 2/23/2018
-Tried to print, had issues with sensors. I had a min temp, this means a short on my extruder0 thermoster... need to check out -Purchased parts from ebay and amazon. --McMaster - still working on getting my account setup there. having a few troubles.
-Having trouble finding all parts and such for freecad was hoping to use an existing rendering. may ask or look for other area. -working with ruslan on getting workbench and pvc stuff loaded up.
Issues finding latest work with freecad, and locating latest workbench
2/17/2018 - 2/20/2018
Ordering of D3D parts per: http://opensourceecology.org/wiki/D3D_v18.01_BOM Learning freeCAD more (macros and move advance assembly) several fixes and epoxy work on printer. Working on bed leveling.
Fixed Z endstop issue! it was always closed. checking with a meter, that port was floating. To fix, I enabled pullups on the Zmin (ardu pin 18) and it is working well. Needed to reglue and attach endstop so will try an actual print tommrow.
more messing around with freecad
Glued and secured extruder to frame on test printer. Started looking more into purchasing parts for main printer build. Looking into 3D modeling the runout sensor. was able to import the .STL mesh into FreeCAD easily.
-z motors moving slow. endstop has a good signal, but not picking up per the 3D3 wiring diagram, z just stops quickly after starting... need to debug... glued in the mk8 extruder to the frame. -Loaded parts and started getting freecad setup to render the filament sensor tomorrow.
-Started researching GIT for versioning our HW / SW projects. -Started thinking about DS / FS layout for 3D3 basepage.
Creating a short development template for my 12" PVC replication of the D3D D3D_Ohio_v18.02
Let's apply some software project management to our printer Hardware and software development cycle to better organize the effort. There are a few key, often "Living" (constantly evolving) documents in any project, R&D or tightly scoped. These documents attached to Project management methods and version control solutions allow for divergent R&D efforts to support a central goal.
So, you'll have a
Functional Specification (FS): "As a user I want to be able to" "The hardware will do x"
Design Specification (DS): "The software accomplishes user requirements in the FS By Though these technologies"
Then you have project management artifacts such as critical path and roadmaps to line up your efforts - what needs to happen before next steps can occur. Then pieces such as gnat charts and burn-down charts to track progress toward a goal. Finally, you have version control that holds organized backups of the project as it progresses in time and is iterated upon to reach the requirements of the FS.
- So, for 3D3 hardware / software independently there will be InDev and Stable hardware / software releases.
- The FS will live as a core, living document reflecting the final evolving requirements of a particular machine (aggregate of modules) or module in the OSE ecosystem.
- Now, off the original FS with both hardware and software there will be, especially with hardware R&D, several "branches" in the project; where a current machine takes a step in a different direction.
- These new pieces can be organized though DS documents For Each Branch (or wiki pages :) ) That will keep solid track of WHERE that current Branch of the current hardware or software is.
- At the end of a branch that grows into a stable release, a the DS goes from a WIP document that is laboriously (and necessarily updated) to a wonderfully detailed report on how that particular artifact works at a technical level with support accessible portions so those whom just wish to replicate, can replicate.
- Strict tracking of branches and versions will allow creation of clear landing pages for any design effort, so any person joining or wishing to use the project can visualize and draw inspiration from the design effort as a whole, or jump down any give rabbit hole of branch and iteration.
- We can realize an effective distribution of research effort though sharing repository links along with related FS and DS Documents.
- For OSE, we will have the FS as a wiki page and DS's also as wiki pages.
- The main project will have a landing page with a blub (A sort of DS in and of itself of the current design of the overall project, R&D efforts and progress) that organizes these documents into a directory of DS pages.
- Of course, this page for a project links up to an overall current engineering effort page for all machines, and then the individual DS's keep track of their Subversion (version control) links.
- For OSE, we will have the FS as a wiki page and DS's also as wiki pages.
-Calibrate and adjust the prusa!
-We will attempt our first print today, if all goes well
-Order Recent rev parts I need for D3D (might cannibalize motors from this printer)
-loaded v1.0 of OSE linux... somehow I had V.45?
-Loaded OSE marlin firmware. --Cura seems super limited, no manual control options to calibrate and level the printer. ---OK, making sure I have printer assigned to VM after POR on the printer board I CAN now see a grayed out "control" option in cura- Good. ---Needed to load a print before it would let me touch control thank goodness! ---After tweeking, I have X and Y axis homing properly! Finally! Z endstop is a little sluggish, and Y axis endstop pin mapping is odd, searching for what that might be.
--Tried hooking printer with OSE linux to repiter host, no dice.
http://opensourceecology.org/wiki/D3D_Controller -Here is where the wiring is. yes, it was a bit unexpected. As I'm using a different printer (for now) I may go back to using repiter host and that firmware for this one. Could test filla runout now though.
Fixed endstop issue. First time, I shorted the logic +- by the common and normally open.
Then, I found the actual firmware (at least what I have loaded) Expects a normally open signal so rewired. rammed into the z axis and had to reglue the sensor, so stopped for the night there.
Filament Runout Sensor
researched converting STL to freecad for model I want to use for the runout sensor.
-Resoldered Servo connector for RAMPS board. -Hooked up all wiring to new RAMPS board
-steppers only move in one direction when commanded from repiter host? (oppisate if contact group reversed... don't know why yet.) Dua - this is due to the endstops. Need to home first, it uses that to "know" where you are allowed to move. I was able to get the x moving after messing with this.
-Board not powered by ATX now, maybe somthing fried. can still command and lcd boots when USB attached and motors still move as before. At the start. only used 15A rated input, then just wired 5A and was able to boot it on just 12V... same results with both 12V inputs wired (Old printer directly put 12V line to the heated bed)
-When endstops are hit, system restarts... looking at the wiring diagram http://osoyoo.com/2016/07/03/reprap-3d-printer-circuit-connection-graph/ I have this right - I checked the switch contacts--this switch is 3 wire, maybe I'm (o crap) shorting something on one of the lines?
-Yup, dosnt restart with the 3rd wire clipped... darn... Totally likely burned out the 5V reg from 12V?
Yep... need a new reg - no biggie and a lucky break.
OSE marlin- I don't see this installed in the OSE linux image. The wiki seems to suggest it is in the OPT folder, but did not find it there or in home. Wiki also mentioned checking the Arduino Examples directories, but did not see it there either.
for now, I'll get this printer rolling and learn marlin. Once I have a handle on navigating marlin, I'll load the latest and just adapt the mechanics for my printer; I'll need this one to print the D3D parts anyway.
OSE Documentation and project management
I've also spent time thinking how to organize some of OSE's projects, particularly D3D. There will be a landing page for the current hot topic machines, then for each machine i'll cover the KEY pieces someone wanting to replicate the Latest version would need
Received my 3D printer kit from amazon! excited to convert my old printer tonight. I'll test the filament sensor if I can. And hopefully, start printing some components for the 3D3 Printer!
Here is the new RAMPS board for my Air Wolf Prusa
I pulled a wire out of one of the servo connectors, so need to resolder that!
So far, Firmware updated and ready to roll.
Fillament Runout sensor setup notes
-Downloaded a new copy of marlin firmware from  [Latest 1.1.8] -Identified area in firmware that needs updated before pushing to the RAMPS arduino ROM. You need to uncomment line 827 of configuration.h to enable the feature.
To reiterate from prior logs, you need to use or jump SERVO3_PIN. For other boards you may need to define FIL_RUNOUT_PIN seperately, also in this config file. [You'd jump this if you do not have a filament sensor installed]
TODO: When I have a physical RAMPS provide nice pictures on what I am jumping and where that is on the hardware.
Fillament runout sensor Notes
I've an older Airwolf 3d printer (Prusa I3 style ~2013) with a dated, proprietary control board. It doesn't appear to be directly marlin compatible and earlier attempts to load repetier firmware had failed.. As a RAMPS is cheap and I've been looking to replace for awhile, I'll go ahead and grab one on the amazon so my setup can look like the groups. Once I have this, I can quickly test the endstop concept in software.
I also am thinking how I might render this to our current 3D printer. http://opensourceecology.org/wiki/D3D
Here's what I have:
Here's the older control board:
because i found it, I'm putting the PVC version here: http://opensourceecology.org/wiki/D3D_PVC_pipe_8in_bed
I'll be making the code change identified in my previous log to OSE linux and finding where the marlin firmware is.
Filament run-out sensor notes 1
some interesting designs. Very simple! I like the first one I see - Printable, and uses just a simple whisker contact switch.
From: [marlin FW site]
"RAMPS-based boards use SERVO3_PIN. For other boards you may need to define FIL_RUNOUT_PIN."
http://marlinfw.org/docs/configuration/configuration.html#filament-runout-sensor -Looks to be easy enough
- if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define FIL_RUNOUT_INVERTING false // set to true to invert the logic of the sensor. #define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined. #define FILAMENT_RUNOUT_SCRIPT "M600"
With this feature, a mechanical or opto endstop switch is used to check for the presence of filament in the feeder (usually the switch is closed when filament is present). If the filament runs out, Marlin will run the specified GCode script (by default “M600”). RAMPS-based boards use SERVO3_PIN. For other boards you may need to define FIL_RUNOUT_PIN.
So, That M600 G-CODE is just
"The M600 command initiates the filament change procedure. The basic procedure will move the print head away from the print, eject the filament, wait for new filament to be inserted and the user to confirm, load and prime the filament, and continue with the print. M600 may be initiated automatically if a filament runout sensor is installed.
Usage M600 [E<pos>] [L<pos>] [X<pos>] [Y<pos>] [Z<pos>] Argument Description [E<pos>] Retract before moving to change position (negative)
[L<pos>] Load/unload length, longer for bowden (negative)
[X<pos>] X position for filament change
[Y<pos>] Y position for filament change
[Z<pos>] Z relative lift for filament change position"
- Week 1-2 - open source the filament runout sensor - mechanical and electrical design that interfaces with preexisting Marlin Firmware. Clearly document this. Upload code to your log. Entries + Design Spec in Google Presentation embedded in your Log. FreeCAD modifying the existing extruder. Check out the Prusa i2 MK3. Point: just the runout, nothing else at this point - essential rationale is - not losing a long print when the filament runs out. Detects runout, it saves position, moves out of way and reload filamnet.
- Week 3-6 - Design PVC version - with a 12" print beds fully. Details of exact dimensions - so print bed gets you exactly
- Week 7 - generate a full BOM
- Week 8-10 - build 3D printer
- Week 11-12 - Join Large Extruder Team and replicate.
Found some interesting thermal batteries: https://www.sunamp.com/about/ Crystalline phase change materials for heat storage may be an OSE compatible device - just using salt to store heat would be super efficient and easy to replicate.
- Jon works at http://www.rovisys.com/ - good experience on automation
- Knows ROS + Gazebo
- Worked on steam turbine (4MW) controls at a wastewater plant incinerator
- Worked in water purification at a wastewater plant
- Knows hydraulic and other controls
- Has friends who do 3DP clay extrusion + kiln
CAD test debrief SCORE 85%
Installing Linux 5 minutes
I had used virtual box to load the OSE linux image. This was a very familiar task for me I do often on the job.
Learning FreeCAD (Most Difficult) - 8 hours
- I had issues finding the "planer constraints". when I tried to rotate a part, I was locked in the x,y axis and did not know why; took some searching to find. - Otherwise, I found freecad accomplished many tasks differently than AutoCAD or Sketchup, with which I am most familiar. The use of separate 2d "sketches" and embedding them to faces was similar to certain aspects of AutoDesk.
Documenting your work - 2 hours
-I have used wiki's from time to time. Took a bit to re-learn the "red Text" concept that a new page is made as a link from a prior page. All content is linked.
-Had issues getting vokoscreen working, Resume functions did not work for that application. When I went to shorten my video, kdenlive was limited to 2000% speed increase, keeping my video at over 30 seconds.
Kdenlive dosn't allow speeding a video beyond 2000%. My capture was 30 minutes log, so I'm left with around a minute video. Either I find some creative way to speed up further, cut, or I need to redo the test with a "time limit"
Attached is the video I have so far, which is a minute or so long instead of the required 30 seconds.
Viewing the video, it also did not render properly. Checking this file I made from memory, I appear to of made some errors on the part layout. I'll redo the cube and shoot to do it in under 20 mins.
-Created this log entry and completed recording of the CAD test. This time, I was able to get vokoscreen to behave and successfully stored the video! now to learn how to edit it to the 30 second version and add the music track.
-Here is the YouTube Video of my full speed CAD test
-Here is the file for the CAD test
1/12 to 1/26/2017
-Focused on installing OSE linux to a Virtual Box image to start working in freecad -Worked on learning freecad ~4days / 8 hours Initially, I had issues rotating objects until I learned how to use the planer constraint tool - I was locked to only a certain axis. I also took plenty of time understanding constraints and how to use them
-Created the cube several times. Vokoscreen would not start and stop correctly, so several recordings were lost