unconfirmedThe library file holds suggested limits for diameter, rate, volume, direction, use_millilitres (action), run (action), stop (action), clear_infused (action), and no person has confirmed those limits yet.How a person confirms the limits
Control channels
Channel
Min
Max
Step
Rate per s
Unit
Confirm
Limit
diameter
1
30
mm
confirm
suggested
rate
0.01
50
mL/h
confirm
suggested
volume
0
10
mL
confirm
suggested
direction
enum
confirm
suggested
Actions
Action
Arguments
Confirm
Limit
use_millilitres
none
none
suggested
run
none
confirm-each-time
suggested
stop
none
none
suggested
clear_infused
none
none
suggested
Read channels
Channel
Type
Unit
Every
status
enum
1 s
infused_volume
number
mL
on request
withdrawn_volume
number
mL
on request
firmware
string
on request
openhal:"0.1"device:{name: New Era NE-500 syringe pump,model: NE-500,manufacturer: New Era }id: new-era-ne-500
connect:{serial: auto,baud: 19200,newline: cr,framing: stx-etx,timeout: 1 s,identify: VER }read:status:type: enum
values:[infusing, withdrawing, stopped, paused, phase_pause, user_wait, purging, alarm]every:1 s
map:query:""parse:"^\\d\\d(?P<value>[IWSPTUXA])"lookup:{I: infusing,W: withdrawing,S: stopped,P: paused,T: phase_pause,U: user_wait,X: purging,A: alarm }infused_volume:{unit: mL,map: {query: DIS,parse: "^\\d\\d[IWSPTUX]I(?P<value>[0-9.]+)W[0-9.]+ML$"}}withdrawn_volume:{unit: mL,map: {query: DIS,parse: "^\\d\\d[IWSPTUX]I[0-9.]+W(?P<value>[0-9.]+)ML$"}}firmware:{type: string,map: {query: VER,parse: "^\\d\\d[IWSPTUX](?P<value>NE.+)$"}}write:diameter:unit: mm
min:1max:30confirm: confirm
suggested:truemap:command:"DIA {value:.4g}"expect:"^\\d\\d[SP]$"error:"\\?"get: DIA
parse:"^\\d\\d[IWSPTUX](?P<value>[0-9.]+)$"rate:unit: mL/h
min:0.01max:50confirm: confirm
suggested:truemap:command:"RAT {value:.4g} MH"expect:"^\\d\\d[IWSP]$"error:"\\?"get: RAT
parse:"^\\d\\d[IWSPTUX](?P<value>[0-9.]+)MH$"volume:unit: mL
min:0max:10confirm: confirm
suggested:truemap:command:"VOL {value:.4g}"expect:"^\\d\\d[SP]$"error:"\\?"get: VOL
parse:"^\\d\\d[IWSPTUX](?P<value>[0-9.]+)ML$"direction:type: enum
values:[infuse, withdraw]confirm: confirm
suggested:truemap:command:"DIR {value}"lookup:{INF: infuse,WDR: withdraw }expect:"^\\d\\d[SP]$"error:"\\?"get: DIR
parse:"^\\d\\d[IWSPTUX](?P<value>INF|WDR)$"actions:use_millilitres:description: Set the pump's volume units to mL, which the volume channels read in.
suggested:truemap:{command: VOL ML,expect: "^\\d\\d[SP]$",error: "\\?"}run:description: Start pumping at the set rate until the set volume, in the set direction.
confirm: confirm-each-time
suggested:truemap:{command: RUN,expect: "^\\d\\d[IW]$",error: "\\?|A\\?"}stop:description: Stop the pump. A running program pauses, and a second stop resets the program.
suggested:truemap:{command: STP,expect: "^\\d\\d[SP]$",error: "\\?"}clear_infused:description: Set the infused volume back to 0 while the pump is stopped.
suggested:truemap:{command: CLD INF,expect: "^\\d\\d[SP]$",error: "\\?"}safe_state:[{ action: stop }]safe_state_note:"A stop stops the motor at once and pauses the pumping program. The syringe keeps its pressure, so close the line's valve before disconnecting tubing."hazard: medium
notes: >-
Suggested limits. A person must confirm every limit before this device can be written.
Drafted with the driver writer from the RS-232 command summary in New Era's NE-500 user manual,
publication 1200-02, for lab use on a bench, never on a person. The pump replies in Basic mode
packets from STX to ETX at 19200 baud, so the file sets framing stx-etx. Run use_millilitres once, then
set the diameter from the syringe's own data before the first run. The rate limit of 50 mL/h and the
volume limit of 10 mL suit a 10 mL syringe. Raise them only for the syringe and the tubing in use.
provenance:{source: library,by: OpenHAL starter library,at: 2026-10-25,verification: {status: unverified }}