Preview: Upgraded Bread Machine Incubator TR444 [in progress…]


Ok. So! Back to hardware / electronics projects!! Yay!

This is a preview for an upcoming post. I am currently working on upgrading my Hacked Breadman Breadmachine TR444 Incubator from a previous project. I’m adding some RGBW neopixel LEDS from Adafruit for light. It will have a button to change lighting sequences from White to red/blue to purple, to blue, to black. All the colors one would need to 1. see into the machine. 2. Color LEDs to grow seedlings for gardening. 3. blue which may come in handy for bacteria cultures? IDK. maybe not. But whatever. I currently have the arduino code for the light sequence working.

I will also be adding a fan for circulation. I 3D printed the fan holder. I may or may not have a button to control the fan. I will have a big red button to start the incubator cycle (37 Degrees C for bacteria / fungal petri dishes). And i am considering another button for a programmed Dry Heat Sterilization routine. As mentioned before, according to Wikipedia:

The proper time and temperature for dry heat sterilization is 160 °C (320 °F) for 2 hours or 170 °C (340 °F) for 1 hour.

I also think i will be integrating my Chronodot real-time clock for use with this dry heat sterilization routine and possibly some other incubating cycle as well. Cool! Fun stuff! Lets get working!!

p.s. post in the comments if these are the kind of projects you’d like to see more of of! 🙂







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?

Progress on my Homebuilt Lulzbot Mini

Today i made significant progress on building my own Lulzbot Mini 3D printer from scratch. Technically i now have two 3d printers i’m building from scratch, but the other one is bigger and one i’m designing myself. Just like me to not finish one project before starting another. At least i’m going to work on this one and finish it before continuing on my other one (which might be converted into a homemade CNC mill).


Today was a major milestone because most of the components are put together and i finally was able to test part of the electronics i wired up myself. I was able to test the Y-axis motor and limit switches as well as the X-axis stepper motor. All seemed to function correctly using Lulzbot’s Cura software. The software did have an unexpected safety feature however, it wouldn’t let me turn any of the motors on without the bed thermistor wired up. So i had to wire up a temporary 10k thermistor for testing purposes. It worked great. I was running the Cura software under Ubuntu Linux. The Cura software gave me an error that it could not autodetect the serial port or something like that, so i ran it as the root super user and that fixed the problems.


Since i’m building this thing from scratch instead of buying one premade i’m trying to find ways of cutting costs. Although i think i will end up spending more than i hoped. But anyway, part of that is looking into ways that i might be able to replace expensive commercial products like the IGUS bearings and the Leadscrew nut. I’ve already drafted up a 3d printable version of the leadscrew nut and posted it here on Thingiverse. The nut has yet to be tested, but i’ve also had some RJM-01-08 IGUS bearing replica prototypes made in Nylon. The RJM-01-08 IGUS replica bearings turned out to be too tight, but with a drill i was able to make them usable. They are currently being used to remove the wiggle and slop i was experiencing from using the 1mm too small LM8UU ball bearings.


I originally got the LM8UU bearings as a cheaper alternative to the commercial RJM-01-08 IGUS stock bearings the Lulzbot mini uses thinking they would work. They work, and i am currently using some, but the stock STL files from Lulzbot have holes that are 1mm too big because of the slight size difference between them and the LM8UU. I might try to modify the STL files [i have modified the lulzbot solidworks files] to make LM8UU compatible parts in the near future, but for now i’m happy with my 3d printed nylon ones. I’ve heard PLA might work too, so i will experiment with that in the future as well.


Here are some more pictures:





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.


Ubuntu 12.04 Preview

Ubuntu 12.04 alpha

I haven’t been giving computers or linux much attention on my blog for awhile. I hope to remedy that situation soon. I am eagerly awaiting the Ubuntu 12.04 LTS release in a few months. It feels like I’ve been waiting forever, but once it is officially released i hope to give it a thorough review.

A few weeks ago i decided i couldn’t wait and i did an early upgrade from Ubuntu 10.04 LTS to the 12.04 alpha release by using the command “update-manager -d”. I’ve been using Ubuntu 10.04 since Canonical replaced gnome with unity (which at the time sucked). Sticking with an LTS release turned out to be an excellent choice and provided a stable production machine. I think it’s something i will do again in the future.

The upgrade appeared to go really smoothly. Actually i think it’s the  smoothest upgrade I’ve ever done. Everything transitioned well into the new environment. A few nice things stuck out when i first started using it. The first was the new and polished unity interface. I must say that this experimental interface has come a very long way since it was first introduced to ubuntu. In fact it has matured so well and works great that i actually now prefer it to the old Gnome desktop. And i was pretty pissed-off when i heard they were ditching trusty ol’ Gnome for a relatively untested and early interface. I actually used the first Unity implementation on Ubuntu Netbook Edition. I thought it was crap, and i haven’t used any form of it until now. I actually think the new and updated Unity interface makes it easier for me to get productivity work done. It just feels right. But I expect to see some changes to it by the time 12.04 is officially released, so we will see.

The second thing i noticed was Firefox. Okay, so Firefox hasn’t changed much, but i finally have an updated version. For some strange reason Firefox in the 10.04 repos hasn’t seen any updates in a while. Although i may start to be liking Google Chrome better. But i still like firefox for some things (like the ability to block flash ads), and the range of add-ons.

The transition from OpenOffice to LibreOffice seems a bit silly, since they are pretty much the same product. I do like the green and white logo though. But, i dont blame the forking of LibreOffice from OpenOffice since there was quite a bit of doubt that Oracle would be playing nice with opensource. I don’t know that much about what eventually happened, but i think Oracle turned OpenOffice over to the Apache foundation, so i would think that the two could merge back together someday. I don’t really care what anyone calls it though, all i care about is if it works well. And it does work fantastically well.

UbuntuOne has also matured, and I’m finally getting the hang of synchronizing folders between computers, which i like A LOT. I’ve never used DropBox before, but i understand the two services are very similar. I choose to use UbuntuOne because of the integration with ubuntu though. And I’m glad to hear that a new windows client has been released. Synchronizing folders across all kinds of different devices just makes sense, and reminds me that we really are living in the future. Just like that phrase in The Time Machine, “The Future is Now”. I look forward to hearing about other ubuntuone clients for macs and android phones, etc.

The only con i have to report is that my sound was broken upon upgrading. I reported it as a bug, so hopefully they will fix it. Other than that i don’t have anything else to report.

Unfortunately I’m not using my 12.04 alpha system anymore, because shortly after upgrading i accidentally hosed my whole system. I was trying to remove some program in the terminal with asterisks (*) and –purge, and somehow apt started removing EVERY program from my whole system. It must have been some sort of dependency hell thing. I was able to stop it before it finished, and i was also able to use an alternate-install disc to use “fix broken system” to reinstall unity and apt-transport-https (which is a critical file for apt to be able to download packages), and ubuntu-desktop, and some others. But i was not able to restore the system to fully functioning order. The shutdown and restart buttons stopped working correctly, and the login menu didn’t work right either. I was forced to back-up my data and reinstall (i think 11.04) from a cd. I look forward to a fully stable and official 12.04 release soon.


Testing Out New Website



I finally leaned how to buy a domain name, and figured out how to use Ubuntu to host a website. It’s really interesting. On the one hand, starting my own website isn’t as hard as i thought it would be and is quite liberating, and on the other there are so many technical things associated with it that it’s actually harder than i thought it would be. So technical in fact that it approaches the very upper limit of my computer skills.

The Domain i bought is for those who are interested enough to check it out. Be aware that my HTML skills are rather crude, and at the moment i’m hosting it myself, so it could very well go down at any moment. The name was chosen to attempt to be understandable by both English Speakers and Esperanto Speakers. Bio Luminescence in English, and Bio Illumination in Esperanto.

Anyway, so what does it actually take to create a website? Well, first you have to get over the idea that if you think of a website name that nobody else has ever thought of, that in theory it should be free. Strangely enough you MUST purchase a domain name from a Domain name registrar. The one i chose after reading several reviews was They have decent prices and good reviews. So yeah, you buy a domain name and pay a yearly subscription fee, or you can pay for more years in advance.

2. You need someone to host your website. I eventually don’t want to go to all the hassle of hosting my own website in the future, so i will probably pay someone else to host it. I’m thinking people who are computer geeks and open source fans. Yeah, Laughing Squid looks like a great place to host. They also seem to have awesome price rates on their cloud servers (Amazon EC2?).

This time i set up an old Ubuntu Computer to serve as my webserver. It took a bit of work. Not too much, but a little bit. I had to install Apache and FTP. I had to configure a few other things as well. The hardest part was trying to set up the permissions on the /var/www folder, because otherwise my server locks everyone out from accessing my website files.

Anyway, yeah. This is the first time i have ever had my own website. Hope i can figure out some cool stuff to put on it.


Mi estas elprovas nova retejo. Mi estas gastiganta ĝin min sur malnova Ubuntu Linukso maŝino. La Domajno mi aĉetita estas por tiuj, kiuj interesi sufiĉa rigardas ĝin. Esti konscias, ke mia HTML kapabloj estas iom kruda. La nomo estis elektita provi esti komprenebla per ambaŭ Angla parolantoj kaj Esperanto parolantoj. Bio Luminesko en Angla, kaj Bio Iluminado en Esperanto.