Skip to content
Pacemaker client
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc added pinout documentation for Nucleo64. Oct 25, 2017
test User timer.c to get Buzzer timer frequency. Oct 22, 2017


Pacemaker Client

The pacemaker client implements the client role as defined in the pacemaker protocol. Together with a pacemaker host it can replace a 3d printer firmware.


The Pacemaker protocol provides an open interface to allow the separation of real-time and non-real-time control components for 3D printers, CNC machines and laser cutters.

This has the huge benefit of allowing new controller hardware (the real-time component) to work with existing host software solutions (the non-real-time component). This makes it easy to expand the Pacemaker system to new machines.

Pacemaker allows a much richer level of machine control by the non-real-time host software than is possible with typical G-code based systems. This provides feature-rich host software, more integrated start-to-finish tool chain solutions whilst still being able to operate on a wide range of platforms. The standard G-Code interface is also provided.

Building and Starting

The firmware can be build using make. The generated Files will be placed in the bin folder. For details try

make help

for this to work you (obviously) need to have make installed. Depending on the target you are building for you might need to have additionaltools installed:

  • For linux (Posix systems) you need pthreads and gcc. You can debug using gdb.

  • To build for ARM Cortex-M Targets you need GCC ARM Embedded

  • for automatic generated documentation you need Doxygen

  • for unit testing you need cmocka and/or CppUTest

  • for programming the flash and debugging the STM32 chips you need stlink


This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, see

You can’t perform that action at this time.