2017-11-29

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).

Links:

2017-11-21

'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).

 espresso

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.

 

2017-11-19

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.

 

Discussions:




Sources:

Screens

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.

Code

M6Start.m1s

'M6 start macro with auto tool touch off

'M6Start.m1s
'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
   DoButton(3)

   Exit Sub
End If


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

' the X+y+z position of tool #0 is stored in DRO 1200, 1201, 1202
' THESE USER-DEFINED DROS MUST BE DEFINED IN THE SCREEN SET
' distance of tools inside the magazine along the Y axis
TOOLDISTANCE = 33.5
TOOLDISTANCE_Z = (33.5-36.5)/5
TOOLCHANGE_FEEDRATE = 150

' safe absolute Z position
SafeZ = 0
SafeX = 65

' position of the tool height sensor (magazine must be open)
THS_POS_X = 0
THS_POS_Y = 0
THS_POS_Z = 0
THS_PROBE_FEEDRATE = 5

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


'--------------- CURRENT PARAMETERS TO RESTORE

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

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

' Set absolute coordinate mode and feedrate
Code "G90 F" & TOOLCHANGE_FEEDRATE

' Save the current position
' WARNING, THESE DROS ARE DEPRECATED SINCE MACH3 1.90
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)


DoSpinStop()

' 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
   setuserled(1000,1)
   Code "M9"
Else
   '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 ()
Wend

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

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

' open magazine
ActivateSignal(OUTPUT2)


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
   End If
   '===== DEBUG====


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

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


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

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


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

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


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

   
End If


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


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



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


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

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


' release the old tool
ActivateSignal(OUTPUT1)

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

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


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


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

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

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

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


' release the old tool
DeActivateSignal(OUTPUT1)


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


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



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


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

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

  Code "G31 Z-5 F" & THS_PROBE_FEEDRATE
  While IsMoving()
  Wend

  'dwell for 0.25 seconds 
  Sleep(250)

  ZProbePos = GetVar(2002)

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

  'Set Z axis position DRO to touch plate thickness
  ' WARNING, THIS DRO IS DEPRECATED SINCE MACH3 1.90
  Call SetDro (2, PlateThickness)

  'Pause 0.5 seconds for Dro to update.
  Sleep(500)

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

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

SetCurrentTool( tool )

' close magazine
DeActivateSignal(OUTPUT1)


'--------------- RESTORE ORIGINAL PARAMETERS

' Reset coordinate mode to original value
If AbsMode = 0 Then
   Code("G91")
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 ()
'Wend
' go to old tool position
'Code("G00 G53 Z" & CurrentPosZ)
'While IsMoving ()
'Wend


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

M6End.m1s


'M6End.m1s
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

2017-11-12

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.


Links:


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.
 

Links:

2017-11-11

Trying 'roast only' on the Bonaverde again

History

  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.

ATTENTION!

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.

Results


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.

espresso

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

History

  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."

2017-11-05

HSMAdvisor

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.

FSWizard:Mobile

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.)

HSMAdvisor

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.

Updates

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 

Taps

  • 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.)

Links: