
FabBSD is an open-source, 4.4BSD-based UNIX-like operating system
designed specifically for machine controllers. Using low-cost computer
hardware, FabBSD can be used in a variety of applications, such as:
- Machine tools: CNC milling machines, lathes, routers, lasers
- Automation: Manipulators, power supplies, relays, valves, heaters
- Instrumentation: Optical encoders, thickness gauges, sensors
A typical FabBSD control system will:
- Ideally, use a low-power, fanless, headless System-on-Chip board.
FabBSD runs on a number of hardware platforms.
- Be fitted with application-specific controls (handwheels, buttons, LEDs).
- Use the general-purpose I/O ports provided by the CPU to control external
hardware.
- Provide both an Ethernet port (or use wireless LAN), and a RS-232
console port. Fancier systems can integrate text-based LCDs and
keyboards for the convenience of the operator.
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.,
ngc, move, boltpattern, gerbdrill)
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 at high frequencies with minimal hardware requirements.
A simple 133MHz 486-class processor is sufficient for FabBSD to control
multiple microstepping motor drives (such as the popular
Geckodrives),
at their maximum working frequency.
FabBSD is a derivative of
OpenBSD.
While it is distributed as a stand-alone OS, its machine-control
components are implemented as standard BSD kernel devices and can be
ported back to OpenBSD, NetBSD or
FreeBSD with minimal patching to
other parts of the kernel.
The base distribution includes
OpenSSH,
Sudo,
Binutils,
GCC and
GDB.
Currently supported architectures include Alpha, AMD64, ARM, i386,
Apple PowerPC, Sun SPARC and UltraSPARC.
The installation process is straightforward (via CD-ROM, FTP, floppies or
tapes).
FabBSD is under active development and is currently aimed at developers
and beta testers. Source code is available via
Subversion.
Binary snapshots are also available from
FTP.
Testers, please join #FabBSD.
|