Home FAQs Programming
Programming 2018-01-27T02:22:58+00:00

 Pump Programming

How do I get a laboratory pump to do…. Your questions answered here.

Start Programming Your Pump 2018-01-16T20:01:45+00:00

In the beginning, manually programming your pump and getting started writing pump programs is a challenge! The initial learning curve is high. So much to learn. There’s plenty to learn about the programming language and how the pump operates. You just want to start getting results – now!  I can help you!

Pump Programming Spreadsheet

Pump Programming Spreadsheet

How SyringePumpPro Helps

SyringePumpPro installs:

  • Some very handy and easy to use pump programming spreadsheets. These are great when you get started – they really teach you the pump syntax.
  • Many examples for microfluidic infusion, infusion and peristaltic pumps.
  • Pump programming manuals covering the more popular brands of pumps.

There’s a Video!

This video gives an introduction to the pump programming process.


I Can Write Your Programs For You!




What I Provide

A fully tested PPL file. This means I run the PPL on a pump and check timing, rates and volumes. A fully documented pump program showing you where to modify rates, volumes and timing. All files are provided in a downloadable installer program, which installs the ppl files I have developed for you into your SyringePumpPro installation.

PPL Costing

Tell me about your task and I will give you a fixed quotation.

How I Do This

First I need to wrap my head around what exactly is needed from your PPL. So the first step is to have you write a short but detailed description of what the ppl will do – step by step.

I need to know about

  • Timing,
  • Syringe to be used,
  • External stimulus,
  • Pump model,
  • Description of injection signal etc.
  • A great diagram… you probably need all these things your final paper anyway – draw it up front – it helps!

I write and test with delays and rates that are 10x or 20x to test the PPL logic coding cycle and then I test at 1X and basically make sure the PPL takes long enough – and I do some spot checking during the run.

Turn Around Time – FAST!
Life permitting, I usually quote turn around times of about 3 days.

Force and Pressure Measurement 2018-02-08T23:02:34+00:00
  • Do you need to monitor the pressure in the syringe?
  • Do you need to regulate the pressure?

I am currently considering adding pressure monitoring and regulation to SyringePumpPro. I would be delighted to hear about your application’s requirements.

This would be achieved through the use of a load cell. I have already had interest from people who wish to monitor and or regulate blood pressure in laboratory animals – in these applications specifically rats.

Please contact me and tell me your requirements.

Pump Programming Triggers 2018-01-03T03:54:07+00:00

A trigger is something usually an electrical signal that is used to get a pump to change it’s pumping action.

Simplest example is the use of a foot switch on a manual production line. For example an ink cartridge refiller. They pick up a print cartridge for filling, insert the filling probe into the cartridge and the press the foot switch (with their foot). The pump then begins to run a pumping program which fills the ink cartridge at a safe rate for a known volume. Every print cartridge is filled the same following the foot switch trigger.

Sophisticated Triggering

The pumps on this website all support external signal triggering from ttl logic level signals.

The triggers can be the rising or falling of the signal input level. These triggers can be configured to jump to two different sections of a pump program – thus implementing two separate pumping actions based on the input signal applied. For example you could have two sections one for a slow flow and anther for a fast flow – the trigger could switch between the flow rates.




Programming Multi Pump Recipies 2018-02-08T23:02:35+00:00

PPL File Sets

A file set consists of a file for each pump and a master ppl file.

Multiple pump file sets

Multiple pump file sets

Continuing with the example, you would have a ppl file for each pump and for each recipe. If you had 6 recipes and 3 pumps, you would have 18 ppl files that need to be uploaded as a set of 3 ppl files.

Each recipe should have it’s own master file
The master file can be uploaded to any connected pump, and it will read in the ppl for each pump and upload it.

The master file:

  • Uploads each pumps ppl file to the correct pump
  • Clears inf and wdr counters on the pumps and on SyringePumpPro display
  • Then makes all pumps involved beep in chorus signaling that the upload is complete.
  • Limited user instructions/information can be displayed in the history window. Simple add comment lines at the end of the master ppl file. These will be placed in the history window.

PPL errors are reported, a missing pump is reported.

This makes it fairly easy for operators to be trained to upload the master.ppl for a recipe to any pump and wait for the pump choir as I call it. Then they can press Run All and they are pumping!

Some recipes may have one or more pumps doing the same thing – that’s fine – you can re-use child ppl files in multiple recipes.

Adding Operator Prompts

To leave some short instructions or operator feedback

Add some comment lines to the end of the master ppl file – like this:

; it's time to press the run all button
; When all the pumps beep together-
; Sequence 2 has been uploaded to the pumps

These comment lines will be displayed in the history window

Operator Instructions provided by the Master file

Operator Instructions provided by the Master file

Master PPL Example Listing

The following ppl program is an example of a master file, that uploads the three child files R1P1 (recipe 1 pump 1), R1P2, and R1P3 in to the pumps at address 0, 1, 2.

This example master ppl file can be uploaded to any one of the connected pumps and it will load each ppl file into it’s target pump, and zeros the infusion and withdrawn counters, ready to run the recipe.

As each pump completes it’s upload – it beeps (done at the end of the child ppl file for each pump) and when all ppl is uploaded, all pumps beep – done at the bottom of the master ppl file. Then it’s time to click Run All to start the pumps.

; Recipie1Master.ppl
; Date 15Jan2014
; Written by:
;          Tim Burgess
;          SyringePumpPro https://syringepumppro.com/
;          timb@syringepumppro.com
; The Master ppl file for Recipie 1
; This master ppl file will fetch and load the ppl for all 3 pumps
; To use:
; 1. Connect all pumps, make sure SyringePumpPro detects them
; 2. Upload this ppl file to ANY pump
; 3. In SyringePumpPro click Run All button
; Load the three pumping programs
; Pump 1

Set adr=0
call R1P1.ppl

; Pump 2

Set adr=1
call R1P2.ppl

; Pump 3

Set adr=2
call R1P3.ppl

; clear the pump's counters, update the SyringePumpPro pump worksheet




; When you hear the pump choir - we are finished ppl upload

; it's time to press the run all button
; When all the pumps beep together-
; Sequence 1 is being uploaded to the pumps.
What to try when 41 program steps run out 2018-01-27T02:56:51+00:00

Programmable syringe pumps have a limited number of program steps. Basically they only have so much on board memory available. What are some techniques for growing past this limit?

Sometimes your pump program grows and then grows and then grows and suddenly 41 steps becomes a limitation. This limitation is like colliding with a brick wall – your part way through a ppl program and … that’s it no more.

example2diagram - beepexample2ppl

There are a couple of techniques that you can use to work around this limitation.

Upgrade your pump -Easy but Costs Money

The easiest is to eliminate the limitation by upgrading the chip (and thus the memory) in your pump.

These brands – (I know this because SyringePumpPro supports these):

All of these brands have an X2 upgrade chip available which expands your pump to 300+ programming steps. So part with your cash and fix the problem quick and easy. Tell em the SyringePumpPro guy sent you.

From my limited experience with them, I can’t say much about other brands like:

  • KD Scientific
  • Harvard Apparatus

Currently SyringePumpPro doesn’t support these, though I own several examples of each ready for supporting them in the near future.  A quick skim through their manuals didn’t give any idea about the number of program steps they support and there doesn’t seem to be any chip upgrades available for their pumps.

Reducing Your Program Size

Eliminate Necessary Steps

Do you need every  step?

Perhaps you could break your pump program into two pieces – a before and after – this is a stupid suggestion for a lot of applications – it really depends on what happens if the pump stops and then someone is required to upload the second part of your pumping application. Most of you in this position should part with the money and upgrade to and X2 chip.

Some Program Code Don’t Take Steps

Often pumps will include code lines at the start such as PF 1 and AL 1. These configuration items (Power fail and alarms) which you can configure in your pump and it will survive power cycles – they don’t actually take up steps since they configure the pump at upload and then are gone.

Optimize Your Program

This is the hard work option. Take a long hard look at your application and your pump program and see if you can change either and reduce your pumping flow changes.

  1. Use looping to reduce repeating code.
    If your doing the same 2 or 3 flows sequentially with a pause (very common) write the code with a loop (LPS) the the flow (RAT/VOL) and a single timed pause, then loop back the number of times you need to repeat that flow pattern.
  2. Use subroutines to eliminate repetitive code.
    Often your program will infuse the same volume at the same rate or do the same sequence of steps repeatably. Gather these steps in one place and set them up as a subroutine. Then call them when you need them. This can save a lot of steps for little effort – but doing it the first time takes some working through.
  3. Print your Pump Program,
    grab a coffee and just take a good long look at it. This change of venue and mindset often will reveal improvements (and bugs). This really works!
  4. Send me your pump program and I can offer some suggestions.
How To Specify Your Flow 2018-01-17T00:14:29+00:00
drawing board

drawing board

Before you can start programming your pump, you need to understand the flow you require in detail.

For a simple single rate and volume flow you hardly need to spend much time on this. But for wave form flows or flows involving interaction with the real world (triggers) you really need to map the flows you require.

This is tough to write because a really simple flow seems so obvious why bother with these steps? Yet simple flows often seem to evolve as experimental results provide new inputs.

Sketch your flows – it really helps

  • Create a time line of your fluid flow requirements from your application or apparatus view point.
  • If you have more than one fluid involved – show them individually preferable in separate colors.
  • Name any flows and the pumps – these names might be the same – but refering to pump 1 and pump 2 gets confusing.
  • Show what triggers changes in your flow – are these external events? Elapsed time? A measured value?
  • Document – write some words about each flow, estimating volumes and rates.
  • Now add significant pump commands to your diagram. Especially the rates and flows and triggers.
  • Give each graph/protocol a unique name – will help us identify what we are talking about and associated files.
  • Name the different phases for each indicated flow – include the pump name.
  • Indicate a start and ending flow rate, and a duration for any ramps. example Starting flow rate 10ml/h ramping up to 68ml/h in 27 seconds
  • Indicate the steady flow rate for all fixed flow rate periods.
  • These drawings – don’t need to be in scale – but do need all the above information for each graph.

This little bit of planning will really help you to understand your pump requirements. This lets you translate those requirements into pump commands.

Each pump will need it’s own program and for multiple pump control I recommend using a pump recipie.  You cannot usually use a multi syringe pump for this.

Increasing and Decreasing Flow Rate example

Increasing and Decreasing Flow Rate example

More than one Protocol – Combine?

If you have a number of protocols to run and there is time between those protocols, I recommend using a mulitpump recipe for each protocol.

I am asked why not put all my protocols in a single pump program and combine those single programs in a  multipump recipie. You can -if the individual pump protocols only take a few lines of pump program. But in many of these complex multipump protocols the pump programs tend to get complex and reach the pump program limitations.


Example Paper Automated Perifusion System

Related Pages

Pump Programming

TTL Inputs and Outputs 2017-12-26T20:53:51+00:00

TTL Ports – Button Pumps

Pump TTL Db9 Connector

Pump TTL Db9 Connector

On the normal button/display pumps or bench pumps, the ttl output ports are available on the DB9 connector on the rear panel. This connector is not the RS-232 port!

The following chart shows the pin input and output assignment.

Db9 TTL Pin Out Chart

Db9 TTL Pin Out Chart

Logic Levels

To guarantee recognition of logic levels, voltages on the input lines must be within the following

  • TTL logic low (0): 0 to 1.5 V
  • logic high (1): 3.5 to 5.25 V

TTL Ports – OEM Pumps

The OEM pump models are configured for installing in equipment of your design. As such the pump control circuit board is set up to take soldered connections rather than a single plug.

This diagram from the OEM Pump Manual shows the solder pad location and the location of current limiting resistors.

Accessing Ports Via RS232

The logic levels of pins 2, 3, 4, and 6 can be queried from an attached computer using the RS-232 ‘IN’
command and the output logic level of pin 5 can be set with the RS-232 ‘OUT’ command. There’s more details in your pump manual.

Power on Pin State

Unfortunately neither model of the pump appear to remember the last state of the TTL outputs after power cycling. All the pins appear to come on high at switch on regardless of previous state.

Single Control Valve Box

Single Control Valve Box

Users of the Valve Control Box

If you’re a user of the Valve Control Box inverting the signal is just a matter of changing the valve activate switch from Infuse to Withdraw.

Pump Commands 2018-02-08T23:02:35+00:00

Are you looking for a detailed explanation of the the available pump commands?
Are you interested in the specific syntax of a pump command?

They are explained in detail in your pump manual.

I am considering offering pump programming training here, are you interested? If so please contact me


How does the pump communicate with a computer.

Via RS-232/RS-485 is the short answer. You can learn more about the cabling.

Pump Communication Procedure

A quick explanation of the process – this should be useful to those of you writing your own pump software.

Assuming you have a working pump network….

Pump Sends Prompt

Pump’s send out a command prompt when they are ready to accept a new pump command. This doesn’t relate to whether they are pumping or not, they issue a command prompt as soon as they are ready for the next command.

Entering Pump Command

Entering Pump Command

The computer sends the characters of a command – generated by a human typing a command into software or a piece of software automating pump operations. SyringePumpPro does both of these things – accepts pump commands from an operator and it queries the pump automatically to update it’s pump status information.

Command Sequence

To pump: <transmitted data> => { <command data> | <response data> } <command data> => [<address> | * ] [<command>]

From pump <response data> => <address> <status> [ <data> ]

Format of Command to Pump

<basic command protocol> => <command data> <CR>

A master-slave protocol is used, whereby the pump will only transmit in response to a received command.

When the pump receives the

<basic command protocol>, <command data>

it will  be stripped of all space and control characters, and all text will be converted to upper case. This simplifies communications with the pump when commands are being manually typed in from a generic terminal emulator.

This travel down the cable to the pump.

Format of Response from Pump

<safe response protocol> => <STX> <length> <response data> <CRC 16> <ETX>

The pump replies with a ‘safe mode’ formatted response which is design for electrically noisy environments. A CRC value of the response contents is sent so that the receiver can confirm that the pumps actual response was received.

You can simply accept the response data without checking the CRC value, and the response is human readable text. SyringePumpPro checks all responses and alerts the operator if data corruption is detected.

Command Set

Braintree Scientific BS8000/BS9000 User Manual

Braintree Scientific BS8000/BS9000 User Manual

The command set varies from pump software version and model so it’s worth grabbing the manual for your pump






Easy Way to Create PPL Files – Programming Spreadsheet 2018-01-22T02:14:43+00:00

ppl creator start menuThere is an easy way to create Pump Programs! Use the PPL Creator spreadsheet which is installed with SyringePumpPro. PPL Creator is supplied by New Era Pumps. It is easy to use but you still need to be familiar with how the pump works, and the pump commands in order to write programs for your pumps.

If your not sure about your particular pump’s brand or model – check out the compatible pump’s page.

Credit: This PPL spreadsheet has taken Barry Cowan owner of New Era Pump Systems a lot of time over the years to create and update.

Pump Programming Spreadsheet

Pump Programming Spreadsheet

SyringePumpPro installs three versions of the spreadsheets covering the different models of the pumps.

Spreadsheet Name

 Target Pumps

Standard PPL Creator.xls

All pumps excluding peristaltic and models with X or X2 upgrades

Standard NE-1000, NE-1200, NE-1600, NE-1800, NE-500, NE-4000, NE-4500 models – not using X and X2 upgrade features.

NE-1002 micro-fluidic pumps use this spreadsheet with Microfluidic units in selected cell O17.

X and X2 upgrade PPL Creator.xls

X upgrade Pumps

Pumps having X and X2 in their part number.

 Peristaltic Pump PPL Creator.xls

All Peristaltic pumps

Including clear, blue, green heads.

Standard PPL Examples.xls

Program Examples

In the pump user manuals there are several example programs. This spreadsheet contains all of the example code for you to work through as a learning exercise and a starting point for your pump programs.

SyringePumpPro installs these spreadsheets

Access theses spreadsheets from within SyringePumpPro:

When you have installed SyringePumpPro you can launch the PPL Creator using the start menu entry.

PPL creation requires time spent with the pump manuals to understand the commands the pumps take.

The PPL spreadsheet is handy because it creates your PPL file for you, by you clicking and selecting the commands you want. This means no errors when you upload the PPL file. Less frustration and lots of time saved.

display the user manual

Menu – Help->User Manual

See the User Guide for SyringePumpPro for more details. Help -> User Guide.

Is your pump doing weird stuff? 2018-01-27T02:07:48+00:00

Are you operating a pump – perhaps it’s your early days with the pump, and when you push the RUN button the pump seems to do weird stuff you never asked for?  Is your pump pre-loved? (pre-used?)

You might have one of three problems:

  1. Your pump has someone else’s program in it and your running that by accident.
  2. You have two pumps on the network sharing the same address.
  3. Your electro-spinning and the high voltage has escaped into the pump.

You probably have someone else’s pump program in your pump.

If you have someone else’s pump program in your pump, then you create a short say one line pump program without a stop command at the end of it, your pump will execute your one liner and then step into the other person’s code which is not what your expecting. Always make your last instruction a STP command.

How to get rid of other peoples pump programs

Easy do a pump reset. There are instructions here.

After a reset your pump still has a program in it! Yes – a reset puts a program  into your pump from the factory. It’s a very simple program, so that when you press the run button (if you have one) the pump will pump. Remember these pumps are programmable. When you upload a short program, you will overwrite the pump’s factory program.

Two Pumps Sharing the Same Network Address

This is easy to fix. Each pump needs it’s own address on the network. When two or more pumps share an address it’s like talking to two people with the same name – they both answer at the same time (or slightly different times) and what the pump says is garbled. You will typically see SyringePumpPro displays jumping around the cells shows wrong or incorrect information.

Follow these instructions to set your pump’s address.

How do you lock your pump programs 2018-01-27T22:31:27+00:00

If you want to prevent operators from changing pump programs accidentally…

are you using the best pump for your applicatoin. Button pumps are meant for programming and control. In a production environment with operators, you might want to choose button-less or OEM pumps.

I have entered the program in the pump, but I am unable to lock the program. The operators might press any key by mistake and the program might change, so just to make sure everything is ok, I have to lock the program.

I am not able to lock the program after entering actions in all the phases. I request you to please guide me on how to lock the program after entering actions in all the phases

As per your manual you have said that while starting the switch press and hold diameter key, I tried it several times and it never showed lock option. It showed PF, Ln, BP, etc. I am really confused, because in the manual you have given that program can be locked, but after trying several times I didn’t find that option.

I did reset and then finally the option P-L.n was seen, but after entering the program, it didn’t come up. Is it possible to lock the program after entering all the actions in different phases i.e. phase 1 to 5 and then locking it up. Please tell me the procedure to lock the program after entering program in the pump.

Locking pump programs

The software lock on pumps with buttons has some limitations. After all once you lock the buttons you cant change the pump. With a limited amount of buttons the software lock has to be limited. .

Normally when operators are to be involved with pumps, an OEM pump with no buttons at is used. This is where SyringePumpPro really shines – it provides the buttons for the button less OEM pump. It’s a necessity.

As you saw the software lock option is available on a reset pump and a pump that has one ppl phase of code entered. As soon as you have more than one phase of PPL in a buttoned pump, keypad locking is no longer offered – you have to use the locking device – the software lock is no longer offered as an option.

Locking buttoned pumps is easy done with the hardware key here. which can be manually connected/removed to lock/unlock the pump.

I hope this explains the issues surrounding locking the keyboard for you.

Easy done with the hardware key here
or in your code with the command
LOC [P] [ <on-off> ]
Set/query keypad lockout mode. Set keypad lockout disables changing any settings from the keypad
unless the “Lockout Disable Key” is inserted.
P [ <on-off> ]
Set/Query Program Entry Mode Lockout. Set Program Entry Mode Lockout prevents inexperienced
users from entering “Program Entry Mode” from the keypad. When enabled, only the Phase 1 ‘Rate’, ‘Volume’ and Pumping Direction can be changed. Cannot be enabled when the Pumping Program is currently programmed with a multiple Phase Program.

PPL Creator Spreadsheet #N/A Error 2018-02-08T23:02:35+00:00

Had a couple of reports about an issue with the PPL Creator spreadsheet. It looks like under Microsoft Office 2010 the spreadsheet inserts a line in each phase – #N/A

When you upload the ppl to the pump using SyringePumpPro, every line of your ppl file is reported as an error.

Work around – Use Libreoffice calc instead of Microsoft Office. I use LibreOffice for everything here and have now installed copy of Microsoft Office 2010 for checking these sort of issues.

Update – if you are running into this issue – it’s time to update your spreadsheet to the latest version.

UPDATE 3rd Dec

Barry (owner of New Era Pump Systems and author of these handy spreadsheets) has provided me with updated files which are now included in Version 1.60 of SyringePumpPro which will be released in the next week. Thanks Barry!

Changing settings on running pumps doesn’t work 2018-01-16T23:56:36+00:00

Occasionally I get a report like this:

I cannot change any of the settings on the pump. I go to the quick change area and change one of the fields and click on the button, everything reverts to the default. The pump works, I can make it start, pause, and stop all day, just can’t change anything.Re-install?

As a general rule re installing never fixes anything – it’s a rare day when it does.

I think your seeing something that’s working well and it’s not what you expected. I have discussed this very thing with the pump designer/manufacturer.

You cannot change the pumping rates whilst the pump is pumping.

Additionally you can only change pump rates and or volumes when the pump is stopped in a RAT phase.

If the pump is in another function – the rate and volume information doesn’t make any sense to the pump.

This is a design feature of the pumps.

So if you are setting the pump to run, and then trying to change rates whilst it’s running – what you are seeing is the pump ignoring the request to change rates, and then SyringePumpPro updating it’s displays to faithfully report what the pump says it is doing.

This creates the effect you are seeing – that you can change settings but then they change back a second or two later. If this sounds like the problem you are experiencing – it’s not a problem it’s working fine – but not doing what you expected/wanted.

You can confirm this by stopping the pump and then changing the settings – they stay changed.

There are some people who would like the ability to change the rates on the ‘move’. I would be interested in hearing if you want/need this feature, and perhaps a little more information on your application or why – not because I want you to justify your use.

About 5% of my customers encounter this and express a desire to have the feature – and it’s on my todo list. Most importantly the pump manufacturer wants the feature! But it means I will have to stop the pump, change the rate and then start the pump – and that may have application implementations – which is why I am asking for more information about your application.

How to Edit PPL Files 2018-01-27T22:28:54+00:00

PPL files or Pump Programming Language files are a simple text format. They can be created and edited using a normal text editor like Windows notepad. SyringePumpPro comes complete with a very simple programming spreadsheet, that offers programming choices using drop down selections.

Once you have created your program, upload your PPL file to your pump using SyringePumpPro.

To create a PPL file it is recommended that you

  • examine one of the example PPL files using NotePad – click on the link in the start menu to open an example
  • Click File -> Save As and give a file name. Use the file dialog to place your new PPL file some where that you can find it again.
  • Edit the file to contain your command sequence.
  • You can then use SyringePumpPro to upload your PPL file to one or more pumps.
I need more than 41 pumping phases 2018-01-27T22:08:14+00:00

If you are writing a pump program – you can discover that the 41 available programming phases is not enough. There are several ways around this.

Here’s some suggestions and some links to help you:

  • Is your code bloated? – are you doing unnecessary operations – eliminate them.
  • Can you see a sequence of instructions in your pump program that is repeated one or more time – make them into a subroutine, which will reduce your need for that sequence to a single instance.
  • Can you change a sequence to a loop? I see this very often with people making delay loops.
  • Are you trying to use software sequences where a simple hardware input could trigger a change in program flow?
  • Did you know that most pumps can be upgraded to the X1 version of the pump control software? This gives you more functions and far more program phases than the standard 41. The new functionality means that a single phase can be used to express a ramping rate – in place of many phases of your own code. You get a smoother ramp too!

If your still stuck – why not contact me and see if I have some other ideas. Then they might end up on the list above.