Developers: NEVER invest time and effort into any Google project that isn't mainstream.

For everyone outside the Tango Developers Community:
Be warned to never invest time and effort and money into ANY Google project that isn't yet mainstream.

I am SO pissed.


When buying the Phab2Pro specifically for Tango development and testing and using it as a plain user, it was a commitment for 3--4 years (when it will be time for the next phone).
There was no really stable SDK ever to START any serious development. It was constantly bugfixes, updates and changes.

After the Phab2Pro none of the other hardware manufactures had yet the time to see it and and the newer model perform in the market before investing huge money into a risky platform.
Aparently they where right NOT doing so,. Proven by this cancelation.

It's the same I already had with the completely useless GoogleTV collecting dust (given to developers by Google itself back in the days).
After porting software to it, investing lots of time, it was abandonned without ever being adapted for the differences in how TVs are used in Europe (commonly no set-top boxes).

Remind me to NEVER invest time, effort and money into any Google project anymore. For a developer, it is way too risky to throw so much time, effort and personal money at it. All of it will be completely lost and in vain 6 month later.

  • Announcement that Google Tango (formerly Project Tango) is now dead.


TechShop and the Multistruder

I am a Kickstarter Backer of the "Multistruder: 3D Printer Filament Extrusion Tool"
It was supposed to be a filament-maker for recycling.
Problem is. TechShop in the USA went bankrupt.

According to the fulfillment blog, this effects the "reclaimer" plastic-grinder heavily,
but my Multistruder filament-maker only slightly.
Luckily only because of a broken down 3D-printer and I only backed the Multistruder.
Planning to grind myself (how difficult can it be... ;) famous last words).



'roast only' on the Bonaverde - Rodolfo Ruffatti

Project history

  1. old posting: Trying 'roast only' on the Bonaverde again
  2. current posting
  3. next posting: 'roast only' on the Bonaverde - Aldo Parducci

This time I tried
Bean Type:  Burbon Rojo
Grown by Rodolfo Ruffatti
of El Salvador

This is one of the larger bean packs I got from the first coffee delivery  for my Bonaverde Berlin roast+grind+brew coffee machine.

Results I

I used "roast only" in the alpha version of the "Coffee Concierge" Facebook Messenger Chat bot on Saturday.
Now it is Tuesday.

Update: I did NOT use a water filter yet. See 'roast only' on the Bonaverde - Aldo Parducci for the results when I added one.
Update: See Coffee with bottled water for later experiments with water that resulted in much better coffee.

I did NOT use the roasting profile for these beans because for "roast only" I can still only use a generic default-profile. 

 Again I used my Hario Skerton manual coffee grinder at the finest setting (dust).


The espresso had slightly cold water this time. The IR-Thermometer meassured only 65°C but I believe that meassurement was in error as the water came fresh out of the coffee machine.
Again I used a Handpresso.
....the espresso was amazing. Perfectly mild and tasty. Not a hint of sourness or bitterness at all.

filter coffee

The filter coffee using the off-the-shelf Krups coffee machine was good.
Not as perfect as the espresso but a real good cup of coffee.
Absolutely no comparison to the "Almond" beans I tried yesterday.

Results II

This time I used a water filter.
I did NOT use the roasting profile for these beans because for "roast only" I can still only use a generic default-profile.

filter coffee 

I tried 42g of beans that I had roasted and then put in a sealed, dark plastic bag with no air in it (aside from the CO2 that the beans release themself) at slightly below room temperature.
It was...slightly sub-par. Too sour for my taste.

Then I tried 42g of beans roasted the night before and left in the roasting chamber to be ground and brewed the next morning.
It was terrible. Completely sour.


Results III

 For comparison I did a roast-grind-brew cycle with no time for releasing CO2 between roasting and grinding.
This time I used a water filter.
I did use the roasting profile for these beans.

filter coffee 

Well.... as long as it's hot it is only a bit sour and leaves a sour after-taste. That taste clouds everything else.
As soon as it started to cool down even a tiny bit it gets real sour.



ATC: MACH3 M06 tool change macro for USOVO

Project history

  1. Evaluating my choices in  back in February
  2. Decided on what ATC system to get in March. (posting contains MACH3 software references)
  3. The Usovo spindle and parts finally arrived in April
  4. Mounting spindle and cables in May
  5. Defining M06 tool change macro
  6. Next project: designing a chain link tool library

I managed to get my automated tool changer to work.
Due to a compressor failure and missing part to get the new compressor operational, this was delayed FOR A LONG TIME.
It was a few minuted before I had to leave, so sorry for the crappy cellphone video.
(Also the youtube "stabilize video" algorithm makes my feed drunk.)
It's also still in debugging mode with a very low feedrate and a "continue"/"abort" question at every step in case something doesn't fit.
I also haven't done any tool length probing yet.
The front side of the tool magazine is too low because it sits on a temporary mount for the 4th axis that I am about to replace with a thicker version machined from POM. However for that I need the ATC to work.





First we need to place a new user-defined DRO "1212" on one of the screens. It holds the OLD TOOL. This can be done with the mach3screen.exe screen- editor.
It is assigned at the end of the last M6End.m1s macro.



'M6 start macro with auto tool touch off

'Check all axes referenced
If (GetOemLed(807) Or GetOemLed(808) Or GetOemLed(809)) Then
   Message(" Please Home Machine before Tool Change")

   'Cycle Stop
   ' Button 3 - select Toolpath screen

   Exit Sub
End If

'--------------- CONFIGURATION

' the X+y+z position of tool #0 is stored in DRO 1200, 1201, 1202
' distance of tools inside the magazine along the Y axis
TOOLDISTANCE_Z = (33.5-36.5)/5

' safe absolute Z position
SafeZ = 0
SafeX = 65

' position of the tool height sensor (magazine must be open)

' Thickness of touch plate in the offset-screen
PlateThickness = GetOEMDRO(1001)


' Save the current feedrate.
CurrentFeed = GetOemDRO(818)

' Save current coordinate mode to restore it later
oldCoordinateMode = GetOemLED(48)

' Set absolute coordinate mode and feedrate

' Save the current position
CurrentPosX = GetDro(0)
CurrentPosY = GetDro(1)
CurrentPosZ = GetDro(2)

'--------------- TOOL CHANGE

tool = GetselectedTool()
oldTool = GetCurrentTool() 'GetOEMDRO(1212)
If oldTool = tool Then
  Answer = MsgBox("old tool and new tool are identical", 0 + 16 )
  Exit Sub
End If

Answer = MsgBox("experimental tool change from tool " & oldTool  & " to new tool " & tool, 0)


' use the user LED to store the state of coolant,
' so it can be restored in M6end.m1s
If getoemled(13) Then
   'OEM LED 13 = "Flood LED" thus coolant is on
   ' set user led on
   Code "M9"
   'coolent is off
   ' set user led off
   setuserled(1000, 0)
End If

'Get the tool change pos from the settings page
ChangeX    = 24                             '=GetOEMDRO(1200)
ChangeYold = 35 + (oldTool * TOOLDISTANCE)  '=GetOEMDRO(1201) + (oldTool * TOOLDISTANCE)
ChangeYnew = 35 + (Tool    * TOOLDISTANCE)  '=GetOEMDRO(1201) + (tool * TOOLDISTANCE)
ChangeZold = -33 + (oldTool * TOOLDISTANCE_Z)                            '=GetOEMDRO(1202)
ChangeZnew = -33 + (Tool * TOOLDISTANCE_Z)

While IsMoving ()

'===== DEBUG====
Response = MsgBox ( "moving to Zsafe=" & SafeZ & " quickly", 1 )
If Response = 2 Then ' Cancel pressed
End If
'===== DEBUG====

' G53 = Move in absolute machine coordinate system
Code("G00 G53 Z" & SafeZ)
While IsMoving ()

' open magazine

If CurrentPosX < SafeX Then
     '===== DEBUG====
   Response = MsgBox ( "We are above the tool magazine, moving to SafeX=" & SafeX & " quickly" , 1 )
   If Response = 2 Then ' Cancel pressed
      Response = MsgBox ( "Aborting" , 1 + 16 )
   End If
   '===== DEBUG====

   ' go to old tool position in Y
   Code("G00 G53 X" & Safex)
   While IsMoving ()

     '===== DEBUG====
   Response = MsgBox ( "moving to y_oldtool=" & ChangeYold & " quickly", 1 )
   If Response = 2 Then ' Cancel pressed
      Response = MsgBox ( "Aborting" , 1 + 16 )
   End If
   '===== DEBUG====

   ' go to old tool position in Y
   Code("G00 G53 Y" & ChangeYold)
   While IsMoving ()

  '===== DEBUG====
   Response = MsgBox ( "moving to y_oldtool=" & ChangeYold & " quickly", 1 )
   If Response = 2 Then ' Cancel pressed
      Response = MsgBox ( "Aborting" , 1 + 16 )
   End If
   '===== DEBUG====

   ' go to old tool position in Y
   Code("G00 G53 Y" & ChangeYold)
   While IsMoving ()

     '===== DEBUG====
   Response = MsgBox ( "moving to SafeX=" & SafeX & " quickly", 1 )
   If Response = 2 Then ' Cancel pressed
      Response = MsgBox ( "Aborting" , 1 + 16 )
   End If
   '===== DEBUG====

   ' go to old tool position in X
   Code("G00 G53 X" & Safex)
   While IsMoving ()

End If

'===== DEBUG====
Response = MsgBox ( "Moving down to ChangeZold=" & ChangeZold & " quickly" , 1 )
If Response = 2 Then ' Cancel pressed
End If
'===== DEBUG====

' go to old tool position in Z
Code("G00 G53 Z" & ChangeZold)
While IsMoving ()

'===== DEBUG====
Response = MsgBox ( "Placing tool in X=" & ChangeX & " slowly" , 1 )
If Response = 2 Then ' Cancel pressed
End If
'===== DEBUG====

' go to old tool position in X
Code("G01 G53 X" & ChangeX & " F" & TOOLCHANGE_FEEDRATE)
While IsMoving ()

'===== DEBUG====
Response = MsgBox ( "releasing the old tool" , 1 )
If Response = 2 Then ' Cancel pressed
End If
'===== DEBUG====

' release the old tool

'===== DEBUG====
Response = MsgBox ( "moving up to SafeZ slowly" , 1 )
If Response = 2 Then ' Cancel pressed
End If
'===== DEBUG====

' move up
Code("G01 G53 Z" & SafeZ & " F" & TOOLCHANGE_FEEDRATE)
While IsMoving ()

'===== DEBUG====
Response = MsgBox ( "moving over to y=" & ChangeYnew & " quick", 1 )
If Response = 2 Then ' Cancel pressed
End If
'===== DEBUG====

' go to old tool position in Y
Code("G00 G53 Y" & ChangeYnew)
While IsMoving ()

'===== DEBUG====
Response = MsgBox ( "lowering to Znew" & ChangeZnew & " slowly", 1 )
If Response = 2 Then ' Cancel pressed
End If
'===== DEBUG====

' move up
Code("G01 G53 Z" & ChangeZnew & " F" & TOOLCHANGE_FEEDRATE)
While IsMoving ()

'===== DEBUG====
Response = MsgBox ( "grabbing the new tool" , 1 )
If Response = 2 Then ' Cancel pressed
End If
'===== DEBUG====

' release the old tool

'===== DEBUG====
Response = MsgBox ( "moving to  SafeX=" & SafeX & " slowly", 1 )
If Response = 2 Then ' Cancel pressed
End If
'===== DEBUG====

' carry the tool out
Code("G01 G53 X" & SafeX & " F" & TOOLCHANGE_FEEDRATE)
While IsMoving ()

'--------------- TOOL HEIGHT PROBE
Response = MsgBox ( "Would you like to set your Z height automatically? If so, click OK", 1 )
If Response = 1 Then

  ' go to tool height sensor position
  Code "G00 G53 X" & THS_POS_X & "Y" & THS_POS_Y
  While IsMoving ()

  While GetOemLed (825)=0
      Message ("(Z-Plate is grounded, check connection and dismiss this dialog)")

  While IsMoving()

  'dwell for 0.25 seconds 

  ZProbePos = GetVar(2002)

  'Go back to touch position (G31 backs off after touch)
  Code "G0 Z" & ZProbePos
  While IsMoving ()

  'Set Z axis position DRO to touch plate thickness
  Call SetDro (2, PlateThickness)

  'Pause 0.5 seconds for Dro to update.

  ' go up again
  Code "G00 G53 Z" & SafeZ
  While IsMoving ()

  Code "(Z axis is now zeroed)"
  ' restore the original feedrate
  Code "F" & CurrentFeed
End If

SetCurrentTool( tool )

' close magazine


' Reset coordinate mode to original value
If AbsMode = 0 Then
End If

'===== DEBUG====
'Response = MsgBox ( "moving to back to " & CurrentPosX  & " - " & CurrentPosY &" , then Z=" & CurrentPosZ , 1 )
'If Response = 0 Then ' Cancel pressed
'   End
'End If
'===== DEBUG====

' go to old tool position
'Code("G00 G53 X" & CurrentPosX & "Y" & CurrentPosY)
'While IsMoving ()
' go to old tool position
'Code("G00 G53 Z" & CurrentPosZ)
'While IsMoving ()

' Reset feedrate to original value
Code("F" & CurrentFeed)            


tool = GetDRO(24)
oldTool = GetOEMDRO(1212)

' check user led
If getuserled(1000) Then
   'coolant was on
   Code "M8"
End If

If (oldTool <>  tool) Then
   SetOEMDRO(1212, tool)
End If


Adapter for Usovo Tool-Height-Probe

The Usovo tool-height-probes mount with M4 screws that are 21mm apart.
However the table on my CNC needs M6 screws 40mm apart.
So I designed this adapter.


ER11 collet holder

With my current ATC upgrade to the CNC milling machine,
I have need for more then one collet per size.
So to keep all these small pieces organized, I designed myself some collet holders
that would keep them ordered by size and labeled.

...just a very quick 3d printed design.



Trying 'roast only' on the Bonaverde again


  1. old posting: First Bonaverse coffee delivered
  2. current posting
  3. next posting:'roast only' on the Bonaverde - Rodolfo Ruffati

I tried the "roast only" option in the alpha version of the Bonaverde "Coffee Concierge" Facebook Messen Chat bot today.


The "Coffee Concierge" Facebook Messenger chat bot it still in alpha stage. It does not have any error messages or reminders yet and expects you to do things in  exactly the sequence it expects you to. (Without telling you about details such as pushing the button.)

  1. You need to send the command "roast only" via Facebook Messenger. It will ask you for beans. It does not ask about the type of beans or other details for the roasting yet.
  2. Then open the door and close it again. Even if you have already inserted the green beans.
  3. Then and only then click "ok". It should start roasting after a few seconds.
  4. After roasting it will show a red light. That is perfectly okay because the machine is still hot. The light will go out once it has cooled down to safe levels.
  5. Only then will the machine unlock the door.


Update: I did not use a water filter yet. See 'roast only' on the Bonaverde - Aldo Parducci for the results when I added one.
Update: See Coffee with bottled water for later experiments with water that resulted in much better coffee.

The first time I tried that (then the machine was delivered) it did not yet work.
This time it seems to be be doing something.
It asked me to insert beans. I did. 
Then my "Berlin" coffee machine came to life and started roasting.
In case this would not be work out as a "roast only" , I quickly added a coffee filter and water.... Just to be safe.

It did *not* ask me what type of beans I had inserted or to scan the RFID tag of the coffee bean pouch.
My guess is that it is using some kind of default roasting profile.

After roasting it was suddenly glowing red and was indeed not continuing with any grinding or brewing.
I put the beans into a clear plastic bag with nearly no air in there to find out just how much CO2 they will release until Monday and to keep then away from oxygen.
Then I'm planning to manually make a nice espresso and maybe a fresh press. 

Result : "Almond"

filter coffee

After 1 week to release CO2, I made a filter-coffee in the Bonaverde "Berlin".
Half the beans with half the water, so I would have beans left for an Espresso.
It tasted very different from the freshly roasted coffee. This time it was neither bland nor completely sour. It tasted like actual coffee.
It was one of the original "Almond" bean-packs.
I'm not 100% sure if I did taste a hint of almond. It was not the taste I was looking for but it was a good cup that was neither bitter nor sour and actually tasted like coffee.


3 days later I hand-ground the remainder of these beans using a Hario "Skerton" manual coffee mill into super fine dust. This is my default setting because I like making Mokka with this mill.
From what I reat afterwards (to not cloud my judgement), grinding finer or having it in contact with the water for a longer time makes it less sour and more bitter. Grinding more coarse or with a shorter time the other way around. It also gets sour when not roasting long enough but I can't experiment with that parameter yet.

I made 3 espresso (Handpresso with 70°C and 80°C water) and a filter coffee.
The espresso was sour. Every time.

filter coffee again

The filter coffee was made with a Krups off-the-shelf machine and not the Bonaverde machine.
The filter coffee was strange. The first two espresso-sized cups where sour.
After then the later 2 ones where quite okay.
Later I burn my tongue so I can't dive much deeper here.

First Bonaverde coffee delivered


  1. old posting: Bonaverde - The Facebook Coffee Machine
  2. current posting
  3. next posting:Trying "roast only"

I got a delivery of new coffee beans from Bonaverde
(It was announced that until the coffee bean store for the Bonaverde "Berlin" machines exist, people would get a package of green beans to roast-gind-brew for free to test the logistics.)
Sender address was "First Choice GmbH c/o Bonaverde Logistics"

Larger packages 

These packages are MUCH larger then the packages there machine came with. I can also not feel smaller packages inside.
Since the RFID Tags are single-use... how am I supposed to roast these? An entire can of coffee from a small pouch was already way too much. This looks like a single package could keep a small army caffeinated.

I just noticed.... it now says "scan with your messenger app"???.
Not "scan with your Bonaverde "Berlin" coffee machine".
Problem is... I can't try this because both of my phones don't support RFID.

Update(2017-11-14): From an email answer from support: "Answered on Facebook - your phone doesn't need to have an RFID capability because the machine communicates with the bot over 3G" (I will have to try that next weekend)

 Changes in labeling

It's a big improvement to list the Country of origin, bean type and weight of the packagesv now.
(See my earlier blog-posting for to compare!)

However, there is no indication given about the flavor to be expected anymore. Not even the "Blueberry" /"Fresh Nuts" /"Almond" labels the smaller packages had.

Update(2017-11-14): From an email answer from support: " Within the bot, you can now choose the roast profile for the new beans as well as find out more about the flavours."  (I habe yet to figure out how to actually DO the second.)

One other thing I am missing is any "best before" date (German: Mindesthaltbarkeitsdatum)
or at least a date when these have been packaged.

Update(2017-11-14): From an email answer from support: "Compared to roasted beans, green beans don't have an expiry date. They should be roasted within the first year from picking for the best possible flavour, but will still be drinkable and make great cup of coffee even when few years old. (I wouldn't expect them to last that long in anyone's household. :)"

Air filter without RFID-tag?

There is also a new air filter. Problem is... it doesn't seem to contain an RFID tag like the original one. So when the machine asks for a new filter at some point (after 60x of roasting according to the manual) ... I won't be able to scan this before changing the filters.

Update(2017-11-14): From an email answer from support: "The air filter without an RFID is a genuine mistake on our part, but that doesn't mean it's not usable. When your machine asks for an airfilter reset, just let us know within the bot, and we'll reset the air filter remotely. All future air filters will come with RFID."



Project history

  1. old posting: Why I'm NOT using GWizard by CNCCookbook anymore
  2. current posting
  3. next step

I just purchased a license for HSMAdvisor.
It is a feeds and speeds - calculator for operators of CNC milling, drilling and turning -machines.

I plan to use it to minimise my machining time on the 6040 CNC and to find starting-points for my new and unfamiliar spindle, for new materials, cutter-shapes and operations (e.g. CNC driling and thread-cutting).

Because it includes a license for the Android app that is limited to 1 year,
I postponed this step to the very last moment.
So my 1 year would not start running too early.


This is the Android app for HSMAdvisor.
However I should says, this is the iOS app for HSMAdvisor that also happens to run on Android, completely disregarding the Android Design Guidelines and the Android Navigation semantics.

It is in no way integrated with the Desktop app except for the mentioned 1-year license.
So you have no access to your defined cutters, machine limits or preferred materials.
Also the math is more limited then the desktop software. (e.g. no spindle-power limit.)

(According to a comment to my Google Play Store -review, some of this is supposed to change in future versions.)


Feeds and Speeds calculator

I really like the fact that you can save and load cutting data and that they are organised by tool.
You can even rate them with 1-5 stars afterwards.
You can't find them by material (to select a cutter that worked well in the past) but that's okay.
However what's not okay is that you can't even see the machine in the overview of these saved cutting parameters. So if you have multiple machines or spindles, you may load cutting data for e.g. a slower spindle.

I do not know why it would always display the "shoulder diameter" in inch while everything else is in proper millimeter. Imperial sizes and speeds mean absolutely nothing to me. Lacking any reference, I can't interpret them as being "fast"/"slow" or "large"/"small". Especially fractions like "0.1181 in" (=3mm)

It can not calculate cutting data for drilling operations. That's something  I could have really made use of with my current project. (Never having drilled in a CNC before.)
If you define a "Jobber Twist Drill" = regular drill. It will suddenly turn into a drilling calculator.
Just what I need right now.


It seems that the software does not auto-update nor does it inform the user about newer versions existing.

Material selection

The metals seem to be only in the US numeric representation.
So I was not able to find e.g.  AlCuMgPb.
There seems to be no differentiation between POM-C (copolymer) and Delrin (DuPont brand named mono-polymer.) even as both are mechanically different. However at least POM and machinable wax are present at all.

I was not able to find any common, soft woods like fir or spruce however there is a setting "soft wood".

It does list "machinable wax" however it just ignores the low melting point in it's cutting recommendations.

I am not able to hide all that different kinds of steel (as I will never, ever machine steel on my hobby machines) but with the search-function it's fine.

Support forum

Support is handled through a self-written forum software.
Sadly zero.divide doesn't use a standard software.
Thus the forum is lacking all kinds of email-notifications and has no "my discussions", "my postings" or "answers to my postings" feature at all.
Also no support for Tapatalk.
You are required to come back regularly and manually search all topics that are still relevant to you for possible. answers.

Reference charts

The desktop app includes a large number of reference charts.
However they are not explained and are extremely imperial-centric.
So as a non-machinist, especially from a metric country (all countries except Myanmar, Liberia, the UK and the USA. However the later not for any NATO or NASA business),
you have absolutely no idea what e.g. the drill-chart could possibly mean.
As a non-machinist and not a native English speaker, I may be lacking a lot of specialised vocabulary to understand these.

"Metric Taps" 
  • There is no indication that the metric clearance listed is for the "coarse" and not the "fine" variant. 
  • The metric height of the corresponding bolts (e.g. an M5 nut is 4.0mm in height) is missing.
  • Metric size of the wrench needed (e.g. for an M5 you use an 8mm wrench) is missing. I often need this to design hexagonal holes for the nuts 


  • There is no line below the tap header, telling the user what the chart is about 
(e.g. for the "drill chart" "Size table for imperial drills referenced to in numbers or letters") 
  • In Europe, I have never seen imperial drills. Nor do I know how the are named. But I do know that you'll have a hard time finding something exotic like a 6.25mm drill listed. 
  • There is no help text (offline. on the local computer.) explaining what the tables is and how to use them.
(According to a forum answer, some of this is supposed to be improved in a future version.)



Need some help about getting 10V for my CNC spindle control

I need some help on the electrical side.
This is my CNC breakout board:
Purelogic PLCM-B1 english manual

Page 10
Connector XP79 (upper right) needs 10V and GND and outputs an opto-isolated 0-10V PWM signal to control the spindle RPM with.

From my USOVO STG104 spindle controller I only get 24V supply voltage and GND.
And it needs that 0-10V signal.

So I do a voltage-divider of 12Kohm and 16.8KOhm to get 10V.
As soon as I connect that to the PLCM-B1 breakout board my 10V drops down to 2.4V from the load.

What should I have done instead?


Bonaverde - The Facebook Coffee Machine


  1. old posting on this topic: none
  2. current posting
  3. next posting: First Bonaverde coffee delivered

Back in 2014 I ordered a Kickstarter Bonaverde roast-grind-brew coffee machine for 299eur.
Now it has arrived.

What I wanted it for

I wanted to be able to roast coffee without requiring a lot of space in the kitchen.

To make (filter) coffee from it with little effort when I want to just have my coffe.

But also to custom roast coffee for manual grinding, spicing and brewing my favorite arabian mocca when I want to put effort into it.
Or do the same to feed my grind-brew Espresso machine with fresh milk for Cappucino.

Roasting on Sunday to brew the next weekend
or roast on Friday night to brew on Sunday morning
would be perfectly acceptable for me.


 It came well packaged and even included a velvet liner for the entire machine. (Looks nice but I'm not sure it is ment to carry that kind of weight.)

What was strange was that on the top and the sides they used easy-to-recycle cardboard. Yet at the bottom the packaging was custom shaped plastic-foam.


I noticed a few usability fails:
  • Power socket is on the underside of the machine. Yet neither quick-start nor manual tells you to look in this unusual place.
  • The water-tank is very narrow. Only slightly wider then a small water-fouced. You have to be careful with the water-pressure when filling it up. 
  • It shuts itself down automatically. It doesn't keep the coffee pot warm. At least there is no obvious way to do that.
  • The IMEI for the Facebook Messenger bot is also on the underside. You have to remove all water, coffee can, ... from the machine and topple this heavy thing over to read it. Tilting it is not enough to read the sticker because it's placed in the center.
  • The water tank leaks heavily when you try to carefully carry the machine to a different place with water alreay in there.
  • The instructions for the air filters are missing the first step "scan the RFID tag of the air filter".
  • There is no indication about what flavor to expect from the different beans (more about this below) or what type of beans they are. Also not always obvious what country they are from.


Obviously every good coffee starts with good water.
I was very surprised that the water-tank of this expensive machine did not contain any water filter to remove chalk.
I had thought about this as a standard-feature even for much cheaper machines nowadays.

The Facebook Coffee Machine

Before delivery
In the weeks before delivery, it became more and more clear that all user interaction including even the shop for buying new beans was implemented as a Facebook Messenger chatbot.
This came as quite a surprise.

Here are the Android permissions required by Facebook messenger:

Before you receive your machine, the first interaction with it looks like this:
I desperately hope this is going to change....soon.
If I have to interact with my coffee machine via a command line, it better be an SSH terminal.
I can't imagine comparing and buying beans and comparing the details of roasting profiles this way. Let alone making any kind of (PCI DSS compliant) monetary transactions.

During delivery
Shortly after the machine arrived, I cat a personal call. However I was busy and the second time they called I was buying coffee-filters and didn't have my phone with me.

I also got am email "Bonaverde - Dene Maschine ist da!" (Yes, a German company with wrong spelling in their automatic customer emails)
However, despite only containing text, the email contained no text/plaintext and only a very cryptic
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
", with Microsoft-specific XML namespaces.
Therefore my cellphone would only display it as a blankscreen for security reasons.
Also.... not UTF8 and not the newer ISO-8859-15 that was introduced in 1999 as a replacement.
Aparently it was witten in Microsoft Office365 Word and sent using Microsoft Exchange (because a ton of internal X-Microsoft-Exchange-Diagnostics and X-Exchange-Antispam* have not been removed uppon sending).

Using the "Coffee Concierge"

Note that this is still in alpha stage.

What I did find at first glance was:
  • It does offer to "roast only" and "brew only"
  • After starting anything the user it not instructed how to abort. Typing "stop" seems to work.
  • It does not check of the machine is connected or powered. It just tells you "Pouch not ready" for "grind only" when the machine is unplugged and has never connected to GSM at all yet.
  • If idle, it does seem to spam you with trivia about coffe and FAQ entries. There is no obvious way to stop this. So make sure to disable audio notifications!
  • The store to buy beans does not yet exist.
  • After "make coffee" is finally gives you some information about what flavor to expect...however for one, randomly selected bean only. Yet no infocmation how to abort, get info about other beans or actually have it make coffee.
  • The answer to "what is blueberry" (one of the 3 bean package types) is "Sure. Let's get the roasting going."  ????  
    • Update (2017-11-14): I got an email from support "Within the bot, you can now choose the roast profile for the new beans as well as find out more about the flavours." Uppon clicking through the menu of the Chat Bot I can not find any hint as to how to do the second. I'll certainly try the first next weekend.
Some days later:

"Buy coffee beans"
  •  "opens a web browser with the Bonaverde homepage" - does not work yet

"Schedule coffee"
  • "in development" - does not work yet
"Make Coffee"
  • offers only a single type of coffee
  • does not have "scan coffee pouch" in it's instructions
  • Always aborts with "the roaster door is open, please close it" even though it is it 
  • => does not work yet
"Coffee School" 
  • Seems to be a question and answer game of coffee trivia
  • No obvious way to abort.
  • Asks "wich composer wrote an OPERA about coffee" and answers with the "Cofffee Cantata". Obviously a Cantata is a very much smaller piece of musical work then an entire opera. (At most equivalent to a single opera scene.)
  • The question "Did you known that at one point in history coffee was 'illegal'?" Only allows for a single answer.
  • At one point it goes from small-bandwidth text to a video but luckily doesn't start to play without user consent. However there is no obvious full screen mode. So it's a tiny video on an already tiny screen.
  • It seems  you can't have all lessons the same day.

Offline use?

 The FAQ contains two staements:

And it doesn't contain...

So, if the RFID chips only contains the serial number and the roasing profiles are "in the cloud" = on someone else's computer, how can it be used offline with the RFID tag?

Naturally the first test I did was to unpack it in a location without any cellular network reception and try to make coffee.

YES, IT WORKS OFFLINE. ...and I have the 4K video to proof it.

 Only full cans of coffee (being worked on)

In the Kickstarter Campaign, the machine was advertised with "capacity: 2-12 cups".
Naturally I though that ment you could brew as little as 2 cups of coffee.

No, it can only make full cans. According to the FAQ, Bonaverse is working on supporting half cans but not less. 

Roast only/venting (being worked on)

Without Facebook, you can only roast, grind and brew without interruption.
There are no special RFID tags to allow roasting or grinding or to make "regular" coffee from beans or ground beans.
So the only choice without Facebook for now is to pull the power plug.

Only after I connected to the "coffee concierge" and it did offer me to "grind only", "roast only" and "brew only".
Luckily this is being worked on because for filter-coffee the beans should stay 1-2 days to release stored CO2. For espresso about a week (or so the Internet tells me).

It can not make hot water for tea as an alternativ.

Testing it...
For "roast only" it would tell me to insert coffee. I did.
Then it tells me that is will start soon...... even after a long time it doesn't to anything.
Then I switched the machine on and tried again......still nothing.
Then I scanned the coffee pack and tried again.....it would tell me "coffee pouch not ready". No idea what that could mean.
So... "roast only" doesn't seem to work yet.

Quality of the grinding?

First of all: I like mocca. If I can't get mocca, I settle for an espresso. Filter coffee is only a last resort to stay caffeinated.
That means I like my coffee ground to a dust. Mocca needs it much finer then even an espresso. So I rely on my Hario Skerton. I usually operate it by hand, so the dust doesn't get hot during grinding.
On my first test I didn't manage to get a look at the ground beans before the coffee is made.
This is what the filter looked like afterwards: (Overexposed, so the coffee is clearly visible)
The coarseness-lever was at factory-default = centered.

Check out this test of a Beta machine (in German) to see a photo of what a BETA-machine made.

To be tested later... (This blog posting will be updated.)

Packaging and choice of beans?


After seeing the packages given to beta testers here here, I was suspicious.
If the packaging is the coffee filter, how to keep it clean and food-safe during storage and when transporting it?
The photos show packaging with lots of text about the farmer.... yet there is not a single word about the flavor to expect with the associated default roasting-profile not about the choice of beans contained within. (I do prefer chocolate flavours and when looking for them with roasters, I usually found them created with Coffea canephora / Coffea robusta beans.)
I desperately hoped that either this would have changed or the backside of the labels would contain such information.

My machine came with 3 types of beans. Named
"fresh nuts", "almond" and "blueberry".
There is no other indication about what flavor to expect from them when using the roasting profile these bean-packages include.
They do have some information about the farmers but only 2 of the 3 even state what country these farms are in.
They have no indication about what types of beans they are, However I suspect all 3 to be Coffea arabica, not Coffea canephora


My first test was "blueberry".
While I know that there are some roasts described of tasting "nutty" or "like almond", I have yet to hear of a "blueberry" taste. My preference would have been a "chocolate like" taste but that was not included.
I am no expert. I only happen to drink and make coffee often.
As stated, I made the first can offline. It worked. I can't make out any kind of specific taste in the coffee. Only that it is definately slightly sour. After a while this turned to only being ever-so-slightly sour. There is no bitterness to speak of. No taste that stands out at all. This can be interpreted as a bad or a good thing.

After slowly drinking half a can of coffee to make up my mind about the taste and leaving the other half at 40°C hot air in my microwave - to keep it warm - , I am too pumped to do a second and third test.

A new day, a new test. Same "blueberry". This time with the grind-settings as fine as it will go. The machine was allowed to have access to GSM cellular services. Identical taste.
I should do a third test with these beans doing "roast only" and allow them to release CO2 for 2 days.

I will have to try "roast only" and have it releae CO2 for 1-2 days to hopefully get rid of the sour taste.

Second bean-type "almond".
The first taste was definately sour. More so then "blueberry". When it has cooled down a little it leaves a bit of bitterness afterwards.

As with "blueberry", I definately have to try it as "roast only" instead.

Third bean-type "fresh hazelnut".
To be tested later...

Burbon Rojo by Rodofo Ruffatti from El Salvador.
Freshly roasted, the same result as the others.
I did not even intend to try this freshly roasted but the "roast only" option was currently not functioning.

"roast only" and then brew after 2-14 days.
Freshly roasted coffee seem to generaly not be to my liking.
I'll try to find coffee-pouches with a pressure-seal (to release CO2) and try to fill them with pure CO2 from a can before I put the beans in. This way they should not contain any Oxygen until I open them for grinding.
See here for the result of this test.

Since I travel a lot. I guess a profile where I can pre-program the machine to roast 1-2 days before I arrive and then start grinding and brewing, when I get home would be great. After all, it is cool and dark in there (no light or non-essential heating while nobody is home) and without the ventilation there should be minimal air circulation.


You need to steam your milk separately. For cappuchino, the espresso machine that takes your roasted beans can do that anyway.
Of cause to do that, you would have to pull the power plug at the right time to get to the roasted beans. 
Since it is ment to make filter-coffee, not being able to steam milk is acceptable.

Custom roasting, custom beans, venting?

To be tested later... (This blog posting will be updated.)


Since the rinse RFID-tag was removed, there doesn't seem to be any way to clean this machine offline.
Even with Facebook and Facebook Messenger, the only option seems to be to "brew only".
There is no indication in the manual or FAQ of using vinegar to remove chalk is recommed.




Custom Deskproto strategy

Project history

  1. current posting
  2. next step: add command line arguments and extensively test the strategy
  3. Next project: subdivide rotary axis operations to keep toolpath-distance constant while getting near the center of rotation


I have two problems with CNC machining either wax, plastic or soft wood:
  1. I lack experience with how much surface finishing detail I need. So I want a finishing strategy that graducally gets finer (distance of parallel toolpathes) until I stop. Without however milling the same path serveral times (like every second path when I do a tpd=tool-diameter/4 and then a tpd=tool-diameter/8 parallel strategy or every 15th path if I do a tpd=tool-diameter/3 and then a tpd=tool-diameter/5 operation.)
  2. I cannot machine the same part of the surface for too long a time. It will eithrer melt (wax and plastic) or catch fire (wood). It needs time to cool down. Duering that time however, I can maching other parts of the geometry that are far away.


Since the existing toolpathes did not offer such a strategy, I came up with a small Java program.
You would start with a Deskptoro CAM project containing one (e.g. "parallel along X") or two (e.g. "parallel along X", then "parallel along Y" or "along A")  FINISHING passes.
These would be marked by adding "REPLICATE" to their names.

The program will then make copies of these operations with the starting point offset by toolpath-distance / 2.
After these it will add copied operations with the starting point offset by toolpath-distance / 4 of the original and the copied operations.
Then it will do the same with toolpath-distance / 8.

The result is a finishing strategy that gradually increases surface quality and can be paused and aborted at any time.
At the same time it does not operate on the same part of the geometry until it has worked on all other parts.
Thus giving the part time to cool down where a simple parallel-strategy with a smaller toolpath-distance would mill over the same place dozens of times, thus heating up the surface and either melting plastic or wax or setting soft wood on fire.


Updated mounts for CNC homing switches

Project history

  1. Previous project: 4th axis homing sensor
  2. ATC upgrade
  3. current posting
  4. next step
  5. Next project: designing a chain link tool library

A while ago I posted some simple, 3D printable mounts for homing switches on my Chinese CNC6040.
After upgrading to a smaller USOVO ATC (automatic tool changer) spindle, the Z-Endstop no longer fit.
Formerly it would push against the upper spindle mount but this spindle only needs a lower mount.
So I added a 3D printed helper part to my design.

 As you can see, it is still 7mm too long and I will change that next week.

Update: currently printing the fixed version....

Update 2: Improved part is done and will be mounted next weekend.

Here are the other homing switches.

 The inducting homing switch for the A axis still needs to be mounted again.



Returning to my CNC

I haven't worked on my CNC mill for a while.
This weekend I'm planning to:

  • Attach cables to the (already mounted) X+Y+Z+A homing switches (Update: DONE)
  • Test homing (Update: small issue to fix with Z first)
  • Test my experimented M6 tool change macro for my Usovo ATC spindle. (manual tests worked out) (Depends on homing)

Later I need to:
  • Add an M6 exception for the 3d touch probe to be stored in a different location (because it's too large for the pneumatic tool-magazine)
  • Find a way to get 10V, so the PWM-output of my PLCM B1 breakout board can control the Usovo spindle via 0-10V PWM because it doesn't have RS485 like my old China-spindle+VFD.

Raspberry Pi stage intercom system

Project history

  1. No Previous project
  2. No old posting on project
  3. current posting
  4. next step
  5. Next project: add LTC time code output using the unused RasPi on-board soundcard

Because analog stage intercom systems are way too expensive for what they do,
I started building a Raspberry Pi + Mumble based digital intercom that can work with existing Network infrastructure.
The software is based on the TalkiePi Walkie Talkie project.



Looking for EF to MFT electronic adaptors


I'm switching from Nikon-F to EF lenses.
Because I own a Panasonic GH5, I'm looking for an electronic adaptor that communicates focal length for the IBIS system (especially while zooming) and focus information.

I'm not looking for a speed booster. I already got myself a Metabones "S" model for that.


Because and smaller Micro 4/3 Blackmagic cameras have not been updated fro ages and the larger Blackmagic cameras are offered with PL, EF and B4 bajonett but not Nikon-F.


So far I have not found anything yet.
I'm documenting my findings in this blog posting for others with the same question.

electronics fail
  • I tried the "Commlite CM-EF-MFT " and it does not work at all on GH5 and GH4 (black image) and has no autofocus on the old GH2.
  • The "Andoer EF-MFT" does not transfer focus information.
  • "Kipon AF Adapter" - is reported as "Limited lens compatibility, reports of missing AF, battery drain, and some lenses aperture control is unstable or limited""
mechanical only
  • The "Fotodiox" is mechanical only.
  • The "K&F Concept Canon-EF (EOS)" is mechanical only.

too expensive
  • I trust that the "Metabones EF MFT adapter" (not speed booster) would work but it costs 300+€ 
  • The "Aputure Apt-DEC-EOS-MFT-PRO" even 550+€
  • There is also a 200€ "Viltrox EF-M1 Adapter
  • and a simialr priced Viltrox EF-M2 Adapter up for pre-order 


Alibre is back!!!


Back in 2010 I started 3D printing (later also CNC machining) and needed a CAD package.
I got myself a licence of Alibre Design Xpress. The small hobbyist version of Alibre Design.
Later this became the Alibrea Design Personal Edition (PE).

In 2013 it was renamed to Alibre-Geomagic Design V2013 because 3D Systeme aquired Alibre and I changed into a larger, more fully featured version of it.

In 2015 I got V17=V2015. That was the last update anyone got. 3D Systems had added support for their 3D printers and 3D scanners including a very cool Mesh-to-Solid conversion that works very well with very large meshes.

Then there was silence. 
Nothing happened for 2 years. Not even bug fixes.

The good news!

Some ex-Alibre employees have created a company called Alibre LLC and are reached an agreement with 3D Systems to get sale, support and development of Geomagic back into their hands.

...let's stay tuned.



Filament sensor broke off

Looks like there was a knot in the filament and the pulling forces broke off the arm with two of the three "ultimate filament sensor" s on my modified Ultimaker II extended.
It houses the load cell to meassure filament pulling force and the encoder to meassure filament odimetry.
Both where not enabled at that time and thus didn't pause the print as soon as forces exceeded the allowed range.


ATC: parts for my CNC arrived

Project history

  1. After evaluating my choices in  back in February
  2. I decided on what ATC system to get for my CNC mill in March. (posting contains MACH3 software references)
  3. Now the Usovo parts for my CNC finally arrived.
  4. next: mounting spindle and cables, improved mount for Z axis homig
  5. Defining M06 tool change macro (WIP)
  6. Next project: designing a chain link tool library

Too late to install them during the easter holidays but they arrived.

PROBLEM!!! - update: Solution in progress
The water-pump Usovo has shipped in the WZW105 kit,
does not fit the spindle and tubes they included. It has fittings for much larger tubes.
I may find out what thread they use and find fitting to fix this however it may mean that the water pump is not strong enough to push water (and more importantly: small air bubbles) through the smaller tubes.

Update: It'2 now 2 weeks with no answer from Usovo regarding both issues.

Update: I got an answer. The water pump fitting where an honnest mistake and apparently I got 5 SK15 tool holders for the ring system, not for this system and a single, DIFFERENTLY LOOKING SK15 holders also for the ring system. I'm making an adapter to use the top-system, pneumatic tool magazine with tool holders designed for the ring system.


I already have the Usovo Manual in German and English.
I also found this document with meassurements (page 9) for the tool magazines

tool #1 X=0 Y=565 Z=0
tool #1 X=0 Y=530 Z=0
tool #1 X=0 Y=495 Z=0
tool #1 X=0 Y=460 Z=0
tool #1 X=0 Y=425 Z=0
tool #1 X=0 Y=390 Z=0
tool sensor X=18 Y=585 Z=0


Since there are so few detail photos of them
(especially of the backside and inside of the control box)
I made some photos for everyone who considers the same upgrade.

Photos - Unboxing


Photos - main box


Photos - Power supply 

Photos - water pump


Because the pump has no mounting holes, I designed a simple mount for it:

Photos - spindle and mount