Unix-like operating system for CNC

4.4BSD-based, Unix-like operating system for CNC / Machine Control applications http://FabBSD.org/

machine-controlmotion-controlinstrumentationmotor-controllercnccnc-controllercnc-machinecnc-milling-controllercnc-routercnc-machinedlaserlasercutterlasercontrollaser-cuttinglaser-cutterengravingservo-controllerservo-driverstepper-motor-driverstepper-motor-control

What is FabBSD?

FabBSD driving a PCB drilling machine

FabBSD is an open-source, 4.4BSD-based UNIX-like operating system designed specifically for machine controllers. It is used in applications such as:

  • Machine tools: CNC milling machines, lathes, routers, lasers
  • Automation: Manipulators, power supplies, relays, valves, heaters
  • Instrumentation: Optical encoders, thickness gauges, sensors

 

The typical FabBSD-based control system uses a fanless, headless System-on-a-Chip board (network appliance boards with general-purpose I/O ports such as the Soekris are ideal), fitted with application-specific controls such as manual-pulse generator handwheels, and interfaced over the network. FabBSD runs on a number of different hardware architecture.

FabBSD's kernel regulates system interrupts and handles process scheduling, context switching and FPU management differently from a general-purpose kernel, such that real-time tasks can be performed without sacrificing the convenience of a fully functional Unix system. Canonical machine control functions are built into FabBSD's native executable format. This provides user-mode applications (e.g., ngcmoveboltpatterngerbdrill) with an efficient interface to the hardware. The ngc interpreter can execute standard machining programs in RS-274/NGC v3 format.

A common task of FabBSD systems is the coordinated motion of machine axes, whether driven by steppers, servo-motors or cylinders (with or without software-based closed-loop control). FabBSD uses a kernel-mode trajectory planner to generate stable motion control signals (using blended S-curve velocity profiles) at high frequencies with minimal hardware requirements. For example, a 133MHz 486-class processor with 32MB of RAM is sufficient for driving 3 Geckodrives at their maximum working frequency. The kernel configuration file for such a system might look like:

servo0 at gpio? offset 0 mask 0x3               # X axis
servo1 at gpio? offset 2 mask 0x3               # Y axis
servo2 at gpio? offset 4 mask 0x3               # Z axis
estop0 at gpio? offset 0 mask 0x1 flags 0x0000  # Emergency stop
encoder0 at gpio? offset 0 mask 0x3             # Quadrature encoder
mpg0 at gpio1 offset 18 mask 0x1f               # Manual Pulse Generator
spotwelder0 at gpio? offset 5 mask 0xf          # AC spot welder

FabBSD's kernel and base are forked from OpenBSD. Its machine control drivers (/sys/dev/cnc/), userland libraries (libcnc) and applications could be easily ported back to OpenBSD, NetBSD or FreeBSD with minimal patching to other parts of the kernel. The base distribution includes OpenSSHSudoBinutilsGCC and GDB. The installation process is straightforward (via CD-ROM, FTP, floppies or tapes).

As of 2018, FabBSD is undergoing active development again and contributors are welcome to provide feedback or patches. The latest FabBSD source is available via Subversion at https://dev.csoft.net/fabbsd/trunk. The repository is also mirrored on GitHub under /JulNadeauCA/FabBSD (base system) and /JulNadeauCA/FabBSD-Ports (ports and packages).

Related projects: EdaciousFreeSGcadtools.

News

06/13/2018The FabBSD repository is now mirrored on GitHub at: https://github.com/JulNadeauCA/FabBSD (base system) and https://github.com/JulNadeauCA/FabBSD-Ports (ports and packages).
05/15/2010The "jog" function is now implemented in user-land. For the jog(1) command to work after updating, users of manual pulse generator handwheels on existing installations should use:
cd /dev && sh MAKEDEV mpg0
03/26/2009This project is now known as "FabBSD". A new Subversion repository has been created. While the former "machctl" code was in the form of patches and kernel extensions specific to CAM (and limited to interpreted programs), FabBSD becomes a stand-alone operating system dedicated to CAM and general automation applications.

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值