AbeAnd Logs August
- 1 Thurs Aug 31, 2017
- 2 Wed Aug 30, 2017
- 3 Tues Aug 29, 2017
- 4 Sun Aug 27, 2017
- 5 Sat Aug 26, 2017
- 6 Fri Aug 25, 2017
- 7 Thurs Aug 24, 2017
- 8 Wed Aug 23, 2017
- 9 Sat Aug 19, 2017
- 10 Tues Aug 15, 2017
- 11 Fri Aug 11, 2017
- 12 Thurs Aug 10, 2017
- 13 Wed Aug 9, 2017
- 14 Tues Aug 8, 2017
- 15 Mon Aug 7, 2017
- 16 Sat Aug 5, 2017
- 17 Fri Aug 4, 2017
- 18 Thurs Aug 3, 2017
- 19 Tue Aug 1, 2017
Thurs Aug 31, 2017
Testing new web interface for time and log submission. Looks very nice. I see it seems to work, but I am submitting here as well just in case. The font on the log could be more bold for readability.
Reviewed and made minor adjustments to code. I think the few lines of math are logically correct now. I still need to do a major complete run through to look for any possible bugs and logical errors. It is now less than 150 lines including white space. No features just Auto mode calculating the drawer mid point from Extension time. No averaging of time or fault checking. So if friction and soil issues cause variations in time humans will have to monitor for problems. It will not stop until powered off. There is an older version in the repo with some fault checking on the drawer, but that would need to be tested live with serial outputs and adjusted to set the fault detection point.
Just noticed a slight bug in web interface. The time field says hours. I typed "1 hr" first then I got feedback showing a bullet and sub bullet saying minutes so I typed 60. Now it says 60 hours of course. So numbers only, which makes since, but the bullet text placeholders were confusing. I was thinking with the new interface it should encourage early and often submission of files and log updates. It might be nice to use minutes I noticed some people denoting 0.5hrs on logs for time. With frequent logging minutes make more sense. It will also result in better work time tracking with less estimating.
Wed Aug 30, 2017
Started new code file. Worked on minimizing code. I think I have the order of operations worked into 7 steps of cylinder movement and it lacks any extra fault checking or calibration. Need to fix and double check timing math, which is now only the drawer midpoint from the extension calibration. Down to 168 lines including alot of white space.
Tues Aug 29, 2017
Took a step back from code. Concerned functions not gaining much due to subtle differences in each step requiring significantly different conditions. It just ends up being like the previous, but separated with extra lines for functions.
Now, I am thinking the quickest way to get some new code to test is to strip the unwanted stuff from the old code and push that as a minimal version while a better-coded version with more functions in code and in general is worked out. It will only make full size block in the software auto mode. Most fault checking can be eliminated. This will give more time to consider the button selector thickness options and evaluate how well the timing works under load and what fault points need to be.
Sun Aug 27, 2017
More coding. The previous 2016 code was long mostly because of avoiding anything beyond minimal beginner coding tools. Still, replacing code portions with more complex functions often doesn't reduce overall lines much since a few more lines are needed for functions. I am attempting to write more functions including a major motion function to control each movement. The difficulty is that despite similar code steps have slightly different conditions and accounting for these makes it difficult to create simple encapsulations and reduce length. I was also considering eliminating most of the fault checking used for each movement. One measurement per cycle and the rest being calculated from that may be good enough. However, this would eliminate fault checking for potential jams. These are primarily caused by soil issues and is best solved by the soil preparation system, but not stopping the system to alert the user may lead to more problems including unnecessary wear & tear on the machine.
Many different numbers for constants and timing delays are noted in various documents including the latest ones. I noticed fault tolerance in the 2016 code was written so tight it was likely to fault easily. I probably did that on purpose to determine tolerances somewhat experimentally. Which, may be needed to some extent. How many milis corresponds to ~ 1/8" of motion or 1/4"? I assume 1/8" of error is acceptable, but more than a 1/4" probably not. This can be guessed from cylinder length and Time calculations.
In general, I think the half and even quarter motions for drawer mid point and those for block thickness can be managed simply by dividing max extension time and applying the math estimating extension vs. contraction time difference.
Another good question though is if there is a significant timing difference in a dry run start-up calibration of a clean machine versus under load with earth and grit.
With move function main loop is small so far. Writing the function(s) needed to make it work may be harder though. Tracking different timing for steps may add more code. Currently well below 200 lines though. Fault tracking can probably be made smarter reducing extra timing code, but the new functions will create more code complexity. So I expect it to stay close to 200 lines. The complexity of functions should not be too difficult for novices to read. Simple functions do improve the readability somewhat.
Sat Aug 26, 2017
Continuing work on CEB Press Code.
Reworking Loop steps and trying to figure out how to minimize redundant code in branches. Also considering how button input can be done for thickness setting. If polled in setup it adds code complexity to communicate vars between setup and loop. Polling at loop start would require the user to hold the button. More indicator lights may be useful for UI feedback. Especially with only one button interface, which means delay time has to be the other factor in the UI. Having a separate calibration and/or fixed timing for main cylinder may lead to further redundant code complexity. Many options to consider. With respect to hardware I think it is all good as long as manual and auto hardware is completely unpowered when the other is active; That appears to be the case, but the controller board instruction may be out of date on changes.
Fri Aug 25, 2017
I updated the pump in the PC17.08 master CAD assembly. Reviewing the meeting and Roberto's existing video on assembly I think I see how the assembly WB import and file management works. It is how I've been thinking the FreeCAD file management (tree view & tabs) work or should work already. The only possible slow part I see is if many file source names are different and need to be updated at once. The wiki versions ok, but an organized package of all files of the same version would be nice. That is where git may be interesting, but I haven't gotten to study it in detail yet.
Working on understanding the overall assembly as well as figuring out the assembly WB ideal order of operations. I've used it enough, but still often run into issues with constraints I don't understand that may not be bugs.
Upon further review of my code from 2016 I think the reason I changed to the switch and added all the fault checks was mostly for a possible pause/resume function as well as others discussed last year. In hindsight, these seem rather useless. I see no need for extra features. The use of a manual button for thickness would be simpler. I also can't think of any reason the soil preparation system needs to add extra logic communications. If the system faults for any reason it is easy enough to reset the hardware and recalibrate. Fault detection and an infinite loop (ideally entering a sleep mode) could cease operation until manual reset. Technically the machine should not be left unobserved by the operator(s) so fault detection could be mostly human. There is no collision possibility given design.
The Button thickness selection implies hard coding fixed timing for thicknesses. The assumption that the system needs to be adaptive to different flow rates from differing Power Cubes and engine variations may be overkill. The early code uses delay functions, which is certainly simpler. A function modifying a delay var could effect the needed changes to timing, I think.
Updated PC17.08 Master CAD Assembly by attempting to constrain some fittings to the 2 stage pump.
Created new repo and beginning process of stripping down the old code.
Thurs Aug 24, 2017
Reviewing new CEB Press logic and previous code. The reordering of the calibration steps in the order of operations should help with code simplicity, but much of the branchiness is due to a need for more encapsulation possibly classes. Simple classes increase flexibility and reuse of good code. Classes are considered less novice however and I am not sure how much they add beyond just better functions. Fault detection and other complexities may be better implemented in classes though. Some classes should make the code shorter and appear less cluttered overall. Arduino recommendations are encapsulation into small simple classes for potential reuse across projects.
Other than soil inconsistency the only major point for fault checking is likely when pressing smaller bricks. If the main cylinder is off slightly such that the secondary could catch or to low such that the block would catch. From the documentation, I get that timing has been precise enough though.
Reviewing simpler 2010 code CEB Press/Manufacturing Instructions/Controller Box/Source Code/v5.15.10
In the 2016 code there is a lot of excess branching and detail around timing and checking for faults. The timing precision needed may not be as high as I thought since the system speed is low.
I am assuming the PC1708 assembly is the current immediate priority.
Uploaded version of 2 stage pump for assembly with aproximate I/O ports and extremity. Some schematic data is confusing/wrong, but I think it is close enough and critical parts should be accurate for assembly.
Wed Aug 23, 2017
meeting prep. Reviewing CEB Press code.
Reviewing PC pump and assembly.
Potential issues with the pump and its assembly could arise from the lack of detailed measurements. The Schematics show most major extent measurements and bolt pattern, but the ports and some extremities only have some measurements leaving their precise locations in question. Considering the hard plumbed nature of this there could be something in the way or off. I will start by estimating unknown distances from the schematics, which should be very close. Looking at the overall assembly should then give a better idea if anything might be in the way.
Sat Aug 19, 2017
doing log splitter pump
manufacturer page with detailed specs and a PDF http://en.wx-dl.com/en/ProductView.asp?ID=399&SortID=198
There is metric and english versions of schematics. More links in the working doc https://docs.google.com/presentation/d/1qFTCY8NBRKJCVjVTwvB_5yZROeEpCg_LLxgLip-GoRI/edit#slide=id.g244eeabb5b_0_661
Tues Aug 15, 2017
Fri Aug 11, 2017
Noticed that there is a short bracket with only two holes in an old assembly video. That looks like it makes more sense.
I'm making the needed compounds and running the macro to try to get different views since it doesn't seem to give me the orientation I want yet. Since it copies the compound to a new unnamed FC doc and appears to change the orientation I'm not sure if changing its angle before hand would matter.
I found the rotation property for the IsoView's, but it is tricky and slow.
There are at least a couple things that need to be corrected in CAD files. The bracket sizing and hole positions need to be measured and corrected. I can't seem to find the version showing the videos. The heat sink should also be found and cut down less to be visually accurate.
The SVG to PNG process could be smoother and it unfortunate gdocs do not import SVG's. Lack of certain parts in CAD requires manually drawing them either in inkscape or gdocs, whichever is easier. But, it makes the process slower.
With all these files to work with using git would be beneficial for file uploads.
Guessing I am about 70% done with LAI's, but the magnet process may require more creative drawings.
Time on this has been mostly consumed by many files and slightly old versions or mistakes.
Some of the large compounds take a few minutes to compute drawings via the script, but appears mostly due to single thread. Technically one could run multiple instances per core, but editing CAD assemblies has be completed first. SVG's required repeated cleanup on certain curved sweep shapes. Ability to assemble SVG's of individual CAD parts would be ideal and close enough assuming orientations match.
Most of the SVG files are surprisingly large as well probably due to generation method. But, *.svgz would work well for individual files uploaded to a git repo.
Thurs Aug 10, 2017
Continuing D3D LAI's for Extruder and Wiring.
Had some issue loading iso-view macro, but that seemed to resolve. Now testing new version.
Re-assembled extruder with new sensor holder bracket. It appears to mount close to the hot end, but if I understood correctly it has been tested. It also appears the bracket could be shortened, but I am unsure of any function of the two extra holes. Also the heat sink in the extruder CAD could be edited to be more accurate.
Wed Aug 9, 2017
Design Sprint @ 1PM LAI's for D3D workshop.
Tues Aug 8, 2017
More data in BOM's.
What are final checks & questions on Extruder/Winder?
Mon Aug 7, 2017
continuning work on extruder BOM.
Sat Aug 5, 2017
preparing for sprint.
Power Cube Hydraulic Pump
Dealing with some bugs/features I am not familiar with in FreeCAD, but I got a rough version with full extents up.
checking parts & updating spooler sub assembly.
Need to attempt better wiring codes in CAD and create some type of vector overlay of 2D images maybe.
Fri Aug 4, 2017
working down the extruder BOM researching links, prices, & adding notes.
Thurs Aug 3, 2017
Reviewed meetings, current work, and started discussion on network to consider what needs finishing and how on Extruder and Winder.
I added some slides to both working docs for listing needed tasks.
Tue Aug 1, 2017
reviewing and collecting files to assemble spooler then preparing for the meeting.
working on spooler assembly.