ISEL Flatbed

Fra Robin

(Forskjeller mellom versjoner)
Gå til: navigasjon, søk
m
 
(41 mellomrevisjoner ikke vist.)
Linje 1: Linje 1:
-
[[Fil:ISEL_FB2.jpg|x200px]]
+
[[Fil:ISEL_c.GIF|x200px]]
* XY(Z)-Flatbed unit FB2  
* XY(Z)-Flatbed unit FB2  
* BD16x4 (4mm pitch)  
* BD16x4 (4mm pitch)  
-
* Travel 1250x1030m
+
* Travel 1250mm x 1030mm
-
* Z-axes with magnet brak lift 160m
+
* Z-axes with magnet, lift 160mm
 +
 
 +
 
 +
== Making the gcode ==
 +
 
 +
To get started make sure the setting in solidworks are correct:
 +
 
 +
* Coolant must be set to "disabled". If the coolant is not disabled you will get error because of the GRBL config file.
 +
 
 +
[[Fil:Solidworkd coolant.PNG|x250px]]
 +
 
 +
* Config must be set to GRBL in post process.
 +
 
 +
[[Fil:Solidworkd post.PNG|x250px]]
 +
 
 +
 
 +
* The spindle speed is set manually with the frequency transformer, but the spindle speed option in Solidworks will affect the speed of the tool-path. While it's not necessary, you should set the spindle speed in Solidworks as well.
 +
 
 +
* Make sure the coordinate system is set up so you can easily find (x, y, z) = (0, 0, 0).
 +
 
 +
The machine has no end-stops, and therefor there is no "machine zero". Because of this disabling "Output M6" and "G28 safe retracts" will make the job start immediately after pressing start from the work position.
 +
 
 +
== Running the gcode ==
 +
 
 +
Before running the code, make sure the workpiece is secured to the bed.
 +
 
 +
* Start by changing the tool.
 +
* Go to http://isel.labnet.ifi.uio.no to access the machine and upload the <code> .nc </code> to the server.
 +
* Use the touch screen (num-pad coming soon) to jog the machine to the desired starting position. The tip of the tool should be set to z = 0.
 +
* Press "Set work zero" to make the current position (0,0,0) in the work coordinates.
 +
* Start the spindle
 +
* Press "start" to start the job, it can be smart to jog the machine a little up, since the job will start directly from where the machine is.
 +
 
 +
[[Fil:CNCjs.PNG|x400px|CNCjs]]
 +
 
 +
== Setting the spindle speed ==
 +
 
 +
The spindle is connected to a frequency transformer and operates with Hz and not RPM. 1 Hz equals 60 RPM. There is a limit set to 380 Hz to prevent damage to the spindle motor. Use the arrows to set the desired frequency and press the green button the start the spindle. Pressing the red button will stop the spindle.
 +
 
 +
== Tool changing ==
 +
 
 +
There is no tool changing system implemented yet, but you can to it manually. If you use the same coordinate system for both jobs, the only axis that needs to be zeroed out is the z-axis, as the height of the tools are probably not the same.
 +
 
 +
== Coolant ==
 +
 
 +
The coolant system does not currently work, but for machining wood and acrylic it is not needed.
 +
 
 +
 
 +
=== Technical details of the machine ===
== Controller ==
== Controller ==
Linje 12: Linje 60:
[[https://www.isel.com/en/multiple-axis-controller-imc-s8.html iMC-S8 stepper motor controller (modifisert)]]
[[https://www.isel.com/en/multiple-axis-controller-imc-s8.html iMC-S8 stepper motor controller (modifisert)]]
-
* Med denne følger rævskit programmet PROnc/PALpc som ikke lar seg installere på en moderne PC, derfor modifiserer vi iMC-S8 med Arduino og får moderne fungerende USB kommunikasjon
+
* Med denne følger programmet PROnc/PALpc som ikke lar seg installere på en moderne PC, derfor modifiserer vi iMC-S8 med Arduino og får moderne fungerende USB kommunikasjon
IMC-S8 inneholder 3stk  
IMC-S8 inneholder 3stk  
Linje 21: Linje 69:
* En til hver akse
* En til hver akse
-
* Disse er krute gode og vi bruker de som de er og styrer de direkte fra Arduino med Dir/Pulse inngang
+
* Disse bruker vi som de er og styrer de direkte fra Arduino med Dir/Pulse inngang
-
* Oppsett: 800pulser/omdreining -> 800/4 = 200pulser/mm lineær bevegelse. Dette gir i prinsippet 5um oppløsning
+
* Vi bruker 8 eller 16 microsteps (iMC-S8 er opprinnelig satt opp med 4, som gir forferdelig støy og vibb)
 +
 
 +
Vi bruker i dag:
 +
* [[https://www.arduino.cc/en/Main/arduinoBoardDuemilanove Arduino Duemilanove (ATmega168)]]
 +
* [[https://www.sparkfun.com/products/12761 SD kortleser]]
== Programvare ==
== Programvare ==
Linje 28: Linje 80:
Fra CAD (Fusion360)
Fra CAD (Fusion360)
-
* Postprocessor: Fanuc, sett opp til å ikke tillate sirkulære/helix bevegelser, kun G01/G00, lagre til fil "0.nc"
+
* Postprocessor:
-
* Filtrer fil "x.nc" over til "1.nc" for å bli kvitt alle linjer som ikke inneholder bevegelse
+
** (Restarte F360 etter første gang Bracket install)
-
* Les inn "1.nc" og generer MotorByteArray fil, "1.stp"
+
** Postprocessor: Fanuc/fanuc
 +
** Property:
 +
*** Write machine = No
 +
*** Write tool list = No
 +
*** Use sequence numbers = No
 +
*** Maximum circular radius = 0.001
 +
*** Mimimum circular radius = 0.0001
* Overfør "1.stp" fil til Arduino via å flytte ST kort fra PC til Aruino shield eller via USB og kjør  
* Overfør "1.stp" fil til Arduino via å flytte ST kort fra PC til Aruino shield eller via USB og kjør  
[https://github.com/matshovin/ISEL All egen kode]
[https://github.com/matshovin/ISEL All egen kode]
-
[[Fil:ISEL_top.jpg|x100px]] [[Fil:ISEL_ATmega.png|x100px]] [[Fil:ISEL_old.jpg|x100px]]
+
[[Fil:ISEL_top.jpg|x100px]] [[Fil:ISEL_millaP.png|x100px]] [[Fil:ISEL_Duemilanove.jpg|x100px]] [[Fil:ISEL_SD.jpg|x100px]]
 +
 
 +
 
 +
== Installing cncjs ==
 +
 
 +
The machine is connected with a raspberry pi running CNCjs. Following the instructions provided by CNCjs will result in errors. The approach is therefor modified a bit. See resources for more detail. To install CNCjs run the following commands:
 +
 
 +
-Update and upgrade apt-get
 +
 
 +
$ sudo apt-get update
 +
$ sudo apt-get upgrade -y
 +
$ sudo apt-get dist-upgrade -y
 +
 
 +
-Installing build essentials
 +
 
 +
$ sudo apt-get install -y build-essential git
 +
 
 +
-Some useful tool, some are already preinstalled in Rasbian.
 +
 
 +
$ sudo apt-get install htop iotop nmon lsof screen -y
 +
 
 +
-Installing node package manager
 +
 
 +
$ sudo apt install npm
 +
 
 +
-Installing CNCjs
 +
 
 +
$ sudo npm install -g cncjs@latest --unsafe-perm
 +
 
 +
After the installation is finish you can run CNCjs with the command <code> cncjs </code>. The webserver can be accessed by the URL: http://isel.labnet.ifi.uio.no
 +
 
 +
 
 +
 
 +
 
 +
== Parts ==
 +
 
 +
=== Spindle motor ===
 +
 
 +
SPINDLE MOTOR ISA 750 (https://www.isel.com/en/spindle-motor-isa-750-manual-tool-exchange.html) (https://www.solectro.se/Product/Index/4671?SecId=1188)
 +
 
 +
The spindle motor is rated for up to 28 000 rpm, or about 450 Hz.
 +
 
 +
=== Controller for spindle ===
 +
 
 +
SKA1200075 (https://www.solectro.se/Product/Index/4862?SecId=1186)
 +
 
 +
The controller for the spindle works in Hz and not rpm. 1 Hz is equal to 60 rpm. The max is currently set to 380 Hz, to prevent damage to the motor.
 +
----
 +
 
 +
På sikt:
 +
 
 +
* Erstatte SD kort med ringbuffer
 +
* Vil vel gå over til MEGA eller DUE etterhvert
 +
 
 +
[[Fil:ISEL_Mega2660.jpg|x100px]] [[Fil:ISEL_dueP.png|x100px]]
 +
 
 +
 
 +
 
-
Vil vel gå over til MEGA etterhert
+
=== Resources ===
 +
https://cnc.js.org/
-
[[Fil:ISEL_Mega2660.jpg|x100px]]
+
https://github.com/cncjs/cncjs

Nåværende revisjon fra 9. nov 2022 kl. 07:03

  • XY(Z)-Flatbed unit FB2
  • BD16x4 (4mm pitch)
  • Travel 1250mm x 1030mm
  • Z-axes with magnet, lift 160mm


Innhold

Making the gcode

To get started make sure the setting in solidworks are correct:

  • Coolant must be set to "disabled". If the coolant is not disabled you will get error because of the GRBL config file.

  • Config must be set to GRBL in post process.


  • The spindle speed is set manually with the frequency transformer, but the spindle speed option in Solidworks will affect the speed of the tool-path. While it's not necessary, you should set the spindle speed in Solidworks as well.
  • Make sure the coordinate system is set up so you can easily find (x, y, z) = (0, 0, 0).

The machine has no end-stops, and therefor there is no "machine zero". Because of this disabling "Output M6" and "G28 safe retracts" will make the job start immediately after pressing start from the work position.

Running the gcode

Before running the code, make sure the workpiece is secured to the bed.

  • Start by changing the tool.
  • Go to http://isel.labnet.ifi.uio.no to access the machine and upload the .nc to the server.
  • Use the touch screen (num-pad coming soon) to jog the machine to the desired starting position. The tip of the tool should be set to z = 0.
  • Press "Set work zero" to make the current position (0,0,0) in the work coordinates.
  • Start the spindle
  • Press "start" to start the job, it can be smart to jog the machine a little up, since the job will start directly from where the machine is.

CNCjs

Setting the spindle speed

The spindle is connected to a frequency transformer and operates with Hz and not RPM. 1 Hz equals 60 RPM. There is a limit set to 380 Hz to prevent damage to the spindle motor. Use the arrows to set the desired frequency and press the green button the start the spindle. Pressing the red button will stop the spindle.

Tool changing

There is no tool changing system implemented yet, but you can to it manually. If you use the same coordinate system for both jobs, the only axis that needs to be zeroed out is the z-axis, as the height of the tools are probably not the same.

Coolant

The coolant system does not currently work, but for machining wood and acrylic it is not needed.


Technical details of the machine

Controller

[iMC-S8 stepper motor controller (modifisert)]

  • Med denne følger programmet PROnc/PALpc som ikke lar seg installere på en moderne PC, derfor modifiserer vi iMC-S8 med Arduino og får moderne fungerende USB kommunikasjon

IMC-S8 inneholder 3stk

[MD28 steppermotordrivere] [PDF]

  • En til hver akse
  • Disse bruker vi som de er og styrer de direkte fra Arduino med Dir/Pulse inngang
  • Vi bruker 8 eller 16 microsteps (iMC-S8 er opprinnelig satt opp med 4, som gir forferdelig støy og vibb)

Vi bruker i dag:

Programvare

Fra CAD (Fusion360)

  • Postprocessor:
    • (Restarte F360 etter første gang Bracket install)
    • Postprocessor: Fanuc/fanuc
    • Property:
      • Write machine = No
      • Write tool list = No
      • Use sequence numbers = No
      • Maximum circular radius = 0.001
      • Mimimum circular radius = 0.0001
  • Overfør "1.stp" fil til Arduino via å flytte ST kort fra PC til Aruino shield eller via USB og kjør

All egen kode


Installing cncjs

The machine is connected with a raspberry pi running CNCjs. Following the instructions provided by CNCjs will result in errors. The approach is therefor modified a bit. See resources for more detail. To install CNCjs run the following commands:

-Update and upgrade apt-get

$ sudo apt-get update
$ sudo apt-get upgrade -y
$ sudo apt-get dist-upgrade -y

-Installing build essentials

$ sudo apt-get install -y build-essential git

-Some useful tool, some are already preinstalled in Rasbian.

$ sudo apt-get install htop iotop nmon lsof screen -y

-Installing node package manager

$ sudo apt install npm

-Installing CNCjs

$ sudo npm install -g cncjs@latest --unsafe-perm

After the installation is finish you can run CNCjs with the command cncjs . The webserver can be accessed by the URL: http://isel.labnet.ifi.uio.no



Parts

Spindle motor

SPINDLE MOTOR ISA 750 (https://www.isel.com/en/spindle-motor-isa-750-manual-tool-exchange.html) (https://www.solectro.se/Product/Index/4671?SecId=1188)

The spindle motor is rated for up to 28 000 rpm, or about 450 Hz.

Controller for spindle

SKA1200075 (https://www.solectro.se/Product/Index/4862?SecId=1186)

The controller for the spindle works in Hz and not rpm. 1 Hz is equal to 60 rpm. The max is currently set to 380 Hz, to prevent damage to the motor.


På sikt:

  • Erstatte SD kort med ringbuffer
  • Vil vel gå over til MEGA eller DUE etterhvert



Resources

https://cnc.js.org/

https://github.com/cncjs/cncjs

Personlige verktøy