Windows outperforms Linux in OpenSCAD?

Hmm… it’s very interesting! Should I change the title?

Result of Devuan 64 bit system: AMD FX-6100, 8 G memory, Radeon 3000
OpenSCAD version 2017.02.11.nightly
v20170211

Saved backup file: /home/penguin/.local/share/OpenSCAD/backups/pipe-desk-light-v1-backup-ikn13960.scad
Compiling design (CSG Tree generation)...

Rendering Polygon Mesh using CGAL...
Geometries in cache: 243
Geometry cache size in bytes: 43207792
CGAL Polyhedrons in cache: 9
CGAL cache size in bytes: 82551656
Total rendering time: 0 hours, 43 minutes, 35 seconds
   Top level object is a 3D object:
   Simple:        yes
   Vertices:    32767
   Halfedges:  105296
   Edges:       52648
   Halffacets:  39766
   Facets:      19883
   Volumes:         2
Rendering finished.

2/13/2017

I built a graphic workstation lately:
– Intel Core i5, Skylake
– DDR4 32G memory
– Gigabit micro-ATX motherboard
– NVIDIA Quadro 4000 (used one)

I installed Windows 8.1 on it to learn Autodesk Fusion 360. Out of curiosity I installed latest version of OpenSCAD and rendered the model that challenged me in many ways. On Devuan Linux workstation it finished rendering in two hours and thirty minutes.

When I saw the rendering time on Windows box, I got baffled honestly. Windows box outperformed Linux one five times faster. Suppose suppose I had been running Windows instead Linux, I couldn’t know about performance limitation of OpenSCAD.

i5-box-openscad-rendering


One important lesson I’ve learned for the past two months is “Never give up! Keep trying as much as I can.”

Since I got into RepRap 3D Printing technology, it’s been challenging time, a lot of high and fall, contemplating of situation, decision makings that impact my time and energy.

I touched and learned C, C++, Java, Python, Cython, OpenSCAD, Blender, FreeCAD, BRL-CAD, OpenJSCAD. For 3D modeling I gonna use Blender, OpenSCAD/OpenJSCAD, and Autodesk Fusion 360.

Blender is good for organic, complex models that do not require precise dimension. It supports multithread and GPU.  There are many tutorials on the net.  Blender: Noob to Pro has 1900 pages. Understanding one third of the wiki content can make simple models relatively easy.  Mesh object is hollow. It involves repetitive manipulation of vertices, edges, and faces.

A cat model (http://www.thingiverse.com/thing:2022865)

A Husky dog model (http://www.thingiverse.com/thing:2025114)
It took about two hours.

20170107_0075

FreeCAD has potential but honestly it’s not fit for the production tool. Yesterday I found myself wasting valuable time just to finish one simple model. If 3D modeling is a hobby, I might spend more time until I get familiar with FreeCAD dirty secrets,  also contributing documentation and feature testing.  The latest stable crashes often.

I created the bulb cap in FreeCAD a week ago part of investigation activity. The workflow is in three stage:

  1. Create a 2D model called as a sketch that involves constraints. Because I heavily influenced by OpenSCAD, handling constraints are still obscure and tedious.

bulb-cap2-sketch2

2. Create the core 3D model using the sketch. Then apply series of boolean operation to make the desired shape: union, difference, intersection, and fusion.

bulb-cap2-row2-cut-failure1

3. Generate a mesh object from the 3D model for 3D Printing.

bulb-cap2-mesh

Posted in GNU/Linux, Reprap 3D Printer | Tagged , , , , , , | Leave a comment

Steel Fisher v1.5 is coming

I used Original Prusa i3 MK2 to print ABS parts.

  • All printed ABS parts
  • Replaced 12 balls
  • Latest firmware: ReprapFirmware dc42 1.17d , DuetWebControl 1.14

20170203_0348

Duet Web Control 1.14

It now monitors CPU temperature.  During print the CPU temperature stayes  around 30 degrees Celsius. I wouldn’t install 5V fan for cooling which had been major source of noise.

rrf-1-17d-and-dwc-1-14-20170203

 

Posted in DIY, Reprap 3D Printer | Tagged , , , , | Leave a comment

Downloading image / media files in Sony A6000

Connect microUSB cable to the camera port

Find SD card drive. Look for disk device that’s matching size of the SD card with W95 FAT32 (LBA) partition.

$ sudo fdisk -l

Mount the data drive to a local directory

$ sudo mount /dev/sdb1 /media/usb0

Use cp and cd command to copy files in the SD card

Unmount SD card

$ sudo fdisk -l 

Disk /dev/sdb: 29 GiB, 31104958464 bytes, 60751872 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start      End  Sectors Size Id Type
/dev/sdb1        8192 60751871 60743680  29G  c W95 FAT32 (LBA)

Disk /dev/sdc: 1 MiB, 1048576 bytes, 2048 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start   End Sectors    Size Id Type
/dev/sdc1           1  2047    2047 1023.5K  1 FAT12
Posted in Photography | Tagged , , | Leave a comment

Turners cube

Designer: Learn FreeCADLearn FreeCAD
Dimension: 100 x 100 x 100 mm
Filament: PLA+
Temperature: 205 degrees
Layer height: 0.25 mm
Printing time: about 20 hours
Post processing: one hour

20170126_0041

OpenSCAD,  Blender, FreeCAD

This was the first FreeCAD 3D model I printed.

I used FreeCAD 0.16 following the video tutorial.

turners-cube2-7

I started experiencing limitation of OpenSCAD few months ago while I was modeling a hollow shell that has many holes. It’s a part of desktop light kit.



Source file

The rendering of OpenSCAD takes about three and half hours in my Devuan Linux, AMD FX-6100 processor, 8 Giga memory. It’s ridiculous poor performance.

I thought spending half day of work just to create a simple model is bad for the 3D studio business I gonna run soon. So I tried it on brand new Devuan workstation I built. The hardware specification is as below:
OS: Devuan 64 bit Linux
Processor: Intel Core i5, Skylake
Memory: 32G DDR4
Graphic card: Nvidia Quadro 4000

i5 system renders the model about two and half hours. OpenSCAD have not supported multithread or GPU yet.

Since then I’ve been testing various 3D modeling software: Blender, BRL-CAD, OpenJSCAD, FreeCAD. I quickly went through 2,000 pages of Blender Noobs to Pro, got familiar with Mesh modeling technique. I was able to create an organic model within few hours.



Source file

Blender can be used to create a mechanical part that requires exact dimension and shapes but it’s tedious process. I’ll use Blender for organic or artistic model.
I think CSG (Constructive Solid Geometry) is superior method over Mesh modeling.

I spent two days on BRL-CAD and removed it. The UI is outdated, building a model requires many steps, tiny size of user community and tutorial demands tough and long learning curve.

Yesterday I managed to create the bulb cap using FreeCAD after few hours of trial and errors.

bulb-cap2-row2-cut-failure2

Source file

My impression on FreeCAD is it’s functional, has potential to growth. I wouldn’t expect the same quality such as SolidWorks or Fusion 360 though.

http://freecadweb.org/wiki/?title=Getting_started

FreeCAD is a 3D CAD/CAE parametric modeling application. It is primarily made for mechanical design, but also serves all other uses where you need to model 3D objects with precision and control over modeling history.

FreeCAD is still in the early stages of development, so, although it already offers you a large (and growing) list of features, much is still missing, specially comparing it to commercial solutions, and you might not find it developed enough yet for use in production environment. Still, there is a fast-growing community of enthusiastic users, and you can already find many examples of quality projects developed with FreeCAD.

Darkside of RepRap 3D Printer

RepRap 3D Printers use plastic parts as core components. It demands heavy maintenance compared to metal parts. To maintain good printing quality, the owner should replace the plastic parts that affect movement of hotend, frame alignment in reqular base.

A month ago I replaced old PLA idlers with PLA+ idlers after I found one cracked idler. 20170127_0040

20170126_0015

This was the third or fourth time I encountered a fixable printing failure. The turners cube could’ve been finshed in one 20 hours session. Instead at 18 hours 32 minutes 37 seconds, 90% of printing job, the hotend spitting PLA+ filament in empty air with jerky movements.

I immediatly knew some parts broken. After I got up the next day, I moved Steel Fisher on the work table and inspected it throughly.

The carriage on X  tower had a crack, there was little pressure on leftside of linear bearing.  20170126_0022

I used ziptie to apply strong pressure on the linear bearing so that the bearing wouldn’t move. 20170126_0029There was crack on the carriage of Y tower. It was holding firmly the linear bearings at the moment. I secured it with bigger ziptie.  20170126_0028I will have to replace all plastic parts with ABS ones to install heated bed annd enclosure on Steel Fisher.

How to resolve a failed print that requires long hours?

I try to limit model size under few hours in one session. Because if the print fails, it sucks. I can manage to reprint the model. Will I reprint anonther tuners cube for two days? What if it’s a paid print that I need to deliver to a customer?   It became relevant since I seriously planned to do 3D printing business.  I have two reliable RepRap 3D printers now. I need at least two more 3D Printers and UPS unit.

The turners cube failed at 90.25 mm height. 20170126_0031

I cut Turners cube to 0.75 mm height in FreeCAD, created a STL file and printed it, which took about two hours.20170126_0012

I glued the two pieces with Locktight. Then I fused the edges using 20W soledring iron and PLA+ filament followed by some sanding.20170126_0032

20170126_0038

(wip)

 

Posted in Reprap 3D Printer | Tagged , , | Leave a comment

Screencast Keys add-on

Blender 2.78

Download the Add-on file space_view3d_screencast_keys.py.

Install the Add-on.

[File] > [User Preferences] > [Add-ons] > [Install from File…]

In 3D View window, press N to open the properties panel.

Click Screencast Keys menu.

Set up size of text, mouse, and color.

screencast-keys-addon2

screencast-addon

Posted in Blender | Tagged , , | 2 Comments

How to forward X over SSH in Devuan

SSH packages: openssh-client, openssh-server

/etc/ssh/ssh_config is default configuration file for SSH client.
/etc/ssh/sshd_config is default configuration file for SSH server (ssh daemon).
Check content of two files in the bottom.

Example
192.168.0.110 (mini): SSH server that will provide X applications.
192.168.0.100: SSH client that will loing the server and run X applications.

I login to the server whose hostname is mini through ssh, then run xeyes.

remote-x-over-ssh-sc1

-v is debug option that dumps messages.

$ ssh -v -X penguin@192.168.0.110

OpenSSH_6.7p1 Debian-5+deb8u2, OpenSSL 1.0.1t  3 May 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 192.168.0.110 [192.168.0.110] port 22.
debug1: Connection established.
...
debug1: Trying private key: /home/penguin/.ssh/id_rsa
debug1: Trying private key: /home/penguin/.ssh/id_dsa
debug1: Trying private key: /home/penguin/.ssh/id_ecdsa
debug1: Trying private key: /home/penguin/.ssh/id_ed25519
debug1: Next authentication method: password
penguin@192.168.0.110's password:
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Sending environment.
debug1: Sending env LC_ALL = en_US.UTF-8
debug1: Sending env LANG = en_US.UTF-8
Linux mini 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
You have mail.
Last login: Sun Dec 11 22:30:48 2016 from 192.168.0.100

penguin@mini:~
$ xeyes &
[1] 16450
penguin@mini:~
$ debug1: client_input_channel_open: ctype x11 rchan 3 win 65536 max 16384
debug1: client_request_x11: request from ::1 53402
debug1: channel 1: new [x11]
debug1: confirm x11

remote-x-over-ssh-sc2

/etc/ssh/ssh_config

Host *
#   ForwardAgent no
#   ForwardX11 no
#   ForwardX11Trusted yes
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   GSSAPIKeyExchange no
#   GSSAPITrustDNS no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   Port 22
#   Protocol 2,1
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials no

/etc/ssh/sshd_config

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

ServerKeyBits 1024

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no

# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes
Posted in GNU/Linux | Tagged , , , , , | Leave a comment

Power meter

20161114-power-meter-diagram

Parts:

Single plug socket x1
Circuit breaker x1
Plug with three wires x1
Two wires, 30 cm
Power meter x1
Wood piece x1
50 mm screw x6
20 mm Short screw x2
Zip-tie x2

(I used a AC 80-260V 100A BAYITE-PZEM-061 by bayite.)

Tools:

Philips drive
Multimeter
Wire cutter

Testing 60W light bulb’s power

20161114_0037

Input voltage: 229 V
Input current: 0.25 A AC
Power measurement: 56.6 W
20161114_0042

Steel Fisher 3D Printer

I was literally shocked in good sense because the power consumption of Steel Fisher is less than a medium light bulb. This would give me advantage of running a 3D farmer. Five Steel Fishers’ power consumption is about 250 W!

Idle mode: 6.6 W
20161114_0044

Printing mode: 41.0 W to 38.5 W
The maxium power consumption was about 60 W when the hotend was turned on after the printing started.

20161114_0048

Posted in DIY, Reprap 3D Printer | Tagged , , , | Leave a comment