Thursday, June 17, 2010 3:11:47 PM
I got the pololu's finally running.. seemed to be a problem with the pin soldering :-(
I used the female headers to push the polo'u male pins in .. but on one of the pololu's the wrong headers (male) are soldered. This header is wider then the rest, this means that there is some stress on the headers..
This stress caused the header to come loose. But a shining strip of pins and a shniy bed of solder.. Welll you can't tell there is a fraction of a mm missing :-)
Sunday, June 13, 2010 2:25:56 PM
Update: Working on the electronics now..
As said I am going to use the pololu drivers as they are complete, small and easy to use.

Monday, June 07, 2010 3:30:09 PM
Well we are a few days gone and the mendel is mechanically almost there..
Just a few more parts and we can start the calibration process
So far I haven't come to any great problems.. ! all moves smoothly and no wobbles as far as I can tell, but this we'll see when the electronics are connected :-)
Wednesday, June 02, 2010 3:13:06 PM
Finally, today I got time to start the build of the Isaac..
Starting if with the documentation as present on the flemingCNC website and having Alibre with the assembly present helps.
So far no problems in using the docs and building up the threaded rod structure.
The only problem I had was with the pulley's The have an inner diameter of 4.75mm and the shaft is 5mm.. so I file out a tiny bit of the pulley and smack it on the shaft.. It is stuck .. no movement in the pulley .. Not sure if ok but filing the shaft is my second option. (not the first :-) )
images of the build sofar are at http://picasaweb.google.nl/xmlspider/ISAAC#
Monday, May 31, 2010 9:39:47 AM
As I decided to restart the complete 'I want me to build a Mendel' project, I bought the kit from Fleming CNC at www.flemingcnc.com. And today it was handed out to my by my local postman. :-)
Never ever have I seen such a neatly packed and labeled kit.
And also an official document stating that I have the nr. 011 kit..
All items are put in a envelopes with a description of the contents!
All this included in a massive load of bubble wrap!
So there is No WAY that one of the items could be damaged!!
Or the mail would have had to handle it very abusivly
The Isaac will be build with hardware ordered at www.mendel-parts.com
the electronics will be build around an Arduino Mega and 4 pololu drivers!
So this should be post 1 of the ISAAC build thread!
Pictures at http://picasaweb.google.nl/xmlspider/ISAAC#
Wednesday, May 19, 2010 1:29:53 AM
Ok .. This was it for the Catalyst mendel.
It is a non working project! At least for me...
You would need an up and running 3d printer of you want to make this running. Parts need to be redesigned or replaced..
So what's up Next?
I am surely not giving up.. Still persuing the build of a mendel 3d printer.
So I have ordered the Isaac kit from FlemingCNC.com. This company shows an up and running printer based on their objects.
Also they have left all measurements intact!! That is a big plus.. Meaning that you can exchange the parts you want with part from an orginal mendel. All the remaining hardware has been ordered, or will be in a couple of days, with a 'new' webcompany here in the Netherlands.
Also I have decided that the electronics are too hard to get hold. A second issue is that I don;t like the extruder board of the makerbot style electronics. So I have picked up the gloves and ordered 5 pololu A4983 drivers .. Yep that's correct 5.. the 5th for just in case :-) And this is joined by a Arduino Mega instead of the standard Sanguino/Arduino.
So all in all.. New challenges, new fun and more time to be spent.. At least I am doing something 'usefull' instead of cough hanging :-)
Wednesday, April 14, 2010 4:12:52 PM
Today I got the message I got the offer of being a VWG MVP.
And Yes!!!! I accepted this :-)
Thanks to the guys of VWG for this recognition!!
Sunday, April 11, 2010 1:56:24 PM
Finally!!!
I've got some spare time to start my build of the Catalyst mendel by James. This is also the first time I really took a good look at the parts.
I already found out 3 days ago that all M8 bolts were missing! And you need about 50 of them :-(
So have got them in the idea that m8 is the same m8 but no way that the bolts fit on the 5/16 (m8). This ment a new trip to the store.. All the threaded rods have been replaced with M8 rods.. I think mine will run slower based on looking at the treading of my M8 in comparison with th 5/16 thread..
The first section went in quite easy.
After this I were glad I have a dremel at hand.. I needed a lot of hole to be redrilled or widened.. Also for cleaning I have used it quite a lot..
After 1 day it seems that mechanicly I am ready. But am still missing my extruder and x bar item.. I've tried to contact James several times the last 2 weeks but never was able to get in contact with him.. So now I have order a makerbot plastruder kit and I hope to purchase a wade based extruder section.. Then I will create some wooden parts to connect all to the x-bar.. and hopefully get it to print in a couple of weeks..
Then I guess I will completely replace all the molded parts of this thing.. It is to fragile.. it is not straight.. so it looks horrible but for now it works. Qua costs I am still within a $450 range so all in all I think I got no problems, but still have it getting to print!!
Images are here !
Sunday, March 28, 2010 4:57:01 AM
Creating extendible applications with MEF
Ever wanted to create an application that is easy to maintain and even more easy to extend?
Then the following piece by Michael Hensen about Microsoft Extension Framework (MEF) could be a solution for your needs!
With MEF, which is part of VS2010 own extensions platform, you can write parts of an application is an enclosed dll. This way you can build up your application the normal way and based on the requirements of a client you can add or remove functions as easy as removing a dll from the base directory.
This can be done in VS2008 and you won’t need VS2010 to be able to do this right now.
You can find more info on MEF at http://Mef.codeplex.com.
Creating a simple Hello world with MEF and Visual WebGui.
In this section I’ll show you how to write the base for a simple framework that can take multiple functions from multiple dll’s and have them interact with the framework.

As a picture tells more then a thousand words
In the image above you see the complete idea of how to work with MEF and the first main thing you notice is the part named ‘Interface object’. This holds the interface of the function objects on which they need to comply. As an interface is a contract you’ll always now which minimal functions such an object has implemented.
But first we need something that can present all the functions and give the user the change to use functions defined in the function blocks. This is called the main application, which has a reference to the interface block so that we can call the functions.
For this sample a very simple framework is used. Just a splitter panel with on the left side a navigation tabs control and on the right a headered panel. The Navigation tabs will show the names of the function objects found in the main bin directory and after selecting a tab the right side will show you the function. The main application and function objects also have all a reference to the MEF component named System.ComponentModel.Composition.dll which can be found in the MEF package from Mef.Codeplex.com. Note that there is NO reference between the main application and the functions directly!!!
The Interface object
For the purpose of this sample a very simple interface is declared.
You can make the interface as complex as you like and extend it with events and other functions as you like. As long as you remember that every function object that you will write will need to implement the complete interface. Thus splitting up an interface in multiple interfaces is preferred when your interface would be to complex or to much to implement simple functions. I myself use multiple interfaces to split up common objects. This is code for the interface object.
namespace IMEFInterface
{
public interface IMEFApplication
{
string Name
{ get;
}
void Init();
}
}
Just a simple Init function and a Name property are implemented in this case. This means that every component would need to have this 2 items declared!
Loading functions with MEF
Now that we have the basic layout of the framework application we need some code to let the framework now where and what to load as functions
Let us start with the main code of the application.
The comments in the code should explain all the functions as used!
#region Using using System;
using System.Collections.Generic;
using Gizmox.WebGUI.Forms;
using System.Reflection;
using System.IO;
//The MEF object
using System.ComponentModel.Composition.Hosting;
using System.ComponentModel.Composition; #endregion namespace MEFSample
{
public partial class frmMEFContainer : Form
{
//this tag causes MEF to start searching for objects/functions tagged with export(typeof(IMEFApplication))
[ImportMany(typeof(IMEFInterface.IMEFApplication))]
List<IMEFInterface.IMEFApplication> ImportedItems; public frmMEFContainer()
{
InitializeComponent();
}
private void frmMEFContainer_Load(object sender, EventArgs e)
{
//Load the lists with the importmany tags
LoadMef();
//iterate through the list to get the functions and a a tab to the navigationtabs.
foreach (IMEFInterface.IMEFApplication FunctionObject in ImportedItems)
{
IMEFInterface.IMEFApplication mAppExtension =
(IMEFInterface.IMEFApplication)Activator.CreateInstance(FunctionObject.GetType());
NavigationTab mNavTab = new NavigationTab();
mNavTab.Text = mAppExtension.Name;
//add the object as a reference to the tag.. Mind that no instantion is done.
mNavTab.Tag = mAppExtension;
navTabs.TabPages.Add(mNavTab);
}
//init the first tab
navTabs_SelectedIndexChanged(navTabs, null);
}
static public string AssemblyDirectory
{
get
{
//where to look !!
string codeBase = Assembly.GetExecutingAssembly().CodeBase;
UriBuilder uri = new UriBuilder(codeBase);
//create a path withouth the file// extension in front
string path = Uri.UnescapeDataString(uri.Path);
return Path.GetDirectoryName(path);
}
}
private void LoadMef()
{
//What directory to look for!
String strPath = AssemblyDirectory;
using (var Catalog = new AggregateCatalog())
{
DirectoryCatalog directorywatcher = new DirectoryCatalog(strPath, "*.dll");
Catalog.Catalogs.Add(directorywatcher);
CompositionBatch batch = new CompositionBatch();
batch.AddPart(this);
CompositionContainer container = new CompositionContainer(Catalog);
//get all the exports and load them into the appropriate list tagged with the importmany
container.Compose(batch);
}
}
private void navTabs_SelectedIndexChanged(object sender, EventArgs e)
{
//Clear the panel controls.
headeredPanel1.Controls.Clear();
if (navTabs.SelectedItem == null)
{
//stop if we have no tabs!!! (no functions)
return;
}
//get the functionobject from the tag as added by loading tabs function in frmMEFContainer_Load
IMEFInterface.IMEFApplication mControl = (sender as NavigationTabs).SelectedItem.Tag as IMEFInterface.IMEFApplication;
//use the interface to get the name
headeredPanel1.Text = mControl.Name;
//convert it to a control
UserControl FunctionControl = mControl as UserControl;
FunctionControl.Dock = DockStyle.Fill;
//add to the panel
headeredPanel1.Controls.Add(FunctionControl);
//init the object to start the display
mControl.Init();
}
}
} From now you can start the application but nit much will show. If you do run you’ll see
Building a function you can use in the framework environment.
A simple function that will be imported by the application. This will cause the main application to add a tab and display the function.
#region Using using System;
using Gizmox.WebGUI.Forms;
using System.ComponentModel.Composition;
using IMEFInterface; #endregionnamespace MEFExport
{
//mark the object as a function and implement the interface as declared before.
[Export(typeof(IMEFApplication))]
public partial class Function_1 : UserControl,IMEFApplication
{
public Function_1()
{
//Notice that the InitializeComponent function is moved to the Init funcion.. This to preserve instantiatin and thus improve performance as no controls are build yet!
//and that you alwys will start with a new clean screen
}
#region IMEFApplication Members
public void Init()
{
InitializeComponent();
}
private string _Name;
public string Name
{
get
{
return "Function 1";
}
}
#endregion
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(String.Format("Hello world started from {0}", Name));
}
}
}
Again all comments should be suficient enough to get you started.
Build the component and copy the DLL to the bin directory of you application. If you do not copy it you will not see any function. If you’ve copied the function you should see the tab and the label named function 1 with a button. Also notice that all the function are inside the component itself.

Now you can add function as much as you like. Group them in DLL’s. In the sample included is a the code as above and an object with 2 functions in 1 dll and an object with a single function.
Finally you can build up complete applications like this screen shows.
End Note
I use MEF myself in my applications as this gives me a form of freedom and easy of extending an application. Also I can choose to distribute functions specific to a client or choose to have the component be part of my main application

As you can see only imagination is your limit!
Happy programming and if you have any questions please send me a message at mh[at]WebVize.nl
Sunday, March 28, 2010 4:51:31 AM
Yes...
Got all the electronics in for a second mendel.. Now it's nearly tome to start building the first one.. The 'Catalyst' from James. But I have no time
:-(
Hope I will find it in the next couple of weeks. In the meantime I hope that the remaining parts for the Catalyst will arrive. According the email conversations I should receive all in a couple of days ahead!
And last but not least I will move coming saterday and meanwhile continue running the business :-) But moving is already being a good choise!