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
IOExceptionthat would occur on some systems whenStartScanningorGetDiagnosticProfilewas called
v16.2.6
.NET API
- fix incorrect phase timings if
SetWindowwas called with a larger window afterConnect
v16.2.5
.NET API
- fix
ScanHead.IsConnectedandScanSystem.IsConnectednot 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.TryTakeNextProfileandScanSystem.TryTakeFrame - fix frame scanning not properly resetting sequence number when stopping and starting scans back-to-back
- add
ScanHead.IsScanningproperty
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.Jsondependency - obsoleted
ScanHeadConfiguration.SetCameraExposureTimemethod - obsoleted
ScanHead.GetDiagnosticCameraImagemethod overloads without explicit camera exposure argument
C API
- updated API examples
- fix bug reading raw profiles from
jsScanHeadGetRawProfiles - add new
statevariable tojsDiscoveredstruct - deprecated
camera_exposure_time_min_us,camera_exposure_time_max_us, andcamera_exposure_time_def_usfields injsScanHeadConfigurationstruct - deprecated
jsScanHeadGetDiagnosticImageCamera,jsScanHeadGetDiagnosticImageLaser, andjsScanHeadGetDiagnosticImagefunctions
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
ScanningModeenum argument toScanSystem.StartScanning - add new method
ScanSystem.TryTakeFrame - add new configuration methods
ScanSystem.PreSendConfigurationandScanSystem.IsConfigured - deprecate
IProfile.PacketsExpectedandIProfile.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
jsProfileIsValidandjsRawProfileIsValid - add new frame scanning functions
jsScanSystemStartFrameScanning,jsScanSystemGetProfilesPerFrame,jsScanSystemIsFrameAvailable,jsScanSystemClearFrames,jsScanSystemGetFrame, andjsScanSystemGetRawFrame - add new initialization functions
jsProfileInitandjsRawProfileInit - add new encoder function
jsScanSystemGetEncoder - add new configuration functions
jsScanSystemConfigureandjsScanSystemIsConfigured - deprecate
packets_receivedandpackets_expectedfields injsProfileinjsRawProfile
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
ScanHeadnamedClientIpAddressto get theIPAddressof 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_netmasktojsDiscoveredstruct
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
jsScanHeadSetMinimumEncoderTravelis 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
ProfileBufferOverflowedflag 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
jsScanHeadGetAlignmentLaserfunction
v16.1.0
.NET API
- add new scan head power cycle funciton
ScanHead.Reboot - add ability to set a
ScanWindowper laser/camera - add new polygonal window function
ScanWindow.CreateScanWindowPolygonal - add new scan data masking function
ScanHead.CreateExclusionMaskandScanHead.SetExclusionMask - add new beta feature brightness correction functions
ScanHead.CreateBrightnessCorrectionandScanHead.SetBrightnessCorrectionin theJoeScan.Pinchot.Betanamespace - change datatype of X/Y data in
Point2Dfromdoubletofloat - fix handling of recoverable network errors
- various performance increases
C API
- add new error codes
JS_ERROR_USE_CAMERA_FUNCTIONandJS_ERROR_USE_LASER_FUNCTION - add new scan head power cycle function
jsPowerCycleScanHead - add new rectangular window functions
jsScanHeadSetWindowRectangularCameraandjsScanHeadSetWindowRectangularLaser - add new polygon window functions
jsScanHeadSetPolygonWindow,jsScanHeadSetPolygonWindowCamera, &jsScanHeadSetPolygonWindowLaser - add new scan data masking functions
jsScanHeadSetExclusionMaskCamera&jsScanHeadSetExclusionMaskLaserand structjsExclusionMask - add new encoder driven scanning functions
jsScanHeadSetMinimumEncoderTravelandjsScanHeadSetIdleScanPeriod - add new beta feature brightness correction functions
jsScanHeadSetBrightnessCorrectionCamera_BETA&jsScanHeadSetBrightnessCorrectionLaser_BETAand 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
LinkSpeedMbpsinDiscoveredDevice
C API
- report ethernet link speed
link_speed_mbpsinDiscoveredDevice - deprecate
jsScanSystemPhaseInsertCameraConfiguration, usejsScanSystemPhaseInsertConfigurationCamerainstead - deprecate
jsScanSystemPhaseInsertLaserConfiguration, usejsScanSystemPhaseInsertConfigurationLaserinstead
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-
Enabledheads would prevent scanning - fix bug where scan heads loaded from configuration file wouldn't get an IP address
v16.0.0
.NET API
- fix
DisconnectandStopScanningthrowing exceptions when the connect is severed prior to call
C API
- rename
udp_packets_receivedtopackets_receivedinjsProfile&jsRawProfile - rename
udp_packets_expectedtopackets_expectedinjsProfile&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.