forked from M-Labs/web2019
624 lines
18 KiB
JavaScript
624 lines
18 KiB
JavaScript
const shop_data = {
|
|
|
|
API_RFQ: 'https://hooks.m-labs.hk/rfq',
|
|
|
|
mobileSideMenuShouldOpen: false,
|
|
currentItemHovered: null,
|
|
currentMode: 'rack',
|
|
currency: 'USD',
|
|
|
|
crateModeSlots: {
|
|
rack: 21,
|
|
desktop: 10,
|
|
},
|
|
|
|
crateRules: {
|
|
maxSlot: {
|
|
type: 'crate',
|
|
icon: '/shop/icon-warning.svg',
|
|
color: '#c75e5e',
|
|
name: 'Crate',
|
|
message: 'You have reach the maximum number of slots allowed for this crate. Consider removing cards.',
|
|
},
|
|
compactSlot: {
|
|
type: 'crate',
|
|
icon: '/shop/icon-reminder.svg',
|
|
name: 'Crate',
|
|
message: 'The selected cards fit in a 42hp desktop crate, consider switching to it for a more compact system',
|
|
},
|
|
},
|
|
|
|
crateModeItems: [{
|
|
id: 'rack',
|
|
name: 'Rack mountable crate',
|
|
price: 1450,
|
|
}, {
|
|
id: 'desktop',
|
|
name: 'Desktop crate',
|
|
price: 1450,
|
|
}],
|
|
|
|
items: {
|
|
/* keys are also ids, avoid changing them */
|
|
'kasli': {
|
|
id: 'kasli',
|
|
name: 'Carrier',
|
|
name_number: '1124',
|
|
name_codename: 'Kasli 2.0',
|
|
price: 3600,
|
|
image: '/shop/graphic-03_kasli.svg',
|
|
specs: [
|
|
'FPGA core device, runs ARTIQ kernels, controls the EEMs.',
|
|
'4 SFP 6GB/s slots for Ethernet or DRTIO.',
|
|
'12 EEM connectors on board.',
|
|
'4 MMCX clock outputs.',
|
|
'Price includes bitstream generation, flashing, testing, and firmware updates for 1 year (USD 1,400.00).',
|
|
],
|
|
size: 'big',
|
|
type: 'kasli',
|
|
hp: 8,
|
|
nbrSlotMin: 0,
|
|
nbrSlotMax: 12,
|
|
nbrCurrentSlot: 0,
|
|
nbrClockMax: 4,
|
|
nbrCurrentClock: 0,
|
|
slotOccupied: 1,
|
|
clockOccupied: 0,
|
|
rules: {
|
|
maxSlot: {
|
|
type: 'kasli-max-slot',
|
|
icon: '/shop/icon-reminder.svg',
|
|
name: 'Kasli',
|
|
message: 'Insufficient EEM connectors.',
|
|
},
|
|
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.',
|
|
},
|
|
},
|
|
},
|
|
'bnc-dio': {
|
|
id: 'bnc-dio',
|
|
name: 'BNC-TTL',
|
|
name_number: '2118',
|
|
name_codename: '',
|
|
price: 450,
|
|
image: '/shop/graphic-03_BNC-TTL.svg',
|
|
specs: [
|
|
'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.'
|
|
],
|
|
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',
|
|
message: 'This card needs a card that provides a EEM connector (e.g. Kasli) at its left.',
|
|
},
|
|
},
|
|
},
|
|
'sma-dio': {
|
|
id: 'sma-dio',
|
|
name: 'SMA-TTL',
|
|
name_number: '2128',
|
|
name_codename: '',
|
|
price: 400,
|
|
image: '/shop/graphic-03_SMA-TTL.svg',
|
|
specs: [
|
|
'Same as above, but with SMA connectors.'
|
|
],
|
|
size: 'small',
|
|
type: null,
|
|
hp: 4,
|
|
nbrSlotMin: 0,
|
|
nbrSlotMax: 0,
|
|
nbrClockMax: 0,
|
|
slotOccupied: 1,
|
|
clockOccupied: 0,
|
|
rules: {
|
|
resources: {
|
|
type: 'sma-dio',
|
|
icon: '/shop/icon-warning.svg',
|
|
name: 'SMA-DIO',
|
|
message: 'This card needs a card that provides a EEM connector (e.g. Kasli) at its left.',
|
|
},
|
|
},
|
|
},
|
|
'rj45-dio': {
|
|
id: 'rj45-dio',
|
|
name: 'LVDS-TTL',
|
|
name_number: '2245',
|
|
name_codename: '',
|
|
price: 390,
|
|
image: '/shop/graphic-03_LVDS.svg',
|
|
specs: [
|
|
'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.'
|
|
],
|
|
size: 'small',
|
|
type: null,
|
|
hp: 4,
|
|
nbrSlotMin: 0,
|
|
nbrSlotMax: 0,
|
|
nbrClockMax: 0,
|
|
slotOccupied: 2,
|
|
clockOccupied: 0,
|
|
rules: {
|
|
resources: {
|
|
type: 'rj45-dio',
|
|
icon: '/shop/icon-warning.svg',
|
|
name: 'RJ45-DIO',
|
|
message: 'This card needs a card that provides two EEM connectors (e.g. Kasli) at its left.',
|
|
},
|
|
},
|
|
},
|
|
'urukul': {
|
|
id: 'urukul',
|
|
name: 'DDS',
|
|
name_number: '4410',
|
|
name_codename: 'Urukul',
|
|
price: 2350,
|
|
image: '/shop/graphic-03_Urukul.svg',
|
|
specs: [
|
|
'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.',
|
|
'AD9910 and AD9912 cards can be used at the same time in the same crate.',
|
|
'External 5W power amplifier is available separately, leave us a note if interested.'
|
|
],
|
|
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.',
|
|
},
|
|
info: {
|
|
type: 'urukul-info',
|
|
icon: '/shop/icon-reminder.svg',
|
|
name: 'Urukul',
|
|
message: 'The default chip is AD9910, which supports more features. If you need the higher frequency resolution of the AD9912, leave us a note.',
|
|
},
|
|
resources: {
|
|
type: 'urukul',
|
|
icon: '/shop/icon-warning.svg',
|
|
name: 'Urukul',
|
|
message: 'This card needs a card that provides EEM and clocking connectors (e.g. Kasli) at its left.',
|
|
},
|
|
},
|
|
},
|
|
'zotino': {
|
|
id: 'zotino',
|
|
name: 'DAC',
|
|
name_number: '5432',
|
|
name_codename: 'Zotino',
|
|
price: 1600,
|
|
image: '/shop/graphic-03_Zotino.svg',
|
|
specs: [
|
|
'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.'
|
|
],
|
|
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',
|
|
message: 'This card needs a card that provides a EEM connector (e.g. Kasli) at its left.',
|
|
},
|
|
},
|
|
},
|
|
'idc-bnc-adapter': {
|
|
id: 'idc-bnc-adapter',
|
|
name: 'BNC-IDC',
|
|
name_number: '5518',
|
|
name_codename: '',
|
|
price: 160,
|
|
image: '/shop/graphic-03_IDC-BNC-adapter.svg',
|
|
specs: [
|
|
'Breaks out analog signals from Zotino or HD68-IDC to BNC connectors.',
|
|
'Each card provides 8 channels.',
|
|
'Breaking out all 32 channels from a Zotino requires 4 IDC-BNC cards.'
|
|
],
|
|
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.',
|
|
}
|
|
},
|
|
},
|
|
'idc-sma-adapter': {
|
|
id: 'idc-sma-adapter',
|
|
name: 'SMA-IDC',
|
|
name_number: '5528',
|
|
name_codename: '',
|
|
price: 160,
|
|
image: '/shop/graphic-03_SMA-IDC.svg',
|
|
specs: [
|
|
'Breaks out analog signals from Zotino or HD68-IDC to SMA connectors.',
|
|
'Each card provides 8 channels.',
|
|
'Breaking out all 32 channels from a Zotino requires 4 SMA-IDC cards.'
|
|
],
|
|
size: 'small',
|
|
type: 'idc-bnc',
|
|
hp: 4,
|
|
nbrSlotMin: 0,
|
|
nbrSlotMax: 0,
|
|
nbrClockMax: 0,
|
|
slotOccupied: 1,
|
|
clockOccupied: 0,
|
|
rules: {
|
|
wrong: {
|
|
type: 'idc-sma',
|
|
icon: '/shop/icon-warning.svg',
|
|
name: 'SMA-IDC',
|
|
message: 'Should be after a Zotino or a HD68-IDC or with another SMA-IDC.',
|
|
}
|
|
},
|
|
},
|
|
'idc-mcx-adapter': {
|
|
id: 'idc-mcx-adapter',
|
|
name: 'MCX-IDC',
|
|
name_number: '5538',
|
|
name_codename: '',
|
|
price: 160,
|
|
image: '/shop/graphic-03_MCX-IDC.svg',
|
|
specs: [
|
|
'Breaks out analog signals from Zotino or HD68-IDC to MCX connectors.',
|
|
'Each card provides 8 channels.',
|
|
'Breaking out all 32 channels from a Zotino requires 4 MCX-IDC cards.'
|
|
],
|
|
size: 'big',
|
|
type: 'idc-bnc',
|
|
hp: 8,
|
|
nbrSlotMin: 0,
|
|
nbrSlotMax: 0,
|
|
nbrClockMax: 0,
|
|
slotOccupied: 1,
|
|
clockOccupied: 0,
|
|
rules: {
|
|
wrong: {
|
|
type: 'idc-mcx',
|
|
icon: '/shop/icon-warning.svg',
|
|
name: 'MCX-IDC',
|
|
message: 'Should be after a Zotino or a HD68-IDC or with another MCX-IDC.',
|
|
}
|
|
},
|
|
},
|
|
'hd68-idc-adapter': {
|
|
id:'hd68-idc-adapter',
|
|
name: 'HD68-IDC',
|
|
name_number: '5568',
|
|
name_codename: '',
|
|
price: 150,
|
|
image: '/shop/graphic-03_HD68.svg',
|
|
specs: [
|
|
'Connects an external HD68 cable to IDC-BNC, IDC-SMA or IDC-MCX cards.',
|
|
],
|
|
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: null,
|
|
},
|
|
maxSlotWarning: {
|
|
type: 'hd68-max-slot-warning',
|
|
icon: '/shop/icon-warning.svg',
|
|
name: 'HD68-IDC',
|
|
message: 'Insufficient connectors.',
|
|
},
|
|
},
|
|
},
|
|
'novo': {
|
|
id: 'novo',
|
|
name: 'Sampler',
|
|
name_number: '5108',
|
|
name_codename: '',
|
|
price: 1600,
|
|
image: '/shop/graphic-03_Sampler.svg',
|
|
specs: [
|
|
'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.'
|
|
],
|
|
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',
|
|
message: 'This card needs a card that provides EEM connectors (e.g. Kasli) at its left.',
|
|
},
|
|
}
|
|
},
|
|
'koster': {
|
|
id: 'koster',
|
|
name: 'Grabber',
|
|
name_number: '6302',
|
|
name_codename: '',
|
|
price: 550,
|
|
image: '/shop/graphic-03_Grabber.svg',
|
|
specs: [
|
|
'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.',
|
|
],
|
|
size: 'small',
|
|
type: 'koster',
|
|
hp: 4,
|
|
nbrSlotMin: 0,
|
|
nbrSlotMax: 0,
|
|
nbrClockMax: 0,
|
|
slotOccupied: 2,
|
|
clockOccupied: 0,
|
|
rules: {
|
|
connectors: {
|
|
type: 'koster',
|
|
icon: '/shop/icon-reminder.svg',
|
|
name: 'Koster',
|
|
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.',
|
|
},
|
|
resources: {
|
|
type: 'koster',
|
|
icon: '/shop/icon-warning.svg',
|
|
name: 'Koster',
|
|
message: 'This card needs a card that provides EEM connectors (e.g. Kasli) at its left.',
|
|
},
|
|
}
|
|
},
|
|
'clocker': {
|
|
id: 'clocker',
|
|
name: 'Clocker',
|
|
name_number: '7210',
|
|
name_codename: '',
|
|
price: 525,
|
|
image: '/shop/graphic-03_Clocker.svg',
|
|
specs: [
|
|
'Distribute a low jitter clock signal among cards.',
|
|
'2 inputs.',
|
|
'10 outputs including 4 SMAs.',
|
|
'Frequency up to 1GHz.',
|
|
'Low jitter <100fs RMS.'
|
|
],
|
|
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.',
|
|
},
|
|
},
|
|
},
|
|
'stabilizer': {
|
|
id: 'stabilizer',
|
|
name: 'DSP',
|
|
name_number: '8452',
|
|
name_codename: 'Stabilizer',
|
|
price: 2000,
|
|
image: '/shop/graphic-03_Stabilizer.svg',
|
|
specs: [
|
|
'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.'
|
|
],
|
|
size: 'small',
|
|
type: null,
|
|
hp: 4,
|
|
nbrSlotMin: 0,
|
|
nbrSlotMax: 0,
|
|
nbrClockMax: 0,
|
|
slotOccupied: 1,
|
|
clockOccupied: 0,
|
|
},
|
|
'mirny': {
|
|
id: 'mirny',
|
|
name: 'Synthesizer',
|
|
name_number: '4456',
|
|
name_codename: 'Mirny',
|
|
price: 2660,
|
|
image: '/shop/graphic-03_Mirny.svg',
|
|
specs: [
|
|
'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.',
|
|
],
|
|
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',
|
|
message: 'This card needs a card that provides a EEM connector (e.g. Kasli) at its left.',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
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',
|
|
'bnc-dio',
|
|
'sma-dio',
|
|
'rj45-dio',
|
|
'urukul',
|
|
'mirny',
|
|
'zotino',
|
|
'idc-bnc-adapter',
|
|
'idc-sma-adapter',
|
|
'idc-mcx-adapter',
|
|
'hd68-idc-adapter',
|
|
'novo',
|
|
'koster',
|
|
'clocker',
|
|
'stabilizer',
|
|
],
|
|
},
|
|
|
|
'cart': {
|
|
id: 'cart',
|
|
title: 'Cart',
|
|
items: [],
|
|
itemsData: {},
|
|
},
|
|
|
|
},
|
|
|
|
rules: {},
|
|
|
|
};
|
|
|
|
|
|
window.shop_data = shop_data;
|