2019-10-02 12:16:07 +08:00
const shop _data = {
2019-12-26 21:31:37 +08:00
mobileSideMenuShouldOpen : false ,
2019-10-02 12:16:07 +08:00
currentItemHovered : null ,
currentMode : 'rack' ,
2019-11-06 14:48:26 +08:00
currency : 'USD' ,
2019-10-02 12:16:07 +08:00
crateModeSlots : {
rack : 21 ,
desktop : 10 ,
} ,
crateRules : {
maxSlot : {
type : 'crate' ,
2019-11-06 10:13:14 +08:00
icon : '/shop/icon-warning.svg' ,
color : '#c75e5e' ,
2019-10-02 12:16:07 +08:00
name : 'Crate' ,
message : 'You have reach the maximum number of slots allowed for this crate. Consider removing cards.' ,
} ,
} ,
crateModeItems : [ {
id : 'rack' ,
name : 'Rack mountable crate' ,
2019-11-06 14:48:26 +08:00
price : 1450 ,
2019-10-02 12:16:07 +08:00
} , {
id : 'desktop' ,
name : 'Desktop crate' ,
2019-11-06 14:48:26 +08:00
price : 1450 ,
2019-10-02 12:16:07 +08:00
} ] ,
items : {
/* keys are also ids, avoid changing them */
'kasli' : {
id : 'kasli' ,
name : 'Kasli' ,
2019-11-06 14:48:26 +08:00
price : 3600 ,
2019-10-02 12:16:07 +08:00
image : '/shop/graphic-02_kasli.svg' ,
specs : [
2019-11-06 14:48:26 +08:00
'FPGA core device, runs ARTIQ kernels, controls the EEMs.' ,
'3 SFP 6GB/s slots for Ethernet or DRTIO.' ,
'8 EEM connectors on board.' ,
'4 MMCX clock outputs.' ,
2019-11-15 17:14:28 +08:00
'Price includes bitstream generation, flashing, testing, and firmware updates for 1 year (USD 1,400.00).' ,
2019-10-02 12:16:07 +08:00
] ,
size : 'big' ,
type : 'kasli' ,
hp : 8 ,
nbrSlotMin : 0 ,
nbrSlotMax : 8 ,
nbrCurrentSlot : 0 ,
nbrClockMax : 4 ,
nbrCurrentClock : 0 ,
slotOccupied : 1 ,
clockOccupied : 0 ,
rules : {
maxSlot : {
type : 'kasli-max-slot' ,
icon : '/shop/icon-reminder.svg' ,
name : 'Kasli' ,
message : 'Add a backplane adapter to extend EEM connectors to 12 at an extra charge.' ,
} ,
maxSlotWarning : {
type : 'kasli-max-slot-warning' ,
icon : '/shop/icon-warning.svg' ,
name : 'Kasli' ,
message : 'Insufficient EEM connectors.' ,
} ,
maxClock : {
type : 'kasli-max-clock' ,
icon : '/shop/icon-reminder.svg' ,
name : 'Kasli' ,
message : 'Insufficient clock connectors. Kasli has at most 4 clock connections.' ,
} ,
maxClockWarning : {
type : 'kasli-max-clock-warning' ,
icon : '/shop/icon-warning.svg' ,
name : 'Kasli' ,
message : 'Insufficient clock connectors.' ,
} ,
follow : {
type : 'kasli-follow' ,
icon : '/shop/icon-reminder.svg' ,
name : 'Kasli' ,
message : 'Due to wiring constraints, a Kasli can only connect to EEM cards immediately at its right, without crossing another Kasli.' ,
} ,
} ,
} ,
'kasli-backplane' : {
id : 'kasli-backplane' ,
2019-11-06 14:48:26 +08:00
name : 'Kasli + BP adapter' ,
price : 3830 ,
2019-10-02 12:16:07 +08:00
image : '/shop/graphic-02_kasli-with-backplane.svg' ,
specs : [
2019-11-06 14:48:26 +08:00
'Same as above, but with adapter that provides 4 additional EEM connectors' ,
2019-10-02 12:16:07 +08:00
] ,
size : 'big' ,
type : 'kasli-backplane' ,
hp : 8 ,
nbrSlotMin : 0 ,
nbrSlotMax : 12 ,
nbrCurrentSlot : 0 ,
nbrClockMax : 4 ,
nbrCurrentClock : 0 ,
slotOccupied : 1 ,
clockOccupied : 0 ,
rules : {
maxSlot : {
type : 'kasli-wb-max-slot' ,
icon : '/shop/icon-reminder.svg' ,
name : 'Kasli w/backplane' ,
message : 'Insufficient EEM connectors.' ,
} ,
maxSlotWarning : {
type : 'kasli-wb-max-slot-warning' ,
icon : '/shop/icon-warning.svg' ,
name : 'Kasli' ,
message : 'Insufficient EEM connectors' ,
} ,
maxClock : {
type : 'kasli-wb-max-clock' ,
icon : '/shop/icon-reminder.svg' ,
name : 'Kasli w/backplane' ,
message : 'Insufficient clock connectors. Kasli has at most 4 clock connections.' ,
} ,
maxClockWarning : {
type : 'kasli-wb-max-clock-warning' ,
icon : '/shop/icon-warning.svg' ,
name : 'Kasli' ,
message : 'Insufficient clock connectors.' ,
} ,
follow : {
type : 'kasli-wb-follow' ,
icon : '/shop/icon-reminder.svg' ,
name : 'Kasli w/backplane' ,
message : 'Due to wiring constraints, a Kasli can only connect to EEM cards immediately at its right, without crossing another Kasli.' ,
} ,
} ,
} ,
'bnc-dio' : {
id : 'bnc-dio' ,
name : 'BNC-DIO' ,
2019-11-06 14:48:26 +08:00
price : 450 ,
2019-10-02 12:16:07 +08:00
image : '/shop/graphic-02_BNC-DIO.svg' ,
specs : [
2019-11-06 14:48:26 +08:00
'Two banks of four digital channels each, with BNC connectors.' ,
'Each bank with individual ground isolation.' ,
'Per-bank switchable direction via on-board switches.' ,
'Per-channel switchable 50 Ohm termination with LED indicators.' ,
'Short circuit tolerance: infinite.' ,
'Minimum pulse width: 3ns.' ,
'Max 150 MHz toggle rate with 50% duty cycle.'
2019-10-02 12:16:07 +08:00
] ,
size : 'big' ,
type : null ,
hp : 8 ,
nbrSlotMin : 0 ,
nbrSlotMax : 0 ,
nbrClockMax : 0 ,
slotOccupied : 1 ,
clockOccupied : 0 ,
rules : {
resources : {
type : 'bnc-dio' ,
icon : '/shop/icon-warning.svg' ,
name : 'BNC-DIO' ,
2019-11-06 14:48:26 +08:00
message : 'This card needs a card that provides a EEM connector (e.g. Kasli) at its left.' ,
2019-10-02 12:16:07 +08:00
} ,
} ,
} ,
2019-11-06 14:48:26 +08:00
'sma-dio' : {
id : 'sma-dio' ,
2019-10-02 12:16:07 +08:00
name : 'SMA-DIO' ,
2019-11-06 14:48:26 +08:00
price : 400 ,
image : '/shop/graphic-02_SMA-DIO.svg' ,
2019-10-02 12:16:07 +08:00
specs : [
2019-11-06 14:48:26 +08:00
'Same as above, but with SMA connectors.'
2019-10-02 12:16:07 +08:00
] ,
size : 'small' ,
type : null ,
hp : 4 ,
nbrSlotMin : 0 ,
nbrSlotMax : 0 ,
nbrClockMax : 0 ,
slotOccupied : 1 ,
clockOccupied : 0 ,
rules : {
resources : {
2019-11-06 14:48:26 +08:00
type : 'sma-dio' ,
2019-10-02 12:16:07 +08:00
icon : '/shop/icon-warning.svg' ,
name : 'SMA-DIO' ,
2019-11-06 14:48:26 +08:00
message : 'This card needs a card that provides a EEM connector (e.g. Kasli) at its left.' ,
2019-10-02 12:16:07 +08:00
} ,
} ,
} ,
2019-11-06 14:48:26 +08:00
'rj45-dio' : {
id : 'rj45-dio' ,
2019-10-02 12:16:07 +08:00
name : 'RJ45-DIO' ,
2019-11-06 14:48:26 +08:00
price : 390 ,
image : '/shop/graphic-02_RJ45-DIO.svg' ,
2019-10-02 12:16:07 +08:00
specs : [
2019-11-06 14:48:26 +08:00
'Supplies 16 LVDS pairs via 4 front-panel RJ45 connectors.' ,
'Each RJ45 supplies 4 LVDS DIOs.' ,
'Direction individually selectable for each signal via on-board switches.' ,
'No galvanic isolation.' ,
'Higher speed and lower jitter than the isolated SMA and BNC DIO cards.'
2019-10-02 12:16:07 +08:00
] ,
size : 'small' ,
type : null ,
hp : 4 ,
nbrSlotMin : 0 ,
nbrSlotMax : 0 ,
nbrClockMax : 0 ,
slotOccupied : 2 ,
clockOccupied : 0 ,
rules : {
resources : {
2019-11-06 14:48:26 +08:00
type : 'rj45-dio' ,
2019-10-02 12:16:07 +08:00
icon : '/shop/icon-warning.svg' ,
name : 'RJ45-DIO' ,
2019-11-06 14:48:26 +08:00
message : 'This card needs a card that provides two EEM connectors (e.g. Kasli) at its left.' ,
2019-10-02 12:16:07 +08:00
} ,
} ,
} ,
'urukul' : {
id : 'urukul' ,
name : 'Urukul' ,
2019-11-06 14:48:26 +08:00
price : 2350 ,
2019-10-02 12:16:07 +08:00
image : '/shop/graphic-02_Urukul.svg' ,
specs : [
2019-11-06 14:48:26 +08:00
'4 channel 1GS/s DDS.' ,
'Output frequency (-3 dB): <1 to >400 MHz.' ,
'Nominal max output power 10 dBm.' ,
'Digital step attenuator 0 to -31.5dB.' ,
'RF switch (1ns temporal resolution), 70dB isolation.' ,
'AD9910 or AD9912 chip.' ,
'By default, we use the AD9910 as it provides more features. If you need the higher frequency resolution of the AD9912, leave us a note.' ,
'External 5W power amplifier is available separately, leave us a note if interested.'
2019-10-02 12:16:07 +08:00
] ,
size : 'small' ,
type : 'urukul' ,
hp : 4 ,
nbrSlotMin : 0 ,
nbrSlotMax : 0 ,
nbrClockMax : 0 ,
slotOccupied : 2 ,
clockOccupied : 1 ,
rules : {
connectors : {
type : 'urukul' ,
icon : '/shop/icon-reminder.svg' ,
name : 'Urukul' ,
message : 'This configuration uses 2 EEM connectors as it is recommended. If you prefer to use 1 EEM connector, please inform us by leaving an additional note.' ,
} ,
resources : {
type : 'urukul' ,
icon : '/shop/icon-warning.svg' ,
name : 'Urukul' ,
2019-11-06 14:48:26 +08:00
message : 'This card needs a card that provides EEM and clocking connectors (e.g. Kasli) at its left.' ,
2019-10-02 12:16:07 +08:00
} ,
} ,
} ,
'zotino' : {
id : 'zotino' ,
name : 'Zotino' ,
2019-11-06 14:48:26 +08:00
price : 1600 ,
2019-10-02 12:16:07 +08:00
image : '/shop/graphic-02_zotino.svg' ,
specs : [
2019-11-06 14:48:26 +08:00
'32-channel DAC.' ,
'16-bit resolution.' ,
'1 MSPS shared between all channels.' ,
'Output voltage +-10V.' ,
'HD68 connector with all channels.' ,
'Channels can also be broken out to BNC or SMA using IDC-BNC, IDC-SMA or IDC-MCX cards.'
2019-10-02 12:16:07 +08:00
] ,
size : 'small' ,
type : 'zotino' ,
hp : 4 ,
nbrSlotMin : 0 ,
nbrSlotMax : 4 ,
nbrCurrentSlot : 0 ,
nbrClockMax : 0 ,
slotOccupied : 1 ,
clockOccupied : 0 ,
rules : {
maxSlot : {
type : 'zotino' ,
icon : '/shop/icon-reminder.svg' ,
name : 'Zotino' ,
message : 'Zotino has at most 4 IDC-BNC adapters.' ,
} ,
maxSlotWarning : {
type : 'zotino-max-slot-warning' ,
icon : '/shop/icon-warning.svg' ,
name : 'Zotino' ,
message : 'Insufficient connectors.' ,
} ,
resources : {
type : 'zotino' ,
icon : '/shop/icon-warning.svg' ,
name : 'Zotino' ,
2019-11-06 14:48:26 +08:00
message : 'This card needs a card that provides a EEM connector (e.g. Kasli) at its left.' ,
2019-10-02 12:16:07 +08:00
} ,
} ,
} ,
'idc-bnc-adapter' : {
id : 'idc-bnc-adapter' ,
name : 'IDC-BNC' ,
2019-11-06 14:48:26 +08:00
price : 160 ,
2019-10-02 12:16:07 +08:00
image : '/shop/graphic-02_IDC-BNC-adapter.svg' ,
specs : [
2019-11-06 14:48:26 +08:00
'Breaks out analog signals from Zotino or HD68-IDC to BNC connectors.' ,
'Each card provides 8 channels.' ,
2019-11-16 12:22:47 +08:00
'Breaking out all 32 channels from a Zotino requires 4 IDC-BNC cards.'
2019-10-02 12:16:07 +08:00
] ,
size : 'big' ,
type : 'idc-bnc' ,
hp : 8 ,
nbrSlotMin : 0 ,
nbrSlotMax : 0 ,
nbrClockMax : 0 ,
slotOccupied : 1 ,
clockOccupied : 0 ,
rules : {
wrong : {
type : 'idc-bnc' ,
icon : '/shop/icon-warning.svg' ,
name : 'IDC-BNC' ,
message : 'Should be after a Zotino or a HD68-IDC or with another IDC-BNC.' ,
}
} ,
} ,
'hd68-idc-adapter' : {
id : 'hd68-idc-adapter' ,
name : 'HD68-IDC' ,
2019-11-06 14:48:26 +08:00
price : 150 ,
2019-10-02 12:16:07 +08:00
image : '/shop/graphic-02_HD68.svg' ,
specs : [
2019-11-06 14:48:26 +08:00
'Connects an external HD68 cable to IDC-BNC, IDC-SMA or IDC-MCX cards.' ,
2019-10-02 12:16:07 +08:00
] ,
size : 'small' ,
type : 'hd68' ,
hp : 4 ,
nbrSlotMin : 1 ,
nbrSlotMax : 4 ,
nbrCurrentSlot : 0 ,
nbrClockMax : 0 ,
slotOccupied : 1 ,
clockOccupied : 0 ,
rules : {
minAdapter : {
type : 'hd68-min-adapter' ,
icon : '/shop/icon-warning.svg' ,
name : 'HD68-IDC' ,
message : 'Need at least one IDC-BNC Adapter at its right.' ,
} ,
maxSlot : {
type : 'hd68-max-slot' ,
icon : '/shop/icon-reminder.svg' ,
name : 'HD68-IDC' ,
message : 'HD68-IDC has at most 4 IDC-BNC adapters.' ,
} ,
maxSlotWarning : {
type : 'hd68-max-slot-warning' ,
icon : '/shop/icon-warning.svg' ,
name : 'HD68-IDC' ,
message : 'Insufficient connectors.' ,
} ,
} ,
} ,
'novo' : {
id : 'novo' ,
name : 'Novo' ,
2019-11-06 14:48:26 +08:00
price : 1600 ,
2019-10-02 12:16:07 +08:00
image : '/shop/graphic-02_Novo.svg' ,
specs : [
2019-11-06 14:48:26 +08:00
'8-channel ADC.' ,
'16-bit resolution.' ,
'1.5 MSPS simultaneously on all channels.' ,
'When used with ARTIQ-Python driver, effective sample rate is lower.' ,
'Digitally programmable input gain.' ,
'Full-scale input ranges between +-10mV and +-10V.' ,
'Supports SU-Servo laser intensity stabilization servo in conjunction with Urukul.'
2019-10-02 12:16:07 +08:00
] ,
size : 'big' ,
type : 'novo' ,
hp : 8 ,
nbrSlotMin : 0 ,
nbrSlotMax : 0 ,
nbrClockMax : 0 ,
slotOccupied : 2 ,
clockOccupied : 0 ,
rules : {
connectors : {
type : 'novo' ,
icon : '/shop/icon-reminder.svg' ,
name : 'Novo' ,
message : 'This configuration uses 2 EEM connectors as it is recommended. If you prefer to use 1 EEM connector, please inform us by leaving an additional note.' ,
} ,
resources : {
type : 'novo' ,
icon : '/shop/icon-warning.svg' ,
name : 'Novo' ,
2019-11-06 14:48:26 +08:00
message : 'This card needs a card that provides EEM connectors (e.g. Kasli) at its left.' ,
2019-10-02 12:16:07 +08:00
} ,
}
} ,
'koster' : {
id : 'koster' ,
name : 'Koster' ,
2019-11-06 14:48:26 +08:00
price : 550 ,
2019-10-02 12:16:07 +08:00
image : '/shop/graphic-02_Koster.svg' ,
specs : [
2019-11-06 14:48:26 +08:00
'Camera input interface card.' ,
'Supports some EMCCD cameras.' ,
'Allows image processing to occur in the FPGA with lower latency.' ,
'Existing stack supports summing over rectangular ROIs and reporting the result to ARTIQ kernels.' ,
'Camera signal is entirely processed in the Kasli FPGA.' ,
2019-10-02 12:16:07 +08:00
] ,
size : 'small' ,
type : 'koster' ,
hp : 4 ,
nbrSlotMin : 0 ,
nbrSlotMax : 0 ,
nbrClockMax : 0 ,
2019-11-06 14:48:26 +08:00
slotOccupied : 2 ,
2019-10-02 12:16:07 +08:00
clockOccupied : 0 ,
rules : {
connectors : {
type : 'koster' ,
icon : '/shop/icon-reminder.svg' ,
name : 'Koster' ,
2019-11-06 14:48:26 +08:00
message : 'This configuration uses 2 EEM connectors. If you prefer to use 1 or 3 EEM connectors, please inform us by leaving an additional note.' ,
2019-10-02 12:16:07 +08:00
} ,
resources : {
type : 'koster' ,
icon : '/shop/icon-warning.svg' ,
name : 'Koster' ,
2019-11-06 14:48:26 +08:00
message : 'This card needs a card that provides EEM connectors (e.g. Kasli) at its left.' ,
2019-10-02 12:16:07 +08:00
} ,
}
} ,
'clocker' : {
id : 'clocker' ,
name : 'Clocker' ,
2019-11-06 14:48:26 +08:00
price : 525 ,
2019-10-02 12:16:07 +08:00
image : '/shop/graphic-02_Clocker.svg' ,
specs : [
2019-11-06 14:48:26 +08:00
'Distribute a low jitter clock signal among cards.' ,
'2 inputs.' ,
'10 outputs including 4 SMAs.' ,
'Frequency up to 1GHz.' ,
'Low jitter <100fs RMS.'
2019-10-02 12:16:07 +08:00
] ,
size : 'small' ,
type : 'clocker' ,
hp : 4 ,
nbrSlotMin : 0 ,
nbrSlotMax : 0 ,
nbrClockMax : 6 ,
slotOccupied : 1 ,
clockOccupied : 1 ,
rules : {
maxClock : {
type : 'clocker-max-clock' ,
icon : '/shop/icon-reminder.svg' ,
name : 'Clocker' ,
message : 'Clocker has at most 6 clock connections.' ,
} ,
maxClockWarning : {
type : 'clocker-max-clock-warning' ,
icon : '/shop/icon-warning.svg' ,
name : 'Clocker' ,
message : 'Insufficient clock connectors.' ,
} ,
} ,
} ,
2019-11-06 14:48:26 +08:00
'stabilizer' : {
id : 'stabilizer' ,
2019-10-02 12:16:07 +08:00
name : 'Stabilizer' ,
2019-12-03 18:20:11 +08:00
price : 2000 ,
2019-11-06 14:48:26 +08:00
image : '/shop/graphic-02_Stabilizer.svg' ,
2019-10-02 12:16:07 +08:00
specs : [
2019-11-06 14:48:26 +08:00
'CPU-based dual-channel fast servo.' ,
'400MHz STM32H743ZIT6.' ,
'Dual 16bit ADC with x2, x5, x10 PGA (2MS/s).' ,
'16bit AD5542A DAC (1us settling time).' ,
'100Base-T Ethernet.' ,
'Can be controlled by Kasli or work stand-alone with PoE supply.'
2019-10-02 12:16:07 +08:00
] ,
size : 'small' ,
type : null ,
hp : 4 ,
nbrSlotMin : 0 ,
nbrSlotMax : 0 ,
nbrClockMax : 0 ,
slotOccupied : 1 ,
clockOccupied : 0 ,
} ,
'mirny' : {
id : 'mirny' ,
name : 'Mirny' ,
2019-11-06 14:48:26 +08:00
price : 2660 ,
2019-10-02 12:16:07 +08:00
image : '/shop/graphic-02_Mirny.svg' ,
specs : [
2019-11-06 14:48:26 +08:00
'4-channel Wide-band PLL/VCO-based microwave frequency synthesiser.' ,
'53 MHz to >4 GHz.' ,
'Up to 13.6 GHz when using the mezzanine.' , ,
'Much higher frequency resolution than Urukul.' ,
'Lower jitter and phase noise.' ,
'Large frequency changes take several milliseconds.' ,
2019-10-02 12:16:07 +08:00
] ,
size : 'small' ,
type : null ,
hp : 4 ,
nbrSlotMin : 0 ,
nbrSlotMax : 0 ,
nbrClockMax : 0 ,
slotOccupied : 1 ,
clockOccupied : 1 ,
rules : {
resources : {
type : 'mirny' ,
icon : '/shop/icon-warning.svg' ,
name : 'Mirny' ,
2019-11-06 14:48:26 +08:00
message : 'This card needs a card that provides a EEM connector (e.g. Kasli) at its left.' ,
2019-10-02 12:16:07 +08:00
} ,
} ,
} ,
} ,
columns : {
/ * * *
* backlog is the column containing all items on left aside ,
* name should not change
* /
'backlog' : {
id : 'backlog' ,
title : 'Backlog' ,
/* itemIds define items order - change order to suit your need */
itemIds : [
'kasli' ,
'kasli-backplane' ,
'bnc-dio' ,
2019-11-06 14:48:26 +08:00
'sma-dio' ,
'rj45-dio' ,
2019-10-02 12:16:07 +08:00
'urukul' ,
2019-11-06 14:48:26 +08:00
'mirny' ,
2019-10-02 12:16:07 +08:00
'zotino' ,
'idc-bnc-adapter' ,
'hd68-idc-adapter' ,
'novo' ,
'koster' ,
'clocker' ,
2019-11-06 14:48:26 +08:00
'stabilizer' ,
2019-10-02 12:16:07 +08:00
] ,
} ,
'cart' : {
id : 'cart' ,
title : 'Cart' ,
items : [ ] ,
itemsData : { } ,
} ,
} ,
rules : { } ,
} ;
window . shop _data = shop _data ;