tag:blogger.com,1999:blog-30054508021201680812024-03-13T08:37:02.216-07:00Dr. MonkeyIQC++, Linux, libferris and embedded development. Yet another blog from yet another NARG.Unknownnoreply@blogger.comBlogger248125tag:blogger.com,1999:blog-3005450802120168081.post-82668309569296110702021-02-09T18:57:00.000-08:002021-02-09T18:57:27.177-08:00FileSender UI overhaul to using Bootstrap<p> I have recently made a <a href="https://github.com/monkeyiq/filesender/tree/2021/feb/bootstrap" target="_blank">branch available</a> which updates the user interface for FileSender to use Bootstrap. In this post I will discuss some of the changes and also mention some of the features of FileSender which might be useful to people. FileSender allows you to send and receive large files with people. You can upload a file to FileSender and send somebody a link to be able to download it. You can invite a person to send you a file on a FileSender server that you use and have the option to restrict them to only send files to you. This can be very handy if you meet somebody at a conference who wants to offer you a data set and you would like to only let them send to you. </p><p>FileSender also offers End-to-End encryption so you can be comfortable that your data is only used by those you intend to have access. FileSender is open source and browser based. </p><p></p><p>The following screen shots are taken from the above cited branch with the updated user interface. The upload screen is shown below. I have resisted adding animations to the main "Drag or choose file(s)" panel at this stage. I think the secondary button for select File or select Directory are the main interesting items as perhaps people are not so used to dropping files into the browser and a single "add" action does not explicitly inform a user that a whole directory (recursively) can be added if desired. <br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNtip24JHjyvg_4Sv9jFdSaqlrtQsjb3OhLEEmRimZjkNn8VI4x3pbRDvKd5ctIf0HfG-UKuGTwEKFjXey9U1WUCq7Bq-qn9J9uTqoRcJPHWWOcZ7kyqgUdu_eF1a7lw4KTmT6ntxdsrg/s2111/upload-stage1-start.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="926" data-original-width="2111" height="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNtip24JHjyvg_4Sv9jFdSaqlrtQsjb3OhLEEmRimZjkNn8VI4x3pbRDvKd5ctIf0HfG-UKuGTwEKFjXey9U1WUCq7Bq-qn9J9uTqoRcJPHWWOcZ7kyqgUdu_eF1a7lw4KTmT6ntxdsrg/w400-h175/upload-stage1-start.png" width="400" /></a></div><p></p><p>Once you have added a file you see the manifest and the clear all button has been moved to above the option to remove single files. This listing lets you see the files that will be transferred and also can show why a file might not be ok. For example, if a file is 0 bytes or can not be read, or is a type such as an executable which is not allowed by the system.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbppqCTpJcKpYZMJ42Gep3DeRKJP7WklvoBDSc6R2t_LGIfewcxp1StmaEmmY0y-8efruprS_iG9dJJO4uwaA3ndVbEkDTflU7n_PaJ13hJqDKTY70vKov7ti3mjsyRjRAO124B96S0m8/s2048/upload-stage1-added.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1136" data-original-width="2048" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbppqCTpJcKpYZMJ42Gep3DeRKJP7WklvoBDSc6R2t_LGIfewcxp1StmaEmmY0y-8efruprS_iG9dJJO4uwaA3ndVbEkDTflU7n_PaJ13hJqDKTY70vKov7ti3mjsyRjRAO124B96S0m8/w400-h223/upload-stage1-added.png" width="400" /></a></div><p>If you choose the File Encryption option then you can either set a passphrase or have one generated for you. When FileSender is using a generated password it knows how much entropy was used for the password. So to go back to a user nominated password you have to deselect "generated password" which allows the password field to be edited again. Using a generated password will be more secure than anything a human is likely to enter.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6Yc2IXMjk_uZJETn-RHf89WL8A-juZzZwV2gGtBXWHx1uM8tFc0sGXOQwUw6JtELGupXa_Mt8RK79rSnVP-TybkrxK7ID_AxCycsO_kogJYTOxHYwaDtdrp1LmnKDx9zr06-mZfNLOq8/s2048/upload-stage1-password.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1451" data-original-width="2048" height="284" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6Yc2IXMjk_uZJETn-RHf89WL8A-juZzZwV2gGtBXWHx1uM8tFc0sGXOQwUw6JtELGupXa_Mt8RK79rSnVP-TybkrxK7ID_AxCycsO_kogJYTOxHYwaDtdrp1LmnKDx9zr06-mZfNLOq8/w400-h284/upload-stage1-password.png" width="400" /></a></div><br /><p>After clicking "Continue" you move to stage 2 of the new upload process. The main choice here is if you would like to get a link to the file or would like to email the link directly to the recipient. Many of the other options on this stage can be left at the default and you could just click send from here to start the upload process.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOQ9oCXdgQFQgaJLsmAs5Vij7-T5Jc0AvH7vJsw4mof7HgkUTtXHQg7U8ppdVYl0hiXJT9dht85riWG70LlRe3yp68hlNV0FjkGdPOZHR3SOIfgx7GcIpvDwCfN7LrWzAcCXyAL6saiYI/s2048/upload-stage2-details.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1092" data-original-width="2048" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOQ9oCXdgQFQgaJLsmAs5Vij7-T5Jc0AvH7vJsw4mof7HgkUTtXHQg7U8ppdVYl0hiXJT9dht85riWG70LlRe3yp68hlNV0FjkGdPOZHR3SOIfgx7GcIpvDwCfN7LrWzAcCXyAL6saiYI/w400-h214/upload-stage2-details.png" width="400" /></a></div><br /><p>If you choose the "Or send via email" button the page alters to what is shown below. Again, once you click on Send then the transfer will begin.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrrFLfuNBZ2kFoyOV42sIZ8NK5V6gjLxMJoes_kOe0EFohS5krJIcjeXh5-5HFUFHsZfnv-Myjmj845gxkSZUBVF8TXSSn7m2s1UttrExeKxktMV6jV5qBVYBMhV1OnYqLh48siOeUkjk/s2048/upload-stage2-details-by-email.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1834" data-original-width="2048" height="359" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrrFLfuNBZ2kFoyOV42sIZ8NK5V6gjLxMJoes_kOe0EFohS5krJIcjeXh5-5HFUFHsZfnv-Myjmj845gxkSZUBVF8TXSSn7m2s1UttrExeKxktMV6jV5qBVYBMhV1OnYqLh48siOeUkjk/w400-h359/upload-stage2-details-by-email.png" width="400" /></a></div><p>The upload is happening in the below screen shot. I have paused the upload here to make it easier to capture the screenshot. FileSender can upload using multiple web workers which can work on one or more files at the same time depending on the server configuration. The grey bar below "Admin" is a developer option I have enabled which shows the progress of each of the web workers and how long they have been since the last progress message. It is grey as I have paused the upload. </p><p>The resume button will continue the upload and if a stall is detected will automatically attempt to reconnect and resume the upload (not from the start). The "Reconnect and Continue" button will tell FileSender to close the connections and remake then before resuming the upload. This can be useful if you move a laptop to another network. Even if you IP address and network have changed you should be able to resume the upload with "Reconnect and Continue".</p><p>The automatic resumes and the like on this page are all setup to try to complete the upload if possible. When things stall multiple attempts are made to try to complete the transfer without needing any interaction from you. It is only if all that fails that an error is presented to that effect. Even at that stage you can setup the transfer again and resume without loosing all the data that has already been transferred.<br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8hkpty4WUpThWiE_E3i3Uwh6_OCPE95HHU70vsVURSfVkDPc4i9U_I-BAtrK7dkppTA0gO3ZbqNrcjSt_QkX6EoCnsEpd6SR31tOkQABYPOt7S_rAxHRBIsta-g5ac5y5A7PXZhZW6Iw/s2048/upload-stage3-uploading.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1421" data-original-width="2048" height="278" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8hkpty4WUpThWiE_E3i3Uwh6_OCPE95HHU70vsVURSfVkDPc4i9U_I-BAtrK7dkppTA0gO3ZbqNrcjSt_QkX6EoCnsEpd6SR31tOkQABYPOt7S_rAxHRBIsta-g5ac5y5A7PXZhZW6Iw/w400-h278/upload-stage3-uploading.png" width="400" /></a></div><p>The plan is that after a while you will see the below screen informing you of a successful upload. In this case I have chosen to get a link to the uploaded file. This is the link I can follow to download the file and I can share that link with anybody I wish to be able to download the file(s).<br /></p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7LYVEC0-toXxkKoZQiAuuLO67C58BydC6-vVLTLae1qYCJeF6LY8qdt2PJrfTw4ILBPAaUuqtfQj-jGI04jjNNtS_HHZI72qqgIylKH6spIDg_Ga9c6DGgMICz-mEKi2yoEl7j502Ovg/s2113/upload-stage4-done.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="678" data-original-width="2113" height="129" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7LYVEC0-toXxkKoZQiAuuLO67C58BydC6-vVLTLae1qYCJeF6LY8qdt2PJrfTw4ILBPAaUuqtfQj-jGI04jjNNtS_HHZI72qqgIylKH6spIDg_Ga9c6DGgMICz-mEKi2yoEl7j502Ovg/w400-h129/upload-stage4-done.png" width="400" /></a></div><p></p><p>The My Transfers page shows all the files you have uploaded. The files which have not expired are listing in the main (default) tab. The actions icons all have hints on mouse over to let you know what they are for. As I am an admin user I have an extra option to extend the expire time for any transfer using the red clock. I have used a red overlay for admin privileged actions. In this case, as an admin I can extend the expire time as many times as I like.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNQ_pN3cE6INyBLDOSbi8nHo6AT4WfyBv3vGuk1gZrUnq7lPRTyl4qLNkRTXlTyTTxHGBeHoftkf1zFu1PkcMvisCb5cA9I9LauLcrDYgTovEDrZotaS1tTse099bHQ2S2h3xgvvE4WKw/s2048/my-transfers.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1527" data-original-width="2048" height="299" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNQ_pN3cE6INyBLDOSbi8nHo6AT4WfyBv3vGuk1gZrUnq7lPRTyl4qLNkRTXlTyTTxHGBeHoftkf1zFu1PkcMvisCb5cA9I9LauLcrDYgTovEDrZotaS1tTse099bHQ2S2h3xgvvE4WKw/w400-h299/my-transfers.png" width="400" /></a></div><p></p><p>When you expand a transfer with the + icon you see the details and can access the download link or see an audit log for the file. The ip address information might not be shown depending on how the FileSender instance is configured.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdaeTu3ejEkEVqNLt3oFBtbiPds4ydRTNj3DaPo1kaic2ZH7kTIyV58A2HFCpXcFPmAoPq53k-mkVaFOUfKF3HkbwSbvm7RpxWh_CnahepSPWj5R9_Dqrs-Va1G5HbqYTg5vmHrmeOD8k/s2048/my-transfers-audit-log.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1581" data-original-width="2048" height="309" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdaeTu3ejEkEVqNLt3oFBtbiPds4ydRTNj3DaPo1kaic2ZH7kTIyV58A2HFCpXcFPmAoPq53k-mkVaFOUfKF3HkbwSbvm7RpxWh_CnahepSPWj5R9_Dqrs-Va1G5HbqYTg5vmHrmeOD8k/w400-h309/my-transfers-audit-log.png" width="400" /></a></div><p>The my transfers page can still be used even on smaller displays which is very handy if people want to take a quick look at some data on a tablet or cast it from the tablet to a large screen at a meeting.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW9CSt2ja_LyySClhLWrN48mlb0jGW3Q_mvsDPsWM62qnSAE4w26-1J80aCEveam0jWOJw1ZvDGWJ7iT1D1iAS1iwMyjFOts41IEZTEO9sBUeWUeWaU6sk2-aswCeCg2_Z3A6CZS3koic/s1085/my-transfers-smaller-window.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1000" data-original-width="1085" height="369" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW9CSt2ja_LyySClhLWrN48mlb0jGW3Q_mvsDPsWM62qnSAE4w26-1J80aCEveam0jWOJw1ZvDGWJ7iT1D1iAS1iwMyjFOts41IEZTEO9sBUeWUeWaU6sk2-aswCeCg2_Z3A6CZS3koic/w400-h369/my-transfers-smaller-window.png" width="400" /></a></div><br /><p><br /></p><p>The guests section has the primary action allowing you to invite a guest to the FileSender server. I may update the "can only send to me" and "get a link" into a single drop down option as these two options are mutually exclusive which is currently only shown by the colour and a message when you try to select both at once. This is a hold over from the old UI code and I have been looking to update that code for a long time. Other options like seeing the current guests or which transfers a guest has sent (optional depending on server configuration and settings), are now shown as tabs at the top of the page. In the old UI these were below the invite form and might not even be known to exist at first.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoSnff-VgcUC-UXSvA6WO0s2eOOAc96MKzS-XUUNbF_qYtfGiQ4DQMVtYb8pOR_Nj-BJus3gTpn0ktO9CNxIkz7eI5qoUcp7CWssD-QWYvn9FoQEFjtIeNhqMYPU-qpokgipPnXqLiIIc/s2048/guests-invite.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1724" data-original-width="2048" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoSnff-VgcUC-UXSvA6WO0s2eOOAc96MKzS-XUUNbF_qYtfGiQ4DQMVtYb8pOR_Nj-BJus3gTpn0ktO9CNxIkz7eI5qoUcp7CWssD-QWYvn9FoQEFjtIeNhqMYPU-qpokgipPnXqLiIIc/w400-h336/guests-invite.png" width="400" /></a></div><p></p><p>The download page allows you to select individual files to download or a subset of the files to download into either a tar or zip file. When a file is encrypted you can only download the subset as a zip64 file. I have used zip64 even for small archives in order to not surprise users when they start downloading larger files and find that some downloads might not be supported natively by the tools that come with their operating system. There is a nice free tool which is recommended if you visit this page on macos.</p><p>The download process is a little tricky here as the files have each been encrypted in the browser. The server never sees the passphrase needed to decrypt the files. Once you start to download to a zip for some files they are sent in the encrypted form from the server and decrypted in the browser before being added to a virtual zip64 file which is then streamed to your disk. The result is a zip64 file containing the decrypted files you have selected.</p><p>For real world use the files will likely be more interesting than just random test files I am using here :)<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7_dpRWXffLCdgkSLBEloI48ctneNygPg4H83CfFHOZ3Rj5xk_tKVM2yGuGQYwdVG_ZJ_ToYHBRfuePYQbUl1-RTtlyDwpr-ZX5AkXBWJsOjoFcbwNcEvg43MuDvCrbBnQhCHNzlyDVWI/s2048/download-page-multiple.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1609" data-original-width="2048" height="314" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7_dpRWXffLCdgkSLBEloI48ctneNygPg4H83CfFHOZ3Rj5xk_tKVM2yGuGQYwdVG_ZJ_ToYHBRfuePYQbUl1-RTtlyDwpr-ZX5AkXBWJsOjoFcbwNcEvg43MuDvCrbBnQhCHNzlyDVWI/w400-h314/download-page-multiple.png" width="400" /></a></div><p>If you are new to FileSender and this looks interesting you can setup your own server with using apache/nginx and php to serve, and mariadb/postgresql for database storage and a big disk of your choice ;)<br /></p><p><a href="https://docs.filesender.org/v2.0/install/">https://docs.filesender.org/v2.0/install/</a><br /></p><p><br /></p><br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-64744225587287422812021-01-03T23:26:00.000-08:002021-01-03T23:26:24.134-08:00New home for the Astrolabe, pocket day calc, and coin of sentimental value<p> I turned a slice of a tree trunk into a matching pair of holders for sentimental objects over the break. This has a few coats of polyurethane and deeper coating on the bark. Having some layers on the bark takes away the sharper edges for you. I need to measure the thickness of the poly on the front and inside the pockets as it is certainly measurable. What was a nice fit without finish becomes a rather tight fit with the poly.<br /></p><p> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYLSw4K9ApoVZbKt7oZbAYcLBf8cxVnST8farpAgxw5192bspvUxOh89WgxwGAi-9CinZslBiNTkzjXVBgbAxfpw4IYmhh2LzUpnOTnSsHSyVl_1WFw3P-kEWkLSRCg6bibx958zxXCq4/s1280/astrolabe-holder.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="875" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYLSw4K9ApoVZbKt7oZbAYcLBf8cxVnST8farpAgxw5192bspvUxOh89WgxwGAi-9CinZslBiNTkzjXVBgbAxfpw4IYmhh2LzUpnOTnSsHSyVl_1WFw3P-kEWkLSRCg6bibx958zxXCq4/s320/astrolabe-holder.jpg" width="320" /></a><br /></p><p>Behind the two instruments is the key chain which is tucked away into a deeper pocket. The pockets at the side of each object are to allow fingers to free the object for inspection or frustrating use in the case of the astrolabe.</p><p>I was going to go down the well trodden path of making a small coffee table top from the timber but I like this idea as it frees these objects from their boxes and the darker red timber really compliments the objects embedded within it.<br /></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-44328345446993367372020-08-07T19:05:00.003-07:002020-08-07T19:05:41.118-07:00Small 1/4 inch socket set into a nicer walnut tray<p> I was recently thinking about how I could make a selection of 1/4 inch drive bits easier to use. It seems I am not alone in the crowd of people who leave the bits in the case they came in. Some folks do that for many decades. Apart from being trapped into what "was in the set" this also creates an issue when you have some 1/4 inch parts in a case that includes many more 3/8 inch drive bits. I originally marked the smaller drive parts and though about leaving them in the blow molded case as is the common case.</p><p>The CNC fiend in me eventually got the better of me and the below is the result. I cut a prototype in pine first, knowing that the chances of getting it all as I wanted on the first try was not impossible, but not probable either. Version 1 is shown below.<br /></p><p> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4nDPKNH6XJIAFDhoefsxv5q2DEWRnTkGefFuU262BGZxebzOiREzShKJGmoTuM_UStpn2bjX_ZVJehpYBNc-TUU-W76wTf2KkC4C1i_ZX08wdg-B-0UP67dZWR7h0R5NvOOvloO61pHM/s1280/socket-set-finished.jpg" imageanchor="1" style="display: block; padding: 1em 0px;"><img border="0" data-original-height="960" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4nDPKNH6XJIAFDhoefsxv5q2DEWRnTkGefFuU262BGZxebzOiREzShKJGmoTuM_UStpn2bjX_ZVJehpYBNc-TUU-W76wTf2KkC4C1i_ZX08wdg-B-0UP67dZWR7h0R5NvOOvloO61pHM/s640/socket-set-finished.jpg" width="640" /></a></p><p> The advantage is that now I have the design in Fusion 360 I can cut this design in about an hour. So if I want to add a bunch of deep sockets to the set I can do that for the time cost mostly of gluing up a panel, fixturing it and a little sand a shellac. Not a trivial en devour but the result I think justifies the means. <br /></p><p>Below is the board still fixtured in the cnc machine. I think I will make a jig with some sliding toggle clamps so I can fix panels to the jig and then bolt the jig into the cnc instead of directly using hold down clamps.<br /></p><div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQldx08yhtN2MhHpnBybnZc2ZeX5TMLWv29tZHB3-cA3cZ8ClR9cqR2CKMZihzCfcqFZcsRVguO566flO3ykC_oA0duMc7NTL3Mrysf5p1tKllg1DbuIMt-DvTq-wBf95uH3l6Wx1K3Do/s1280/just-after-cnc-job.jpg" imageanchor="1" style="display: block; padding: 1em 0px;"><img border="0" data-original-height="960" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQldx08yhtN2MhHpnBybnZc2ZeX5TMLWv29tZHB3-cA3cZ8ClR9cqR2CKMZihzCfcqFZcsRVguO566flO3ykC_oA0duMc7NTL3Mrysf5p1tKllg1DbuIMt-DvTq-wBf95uH3l6Wx1K3Do/s640/just-after-cnc-job.jpg" width="640" /></a></div><p>I have planned to use a bandsaw to but a profile around the tools and may end up with some handle(s) on the tray. That part is something I have to think more about. The thinking about how I want the tools to be stored and accessed is an interesting side project.</p><p><br /></p><p><br /></p> <p> <br /></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-7374583747691354492020-03-08T19:54:00.000-07:002020-03-08T19:54:52.329-07:00Terry2020 finally making the indoor beast more stableOver time the old Terry robot had evolved from a basic "T" shape to have pan and tilt and a robot arm on board. The rear caster(s) were the weakest part of the robot enabling the whole thing to rock around more than it should. I now have Terry 2020 on the cards.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxst-8bU17RKgeJOW-NGtFO_55XXpez6BCji3KR-oX0b3QPWC4E5YZzykBcsQr0Vrk_8iKtOFXAgxc6HsrM1Y8mg3KTuLdEv7COzMFf_7_5ZVEOtbK2EkIN_RXcRGigUirLX80FyBlDTs/s1600/terry2020-start-of-build.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="759" data-original-width="1280" height="189" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxst-8bU17RKgeJOW-NGtFO_55XXpez6BCji3KR-oX0b3QPWC4E5YZzykBcsQr0Vrk_8iKtOFXAgxc6HsrM1Y8mg3KTuLdEv7COzMFf_7_5ZVEOtbK2EkIN_RXcRGigUirLX80FyBlDTs/s320/terry2020-start-of-build.jpg" width="320" /></a></div>
<br />
Part of this is an upgrade to a Kinect2 for navigation. The power requirements of that (12v/3a or so) have lead me to putting a better dc-dc bus on board and some relays to be able to pragmatically shut down and bring up features are needed and conserve power otherwise. The new base footprint is 300x400mm though the drive wheels stick out the side.<br />
<br />
The wheels out the sides is partially due to the planetary gear motors (on the under side) being quite long. If it is an issue I can recut the lowest layer alloy and move them inward but I an not really needing to have the absolute minimal turning circle. If that were the case I would move the drive wheels to the middle of the chassis so it could turn on it's center.<br />
<br />
There will be 4 layers at the moment and a mezzanine below the arm. So there will be expansion room included in the build :)<br />
<br />
The rebuild will allow Terry to move at top speed when self driving. Terry will never move at the speed of an outdoor robot but can move closer to it's potential when it rolls again.<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-33271665213082064582020-02-13T22:49:00.000-08:002020-02-13T22:49:05.997-08:00Bidirectional rc joystickWith a bit of tinkering one can use the https://github.com/bmellink/IBusBM library to send information back to the remote controller. The info is tagged as either temperature, rpm, or voltage and units set based on that. There is a limit of 9 user feedbacks so I have 3 of each exposed.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHauq7y0Rp-XvWjJraeQTKKJP8viTRGmwfhyBtX0_mqZyaoCx2dO7DfF1x1SVoSnkhd2GYicx8wrmfyDvBxFPpEiJUcJbXiAFWlqmh81PieS7KMmtFV22hy4AkU9vhzmdA3gIOthUFCZg/s1600/two-way-rc.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHauq7y0Rp-XvWjJraeQTKKJP8viTRGmwfhyBtX0_mqZyaoCx2dO7DfF1x1SVoSnkhd2GYicx8wrmfyDvBxFPpEiJUcJbXiAFWlqmh81PieS7KMmtFV22hy4AkU9vhzmdA3gIOthUFCZg/s320/two-way-rc.jpg" width="320" /></a></div>
<br />
To do this I used one of the Mega 2650 boards that is in a small form factor configuration. This gave me 5 volts to run the actual rc receiver from and more than one UART to talk to the usb, input and output parts of the buses. I think you only need 2 UARTs but as I had a bunch I just used separate ones.<br />
<br />
The 2560 also gives a lavish amount of ram so using ROS topics doesn't really matter. I have 9 subscribers and 1 publisher on the 2560. The 9 subscribers allows sending temp, voltage, rpm info back to the remote and flexibility in what is sent so that can be adjusted on the robot itself.<br />
<br />
I used a servo extension cable to carry the base 5v, ground, and rx signals from the ibus out on the rc receiver unit. Handy as the servo plug ends can be taped together for the more bumpy environment that the hound likes to tackle. I wound up putting the diode floating between two extension wires on the (to tx) side of the bus. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdWpUGsUmt4qaUlwJMH4UZCMsAcpjCU9znpTb2R0b8n6lQ_dlxdwYJEh39K56faexsogUu2cgRGoyStsTmT7tiJoHprkqAq5mYpNyTo2_L5IC3iijzcYf6btiBqBT3U4V3_88o-fChKeQ/s1600/rcjoy-circuit.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="912" data-original-width="1600" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdWpUGsUmt4qaUlwJMH4UZCMsAcpjCU9znpTb2R0b8n6lQ_dlxdwYJEh39K56faexsogUu2cgRGoyStsTmT7tiJoHprkqAq5mYpNyTo2_L5IC3iijzcYf6btiBqBT3U4V3_88o-fChKeQ/s320/rcjoy-circuit.jpg" width="320" /></a></div>
<br />
<br />
The 1 publisher just sends an array with the raw RC values in it. With minimal delays I can get a reasonably steady 120hz publication of rc values. So now the houndbot can tell me when it is getting hungry for more fresh electrons from a great distance!<br />
<br />
I had had some problems with the nano and the rc unit and locking up. I think perhaps this was due to crystals as the uno worked ok. The 2560 board has been bench tested for 30 minutes which was enough time to expose the issues on the nano.<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-74742037983248181562019-06-23T01:10:00.000-07:002019-06-23T01:10:44.717-07:00X-Axis is now ready!The thread plate is now mounted to the base with thread lock in select locations. The top can still come off easily so I can drill holes to mount the gantry to the alloy tongue that comes out the bottom middle (there is one on the other side too).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8mr0oPqY2nkqQ4TDGu9QwgnuVoTw_xaD0UIz7PAhY8MZJHOmhrJ5IHm-j8AyFZ7qSSHXQr7rhQTmcSQE3zBz5gZaCm7-eQwOYfuHCXXek_jHoeirkWHLunQ7AuhbKhkfybtRCLlcxEp4/s1600/slicey+xaxis+ready.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="532" data-original-width="1600" height="106" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8mr0oPqY2nkqQ4TDGu9QwgnuVoTw_xaD0UIz7PAhY8MZJHOmhrJ5IHm-j8AyFZ7qSSHXQr7rhQTmcSQE3zBz5gZaCm7-eQwOYfuHCXXek_jHoeirkWHLunQ7AuhbKhkfybtRCLlcxEp4/s320/slicey+xaxis+ready.jpg" width="320" /></a></div>
<br />
Without the 75mm by 50mm by 1/4 inch 6061 alloy angle brackets you could flex the steel in the middle. Now, well... it is not so easy for a human to apply enough force to do it. The thread plate is only supported by 4 colonnades at the left and right side. The middle is unsupported to allow the gantry to travel 950mm along. I think the next build will be more a vertical mill style than sliding gantry to avoid these rigidity challenges.<br />
<br />
<br />Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-3005450802120168081.post-57112160310628755112019-06-17T19:23:00.001-07:002019-06-17T19:23:51.734-07:00The X Axis is growing...The new cnc X axis will be around a meter in length. This presents some issues with material selection as steel that is 1100mm long by 350mm wide and 5mm thick will flex when only supported by the black columns at each end. I have some brackets to sure that up so the fixture plate will not be pushed away or vibrate under cutting load.<br />
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2uwIgihnFMl85RvjciQIo-Lkotc-ZuXibwiFOQodCN2Vz8wmpPra86Et8qhlnjnXQHIqPey_EfxnueVylt5tbS2iNma7Q__wP235tuSrd7CHadk8Sj4ksqDjiVuFo2bIDowopyTrYDxk/s1600/slicey+new+xaxis.jpg" imageanchor="1"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2uwIgihnFMl85RvjciQIo-Lkotc-ZuXibwiFOQodCN2Vz8wmpPra86Et8qhlnjnXQHIqPey_EfxnueVylt5tbS2iNma7Q__wP235tuSrd7CHadk8Sj4ksqDjiVuFo2bIDowopyTrYDxk/s320/slicey+new+xaxis.jpg" width="299" /></a><br />
<br />
The linear rails are longer than the ballscrew to allow the gantry to travel the full length of the ballscrew. In this case a 1 meter ballscrew allows about 950mm of tip to tip travel and thus 850mm of cutter travel. The gantry is 100mm wide, shown as just the mounting plate in the picture above.<br />
<br />
The black columns to hold the fixture plate are 38mm square and 60mm high solid steel. They come in at about 500grams a pop. The steel plate is about 15kg. I was originally going to use 38mm solid square steel stock as the shims under the linear rails but they came in at over 8kg each and the build was starting to get heavy.<br />
<br />
The columns are m6 tapped both ends to hold the fixture plate up above the assembly. I will likely laminate some 1.2mm alloy to the base of the fixture plate to mitigate chips falling through the screw fixture holes into the rails and ballscrew.<br />
<br />
I have to work out the final order of the 1/4 inch 6061 brackets that sure up the 5mm thick fixture plate yet. Without edge brackets you can flex the steel when it is only supported at the ends. Yes, I can see why vertical mills are made.<br />
<br />
I made the plate that will have the gantry attached on the cnc but had to refixture things as the cnc can not cut something that long in any of the current axis.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiremFGiFI34SArzcpSTsYlRuQFBM5EHVoSZ8lsjF5m5OofO2HcsQDdalBBgL0WnJJPDlAYUA5msCFSQn0PjQraauDQEMrxSIS-wpN7ZAcZmurxYdm6UwXIjX9XYF0tv7eNCUdW1P33I_0/s1600/slicey+making+new+xaxis+gantry+plate.jpg" imageanchor="1"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiremFGiFI34SArzcpSTsYlRuQFBM5EHVoSZ8lsjF5m5OofO2HcsQDdalBBgL0WnJJPDlAYUA5msCFSQn0PjQraauDQEMrxSIS-wpN7ZAcZmurxYdm6UwXIjX9XYF0tv7eNCUdW1P33I_0/s320/slicey+making+new+xaxis+gantry+plate.jpg" width="320" /></a><br />
<br />
It is interesting how much harder 6061 is compared to some of the more economic alloys when machining things. You can see the cnc machine facing more resistance especially on 6mm and larger holes. It will be interesting to see if the cnc can handle drilling steel at some stage. <br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-33243823139879640082019-02-25T18:29:00.000-08:002019-02-25T18:29:45.138-08:005 axis cnc fun!The 5th axis build came together surprisingly well. I had expected much more resistance getting the unit to be known to both fusion360 and LinuxCNC. There is still some tinkering to be done for sure but I can get some reasonable results already. The video below gives an overview of the design:<br />
<br />
<iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/tarSh_rIhMw" width="560"></iframe>
<br />
<br />
Shown below is a silent movie of a few test jobs I created to see how well tool contact would be maintained during motion in A and B axis while the x,y,z are moved to keep the tool in the right position. This is the flow toolpath in Fusion360 in action. Non familiarity with these CAM paths makes for a learning curve which is interesting when paired with a custom made 5th that you are trying to debug at the same time.<br />
<br />
<iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/ZNlW5drZXlY" width="560"></iframe>
<br />
<br />
I haven't tested how well the setup works when cutting harder materials like alloy yet. It is much quieter and forgiving to test cutting on timber and be reasonably sure about the toolpaths and that you are not going to accidentally crash to deep into the material after a 90 degree rotation.<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-59505078414149905232019-02-17T23:40:00.000-08:002019-02-17T23:40:44.990-08:005th axis getting up to speedAfter a little bit of calibration and tinkering in the fusion360 cps output filter files the cnc is starting to take advantage of the new 5th axis. Below is a "Flow" multiaxis toolpath finishing a sphere with a flat endmill. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUxB7vOWt1YDGrDghn5ypO9XntuC0SymIOyw2TfQn0SgmaOAVMyGYx0yzpsLxDww7ijYxsRhZ_PHsD4PtTDgXCx43sQBwDOasHNfRaV5sRJ3jMLsiR-nTJOulU900e79oZ0B0koSX-ato/s1600/slicey-5th-sphere.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="960" data-original-width="1280" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUxB7vOWt1YDGrDghn5ypO9XntuC0SymIOyw2TfQn0SgmaOAVMyGYx0yzpsLxDww7ijYxsRhZ_PHsD4PtTDgXCx43sQBwDOasHNfRaV5sRJ3jMLsiR-nTJOulU900e79oZ0B0koSX-ato/s320/slicey-5th-sphere.jpg" width="320" /></a></div>
<br />
There are still some issues that I have to address. It has been a surprisingly good experience so far. Starting out cutting 5 sides of a block and moving on to cutting the edges at an angle. This is the third test where I rough out the sphere using a 3d adaptive path and then use a flow multiaxis path to clean things up. Things look better in video and there is some of that to come.<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-35541758818285547162018-10-01T18:20:00.000-07:002018-10-01T18:20:04.337-07:00CNC made close up lens filter holderClose up filters attach to the end of a camera lens and allow you to take photos closer to the subject than you normally would have been able to do. This is very handy for electronics and other work as you can get clear images of circuit boards and other small detail. I recently got a collection of 3 such filters which didn't come with any sort of real holder, the container they shipped in was not really designed for longer term use.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg01RV4cpzOmDrXDe1fG0ScHEx0sgtRTtUG3IcqS-kBykyxxy6tcghSdPWdiEBvwXJFxyBBbfdsAI0TypqV0dwwmNlCNV88Y32rwZq_volcT3A7M83ykGTjxKW3bowPF4BXKI3NCdp6OZ0/s1600/closeup-lens-filter-holder1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1547" data-original-width="1600" height="309" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg01RV4cpzOmDrXDe1fG0ScHEx0sgtRTtUG3IcqS-kBykyxxy6tcghSdPWdiEBvwXJFxyBBbfdsAI0TypqV0dwwmNlCNV88Y32rwZq_volcT3A7M83ykGTjxKW3bowPF4BXKI3NCdp6OZ0/s320/closeup-lens-filter-holder1.jpg" width="320" /></a></div>
<br />
The above is the starting design for a filter holder cut in layers from walnut and stacked together to create the enclosure. The inside is shown below where the outer diameter can hold the 80mm black ring and the inner circles are 70mm and are there to keep the filters from touching each other. Close up filters can be quite fish eyed looking with a substantial curve to the lens on the filter, so a gap is needed to keep each filter away from the next one. A little felt is used to cushion the filter from the walnut itself which adds roughly 1.5mm to the design so the felt layer all have space to live as well.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBZgZdQa2tfx1yiLTOcF49wh2VtLgtgnj8sSAl43wsxQ_XY7NSnBGcdmsLO_H4Z2U5wqDZyJCiwd337cv3WLxkQ4mhZamt9P_7IxAZsyNlL4sr7AOa4e-MWKO4VGS_NPJ0XrVQYOvYCwQ/s1600/closeup-lens-filter-holder2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="972" data-original-width="1600" height="194" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBZgZdQa2tfx1yiLTOcF49wh2VtLgtgnj8sSAl43wsxQ_XY7NSnBGcdmsLO_H4Z2U5wqDZyJCiwd337cv3WLxkQ4mhZamt9P_7IxAZsyNlL4sr7AOa4e-MWKO4VGS_NPJ0XrVQYOvYCwQ/s320/closeup-lens-filter-holder2.jpg" width="320" /></a></div>
<br />
The bottom has little feet which extend slightly beyond the tangent of the circle so they both make good contact with the ground and there is no rocking. Using two very cheap hinges works well in this design to try to minimize the sideways movement (slop) in the hinges themselves. A small leather strap will finish the enclosure off allowing it to be secured closed.<br />
<br />
It is wonderful to be able to turn something like this around. I can only imagine what the world looks like from the perspective of somebody who is used to machining with 5 axis CNC.<br />
<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-32128526932664076222018-09-07T01:45:00.000-07:002018-09-07T01:45:59.509-07:00A floating shelf for tabletsThe choice of replacing the small marble table entirely or trying to "work around" it with walnut. The lower walnut tabletop is about 44cm by 55cm and is just low enough to give easy access to slide laptop(s) under the main table top. The top floating shelf is wide enough to happily accommodate two ipad sized tablets. The top shelf and lower tabletop are attached to the backing by steel brackets which cut through to the back through four CNC created mortises.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglXZnxcHGzZU-MadiLABOUnwygk8FA2-bXO6UltAQTO9UlLkiCAn6XVYCrjUskUBZNTY5jqLhMeoEIUZRx7ZeB0kugf2S51faP4OWr2YCTA9su5vxmv3et1_RnWfjJnyVsP9qM6PNxKBA/s1600/professional-stand.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1280" data-original-width="853" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglXZnxcHGzZU-MadiLABOUnwygk8FA2-bXO6UltAQTO9UlLkiCAn6XVYCrjUskUBZNTY5jqLhMeoEIUZRx7ZeB0kugf2S51faP4OWr2YCTA9su5vxmv3et1_RnWfjJnyVsP9qM6PNxKBA/s320/professional-stand.jpg" width="213" /></a></div>
<br />
Cutting the mortises was interesting, I had to drop back to using a 1/2 inch cutting bit in order to service the 45mm depth of the timber. The back panel was held down with machining clamps but toggles would have done the trick, it was just what was on hand at the time. I cut the mortises through from the back using an upcut bit and the front turned out very clean without any blow out. You could probably cut yourself on the finish it was so clean.<br />
<br />
The upcut doesn't make a difference in this job but it is always good to plan and see the outcomes for the next time when the cut will be exposed. The fine grain of walnut is great to work with CNC, though most of my bits are upcut for metal work.<br />
<br />
I will likely move on to adding a head rest to the eames chair next. But that is a story for another day.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-13334606478140939212018-07-02T19:34:00.000-07:002018-07-02T19:34:33.772-07:00LinuxCNC and latencyWhen you enter the 4th and 5th axis world for cnc things start getting interesting. I have started looking at how LinuxCNC works with a plan to use it as the primary gcode runner on a higher axis machine.<br />
<br />
Of the many options that LinuxCNC offers, I might start out using a parallel port and small breakout board to software signal some stepper controllers. These controllers have an enable, step, and direction pin and can be wired up in a few ways. This involves if the signal goes to the A+ pin or if you run high voltage to those A+ pins and run the signal to the A- pin. See for example about half way down this <a href="http://smoothieware.org/general-appendixes">smoothieboard page.</a> <br />
<br />
Anyway, back to the LinuxCNC topic. The main thing that controls how well you can control stepper motors over the parallel port is how accurately the LinuxCNC process can schedule itself. if there is a big delay or jitter between calls that are supposed to be at a fixed distance in time apart then the machine control will not be as you might like. The latency-test program can be used to see the jitter.<br />
<br />
The LinuxCNC <a href="http://linuxcnc.org/docs/html/getting-started/getting-linuxcnc.html#_normal_download">images</a> are based on Debian wheezy. This distribution includes a Linux kernel designed for supporting real time operation. There are a few real time Linux options floating around and the kernel on stretch (rt preempt) that is installed by installing linuxcnc-uspace is different to the one used by the wheezy image (RTAI). IIRC.<br />
<br />
For controlling the machine I put together a combination for around $200 including an Intel Pentium G4560 on a Asus H110M-C2 with 4gb of 2400Mhz RAM. This relies on having cases, psu, drives etc already. This has an Intel NIC and onboard prt header (no pci bracket). The CPU has 2 cores and can do two HT.<br />
<br />
Booting the current LinuxCNC iso image and running the latency-test gave about 3200 idle and 5100 under load. The two downsides are that the kernel was old enough that M.2 didn't work and the NIC was not detected.<br />
<br />
Installing Debian Stretch on the machine the M2 and nic were both detected and all was well. I then installed the LinuxCNC packages which brought in the preempt rt kernel:<br />
<br />
Linux bitbreaker 4.9.0-6-rt-amd64 #1 SMP PREEMPT RT Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64 GNU/Linux<br />
<br />
The latency-test came out at about 40,000 idle and up to 70,000 under load. Not quite what I had hoped for. Adding "isolcpus=2,3 idle=poll intel_idle.max_cstate=0 processor.max_cstate=0" to the kernel cmdline and using taskset -cp 2 $pid moved the numbers to 22,000 and 40,000 respectively. Better, but not what I had seen on the official recommended ISO bootup.<br />
<br />
To cut a long story short(er) doing a telinit 3 and going non graphical on the control machine and using ssh -Y to login and run the latency-test I was able to get down to 4000 under load. This is again by forcing the rtapi_app to use a reserved CPU core.<br />
<br />
Maybe using a different graphics card or some other graphics options would allow the latency to be lower on the display of the machine. But I'm fairly happy to run the GUI to display on the laptop to harvest the better latency numbers.<br />
<br />
It is handy to be able to get closer to the jitter numbers that are given when using the official ISO for LinuxCNC as it gives the feeling that I'm not loosing out on good machine control because I'm on stretch and a customized setup. Ironically, using the nice new hardware for the build actually made initial setup harder. Though I imagine that is a temporary situation.<br />
<br />
Hopefully those better jitter numbers can be had for real machining over the network too.Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-3005450802120168081.post-31835227214834715562018-06-10T00:11:00.001-07:002018-06-10T00:11:18.828-07:00A new libferris is coming! 2.0.xA while back I ported most of the libferris suite over to using boost for smart pointers and for signals. The later was not such a problem but there were always some fringe cases to the former and this lead to a delay in releasing it because there were some known issues.<br />
<br />
I have moved that code into a branch locally and reverted back to using the Modern C++ Loki library for intrusive reference counting and sigc++. I imported my old test suite into the main libferris repo and will flesh that out over time.<br />
<br />
I might do a 2.0.0 or 1.9.9 release soonish so that the entire stack is out there. As this has the main memory management stuff that has been working fine for the last 10 years this shouldn't be more unstable than it was before.<br />
<br />
I was tempted to use travis ci for testing but will likely move to using a local vm. Virtualization has gotten much more convenient and I'm happy to setup a local test VM for this task which also breaks a dependency on companies which really doesn't need to be there. Yes, I will host releases and a copy of git in some place like github or gitlab or whatever to make that distribution more convenient. On the other hand, anyone could run the test suite which will be in the main libferris distro if they feel the desire.<br />
<br />
So after this next release I will slowly at leisure work to flesh out the testsuite and fix issues that I find by running it over time. This gives a much more incremental development which will hopefully be more friendly to the limited time patches that I throw at the project.<br />
<br />
One upside of being fully at the mercy of my time is that the project is less likely to die or be taken over by a company and lead in an unnatural direction. The downside is that it relies on my free time which is split over robotics, cnc, and other things as well as libferris. <br />
<br />
As some have mentioned, a flatpak or docker image for libferris would be nice. Ironically this makes the whole thing a bit more like plan9 with a filesystem microkernel like subsystem (container) than just running it as a native though rpm or deb, but whatever makes it easier.<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-44756408118472572632018-04-12T22:30:00.000-07:002018-04-12T22:30:15.819-07:00My little robotic palsYears ago I decided to build an indoor robot with multiple kinects for navigation and a robotic arm for manipulation. It was an interesting time working out how to do this and what is needed to get a mobile base to map and navigate a static and dynamic indoor space. Any young players reading this might think that ROS can just magically make this all happen. There are some interesting issues to discover building your own base and some, um, "issues" shall we say that you will need to address that are not in the books or docs. I won't spoil it here for the new players other than to say be prepared to be persistent. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvGF0qbKmUNHeCBD7p2YWZbsieuRCY-LO2LEHS45OvTcjKHFgR8yR7J4gQuX40erSc_t5XWvEAK4tZiK8SWXMDPcywdJ8dPVe6hiyx6gw93vuuTS38lofjRzgO_BldB6g2kZ6X_RdBLV0/s1600/terry-frontal.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="701" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvGF0qbKmUNHeCBD7p2YWZbsieuRCY-LO2LEHS45OvTcjKHFgR8yR7J4gQuX40erSc_t5XWvEAK4tZiK8SWXMDPcywdJ8dPVe6hiyx6gw93vuuTS38lofjRzgO_BldB6g2kZ6X_RdBLV0/s320/terry-frontal.jpg" width="140" /></a></div>
<br />
There are two active wheels at the front and a single drag wheel at the back about 12 inches behind the front wheels. I wrote the code to control the arm myself as custom ROS nodes. A great trick here is you can inject sinusoidal movement by injecting a shim ROS node to take one target and smoothly move towards it.<br />
<br />
Now I have a new friend for outdoor activity, the "hound bot". The little furry friend is still sans hair but has gps, imu, rc control override, and a ps4 eye camera mounted for depth perception and mapping. Taking a leaf out of one of the big car makers book and only using cameras for navigation. But for me it is about cost since a good lidar is still much to expensive for the hound.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivaznW2jicV2Clxg18Bzw-Pr0ypGawvbizQ93CUnZKjhzefhM-z2JZ1uyoca3SDSenMNIDhVsZ4KmlpRQBGco0L7a2NQ3V_gAtvz9S6yuJ6jT3q2hAU_gfNhPzWqSoUfKOnA6-wiDb0c8/s1600/houndbot2018.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1528" data-original-width="1280" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivaznW2jicV2Clxg18Bzw-Pr0ypGawvbizQ93CUnZKjhzefhM-z2JZ1uyoca3SDSenMNIDhVsZ4KmlpRQBGco0L7a2NQ3V_gAtvz9S6yuJ6jT3q2hAU_gfNhPzWqSoUfKOnA6-wiDb0c8/s320/houndbot2018.jpg" width="268" /></a></div>
<br />
The hound is a sort of monocoque where the copper looking square part at the front is part of a 1/4 inch aircraft grade alloy solid welded chassis that extends the lenght of the robot. The hound can do about 20km/h and is around 20kg in heft. The electronics bay in the middle is protected by a reinforced carbon fibre layup that I did. Mixing material for fun and slight weight loss.<br />
<br />
One great part about doing this "because I want to" is that I am unbounded. Academic institutions might say that building robust alloy shells is not a worthwhile task and only the abstract algorithms matter. I get to pick and choose what matters based purely on what is interesting, what is hard to do (yay!), and what will help me get the robot to perform a task that I want.<br />
<br />
The hound will get gripper(s) so it can autonomously "fetch" things for me such as the mail or go find and pick up objects on the lawn.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-23463122407543337042018-04-01T17:42:00.000-07:002018-04-01T17:42:54.929-07:00The Gantry is attached!Now the fourth axis finally looks at home on the CNC plate. The new gantry sides are almost 100mm taller than the old ones and share a similar shape. While the gantry was off the machine was a good time to attach the new Z-Axis which gains a similar amount of Z travel. Final adjustment of where the spindle sits in its holder are still needed but it makes sense for the cutting edge to be fairly high up when the Z-Axis is fully retracted as shown.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjidfQD2eOgDJGhCN_-50WGvMl0lcCVHfPsn15lm_ZGqby6HK5VhvG_9dHftnBXcGBwhhq3_HuWx3xLtPEQnaM0U_8qbE9Xv81igEHTztZQ3RaTtrQrVtfcBddP1XUG9uAIoJ10KDulAiA/s1600/new-gantry.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1192" data-original-width="1280" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjidfQD2eOgDJGhCN_-50WGvMl0lcCVHfPsn15lm_ZGqby6HK5VhvG_9dHftnBXcGBwhhq3_HuWx3xLtPEQnaM0U_8qbE9Xv81igEHTztZQ3RaTtrQrVtfcBddP1XUG9uAIoJ10KDulAiA/s320/new-gantry.jpg" width="320" /></a></div>
<br />
<br />
After a day of great success early on a day of great problem solving arrived before the attachment was possible. The day of great success involved testing the two new sides to see if or how well they attached to the mount points at the base of the machine. These holes in the gantry were hand marked, drilled, and tapped so there was some good chance that they were off target enough to not work well. But those all went fine.<br />
<br />
The second success was mounting the Z-Axis to the existing points on the gantry. I had in the back of my mind the thought that one side (the three holes on the bottom of the mount) to line up and attach fine but the top holes to be out of alignment. Both of these plates, seen in horizontal in the image above, were made by CNC so the holes should be where I intended. Though these plates were both mounted to the Z-Axis and the bottom plate goes right through to the lower steel bracket so the alignment might not have been 100%. I registered both plates to the smooth side of the spindle backing plate so the alignment in that axis should have been ok. To great surprise and joy the top holes also aligned perfectly and the second phase fell into place.<br />
<br />
It was only when putting the new sides onto the gantry that interesting things started to happen. I will have a new blog post on that part soon and likely a video of the problems and solutions for that part. One thing I will say now is that it helps to have washers, bolts, and spare skate bearings on hand for this process depending on how you have designed your far side gantry upright.<br />
<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-7074795978887413752018-03-19T00:46:00.000-07:002018-03-19T00:46:02.769-07:00Waiting for the other Gantry to dropWhen cutting the first side of the gantry I used the "traditional" hold down method of clamps and the like on the edges. That works ok when you have a much larger piece of alloy than the part you are cutting. In this case there isn't much spare in the height axis (left right as shown) and as you can see very little in the x axis (up/down in the below image). My clamping allowed for more vibration on the first cutting than I like so I changed how I went about the second side of the gantry.<br />
<br />
For the second gantry, after flipping things in the software so that I was coming in from the other side I drilled out 4 m6 holes and countersank them.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiooX0zkFR-V7fykl2Iyde1pD7_DfhD7sSS4z2Wb1wti2d92Qi0w7VHGt7sv_I-nk-IyqMqjjSDvGP_qMIMShXP3Hi7GUMa1UDaUib8y33l0mTsEAX0v9jKqYmlAuE7yRxbQoQvSI31tOM/s1600/gantry-other-side.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiooX0zkFR-V7fykl2Iyde1pD7_DfhD7sSS4z2Wb1wti2d92Qi0w7VHGt7sv_I-nk-IyqMqjjSDvGP_qMIMShXP3Hi7GUMa1UDaUib8y33l0mTsEAX0v9jKqYmlAuE7yRxbQoQvSI31tOM/s320/gantry-other-side.jpg" width="320" /></a></div>
<br />
This way the bolts (m6x40) were almost flush with the work piece. These bolts go straight through the plywood and connect with t-slot nuts in the alloy bed of the cnc. So there isn't much ability to use bolts that are too long for this application. Counter sinking the bolts helps on a machine with limited Z travel as using some non stubby drill bits really locks down the amount of free play and clearance you can get. The downside of this work holding is that you are left with 4 m6 holes that don't really need to be in the final product. <br />
<br />
In this case it doesn't matter as I can use them and a new plate to mount one or two cameras on the back gantry facing forwards. I have found that the best vantage for CNC viewing is when not in the same room and looking at the video streams.<br />
<br />
In future jobs I might move the countersunk bolts to the edge so they are not on the final work piece.<br />
<br />
So now all I have to do is free this piece from the waste, tap a bunch of m5 holes, drill and tap 5 holes on 3 sides of the new gantry pieces and I'm getting close to loading it on.<br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-70265372136142694872018-01-21T04:02:00.001-08:002018-01-21T04:02:54.454-08:004cm thick wood cnc project: shelfThe lighter wood is about 4cm thick. Both of the sides are cut from a single plank of timber which left the feet with a slight weak point at the back. Given a larger bit of timber I would have tapered the legs outward from the back more gradually. But the design is restricted by the timber at hand.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXtl0wVTsdqUNvFkIWuRLvMJ-_HxiGGM2CLTfaViCyeH8EWCJqrstaF_mojE3QHxUJgHZprcH_fvOqIvweaqef8nRsTGjnV6XSXmQWcrzWcxC78XnAgOS_nDSohxF8pENgwgOTEFIi2Vg/s1600/cnc-4cm-shelf.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1025" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXtl0wVTsdqUNvFkIWuRLvMJ-_HxiGGM2CLTfaViCyeH8EWCJqrstaF_mojE3QHxUJgHZprcH_fvOqIvweaqef8nRsTGjnV6XSXmQWcrzWcxC78XnAgOS_nDSohxF8pENgwgOTEFIi2Vg/s320/cnc-4cm-shelf.jpg" width="205" /></a></div>
<br />
The shelves are plywood which turned out fairly well after a few coats of poly. I knocked the extreme sharp edges of the ply so its a hurt a little rather than a lot if you accidentally poke the edge. This is a mixed machine and human build, the back of the plywood that meets the uprights was knocked off using a bandsaw.<br />
<br />
Being able to CNC thick timber like this opens up more bold designs. Currently I have to use a 1/2 inch bit to get this reach. Stay tuned for more CNC timber fun!<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-74277805947591506802018-01-05T05:17:00.000-08:002018-01-05T05:17:30.066-08:00That gantry just pops right offHobby CNC machines sold as "3040" may have a gantry clearance of about 80mm and a z axis travel of around 55mm. A detached gantry is shown below. Notice that there are 3 bolts on the bottom side mounting the z-axis to the gantry. The stepper motor attaches on the side shown so there are 4 NEMA holes to hold the stepper. Note that the normal 3040 doesn't have the mounting plate shown on the z-axis, that crossover plate allows a different spindle to be mounted to this machine.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg80b0oWoUbR-N7aCIXeNYimhqpvTSZm9U1y1ADQO8tTH-JbVnpqAZId5kHVy7kh5dpGCVeNSq1GMmCD3hYkek6MvvaNB05lgi83OGQHkY3fUlRaOLOF2J0hZ7rN32wKNlv1R-EQyX0w-8/s1600/pop-gantry.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1054" data-original-width="1600" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg80b0oWoUbR-N7aCIXeNYimhqpvTSZm9U1y1ADQO8tTH-JbVnpqAZId5kHVy7kh5dpGCVeNSq1GMmCD3hYkek6MvvaNB05lgi83OGQHkY3fUlRaOLOF2J0hZ7rN32wKNlv1R-EQyX0w-8/s320/pop-gantry.jpg" width="320" /></a></div>
<br />
The plan is to create replacement sides with some 0.5inch offcut 6061 alloy. This will add 100mm to the gantry so it can more easily clear clamps and a 4th axis. Because that would move the cutter mount upward as well, replacing the z-axis with something that has more range, say 160mm becomes an interesting plan.<br />
<br />
One advantage to upgrading a machine like this is that you can reassemble the machine after measuring and designing the upgrade and then cut replacement parts for the machine using the machine.<br />
<br />
The 3040 can look a bit <span data-dobid="hdw">spartan with the gantry removed.</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4ARN3nKA7nHTkBRuvELW9yDRIVGCVMKtixfwxAS_VLbyeb5wqzVKOHByY1TxXP0Xzg5hinK3LfCc2O4Rrv0Gez10TsCROJ_QOwdv59dB6kDT93e5YS5dAuwfqG9UqUElrFOndEF1rmMQ/s1600/cnc-base.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="853" data-original-width="1280" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4ARN3nKA7nHTkBRuvELW9yDRIVGCVMKtixfwxAS_VLbyeb5wqzVKOHByY1TxXP0Xzg5hinK3LfCc2O4Rrv0Gez10TsCROJ_QOwdv59dB6kDT93e5YS5dAuwfqG9UqUElrFOndEF1rmMQ/s320/cnc-base.jpg" width="320" /></a></div>
<br />
The preliminary research is done. Designs created. CAM done. I just have to cut 4 plates and then the real fun begins.<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-68527722841041454002017-10-03T03:41:00.000-07:002017-10-03T03:41:08.056-07:00Ikea wireless charger in CNC mahogany caseI notice that Ikea sell their wireless chargers without a shell for insertion into desks. The "desk" I chose is a curve cut profile in mahogany that just happens to have the same fit as an LG G3/4/5 type phone. The design changed along the way to a more upright one which then required a catch to stop the phone sliding off.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIB4HKzChzua9CRYETm3Vp3ZM5k1V_8WfWqdtyYXZGYy1nbpXhNPH8FhDIvFXL318BCWlR8AwOb_tPswEjJR974rWuFpMX6B74TSX7iti0Dbzx_2fPLO81_jDI3hLdWUcciXSuDXDkUHE/s1600/ikea-charger-case.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1007" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIB4HKzChzua9CRYETm3Vp3ZM5k1V_8WfWqdtyYXZGYy1nbpXhNPH8FhDIvFXL318BCWlR8AwOb_tPswEjJR974rWuFpMX6B74TSX7iti0Dbzx_2fPLO81_jDI3hLdWUcciXSuDXDkUHE/s320/ikea-charger-case.jpg" width="201" /></a></div>
<br />
This was done in Fusion360 which allows bringing in STL files of things like phones and cutting those out of another body. It took a while to work out the ball end toolpath but I finally worked out how to get something that worked reasonably well. The chomps in the side allow fingers to securely lift the phone off the charger.<br />
<br />
It will be interesting to play with sliced objects in wood. Layering 3D cuts to build up objects that are 10cm (or about 4 layers) tall.<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-29299783652470633122017-08-20T15:56:00.000-07:002017-08-20T15:56:01.148-07:00CNC Z Axis with 150mm or more of travelMany of the hobby priced CNC machines have limited Z Axis movement. This coupled with limited clearance on the gantry force a limited number of options for work fixtures. For example, it is very unlikely that there will be clearance for a vice on the cutting bed of a cheap machine.<br />
<br />
I started tinkering around with a Z Axis assembly which offers around 150mm of travel. The assembly also uses bearing blocks that should help overcome the tensions that drilling and cutting can offer. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4Mnym7IYI96Ax2S8RHj-4ZV_3eTSP8fwTayIGnjW4qo7CC9TSEn3QbTVCQi0-u934FDYTg0gbOz8794rx2Cwi0TnwCgGh_mvprK2vjstDdAHx9Ld53UWZRhsRNoVsDXLmHB4QdgFyvrI/s1600/zaxis-naked.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="942" data-original-width="1280" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4Mnym7IYI96Ax2S8RHj-4ZV_3eTSP8fwTayIGnjW4qo7CC9TSEn3QbTVCQi0-u934FDYTg0gbOz8794rx2Cwi0TnwCgGh_mvprK2vjstDdAHx9Ld53UWZRhsRNoVsDXLmHB4QdgFyvrI/s320/zaxis-naked.jpg" width="320" /></a></div>
<br />
The assembly is designed to be as thin as possible. The spindle mount is a little wider which allows easy bolting onto the spindle mount plate which attaches to these bearings and drive nut. The width of the assembly is important because it will limit the travel in the Y axis if it can interact with the gantry in any way.<br />
<br />
Construction is mainly done in 1/4 and 1/2 inch 6061 alloy. The black bracket at the bottom is steel. This seemed like a reasonable choice since that bracket was going to be key to holding the weight and attachment to the gantry.<br />
<br />
The Z axis shown above needs to be combined with a gantry height extension when attaching to a hobby CNC to be really effective. Using a longer travel Z axis like this would allow higher gantries which combined allow for easier fixturing and also pave the way for a 4/5th axis to fit under the cutter.<br /><br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-89285330341376712632017-08-10T05:06:00.000-07:002017-08-10T05:06:20.327-07:00Larger format CNCHaving access to a wood cutting CNC machine that can do a full sheet of plywood at once has led me to an initial project for a large sconce stand. The sconce is 210mm square at the base and the DAR ash I used was 140mm across. This lead to the four edge grain glue ups in the middle of the stand. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkKvJ3lDLH7ZFS0mWPPzszmlespjiX-OX8mFLnSXqEzBkHl0VT8kA_E3CU8TewgOeVoFDu6bcmltCT60phQ4spMlG9h5P-BLnLIsQIj5SPQAYhWcLTseZtKI29RGgTbP9RsXIW7ZSneYQ/s1600/sconse-stand.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1280" data-original-width="1138" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkKvJ3lDLH7ZFS0mWPPzszmlespjiX-OX8mFLnSXqEzBkHl0VT8kA_E3CU8TewgOeVoFDu6bcmltCT60phQ4spMlG9h5P-BLnLIsQIj5SPQAYhWcLTseZtKI29RGgTbP9RsXIW7ZSneYQ/s320/sconse-stand.jpg" width="284" /></a></div>
<br />
The design was created in Fusion 360 by just seeing what might look good. Unfortunately the sketch export as DXF presented some issues on the import side. This was part of why a littler project like this was a good first choice rather than a more complex whole sheet of ply.<br />
<br />
To get around the DXF issue the tip was to select a face of a body and create a sketch from that face. Then export the created sketch as DXF which seemed to work much better. I don't know what I had in the original sketch that I created the body from that the DXF export/import didn't like. Maybe the dimensions, maybe the guide lines, hard to know without a bisect. The CNC was using the EnRoute software, so I had to work out how to bounce things from Fusion over to EnRoute and then get some help to reCAM things on that side and setup tabs et al. <br />
<br />
One tip for others would be to use the DAR timber to form a glue up before arriving at a facility with a larger cut surface. Fewer pieces means less tabs/bridges and easier reCAM. A preformed blue panel would also have let me used more advanced designs such as n and u slots to connect two pieces instead of edge grains to connect four.<br />
<br />
Overall it was a fun build and the owner of the sconce will love having it slightly off the table top so it can more easily be seen.<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-51107303990837297462017-06-04T00:01:00.000-07:002017-06-04T00:02:46.789-07:00Six is the magic numberI have talked about controlling robot arms with 4 or 5 motors and the maths involved in turning a desired x,y,z target into servo angles. Things get a little too interesting with 6 motors as you end up with a great deal of solutions to a positioning problem and need to work out a 'best' choice.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/qfx0TrbOsok" width="560"></iframe>
<br />
So I finally got MoveIt! to work to control a six motor arm using ROS. I now also know that using MoveIt on lower order arms isn't going to give you much love. Six is the magic number (plus claw motor) to get things working and patience is your best friend in getting the configuration and software setup going. <br />
<br />
This was great as MoveIt was the last corner of the ROS stack that I hadn't managed to get to work for me. The great part is that the knowledge I gained playing with MoveIt will work on larger more accurate and expensive robot arms. Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-65502190938110035272017-04-19T01:03:00.000-07:002017-04-19T01:03:59.535-07:00CNC Alloy CandelabraWhile learning Fusion 360 I thought it would be fun to flex my new knowledge of cutting out curved shapes from alloy. Some donated LED fake candles were all the inspiration needed to design and cut out a candelabra. Yes, it is industrial looking. With vcarve and ball ends I could try to make it more baroque looking, but then that would require more artistic ability than a poor old progammer might have.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF7v9DDnXHP0EpGUq2Q6twkTkj5cVVPu3H6gZwILQK7F0lbluVfEAJRQickB-y1UfY5YgimGgzNwR-tTf1HOtWfLhvwc5aQtC93p3aobAXqYJt_KRJzCh6Bs9q_4mO5-QLVx91KOhyWzU/s1600/candelabra.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF7v9DDnXHP0EpGUq2Q6twkTkj5cVVPu3H6gZwILQK7F0lbluVfEAJRQickB-y1UfY5YgimGgzNwR-tTf1HOtWfLhvwc5aQtC93p3aobAXqYJt_KRJzCh6Bs9q_4mO5-QLVx91KOhyWzU/s320/candelabra.jpg" width="260" /></a></div>
<br />
It is interesting working out how to fixture the cut for such creations. As of now, Fusion360 will allow you to put tabs on curved surfaces, but you don't get to manually place them in that case. So its a bit of fun getting things where you want them by adjusting other parameters.<br />
<br />
Also I have noticed some issues with tabs on curves where exact multiples of layer depth align perfectly with the top of the tab height. Making sure that case doesn't happen makes sure the resulting undesired cuts don't happen. So as usual I managed to learn a bunch of stuff while making something that wasn't in my normal comfort zone.<br />
<br />
The four candles are run of a small buck converter and wired in parallel at 3 volts to simulate the batteries they normall run of.<br />
<br />
I can feel a gnarled brass candle base coming at some stage to help mitigate the floating candle look. Adding some melted real wax has also been suggested to give a more real look.<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-12327877367737383182017-03-05T00:21:00.000-08:002017-03-05T00:21:13.722-08:00Non self replicating reprap 3d printerThe reprap is designed to be able to "self replicate" to a degree. If a part on a reprap 3d printer breaks then a replacement part can be printed and attached. Parts can evolve as new ideas come along. Having parts crack or weaken on a 3d printer can be undesirable though.<br />
<br />
A part on this printer was a mix of acrylic and PLA, both of which were cracked. Not quite what one would hope for as a foot of the y-axis. It is an interesting design with the two driving rods the same length as the alloy channel at the back of the printer.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTAGtVD8PsA-XpZYy4Mdbb0rf8_8fp3aRb8HYMt6wWB3Bu36TCbuuytLxbbc2J1cNeFjOATJ6oEG0ljuaNvh2t8NrvfRQTDouAVlXb4OHa9eXv9nVrnstlWwtjJIAeCbEhrpkKqYTFHIE/s1600/3dprinter-orig.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTAGtVD8PsA-XpZYy4Mdbb0rf8_8fp3aRb8HYMt6wWB3Bu36TCbuuytLxbbc2J1cNeFjOATJ6oEG0ljuaNvh2t8NrvfRQTDouAVlXb4OHa9eXv9nVrnstlWwtjJIAeCbEhrpkKqYTFHIE/s320/3dprinter-orig.jpg" width="320" /></a></div>
<br />
<br />
A design I thought of called for 1/2 inch alloy in order to wrap the existing alloy extrusion with a 3mm cover. The dog bone on the slot is manually added in Fusion 360 so it is larger than needed. The whole thing being a learning exercise for me as to how to create 2.5D parts. The belt tensioning is on a 6mm subassembly that is mounted on the bracket in the right of the image below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZrWt_27koNzEX40f9DsAaRagzeVYKDW_jnhjOUy36TQLxUEk2tTta-FO2qChBYyfFMqfjyZFRdrf1QMpV_HsCuzjQgzgRgE6Svvj1H5zvQjpjtudGG0ssibPZOCfaEZrUGUC6p07qOXY/s1600/3dprinter-brackets.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="269" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZrWt_27koNzEX40f9DsAaRagzeVYKDW_jnhjOUy36TQLxUEk2tTta-FO2qChBYyfFMqfjyZFRdrf1QMpV_HsCuzjQgzgRgE6Svvj1H5zvQjpjtudGG0ssibPZOCfaEZrUGUC6p07qOXY/s320/3dprinter-brackets.jpg" width="320" /></a></div>
<br />
The bracket and subassembly are shown mounted below. Yes, using four M6 bolts to tension a belt is overkill. I would imagine you can stretch the belt to breaking point quite easily with these bolts. The two rods are locked into place using M3 tapped grub screws. The end brackets are bolted to the back extrusion using two M6 bolts.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU1cOUp4OzBQmYojqlSCuFD10vwCGobwn3kGJGx_B7qHqbtVMDtcGAm_wluTmbzhSfo29266YpUzUJgJVOoaBTkWwAFBUiJUBd4S8ItMEXR1cZoDFSHaHOg07sVP8U73touIvzBH0ad_E/s1600/3dprinter-bracket-mounted.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU1cOUp4OzBQmYojqlSCuFD10vwCGobwn3kGJGx_B7qHqbtVMDtcGAm_wluTmbzhSfo29266YpUzUJgJVOoaBTkWwAFBUiJUBd4S8ItMEXR1cZoDFSHaHOg07sVP8U73touIvzBH0ad_E/s320/3dprinter-bracket-mounted.jpg" width="320" /></a></div>
<br />
The z-axis is now supported by a second 10mm alloy custom bracket. This combination makes it much, much harder to wobble the z-axis than the original design using plastic parts.<br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8q6vFyH-0P8jlzC1XEUasd3izuTKIQav5Haozlq01YOqnTrUUZTrr_o4k06lbgnN1qctbKVIzL7_3h310prWcLtKZAqBXt_Awm5woKu7J5pzVHpRmenSG4Q7eCfu9N1Oua0X-WtSPCDc/s1600/3dprinter-cross.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="305" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8q6vFyH-0P8jlzC1XEUasd3izuTKIQav5Haozlq01YOqnTrUUZTrr_o4k06lbgnN1qctbKVIzL7_3h310prWcLtKZAqBXt_Awm5woKu7J5pzVHpRmenSG4Q7eCfu9N1Oua0X-WtSPCDc/s320/3dprinter-cross.jpg" width="320" /></a></div>
<br />
<br /><br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3005450802120168081.post-33226203158653189602017-02-12T03:01:00.000-08:002017-02-12T03:01:24.355-08:00Printer bracket fixSimilar to many 3d printer designs, many of the parts on this 3d printer are plastic. Where the Z-Axis meets the Y-Axis is held in place by two top brackets (near the gear on the stepper is a bolt to the z alloy extrusion) and the bottom bracket. One flaw here is that there are no bolts to the z-axis on the bottom bracket. It was also cracked in two places so the structural support was low and the x-axis would droop over time. Not so handy. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzhqNUEcnuooHpbpEP1WVWgYgHgf4Uz5ICfF9OUZLIi90QsU-fanZ9CFvib0SQTZy_l8KfHyJnL2T_dO-1B7Rt7w2B6PCnUReI63ak8eQN7-r1YENoXB7BbIYmhdWBqiGj9hs2l84JBFA/s1600/3p-old.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzhqNUEcnuooHpbpEP1WVWgYgHgf4Uz5ICfF9OUZLIi90QsU-fanZ9CFvib0SQTZy_l8KfHyJnL2T_dO-1B7Rt7w2B6PCnUReI63ak8eQN7-r1YENoXB7BbIYmhdWBqiGj9hs2l84JBFA/s320/3p-old.jpg" width="320" /></a></div>
<br />
The plastic is about 12mm thick and smells like a 2.5D job done by a 3d printer 'just because'. So a quick tinker in Fusion 360 and the 1/2 inch thick flatland part was born. After removing the hold down tabs and flapping the remains away 3 M6 bolt holds were hand drilled. Notice the subtle shift on the inside of the part where the extrusion and stepper motor differ in size.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikvlYzPPBpmMY3N6z5JNmQY05ctmuyQt7UFJNKR5mkzPWY93dtnWhxjNiMZw9vwISBhGo5Pf_9ZtK-TKloHDQykLvKEgbd77VinBFOkWtlKFBbqppvxkL1PhauGJ9nxwcQnG1sotzLJE0/s1600/3p-new1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikvlYzPPBpmMY3N6z5JNmQY05ctmuyQt7UFJNKR5mkzPWY93dtnWhxjNiMZw9vwISBhGo5Pf_9ZtK-TKloHDQykLvKEgbd77VinBFOkWtlKFBbqppvxkL1PhauGJ9nxwcQnG1sotzLJE0/s320/3p-new1.jpg" width="320" /></a></div>
<br />
It was quicker to just do that rather than try to remount and register on the cnc and it might not have even worked with the limited z range of the machine.<br />
<br />
<br />
The below image only has two of the three bolts in place. With the addition of the new bolt heading into the z axis the rigidity of the machine went right up. The shaft that the z axis is mounted onto goes into the 12mm empty hole in the part.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho77U43nH_cwOYfKdBiTKoB-oWLaA5D9ObAmPRTzu1yWIdPy7y_-AaPlALk3_rIPEXEAdtDfk3K_RAKbX0y20BTOBQoo9njbqhHfgA6lH_9fawFH8gT39wFHf-LbXzLoyYd8FtMp8cbYM/s1600/3p-new2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho77U43nH_cwOYfKdBiTKoB-oWLaA5D9ObAmPRTzu1yWIdPy7y_-AaPlALk3_rIPEXEAdtDfk3K_RAKbX0y20BTOBQoo9njbqhHfgA6lH_9fawFH8gT39wFHf-LbXzLoyYd8FtMp8cbYM/s320/3p-new2.jpg" width="320" /></a></div>
<br />
This does open up the mental thoughts of how many other parts would be better served by not being made out of plastic.<br />
<br />
<br />Unknownnoreply@blogger.com0