I'm currently visiting 29C3, the 29th Chaos Communication Congress in Hamburg together with my fellow CCCfr (Chaos Computer Club - Erfa Kreis Freiburg) members.
Had a great time so far.
Sadly I found out I'm nearly out of filament just when I packed the car and there are (surprisingly) only 2 other people with 3d printers here and both use 1.75mm filament. ...while I run on standard 3mm.


Missed most of the talks because I was either talking to people and getting great solutions for current issues, lectures being full or by being tied up because the 3d printer was still running or the soldering iron hot.

personal projects done and presented

Managed to get quite a lot done too.
  • At the moment I'm printing a belt tensioner for my titanium ABP belt on the 3D printer.
  • Designed and printed a first prototype of an adapter to use Saeco dual-height coffee pad holders in my coffee machine.
  • Converted a japanese EEG toy to european 50Hz mains frequency, added a port to get the raw signal and decoded the protocol in a logic analyser. (Didn't manage to connect the EEG to my R0cket because of issues setting up the R0cket module build environment.)
  • Designed a completely new camera flash based on the YN460 II but with a better battery case,  switch between batteries and mains power supply, integrated umbrella holder, space for an Arduino Nano to remote control the power and not just trigger the flash remotely.
  • Did a lot of Arduino prototyping using different sensors.
  • I still plan to reanimate my old N.S.E.C.T. toy robot and connect it to an Atmel in the remainng 2 congress days.


Necomimi EEG on the inside

I'm trying to connect a TGAM1 EEG sensor to a R0cket badge for 29C3 / Chaos Communication Congress of the Chaos Computer Club.

Because I have not found and photos online:
This is what the Necomimi EEG toy looks like on the inside.
Below the sticker. Are 4 PH0 bolts.
A main PCB on top of a breakout-board and a

The large breakout PCB is secured by 2 PH00 bolts.
This is the 60Hz US Version.
Beware of the third PH00 securing the tiny main board below.

The main board looks to be a
Thinkgear TGAM1

So to convert the notch filter to european 50Hz interference:
"Tie the M pad to VCC pad to select 60Hz, and to GND pad to select 50Hz notch Filtering frequency."
The M pad being on the hidden side of the board.
M=TP7 has 100KOhm to P4-1(square)=VCC and 1MOhm to P4-2(round)=GND .
So M is indeed tied to VCC for 60Hz.
So we have " 57.6k Baud with Normal* + Raw Output Mode"
"Normal Output mode includes the following output: poor quality value, EEG value, Attention value and Meditation value.".
Thus maybe it's enoug to sniff the existing serial communication instead of replacing/reprogramming the original microcontroller.

There is a surprisingly large solder-bridge below TP1 and R12. No idea about it's purpose.

Interestingly P4=power is not connected. Instead the GND and VCC on P3=serial communication are used.
All test points are easily accessible, so attaching a microcontroller should be easy.

I don't know if the boards are permanently connected or if this is a very tight socket as there is some black plastic beweet the board where they connect.
I also can't see the microcontroller used as it's hidden by the TGAM1 board.
...stay tuned (My Multimeter battery is dead, so I can't continue to check how the solder bridges are wired.)

The protocol seems to be 57600bps UART at 3.3V as documented and is described here and here linking here.
(frame structure: 2x 0xAA sync, 1x payload-length, payload, 1 byte checksum (sum payload, lowest 8 bit, inverted))



3d printed vacuum cleaner attachment for CNC done

I finally got around to actually mounting this.
Works great!
Sits super tight and sucks like hell even without brush brisles added yet.

Maybe some day I'll add LED lights and a mounting for a cheap USB endoscope camera.
...or you can do that as the design is published under CC-BY-NC-SA.
It's paramtric, so you can easily change the meassurements to fit different spindles and vacuum cleaners.


    Thing-o-Matic 3rd dino

    The Z stage of the Thing-o-Matic has 2 unused mounting holes in the back.
    Yet it only supports it's heavy extruder from the left and right using long levers.

    When transporting the ToM in a vibrating vessel, maybe even non-upright, there is lots of stress on these tiny bolts.
    (Think of having it on it's back in the overhead compartment of a train.)

    So I designed this to support the extruder stepper from the back with a third "dino".

    License: Creative Commons CC-BY-SA (no -NC)


    Parametric tablet stand

    I just mounted a selfmade 0.025mm thick titanium conveyor belt with Kapton surface to the smaller one of my 3d printers.  ..works great!

    One of the first things I printed with it was this:
    I really like Nexus7 Stand by Parametric Design but I wanted some changes.
    Using the stand in a train I found the viewing angle to be too steep.
    It's also very small. So the headphone cable on one side of the (landscape) tablet pulls it away.

    Thus I made a parametric stand.
    One that has 2 slots to use the tablet in 2 different viewing angles and that is wider.
    Both angles and the sizes are asjustable before it's 3d printed.
    And yes, it does carry it's own Thingiverse ID engraved.

    2012-12-10 Titanium belt and parametric Nexus7 stand


    The Long List of Google+ Issues

    This started as a looong Google+ comment.

    Android app still sucks. Here is why: (long list)
    Apart from the already mentioned things it has major issues with notifications and bad networks.

    Like you clicking on a notification about a new comment... And it silently fails, showing just the comments it already loaded, not informing you that there are a dozen other ones it failed to load.

    Why can't you add additional circles to share a posting with after it's posted?

    And of cause that notification is gone forever once clicked.
    No matter if it actually succeeded in loading the content you are being notified about.
    ... So much for transactions.

    Notifications between multiple Android devices and the web (with the Nexus7 and 10 tablet usage grew even stronger)

    Why is there still no Google+ for GoogleTV?
    It's so image centric that it's unusable for reading the texts on tablets (the background image has higher priority then the few bytes of comments), yet it needs to be sideloaded=pirated for the big screen of a GoogleTV.

    And images not being zomable in the web?
    The larger your physical screen is, the less you are able to read text in images.

    Having to log out and in In the Android client all the time because it does notify only for that one account and one page?
    What's the point of having e.g. a GoogleTV or a tablet that's shared between people? People having work and private accounts! Discouraging the Businesses that spend tons of money in Google advertisement and want to work "on social". Be agile. React fast to follower comments and posts!

    Still no API!
    Not a single multi-protocol twitter client can integrate Google+ and give people a smooth way to move over by cross posting for a while, their posts becoming longer and more image-heavy then Twitter allows and finally leaving Twitter for Google+.
    Your competitor is Twitter, not so much Facebook!

    There is not even an account and page selector in the "share with" activity of the Google Plus app.
    Very bad user experience. 
    You have to select and download and type content again because you suddenly notice that your Google+ app is currently in the Page instead of the account or the personal instead of some after-dark account.

    What's the issue with *Nicknames*?
    I can't find people that I have known for years because I know them by their nicknames. I have no clue and I don't care about their "real names".
    They don't want me to know their real name and for good reason!
    PS: in the Android contacts app it doesn't fine people when I search for their nickname entered in gmail-web as "nickname: _____" in addition to their real name that I don't know from the top of my head because I only use it for paper-mail and door-bells.

    *Image ordering*!

    The ability to *add additional images* to your last post. Not making all images you could possibly need, then typing, then sending, then finding out you are missing one but only being able to edit the text.
    (It's already an improvement that you can edit texts you entered on the phone in the web. Previously they turned up empty when you hit "edit".)

    Why isn't *Blogger* better integrated into Google+ ?
    Google+ is microblogging, Blogger is (macro)blogging.
    I can inform people here about a blog-post but I can't turn a microblog-posting that gets too long into a full blog post.
    I *can't copy&paste* because all + and # will be removed from the text, garbling the text beyond recognition!

    Don't get me started on how poorly practucally all Google Android software is tested on slow and unreliable networks.

    Every Twitter client stores a posting you send and *retries* until it can upload. Google+ doesn't. It forces you to keep the Google+ client open, thus highjacking your phone until network stabilizes enough to send out the posting.

    Edit the posting you just sent due to a type? The one that's still in memory?
    You have to load it from the network again!

    When you use multi-signin on the web and select menu->link to this post?
    It keeps the /0/ and /1/ in your link. So you can't jsut paste that link anywhere because if this happens to be your work account /1/, people clicking that link will get a login screen instead of the posting.

    The Google+ web site fails terribly when Ajax responses are login-pages injected by hotspots you're passing by. It doesn't retry and you have to load all that heavy, bandwidth eating imagery again! While not a bug in Google+ it is becomming very common and should be dealt with in error handling code soon.

    Oh and there is no reasonable place to give bug reports like these...


    testing asymetric speeds per 3d printer axis

    Since I mounted my new extruder and replaced that unreliable Makerbot MK6 junk,
    my Thing-o-Matic got much more reliable.
    I can actually think about larger prints again.
    It cannot possibly reach the speeds of stare of the art printers like the Ultimater (lightweigth Bowden-Extruder and Y stepper not moving a heavy X stage) or the Type 1 (strong longneck stepper motors).

    Testing a long pause

    Today I tested doing long running prints by simply doing a pause.
    Pause while bed and extruder are kept warm works well.
    A pause with both cooled down mid print for 9 hours had the undesired effect I expected. The ABP belt cooled down and the object fell of.

    Testing asymetric speeds

    So now I'm trying to speed up the print job instead.
    30mm/s worked fine.
    60mm/s worked fine too and has become my new default speed. (Twice what I had for 2 years now.)
    At 90mm/s and 120mm/s the Y stepper lost steps. It has to push around the X stage, so it bears the most heavy load.
    Now I tightened everything down and greased the Y axis with PTFE.
    I'm trying to limit the Y axis to 80mm/s via machines.xml
    (Value ius "4800" because the unit in there is mm/MINUTE while everything else uses mm/SECOND.)
    At the same time the X axis is allowed to move at 120mm/s extruding and 150mm/s travelling.

    ...let's see how this works out!
    Print time estimation changed from 1h40m zu 1h1m .

    Fist result: FAILED
    ReplicatorG seems to generate correct g-code that stays below the maximum speed on each axis.
    However when executing it, movements that specify multiple axis (as is the default in 5G = use of G1 commands with 5 arguments covering all 3 axis + extruder + speed) some sanity checking code comes in and disallows the movement. Even though the slower Y axis isn't moved in the command or it's part of the motion-vector is below it's per-axis limit while the total speed is above the limit.

    That test is a bug in ReplictorG and can be disabled with the preferences setting
    "[ ] Review GCode for potential toolhead problems before building"

    Second result: FAILED

    X at 120mm/s
    Y at  80mm/s
    Error message disabled.

    Made a proper bug report and submitted a patch for the Line 420 in replicatorg/machine/Machine.java at http://replicat.org/reporting-bugs .
    "We should have a response for you within one business day"
    ...let's see about that.
    Answer a few hours later:
    Ben McCallum, Dec 05 15:02 (EST):
    Hey Marcus, Thanks for the email. I'll pass this along to the devs. Best, Ben
    Update: One week later I need to "update" my ticket so it won't be automatically closed because nobody acted on it.

    The second layer was nearly 5cm off due to lost steps on the X axis. It seems that X cannot go to 120mm/s either.

    Third result: 

    Limiting both axis to 80mm/s now.
    Layer height increased from 0.27 to 0.4mm to reduce layer count and thus print time.
    No larger nozzle to test with. ;)

    I think I need some kind of wire card or cable drag chain for the ABP platform.
    The cables are shaking loose at these speeds.
    (Already tighened a lot of bolts. They'll have to get nylocs. That threatment helped with nuts shaking loose on my beloved RepMan. However tiny M3 nylocs will be expensive and hard to find compared to common M5.)


    I'm not sure if this is the X axis skipping or of a cable from the ABP platform got entangled and prevented the platform from moving in X.
    I secured the cables with tape and will try again.
    At 80mm/s.

    Fourth result:

    Looks like when you use all of the tiny 100x100mm platform, the X+ end switch cable and the ABP cables do touch and can entangle.
    Given that the steppers have much less force at higher speeds, my hypothesis may be correct.
    If there was X skipping, I should have seen it happen much more often and not all at once.

    ...still printing.
    This is a >1h print. Both to get the part done (an upgrade to my CNC) and to get reliable results by printing for a long time.

    Lost a lot of steps in Y but none in X.

    It's getting late.
    Premature results:
    maximum speed for X: 80mm/s
    maximum speed for Y: 64mm/s

    Maybe X can go up to 100 or 120mm/s. That remains to be tested.
    Increasing layer height from 0.27mm to 0.5mm had issues with convex surface details but generally works.


    On 3d printing and Creative Commons NC = non commercial

    My designs are usually CC-BY-NC or CC-BY-NC-SA .
    Here is my understanding of this.
    Please comment if your interpretation differs from this.
    If you know of any interpretation or discussion about NC and SA regarding designs for 3d printing, I'd be glad to list them here!

    Short version: You can make and change them but not sell them.
    Because if anyone is selling my design or physical parts I designed, that should be me.


    Any derived design gives attribution that it is based on this one.
    Nobody else is free to call him/herself creator of this design.


    "copies or adaptations of the work to be released under the same or similar licence as the original"
    Printed objects (in my understanding) are not copies or adaptations of the design. They are the design "in all media and formats".
    The medium here is a physical object. It is therefore not a derived design but just another representation of the same design.
    Changed designs however need to have the exact same license (or one that CC has publicly declared to be compatible).

    Even without the SA part derived designs are still Non-Commercial.


    You may not sell the design and you may also not sell 3d printed or CNC milled or otherwise manufactured physical representations of the design for money.
    Legalese: "in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation"

    You are free to make physical copies for yourself or friends.
    You are not free to sell them in a shop.
    You are free sell the service or 3d printing designs in general and accept this design as given by your client to be made.
    You are not free to advertise this design to be made or sell physical copies to anyone but that one client who ordered you to make it. (e.g. that client using your website to open a virtual shop.)
    You are free to give one to a friend for free.
    You are not free to give one or many away as advertisement.
    You are free to sell a personally used machine that just contains a replacement or improvement I designed.
    You are not free to sell (a) new machine(s) and advertise that it contains my improvement.


    Testing Sailfish firmware and new extruder on Thing-o-Matic

    I just mounted my new extruder and am now testing the Sailfish firmware.

    How to mount an extruder on a Thing-o-Matic

    This isn't easy.
    Makerbot Industries does sell alternative toolheads but does not have connectors on any of the toolhead cables nor are the extruder mounting bolts easily accessible. (Or accessible at all.)

    Heat up the nozzle, pull out the filament and let it cool down.

    Remove the M5 bolts holding the "Dinos" (the arc with the hoolhead).
    Take of the toolhead and dinos.
    Lower the Z-platform as much as possible.
    Turn the toolhead until the stepper points upward. The 4 multing bolts for the extruder should not be level and point to the back of the machine.

    Now carefully fiddle your M3 ballhead hex driver through the hotend and unscrew the bolts. Do not remove them. Gravity should keep them just in place as long as you are slow and careful.

    Have a Dremel ready in case anything doesn't fit down to the millimeter.

    Be sure your cables are not twisted after changing the extruder.

    Sailfish - first print

    Had to write a "Thing-o-Matic with ABP and Extruder MK6 (Accelerated)" machine profile.

    Easy to do by copy&pasting from the HBP+MK7 and the ABP+MK6 profiles in Sailfish/replicatororg-0040-windiws-r003/replicatororg-0/thingomatic*.xml

    Using the jog-controls, I found, I had to reverse X but not Y and the A=stepper.
    Heating up and extruding into thin air at 185°C (PLA) worked.

    Now on to the first print.
    Selected G-Code Generator "Skeinforge (50)".
    In generating G-Code a dialog popped up that seems to override many settings of the Skeinforge profile. I don't like that at all. I like having Skeinforge profiles for each machine+material combination. Entering 3mm filament instead if the default 1.85 and 185°C instead of the insane 230°C.

    After heating up, the the toolhead stays at maximum Z and prints in thin air instead of the ABP.

    I found a G-Code "M132 X Y Z A B (Recall stored home offsets for XYZAB axis)".
    Maybe I need to set and store the Z-position of the ABP belt somewhere.
    The Install Guide and then Setup Guide don't mention anything like this.
    OnBoard Preferences have a tab "homing" with "X/Y/Z home offset (mm)".
    Z is at 109,4mm. This is the height of my ABP belt. So it looks correct.
    The machine thinks it is at X=24,984mm Y=-44,211mm and Z=10.000mm while waiting at the top.
    Found out through this issue that there is a calibration script you are supposed to run.
    The setup guide didn't tell you to do this.
    Generated G-Code again...second print.

    Still prints in the air, way above the ABP platform.

    Changes the "Z home offset (mm)" from +110 to -110mm.
    Pressure on the extruder arm is very tight but I can't see any sign of it giving or cracking.
    (Tightened it until it extruded as much as it does when I press the extruder arm with my hand.)
    No effect. Still prints in mid-air.
    Reversed my change.
    No mention of this in the troubleshooting guide.
    Added some "G92 Z110.3" and "G92 X-57 Y-57" to the end of the homing sequence. (Taken from earlier G-codes I used before the update to Sailfish.)
    This issue looked similar. Double checked that I had indeed checked "Use default start/end gcode".
    This issue looked similar too but my machines.xml has maxfeedrate=1000 and homingfeedrate=500 aready.
    Problem found! It had the wrong machine configuration loaded. They all sound very similar.

    next print...

    Now it does move down to heat up. But too far left of the nozzle-wiper.
    It is at command 360 when heating up. I should find and change that command.
    Changed the parking positon in start.gcode, didn't help. bed-temperature seems to be overriden by something. My change from 100 to 120°C didn't make it into the final gcode.
    That's why I don't like programs overriding setting in other programs.
    ...found the issue. machines.xml had the HBP instead of my ABP version of start.gcode referenced.
    Now my wiper-position and my prefered 120°C ABP temperature are regognized.
    G1 X60 Y-60 Z10 F3300.0
    M6 T0
    G0 X60 Y-57
    instead of  X25
    Some issues with first layer adhesion to the old ABP belt in my very small test object. A raft solves that.

    Fist impression: The new extruder seems to fix my extruder-reliability issue with the MK6. (At first glance. Need to test with long running, large prints.)

    Faster speeds (still 30mm/s)

    Trying: 60mm/s (instead of 30mm/s). Didn't find a setting to change extruder RPM from 1.89 to something higher. Hopefully PrintOMatic scales that correctly. Temperature remains at 185°C for the nozzle and 120mm/s for the bed.

    It seems that the nozzle doesn't extrude right away and there is a skipping noise once every time the extruder starts up. Maybe it reverses too much. Increase filament pressure slightly doesn't help. Maybe I should increase the temperature.
    The extruder RPM was aparently scaled with the doubled feed rate.


    Trying extruder at 200°C (instead of 185°C) and 60mm/s (instead of 30mm/s) now.
    No skipping noise. Extruding starts right away. The increased temperature seems to do the trick.
    I'll have to see if that higher temperature creates warping in large, slender objects.

    Hardly a visible difference between the same object printed at 30mm/s(185°C) and 60mm/s(200°C)

    The final cooling down and ejection via ABP still needs some work. It seems to cool down and down and down but even after getting below 40°C it still didn't go on to start the belt.
    Also I was missing the code to stop heating the belt after a print in my stop.gcode.
    Maybe I can change the nozzle wiping in start.gcode to do multiple passes over the wiper.
    Just to increase reliability when chaining multiple objects to be printed.

    Even faster (120mm/s)

    Loosing steps in Y (front/back) but not X at 120mm/s. Doesn't work (yet)

    Slower (90mm/s) 

    Trying 90mm/s at 210°C now...
    This is 3x my original speed that I was limited to for years! It would make 4h prints print in slightly more then 1h.
    Still loosing steps in Y.

    Back to 60mm/s

    ...just to make sure it still works.
    Keeping the 210°C and my multiple-wiping procedure.

    60mm/s works!