Pinchot API
The button below will allow you to download the most up to date software for your JS-50 scan heads. Please note that this API follows semantic versioning to indicate backwards compatibility with software targeting older releases.
Download JoeScan Pinchot API 16.2.7JsSetup
To assist in setting up and configuring JS-50 scan heads, JsSetup is provided as a standalone tool. This tool generates a configuration that defines the entire scan system and can be directly used with the Pinchot API.
Download JsSetup 1.0.1Open Source
The Pinchot API used to control JS-50 scan heads is fully open source and can be obtained from GitHub. Use of the official releases is highly recommended, but limited support is provided for those who wish to make use of the API source code.
Pinchot .NET API Source Pinchot C API SourceChangelog
v16.2.7
.NET API
- fix
IOException
that would occur on some systems whenStartScanning
orGetDiagnosticProfile
was called
v16.2.6
.NET API
- fix incorrect phase timings if
SetWindow
was called with a larger window afterConnect
v16.2.5
.NET API
- fix
ScanHead.IsConnected
andScanSystem.IsConnected
not being accurate when a scan head gets disconnected from the network - throw exceptions for methods that try to communicate with a scan head if it has been disconnected from the network, namely
ScanHead.TryTakeNextProfile
andScanSystem.TryTakeFrame
- fix frame scanning not properly resetting sequence number when stopping and starting scans back-to-back
- add
ScanHead.IsScanning
property
v16.2.4
.NET API
- fix delay in frame scanning when not all phaseable elements of a scan head are present in the phase table
C API
- fix delay in frame scanning when not all phaseable elements of a scan head are present in the phase table
v16.2.3
JS-50 Firmware
- improvement to internal calibration data
v16.2.2
C API
- fix bug in profile queues resulting in incorrect profile available count
v16.2.1
.NET API
- updated API examples
- removed
Newtonsoft.Json
dependency - obsoleted
ScanHeadConfiguration.SetCameraExposureTime
method - obsoleted
ScanHead.GetDiagnosticCameraImage
method overloads without explicit camera exposure argument
C API
- updated API examples
- fix bug reading raw profiles from
jsScanHeadGetRawProfiles
- add new
state
variable tojsDiscovered
struct - deprecated
camera_exposure_time_min_us
,camera_exposure_time_max_us
, andcamera_exposure_time_def_us
fields injsScanHeadConfiguration
struct - deprecated
jsScanHeadGetDiagnosticImageCamera
,jsScanHeadGetDiagnosticImageLaser
, andjsScanHeadGetDiagnosticImage
functions
JS-50 Firmware
- fix bug in scan head discovery causing status to always report
CONNECTED
FirmwareUpdate
- speed up firmware update process
- add scan head state column
v16.2.0
.NET API
- add support for JS-50 Z820 and JS-50 Z830
- add support for frame scanning
- add support for presending configuration data to scan heads
- add new frame scanning interface
IFrame
- add new
ScanningMode
enum argument toScanSystem.StartScanning
- add new method
ScanSystem.TryTakeFrame
- add new configuration methods
ScanSystem.PreSendConfiguration
andScanSystem.IsConfigured
- deprecate
IProfile.PacketsExpected
andIProfile.PacketsReceived
C API
- add support for JS-50 Z820 and JS-50 Z830
- add support for frame scanning
- add support for presending configuration data to scan heads
- add new frame scanning function macros
jsProfileIsValid
andjsRawProfileIsValid
- add new frame scanning functions
jsScanSystemStartFrameScanning
,jsScanSystemGetProfilesPerFrame
,jsScanSystemIsFrameAvailable
,jsScanSystemClearFrames
,jsScanSystemGetFrame
, andjsScanSystemGetRawFrame
- add new initialization functions
jsProfileInit
andjsRawProfileInit
- add new encoder function
jsScanSystemGetEncoder
- add new configuration functions
jsScanSystemConfigure
andjsScanSystemIsConfigured
- deprecate
packets_received
andpackets_expected
fields injsProfile
injsRawProfile
JS-50 Firmware
- add support for JS-50 Z820 and JS-50 Z830
- add support for frame scanning
v16.1.11
JS-50 Firmware
- add support for non-volatile camera correction
v16.1.10
JS-50 Firmware
- improvement to internal memory
v16.1.9
C API
- fix bug in TCP networking code causing high CPU loads
v16.1.8
JS-50 Firmware
- fixed bug that could prevent internal calibration from loading
v16.1.7
.NET API
- fix bug that prevented client with multiple network interfaces from connecting to scan heads
- add new property to
ScanHead
namedClientIpAddress
to get theIPAddress
of the connected client network interface
C API
- fix bug that prevented client with multiple network interfaces from connecting to scan heads
- add new fields
client_name_str
,client_ip_addr
, andclient_netmask
tojsDiscovered
struct
JS-50 Firmware
- fix bug preventing new client from making a clean connection to a scan head when the scan head is already connected to a different client
- fix bug affecting timing of laser during scanning that in rare cases decreased its intensity
v16.1.6
JS-50 Firmware
- improvement to internal calibration data
v16.1.5
C API
- fix memory leak in scanning code when
jsScanHeadSetMinimumEncoderTravel
is used - fix bug in scanning code caused by unused variable
v16.1.4
C API
- remove internal dynamic memory allocation for profile buffering
- change internal profile buffering implementation; note with change, old data not read out is no longer overwritten by new data
v16.1.3
.NET API
- fix bug where point data could be overwritten if profiles were not read out fast enough
- reset
ProfileBufferOverflowed
flag onStartScanning
JS-50 Firmware
- fix bug where IP address change would prevent connection
v16.1.2
C API
- fix socket close error on Windows
v16.1.1
C API
- fix linker error with
jsScanHeadGetAlignmentLaser
function
v16.1.0
.NET API
- add new scan head power cycle funciton
ScanHead.Reboot
- add ability to set a
ScanWindow
per laser/camera - add new polygonal window function
ScanWindow.CreateScanWindowPolygonal
- add new scan data masking function
ScanHead.CreateExclusionMask
andScanHead.SetExclusionMask
- add new beta feature brightness correction functions
ScanHead.CreateBrightnessCorrection
andScanHead.SetBrightnessCorrection
in theJoeScan.Pinchot.Beta
namespace - change datatype of X/Y data in
Point2D
fromdouble
tofloat
- fix handling of recoverable network errors
- various performance increases
C API
- add new error codes
JS_ERROR_USE_CAMERA_FUNCTION
andJS_ERROR_USE_LASER_FUNCTION
- add new scan head power cycle function
jsPowerCycleScanHead
- add new rectangular window functions
jsScanHeadSetWindowRectangularCamera
andjsScanHeadSetWindowRectangularLaser
- add new polygon window functions
jsScanHeadSetPolygonWindow
,jsScanHeadSetPolygonWindowCamera
, &jsScanHeadSetPolygonWindowLaser
- add new scan data masking functions
jsScanHeadSetExclusionMaskCamera
&jsScanHeadSetExclusionMaskLaser
and structjsExclusionMask
- add new encoder driven scanning functions
jsScanHeadSetMinimumEncoderTravel
andjsScanHeadSetIdleScanPeriod
- add new beta feature brightness correction functions
jsScanHeadSetBrightnessCorrectionCamera_BETA
&jsScanHeadSetBrightnessCorrectionLaser_BETA
and structjsBrightnessCorrection_BETA
JS-50 Firmware
- fix networking bug causing scan head to fail to negotiate link with some network switches
- fix autoexposure bug preventing it from working at fractional scan resolutions
- add support for exclusion masks
- add support for brightness correction
FirmwareUpdate
- add ability to update scan heads in parallel
- fix bug preventing ScanSync updates
v16.0.4
JS-50 Firmware
- fix firmware bug that caused connection error
v16.0.3
.NET API
- report ethernet link speed
LinkSpeedMbps
inDiscoveredDevice
C API
- report ethernet link speed
link_speed_mbps
inDiscoveredDevice
- deprecate
jsScanSystemPhaseInsertCameraConfiguration
, usejsScanSystemPhaseInsertConfigurationCamera
instead - deprecate
jsScanSystemPhaseInsertLaserConfiguration
, usejsScanSystemPhaseInsertConfigurationLaser
instead
JS-50 Firmware
- fix network negotiation failure with 100Base-T switches
- fix "Core" files not being served correctly in web server
ScanSync
- firmware release v2.1
- support digital input signal up to 40 volts
v16.0.2
.NET API
- support for JS-50 MX
C API
- support for JS-50 MX
JS-50 Firmware
- support for JS-50 MX
v16.0.1
.NET API
- fix exception when scanning at high speeds for
netstandard2.0
SensorTester
- fix bug where non-
Enabled
heads would prevent scanning - fix bug where scan heads loaded from configuration file wouldn't get an IP address
v16.0.0
.NET API
- fix
Disconnect
andStopScanning
throwing exceptions when the connect is severed prior to call
C API
- rename
udp_packets_received
topackets_received
injsProfile
&jsRawProfile
- rename
udp_packets_expected
topackets_expected
injsProfile
&jsRawProfile
FirmwareUpdate
- improve transfer speed of firmware file to scan head
Pinchot v16 Migration
For more detailed documentation on migrating from v13.x.x and older of the Pinchot API, please reference the article provided here.
Previous
Contact a representative of JoeScan if releases older than version 12.0.1 are required.
Software Update Email List
Sign up here to receive the latest information on JoeScan API and software releases directly to your inbox.