2018-01-13

Using RFIDler on Windows

I just borrowed an RFIDler and am trying to get it to work on Windows to read the content of some NFC cards.

Because this information was hard to pull together, here is what I found:

Firmware update on Windows


You can get mphidflash.exe from here:
https://github.com/ApertureLabsLtd/mphidflash/blob/master/dist/mphidflash-1.6-bin.zip

You can get the latest firmware from here:
https://github.com/ApertureLabsLtd/RFIDler/blob/master/firmware/Pic32/RFIDler.X/dist/default/production/RFIDler.X.production.hex
Currently it is 0203-beta (debug)

The command line simply is:
mphidflash-1.6-bin\binaries\mphidflash-1.6-win-32.exe -r -w RFIDler\RFIDler.X.production.hex


Reading cards


Positioning the cards seems to be hard.
I did not get it to work yet but it should be:

Open Putty
Open a serial connection with 115200bps 8n1 no flow control.
type enter to enter CLI mode.

autotag
should identify the type of card.

set tag  
sets the type of card

vtag
now provides information reat from the card.

source:  https://www.scip.ch/?labs.20151022

2018-01-04

'roast only' on the Bonaverde - Aldo Parducci

Project history

  1. old posting: 'roast only' on the Bonaverde - Rodolfo Ruffatti
  2. current posting
  3. next posting








This time I tried
Bean Type:  Burbo
Grown by Aldo Parducci
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.

I used "roast only" in the alpha version of the "Coffee Concierge" Facebook Messenger Chat bot last night and ground+brew the coffee this morning.
Change to previous attempts: I used a water filter. (Water here has a PH of 7.57 but an extreme 12.2dH of hardness.)

Results

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

 espresso

not yet

filter coffee

Absolutelay GREAT!!!
Very balanced. Not sour at all. I can really taste distinct flavors.


Other changes 

I did add a new label "Coffee" to this blog. So you can see all postings related to it.

Also the "Coffee Concierge" Facebook Messenger Chat-Bot that controls the "Berlin" coffee machine has a new "abort machine" command. It however isn't recognized in all states and does not seem to abort a brewing cycle that has already started.

Links

2018-01-03

Fusion360 - you can NOT flip an axis in CAM

I just found out, that it is impossible in Fusion360 to have a single axis on your CNC be oriented differently.
All options to flip the direction of one axis in a CAM setup, also flip one of the others.

Looks like this will also never be fixed.

See: Fusion360 CAM support forum.

2017-12-16

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.

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.

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