Preview: Zamenhof meets 3D Printing?

Screenshot from 2016-05-18 07-48-01

Antaŭprezenton / Antaŭrigardon : Zamenhof renkontas 3D presanta?

Cŭ Zamenhof kunvenos KNK (Komputilo Nombra Kontrolo) maŝinojn?

Will Zamenhof meet CNC (Computer Numerical Control) machines?

Cŭ Esperanto renkontos 3D Presanta?

Will Esperanto meet 3D Printing?


Fixing Mesh Issues & Layer Gaps in 3D Printing

So today i had an interesting experience. As i have been lately, i sometimes go to the library to print out parts I’ve designed for my custom 3D printer project. While they print i use the time to crunch out upcoming essays for for school.

But this time instead of the printer happily moving along and producing perfect parts i got a rude awakening. The parts that came out looked like picture #3. Instead of my corner pieces being printed with two triangular pyramids and four “arms” they printed with one triangle, a “tail” and two “spaghetti blobs” on the side in a mess. It looked more like a deformed geometric fish instead.

Looking for info online i found helpful information on the Ultimaker Forum. It seems if i go into Layer view beforehand i can see what it will print out like and see any obvious gaps before hand. X-ray mode is even more helpful in a situation like this because if there are any faces or walls that have problems they get highlighted in bright red.

As you can see on mine, the bad models have several red triangular “internal” walls. The models have internal walls because they were created in Solidworks as assemblies from smaller parts and “digitally glued together”. Normally that shouldn’t cause a problem, but for some reason it did.

Currently i’m using Solidworks 2007 to create my 3D models. I wish i could use a good Open Source CAD program that works in Ubuntu Linux, but sadly none really exist. Not to my liking anyway. FreeCad has potential, but has a long way to go. OpenSCAD looks decent, but is for people who have mathematical minds. Sadly i don’t. And Blender has amazing graphics, but is not a CAD program. If someone could combine the beautiful elegance of Blender while stripping out it’s over-complexity and merging it with FreeCAD, and taking the user friendliness of Solidworks it would be perfect. Oh, and it has to be cross-platform (meaning runs on Ubuntu Linux). So until that day i’m forced to use a proprietary CAD program on a otherwise useless proprietary operating system, either on it’s own machine (or run in a virtual machine like Virtualbox). Far from an elegant solution. -End Of Rant. lol.

For me my problem was some sort of issue with the internal walls. Normally this should not be a problem. Since my version of Solidworks does not export whole assemblies as STL files (instead each separate part is exported into STL), I’ve been using 3dContentCentral to convert my CAD files into single STL files. Apparently the issue i ran into arises when i export my assemblies into single part files before converting them to STL. If i instead upload the entire assembly (and dependencies) and convert those to STL files it seems to work fine. Somehow that makes a difference when fixing whatever was wrong with those internal walls/faces. Whatever. At least i’m happy to find a solution.

I wanted to fix my bad CAD models from the beginning, but for example if i had a bad STL file that was not created by me and i still needed to print it, i could turn to Cura’s expert settings. In Cura’s expert settings there are some tools that attempt to “fix horrible” models that would otherwise fail to print correctly. I could have gone that route to print them anyway, but for me the better solution was to fix the source of the problem which was a bad CAD model.


So, all in all, check your parts before you print them. Cura’s x-ray mode and layer mode are invaluable tools that can help you avoid problems with your 3D printing endeavors.

This site also gives some good tips on bad edge geometry and bad STL meshes.

Interfacing Vernier Sensors and Arduino (and vice-versa!)

So, recently I’ve been bored. That’s nothing new really. The up side to the times when i get really bored is that i usually end up starting some sort of electronics project. Since i have an interest in the DIYBIO movement and an interest in DIY chemistry i have realized that it’s really cool (and helpful) when you can use sensors to collect your data. But up until now i haven’t had the motivation (or the money) to really dive into it. But today’s post may be the beginning to turning that tide.

Awhile back i stumbled across this post by David Hay, after noticing this question on adafruit. In it he tinkers a bit with interfacing an older vernier (light?) sensor with an arduino clone.  Since i use vernier sensors in my chemistry classes at school i have come to love them. I wondered if i could do something similar, but what i really wondered was whether i could do the opposite as well. Could i interface other non-vernier sensors (like sparkfun sensors) using an arduino to the fancy LoggerPro software or my TI84+ calculator? It turns i can!


The LoggerPro software is really good stuff, but i’m cheap whenever i can be. That’s one reason i thought of my TI84+ calculator. I already have one of those, and vernier has released free software for it that can graph data from vernier sensors in real time. The program is called EasyData and can be downloaded here. The second option is to use LoggerPro on Linux. And since i’m already a full time Ubuntu user i get to use the newly updated free LoggerPro beta for Linux! Sweet Beans!


I’ve already tested both. They both work great. The cool thing is that i was able to hook an arduino to my calculator EasyData program and also LoggerPro on the computer by using a Vernier EasyLink (with an adapter to convert it into a GoLink). I had to get a Vernier Analog Breadboard Cable for it to work, but it was well worth it. I sent some test pwm values using the Arduino example code for the fading led on arduino digital port 9. I used the example pdf from the DIY Light Intensity Sensor example project on the Vernier website to help me out a bit.


I was also able to do the opposite like what David Hay did with his sensor. I was able to successfully interface a stainless steel temperature probe from Vernier (which is basically just a thermister in a nice case) to my Arduino. I used the example pdf from the DIY Build a Temperature Sensor example project to help me out, along with the values in an equation provided in the manual that came with my stainless steel temp sensor. I also bought this nice Analog Proto Board Connector from vernier which allowed me to do this so quickly. Here is the code i used on my Arduino to calculate the temperature from this thermister.

int led = 13;

#include <math.h>

#define ThermistorPIN 0 // Analog Pin 0

float vcc = 4.91; // only used for display purposes, if used
// set to the measured Vcc.
float pad = 15000; // balance/pad resistor value, set this to
// the measured resistance of your pad resistor
float thermr = 20000; // thermistor nominal resistance

float Thermistor(int RawADC) {
long Resistance;
float Temp; // Dual-Purpose variable to save space.

Resistance=((1000 * pad / RawADC) – pad);
Temp = log(Resistance); // Saving the Log(resistance) so not to calculate it 4 times later
Temp = 1 / (0.001129148 + (0.000234125 * Temp) + (0.0000000876741 * Temp * Temp * Temp));
Temp = Temp – 273.15; // Convert Kelvin to Celsius
Temp = Temp / 2;

// BEGIN- Remove these lines for the function not to display anything
//Serial.print(“ADC: “);
//Serial.print(“/1024”); // Print out RAW ADC Number
//Serial.print(“, vcc: “);
//Serial.print(“, pad: “);
//Serial.print(” Kohms, Volts: “);
//Serial.print(“, Resistance: “);
//Serial.print(” ohms, “);
// END- Remove these lines for the function not to display anything

// Uncomment this line for the function to return Fahrenheit instead.
//temp = (Temp * 9.0)/ 5.0 + 32.0; // Convert to Fahrenheit
return Temp; // Return the Temperature

void setup() {
pinMode(led, OUTPUT);

void loop() {
float temp;
temp=Thermistor(analogRead(ThermistorPIN)); // read ADC and convert it to Celsius
Serial.print(“Celsius: “);
Serial.print(temp,1); // display Celsius
//temp = (temp * 9.0)/ 5.0 + 32.0; // converts to Fahrenheit
//Serial.print(“, Fahrenheit: “);
//Serial.print(temp,1); // display Fahrenheit
digitalWrite(led, LOW);
delay(1000); // Delay a bit…
digitalWrite(led, HIGH);

So what does this mean? I think this opens up a whole new world of possibilities. On the one hand i believe i can now use the nice Vernier LoggerPro or EasyData real-time graphing software to interface non-vernier sensors like Arduino boards directly and perhaps others like a Sparkfun Alcohol sensor? (which i have one i would like to try) This should make it easy to interface cheap sensors in chemistry and biology labs that already have vernier equipment. I think it also means that we can now easily use Vernier sensors on non-proprietary devices such as cheap Arduino micro-controllers.

I also look forward to soon tinkering with using an Arduino webserver as a different real-time sensor graphing and data logging device. I hope in the future i can help to create other tools which might be useful for DIYBIO and other DIY science.


Exploring Full Disk Encryption

I feel kind of guilty that i rarely post anything about linux (or computers in general) on this blog like i used to, so this is an update for the Linux people out there.

If you’ve never used linux before and are still using a Microsoft OS, then i encourage you to at least try the other options out there. Ubuntu 10.04 is my Operating System of choice for a number of reasons, including, Stability, Free/Open Source (no licencing fees), timely security updates, multiple language support, mega amount of customization options, and almost never any downtime (ie. crashes, BSOD, viruses, etc.). Ubuntu 10.04 is the best version of Ubuntu i’ve tried. 10.10 has been out for awhile, and does have a few improvements, but it’s not an LTS release, and it has a few changes that bugged me the last time i used it.

Anyway, i love the fact that Ubuntu now gives you an option of using an encrypted Home folder to keep your files safe. And it seems to work beautifully. But, I’m not really sure if that is a bullet proof method of securing ones data, and it does seem to put a strain on speed after awhile too. Really in my mind, Full Disk Encryption is the only way to ensure your data is safe, and should be faster because the encryption is done before the whole system loads. So i dived into the abyss, and decided to figure out how to do it. You will need to download the Ubuntu Alternate Install Disc, and upon installation you need to select “Guided Partitioning – use entire disk with LVM”. LVM stands for something called Logical Volume Management. I guess it’s a way IBM figured out how to partition hard drives for servers, but anyway we basically need to borrow this technology to encrypt both the main partition and swap partition inside an encrypted virtual partition.

When you choose a paraphrase for your encrypted partition, you really should try and come up with a catchy phrase that ends up being 20 letters. Any less than 20 letters, and I’m told someone could potentially brute-force your paraphrase. Okay, so i guess they still can, but it would take a really long time. After i installed my system i chose to set it up for automatic login. This way i only have to enter in one password when i want to use my computer.

If you are using a Windows or Mac OS, i would Really Really recommend you either switch to Ubuntu and set up some sort of encryption if you are worried about the security of your data, or investigate the options for Full Disk Encryption for your OS. The default configuration of a Mac is extremely vulnerable to people who have physical access to your system. A Windows machine has almost the same vulnerability, and possible worse. I know because I’ve tried accessing both types of systems that were not mine and easily succeeded. I’m told there is proprietary software for Mac to encrypt your partitions. For Windows, you can look into TrueCrypt.


DeVeDe – DVD Ripping, and DVD creation

Have you ever wanted to copy a movie someone gave you? Or maybe turn one of your home movies into a DVD to give to someone? We’ll, im going to give a quick mention to two very useful, and equally very free programs.

The first one, and probably the one i use more is called “DeVeDe”. It’s a completely  open source and free program that is fantastic. It gives you the option of “importing” various video formats, converting them and adding a DVD menu, before packaging it all into a nice DVD .ISO file ready to burn. I often select the menu option to automatically play the movie, since i usually have no use for menus. It should be noted that it has a bug when estimating the size of AVI files. You usually can go up to 200% full when working with .avi files, before the 4.2GB DVD is full. When working with .FLV files, 100% is probably full.

The second is called “AcidRip” or “AcidRip DVD Ripper”. It’s really cool. It allows you to take any movie (even encypted ones if you have libdvdcss2 installed) and Rip it into .Avi format onto the computer.

I just added subtitles to my first movie today. I used AcidRip to rip a copy of Gattaca to .AVI format, and then included the (already translated) Esperanto subtitle .STL file in the Devede program. Now i have a copy of Gattaca DVD with esperanto subtitles.

Of course… AcidRip has an option to rip the english (or whatever) subtitles into an .STL file when Ripping it from a DVD. So, in theory you could rip subtitles, translate, and then re-encode into DVD .ISO format.