2019-10-02 12:16:07 +08:00
const shop _data = {
2019-11-06 14:48:26 +08:00
currency : 'USD' ,
2019-10-02 12:16:07 +08:00
2023-12-07 17:08:22 +08:00
crateModes : {
rack : {
id : 'rack' ,
name : 'Rack mountable crate' ,
price : 550 ,
hp : 84
} ,
desktop : {
id : 'desktop' ,
name : 'Desktop crate' ,
price : 500 ,
hp : 42
} ,
no _crate : {
id : 'no_crate' ,
2024-01-02 17:35:09 +08:00
name : 'Spare cards' ,
2023-12-07 17:08:22 +08:00
price : 0 ,
2024-01-02 17:35:09 +08:00
hp : - 1 ,
warnings _disabled : true
2023-12-07 17:08:22 +08:00
}
} ,
crateModeOrder : [
2024-01-05 17:22:53 +08:00
"rack" , "desktop"
2023-12-07 17:08:22 +08:00
] ,
2024-01-29 17:26:59 +08:00
crateOptions : {
options : [
{ "if" : [
{ "==" : [ { "var" : "ext_data.crate_mode" } , "rack" , ] } ,
{ type : "Switch" , args : {
title : "Add fan tray" ,
2024-01-30 13:02:01 +08:00
outvar : "fan_tray" ,
2024-01-29 17:26:59 +08:00
tip : "Add 1U 84hp fan tray (to be mounted under the crate) to improve cooling. " +
"Fans need 220VAC 50/60Hz power. 3 fans, 167m³/h air flow." ,
2024-01-30 13:02:01 +08:00
fallback : false
2024-01-29 17:26:59 +08:00
} }
] } ,
] ,
2024-01-30 13:02:01 +08:00
prices : [ { "if" : [
{ "and" : [ { "var" : "fan_tray" } , { "==" : [ { "var" : "ext_data.crate_mode" } , "rack" , ] } ] } ,
{ title : "Add fan tray" , price : 470 , disable _patch : { "fan_tray" : false } , id : "fan_tray" } ] } ]
2024-01-29 17:26:59 +08:00
} ,
orderOptions : {
options : [
2024-01-31 11:40:33 +08:00
{ "type" : "Group" , items : [
{ type : "Switch" , args : {
2024-02-15 12:34:01 +08:00
title : "Optional pre-installed NUC mini-computer" ,
2024-01-29 17:26:59 +08:00
outvar : "nuc" ,
2024-02-15 12:34:01 +08:00
tip : "Pre-installed NixOS desktop with ARTIQ and other scientific software. " +
2024-10-17 11:10:40 +08:00
"Hardware: ASUS® NUC 14 Pro Kit, Intel® i7-155H CPU, " +
"32GB RAM, 1TB NVMe. For other options contact us." ,
2024-01-29 17:26:59 +08:00
fallback : true ,
2024-01-31 11:40:33 +08:00
} } ,
{
"if" : [
{ "var" : "nuc" } ,
[
{
type : "Radio" ,
args : {
2024-02-15 12:34:01 +08:00
title : "Desktop Environment:" ,
2024-01-31 11:40:33 +08:00
outvar : "nuc_desktop" ,
variants : [ "Gnome" , "KDE" ] ,
2024-02-02 17:24:01 +08:00
fallback : 0 ,
classes : "form-check-inline ms-4"
2024-01-31 11:40:33 +08:00
}
} ,
{ type : "Line" , args : { title : "Additional software to be pre-installed" , outvar : "software" , fallback : "" ,
2024-02-15 12:34:01 +08:00
tip : "Most software from nixpkgs can be pre-installed." } } ,
2024-02-02 17:24:01 +08:00
{ "if" : [
2024-01-31 11:40:33 +08:00
{ "var" : "ext_data.has_crate" } ,
{ type : "Switch" , args : {
2024-02-15 12:34:01 +08:00
title : "Promotional USB stick" ,
2024-02-02 17:24:01 +08:00
outvar : "include_usb_stick_nuc" ,
2024-02-15 12:34:01 +08:00
tip : "Branded USB stick with device database and other relevant files. Files can also be emailed to you." ,
2024-01-31 11:40:33 +08:00
fallback : false ,
2024-02-02 17:24:01 +08:00
} }
] } ,
] ,
{ "if" : [
{ "var" : "ext_data.has_crate" } ,
{ type : "Switch" , args : {
title : "Include promotional USB stick" ,
outvar : "include_usb_stick" ,
2024-02-07 16:23:17 +08:00
tip : "Choose if you need a USB stick with device database and other relevant files. Alternative is to to receive them via other electronic means (e.g. email or cloud)." ,
2024-02-02 17:24:01 +08:00
fallback : true ,
} }
2024-01-31 11:40:33 +08:00
] } ,
]
} ,
] } ,
{ "type" : "Group" , items : [
{
type : "Radio" ,
args : {
2024-02-15 12:34:01 +08:00
title : "Shipping options:" ,
2024-01-31 11:40:33 +08:00
outvar : "shipping" ,
variants : [
"Incoterms 2020 FCA" ,
"Incoterms 2020 DAP" ,
"Prepay and add shipping (only available to credit customers)"
] ,
fallback : 0
}
} ,
{ "if" : [
{ "==" : [ { "var" : "shipping" } , "Incoterms 2020 FCA" ] } ,
{ type : "Line" , args : { title : "Please provide your carrier account information and/or other shipping instructions" ,
outvar : "shipping_instructions" , fallback : "" } }
] } ,
{ "if" : [
{ "==" : [ { "var" : "shipping" } , "Incoterms 2020 DAP" ] } ,
{ type : "Line" , args : { title : "Please provide delivery address" ,
outvar : "shipping_instructions" , fallback : "" ,
tip : "Additional customs fees may be charged to you by the carrier at the time of delivery." } }
] } ,
{ "if" : [
{ "==" : [ { "var" : "shipping" } , "Prepay and add shipping (only available to credit customers)" ] } ,
2024-02-15 12:34:01 +08:00
[ { type : "Radio" , args : { title : "In case of additional customs fees:" ,
2024-01-31 11:40:33 +08:00
outvar : "prepay_fees_handling" , fallback : 0 ,
variants : [
"Add to your final invoice" ,
"Carrier bills you directly"
] } } ,
{ type : "Line" , args : { title : "Please provide delivery address" ,
outvar : "shipping_instructions" , fallback : "" , } } ] ,
] } ,
] }
2024-01-29 17:26:59 +08:00
] ,
prices : [ {
2024-02-15 12:34:01 +08:00
"if" : [ { "var" : "nuc" } , { title : "Pre-installed NUC mini-computer" , price : 1300 , disable _patch : { "nuc" : false } , id : "nuc" } ] ,
2024-02-02 17:24:01 +08:00
} ] ,
shippingSummary : [
{ type : "Label" , args : {
content : [ "Shipping method: " , { "var" : "shipping" } ]
} } ,
{ "if" : [
{ "var" : "shipping_instructions" } ,
{ type : "Label" , args : {
content : [
{ "if" : [
{ "==" : [ { "var" : "shipping" } , "Incoterms 2020 FCA" ] } ,
"carrier account information and/or other shipping instructions: " ,
"delivery address: "
] } ,
{ "var" : "shipping_instructions" }
]
} } ] } ,
{ type : "Label" , args : {
content : [
{ "if" : [
{ "==" : [ { "var" : "shipping" } , "Prepay and add shipping (only available to credit customers)" ] } ,
[ "In case of additional customs fees: " , { "lower" : { "var" : "prepay_fees_handling" } } ] ,
] }
]
} } ,
]
2024-01-25 17:10:14 +08:00
} ,
2019-10-02 12:16:07 +08:00
items : {
/* keys are also ids, avoid changing them */
'kasli' : {
id : 'kasli' ,
2020-10-13 10:04:02 +08:00
name : 'Carrier' ,
2021-03-22 18:30:56 +08:00
name _number : '1124' ,
name _codename : 'Kasli 2.0' ,
2019-11-06 14:48:26 +08:00
price : 3600 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_kasli.svg' ,
2019-10-02 12:16:07 +08:00
specs : [
2019-11-06 14:48:26 +08:00
'FPGA core device, runs ARTIQ kernels, controls the EEMs.' ,
2021-03-23 00:40:39 +08:00
'4 SFP 6Gb/s slots for Ethernet or DRTIO.' ,
2021-03-23 17:30:40 +08:00
'12 EEM connectors.' ,
2019-11-06 14:48:26 +08:00
'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' ,
2023-11-28 15:32:34 +08:00
options : [
{ type : "Radio" , args : { title : "DRTIO role" , outvar : "drtio_role" , variants : [ "standalone" , "master" , "satellite" ] , tip : "Distributed Real Time Input/Output allows ARTIQ RTIO channels to be distributed among several satellite devices synchronized and controlled by a central core(master) device. Standalone option disables this feature." } } ,
{
"if" : [
{
"in" : [
{ "var" : "drtio_role" } , [
"master" , "standalone"
]
]
} ,
[
2024-03-27 16:14:05 +08:00
{ type : "Line" , args : { title : "IPv4" , outvar : "ipv4" , fallback : "192.168.1.75/24" ,
tip : "Set up IPv4 address and mask used by core device" , validator : { name : "ipv4" } } } ,
{ type : "SwitchLine" , args : { title : "IPv6" , outvar : "ipv6" ,
tip : "Set up IPv6 address and prefix used by core device" ,
validator : { name : "ipv6" } } } ,
{ type : "SwitchLine" , args : { title : "Ext CLK" , outvar : "ext_clk" , fallback : { text : "125 MHz" , checked : false } ,
validator : { name : "frequency" , params : { min : 10e6 , max : 1e9 } } ,
2024-05-10 09:58:41 +08:00
tip : "Use external clock reference: 10, 80 (beta), 100 or 125 MHz. Other options may be provided if needed." } }
2023-11-28 15:32:34 +08:00
] ,
[
{ type : "Switch" , args : { title : "Optical fiber" , outvar : "optics" , tip : "Use optical fiber instead of direct attach copper cable" } } ,
{ "if" : [
{ "var" : "optics" } ,
2024-02-07 16:23:17 +08:00
{ type : "Radio" , args : { title : "Fiber cable length" , outvar : "fiber_cable_len" , variants : [ "1 M" , "3 M" , "5 M" ] , tip : "The desired length of the optical fiber cable" , fallback : 1 } } ,
{ type : "Radio" , args : { title : "Copper cable length" , outvar : "copper_cable_len" , variants : [ "0.5 M" , "1 M" , "2 M" ] , tip : "The desired length of the direct attach copper cable" , fallback : 0 } } ,
2023-11-28 15:32:34 +08:00
] }
]
]
}
] ,
2023-12-05 17:35:31 +08:00
resources : [
2023-12-06 16:27:43 +08:00
{ name : "eem" , max : 12 } ,
2023-12-05 17:35:31 +08:00
{ name : "clk" , max : 4 } ,
] ,
warnings : [
"eem_resource" ,
"clk_resource" ,
"eem_wiring_constraint"
2023-12-06 16:27:43 +08:00
] ,
consumes : {
hp : 8
}
2021-03-23 00:40:59 +08:00
} ,
2021-03-23 17:30:40 +08:00
'kaslisoc' : {
id : 'kaslisoc' ,
name : 'Carrier' ,
name _number : '1125' ,
name _codename : 'Kasli-SoC' ,
price : 5100 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_kaslisoc.svg' ,
2021-03-23 17:30:40 +08:00
specs : [
'Core device based on Zynq-7000 CPU+FPGA system-on-chip.' ,
'Runs ARTIQ kernels on 1GHz Cortex-A9 CPU with hardware FPU.' ,
'Enables high-speed matrix math on the core device.' ,
'Lower RTIO latency.' ,
'Higher network transfer speeds.' ,
'Dedicated RJ45 port for Gigabit Ethernet.' ,
'4 SFP 12Gb/s slots for DRTIO.' ,
'12 EEM connectors.' ,
'4 MMCX clock outputs.' ,
] ,
size : 'big' ,
hp : 8 ,
nbrSlotMin : 0 ,
nbrSlotMax : 12 ,
nbrCurrentSlot : 0 ,
nbrClockMax : 4 ,
nbrCurrentClock : 0 ,
slotOccupied : 1 ,
clockOccupied : 0 ,
2023-11-28 15:32:34 +08:00
options : [
{ type : "Radio" , args : { title : "DRTIO role" , outvar : "drtio_role" , variants : [ "standalone" , "master" , "satellite" ] , tip : "Distributed Real Time Input/Output allows ARTIQ RTIO channels to be distributed among several satellite devices synchronized and controlled by a central core(master) device. Standalone option disables this feature." } } ,
{
"if" : [
{
"in" : [
{ "var" : "drtio_role" } , [
"master" , "standalone"
]
]
} ,
[
2024-03-27 16:14:05 +08:00
{ type : "Line" , args : { title : "IPv4" , outvar : "ipv4" ,
validator : { name : "ipv4" } ,
fallback : "192.168.1.75/24" ,
tip : "Set up IPv4 address used by core device" } } ,
{ type : "SwitchLine" , args : { title : "IPv6" , outvar : "ipv6" ,
tip : "Set up IPv6 address and prefix used by core device" ,
validator : { name : "ipv6" } } } ,
{ type : "SwitchLine" , args : { title : "Ext CLK" , outvar : "ext_clk" ,
validator : { name : "frequency" , params : { min : 10e6 , max : 1e9 } } ,
fallback : { text : "125 MHz" , checked : false } ,
2024-05-10 09:58:41 +08:00
tip : "Use external clock reference: 10, 80 (beta), 100 or 125 MHz. Other options may be provided if needed." } } ,
2024-04-22 17:56:08 +08:00
{ type : "Switch" , args : { title : "WRPLL" , outvar : "wrpll" , tip : "Enable WRPLL instead of Si5324" } } ,
2023-11-28 15:32:34 +08:00
] ,
[
{ type : "Switch" , args : { title : "Optical fiber" , outvar : "optics" , tip : "Use optical fiber instead of direct attach copper cable" } } ,
{ "if" : [
{ "var" : "optics" } ,
2024-02-07 16:23:17 +08:00
{ type : "Radio" , args : { title : "Fiber cable length" , outvar : "fiber_cable_len" , variants : [ "1 M" , "3 M" , "5 M" ] , tip : "The desired length of the optical fiber cable" , fallback : 1 } } ,
{ type : "Radio" , args : { title : "Copper cable length" , outvar : "copper_cable_len" , variants : [ "0.5 M" , "1 M" , "2 M" ] , tip : "The desired length of the direct attach copper cable" , fallback : 0 } } ,
2023-11-28 15:32:34 +08:00
] }
]
]
}
] ,
2023-12-06 16:27:43 +08:00
resources : [
{ name : "eem" , max : 12 } ,
{ name : "clk" , max : 4 } ,
] ,
warnings : [
"eem_resource" ,
"clk_resource" ,
"eem_wiring_constraint"
] ,
consumes : {
hp : 8
}
2021-03-23 17:30:40 +08:00
} ,
2021-03-23 00:40:59 +08:00
'vhdcicarrier' : {
id : 'vhdcicarrier' ,
name : 'VHDCI Carrier' ,
name _number : '1008' ,
name _codename : '' ,
price : 400 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_VHDCI_carrier.svg' ,
2021-03-23 00:40:59 +08:00
specs : [
'Passive adapter between VHDCI and EEMs.' ,
'VHDCI (SCSI-3) cables can carry EEM signals over short distances between crates.' ,
'Bidirectional: can be driven by Kasli (contact us), or can drive other cards.' ,
'A pair of VHDCI carriers is a simple, low-latency and low-cost alternative to DRTIO for some applications.' ,
] ,
size : 'big' ,
2023-12-06 16:27:43 +08:00
resources : [
{ name : "eem" , max : 8 } ,
] ,
warnings : [
"eem_resource" ,
"eem_wiring_constraint"
] ,
consumes : {
hp : 8
}
2019-10-02 12:16:07 +08:00
} ,
'bnc-dio' : {
id : 'bnc-dio' ,
2020-03-02 20:57:38 +08:00
name : 'BNC-TTL' ,
name _number : '2118' ,
name _codename : '' ,
2019-11-06 14:48:26 +08:00
price : 450 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_BNC-TTL.svg' ,
2019-10-02 12:16:07 +08:00
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.' ,
2021-03-23 16:56:26 +08:00
'Per-bank switchable direction.' ,
2019-11-06 14:48:26 +08:00
'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
] ,
2022-01-19 14:27:48 +08:00
datasheet _file : '/docs/sinara-datasheets/2118-2128.pdf' ,
datasheet _name : '2118/2128 BNC/SMA-TTL datasheet' ,
2019-10-02 12:16:07 +08:00
size : 'big' ,
2023-11-28 15:32:34 +08:00
options : [
{
"if" : [
{ "var" : "ext_data.has_other_dio" } ,
[
{ type : "Switch" , args : { title : "Output first bank" , fallback : true , outvar : "out_first_bank" , tip : "Switch connectors 0-3 to output" } }
] ,
[
{ type : "Switch" , args : { title : "Output first bank" , outvar : "out_first_bank" , tip : "Switch connectors 0-3 to output" } }
]
]
} ,
{
"if" : [
{ "!" : { "var" : "out_first_bank" } } ,
{ type : "Group" , items : [
{ type : "Switch" , args : { title : "Termination #0" , outvar : "term_0" , tip : "Enable termination on channel #0" } } ,
{ type : "Switch" , args : { title : "Termination #1" , outvar : "term_1" , tip : "Enable termination on channel #1" } } ,
{ type : "Switch" , args : { title : "Termination #2" , outvar : "term_2" , tip : "Enable termination on channel #2" } } ,
{ type : "Switch" , args : { title : "Termination #3" , outvar : "term_3" , tip : "Enable termination on channel #3" } } ,
] } ,
null
]
} ,
{ type : "Switch" , args : { title : "Output second bank" , outvar : "out_second_bank" , fallback : true , tip : "Switch connectors 4-7 to output" } } ,
{
"if" : [
{ "!" : { "var" : "out_second_bank" } } ,
{ type : "Group" , items : [
{ type : "Switch" , args : { title : "Termination #4" , outvar : "term_4" , tip : "Enable termination on channel #4" } } ,
{ type : "Switch" , args : { title : "Termination #5" , outvar : "term_5" , tip : "Enable termination on channel #5" } } ,
{ type : "Switch" , args : { title : "Termination #6" , outvar : "term_6" , tip : "Enable termination on channel #6" } } ,
{ type : "Switch" , args : { title : "Termination #7" , outvar : "term_7" , tip : "Enable termination on channel #7" } } ,
] } ,
null
]
} ,
{
"if" : [
{ "!" : { "and" : [ { "var" : "out_first_bank" } , { "var" : "out_second_bank" } ] } } ,
{ type : "Switch" , args : { title : "Edge counter" , outvar : "edge_counter" , tip : "Enable edge counter for inputs" } }
]
}
] ,
2023-12-05 17:35:31 +08:00
warnings : [
"no_eem_source"
2023-12-06 16:27:43 +08:00
] ,
consumes : {
hp : 8 ,
eem : 1
}
2019-10-02 12:16:07 +08:00
} ,
2019-11-06 14:48:26 +08:00
'sma-dio' : {
id : 'sma-dio' ,
2020-03-02 20:57:38 +08:00
name : 'SMA-TTL' ,
name _number : '2128' ,
name _codename : '' ,
2019-11-06 14:48:26 +08:00
price : 400 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_SMA-TTL.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
] ,
2022-01-19 14:27:48 +08:00
datasheet _file : '/docs/sinara-datasheets/2118-2128.pdf' ,
datasheet _name : '2118/2128 BNC/SMA-TTL datasheet' ,
2023-11-28 15:32:34 +08:00
options : [
{
"if" : [
{ "var" : "ext_data.has_other_dio" } ,
[
{ type : "Switch" , args : { title : "Output first bank" , fallback : true , outvar : "out_first_bank" , tip : "Switch connectors 0-3 to output" } }
] ,
[
{ type : "Switch" , args : { title : "Output first bank" , outvar : "out_first_bank" , tip : "Switch connectors 0-3 to output" } }
]
]
} ,
{
"if" : [
{ "!" : { "var" : "out_first_bank" } } ,
{ type : "Group" , items : [
{ type : "Switch" , args : { title : "Termination #0" , outvar : "term_0" , tip : "Enable termination on channel #0" } } ,
{ type : "Switch" , args : { title : "Termination #1" , outvar : "term_1" , tip : "Enable termination on channel #1" } } ,
{ type : "Switch" , args : { title : "Termination #2" , outvar : "term_2" , tip : "Enable termination on channel #2" } } ,
{ type : "Switch" , args : { title : "Termination #3" , outvar : "term_3" , tip : "Enable termination on channel #3" } } ,
] } ,
null
]
} ,
{ type : "Switch" , args : { title : "Output second bank" , outvar : "out_second_bank" , fallback : true , tip : "Switch connectors 4-7 to output" } } ,
{
"if" : [
{ "!" : { "var" : "out_second_bank" } } ,
{ type : "Group" , items : [
{ type : "Switch" , args : { title : "Termination #4" , outvar : "term_4" , tip : "Enable termination on channel #4" } } ,
{ type : "Switch" , args : { title : "Termination #5" , outvar : "term_5" , tip : "Enable termination on channel #5" } } ,
{ type : "Switch" , args : { title : "Termination #6" , outvar : "term_6" , tip : "Enable termination on channel #6" } } ,
{ type : "Switch" , args : { title : "Termination #7" , outvar : "term_7" , tip : "Enable termination on channel #7" } } ,
] } ,
null
]
} ,
{
"if" : [
{ "!" : { "and" : [ { "var" : "out_first_bank" } , { "var" : "out_second_bank" } ] } } ,
{ type : "Switch" , args : { title : "Edge counter" , outvar : "edge_counter" , tip : "Enable edge counter for inputs" } }
]
}
] ,
2019-10-02 12:16:07 +08:00
size : 'small' ,
2023-12-05 17:35:31 +08:00
warnings : [
"no_eem_source"
2023-12-06 16:27:43 +08:00
] ,
consumes : {
hp : 4 ,
eem : 1
}
2019-10-02 12:16:07 +08:00
} ,
2021-03-23 16:56:47 +08:00
'mcx-dio' : {
id : 'mcx-dio' ,
name : 'MCX-TTL' ,
name _number : '2238' ,
name _codename : '' ,
price : 600 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_MCX-TTL.svg' ,
2021-03-23 16:56:47 +08:00
specs : [
'16 single-ended digital signals on MCX connectors.' ,
'Direction selectable in banks of four signals.' ,
'Termination individually selectable for each signal.' ,
'No galvanic isolation.' ,
'Higher speed and lower jitter than the isolated SMA and BNC DIO cards.'
] ,
2022-01-19 14:27:48 +08:00
datasheet _file : '/docs/sinara-datasheets/2238.pdf' ,
datasheet _name : '2238 MCX-TTL datasheet' ,
2023-11-28 15:32:34 +08:00
options : [
{
"if" : [
{ "var" : "ext_data.has_other_dio" } ,
[
{ type : "Switch" , args : { title : "Output first bank" , fallback : true , outvar : "out_first_bank" , tip : "Switch connectors 0-3 to output" } }
] ,
[
{ type : "Switch" , args : { title : "Output first bank" , outvar : "out_first_bank" , tip : "Switch connectors 0-3 to output" } }
]
]
} ,
{
"if" : [
{ "!" : { "var" : "out_first_bank" } } ,
{ type : "Group" , items : [
{ type : "Switch" , args : { title : "Termination #0" , outvar : "term_0" , tip : "Enable termination on channel #0" } } ,
{ type : "Switch" , args : { title : "Termination #1" , outvar : "term_1" , tip : "Enable termination on channel #1" } } ,
{ type : "Switch" , args : { title : "Termination #2" , outvar : "term_2" , tip : "Enable termination on channel #2" } } ,
{ type : "Switch" , args : { title : "Termination #3" , outvar : "term_3" , tip : "Enable termination on channel #3" } } ,
] }
]
} ,
{ type : "Switch" , args : { title : "Output second bank" , outvar : "out_second_bank" , fallback : true , tip : "Switch connectors 4-7 to output" } } ,
{
"if" : [
{ "!" : { "var" : "out_second_bank" } } ,
{ type : "Group" , items : [
{ type : "Switch" , args : { title : "Termination #4" , outvar : "term_4" , tip : "Enable termination on channel #4" } } ,
{ type : "Switch" , args : { title : "Termination #5" , outvar : "term_5" , tip : "Enable termination on channel #5" } } ,
{ type : "Switch" , args : { title : "Termination #6" , outvar : "term_6" , tip : "Enable termination on channel #6" } } ,
{ type : "Switch" , args : { title : "Termination #7" , outvar : "term_7" , tip : "Enable termination on channel #7" } } ,
] }
]
} ,
{ type : "Switch" , args : { title : "Output third bank" , outvar : "out_third_bank" , fallback : true , tip : "Switch connectors 8-11 to output" } } ,
{
"if" : [
{ "!" : { "var" : "out_third_bank" } } ,
{ type : "Group" , items : [
{ type : "Switch" , args : { title : "Termination #8" , outvar : "term_8" , tip : "Enable termination on channel #8" } } ,
{ type : "Switch" , args : { title : "Termination #9" , outvar : "term_9" , tip : "Enable termination on channel #9" } } ,
{ type : "Switch" , args : { title : "Termination #10" , outvar : "term_10" , tip : "Enable termination on channel #10" } } ,
{ type : "Switch" , args : { title : "Termination #11" , outvar : "term_11" , tip : "Enable termination on channel #11" } } ,
] }
]
} ,
{ type : "Switch" , args : { title : "Output fourth bank" , outvar : "out_fourth_bank" , fallback : true , tip : "Switch connectors 12-15 to output" } } ,
{
"if" : [
{ "!" : { "var" : "out_fourth_bank" } } ,
{ type : "Group" , items : [
{ type : "Switch" , args : { title : "Termination #12" , outvar : "term_12" , tip : "Enable termination on channel #12" } } ,
{ type : "Switch" , args : { title : "Termination #13" , outvar : "term_13" , tip : "Enable termination on channel #13" } } ,
{ type : "Switch" , args : { title : "Termination #14" , outvar : "term_14" , tip : "Enable termination on channel #14" } } ,
{ type : "Switch" , args : { title : "Termination #15" , outvar : "term_15" , tip : "Enable termination on channel #15" } } ,
] }
]
} ,
{
"if" : [
{ "!" : { "and" : [ { "var" : "out_first_bank" } , { "var" : "out_second_bank" } , { "var" : "out_third_bank" } , { "var" : "out_fourth_bank" } ] } } ,
{ type : "Switch" , args : { title : "Edge counter" , outvar : "edge_counter" , tip : "Enable edge counter for inputs" } }
]
}
] ,
2021-03-23 16:56:47 +08:00
size : 'small' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_eem_source"
] ,
consumes : {
hp : 4 ,
eem : 2
}
2021-03-23 16:56:47 +08:00
} ,
2019-11-06 14:48:26 +08:00
'rj45-dio' : {
id : 'rj45-dio' ,
2020-03-02 20:57:38 +08:00
name : 'LVDS-TTL' ,
name _number : '2245' ,
name _codename : '' ,
2019-11-06 14:48:26 +08:00
price : 390 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_LVDS.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.' ,
2021-03-23 16:56:26 +08:00
'Direction individually selectable for each signal.' ,
2019-11-06 14:48:26 +08:00
'No galvanic isolation.' ,
'Higher speed and lower jitter than the isolated SMA and BNC DIO cards.'
2019-10-02 12:16:07 +08:00
] ,
2022-01-19 14:27:48 +08:00
datasheet _file : '/docs/sinara-datasheets/2245.pdf' ,
datasheet _name : '2245 LVDS-TTL datasheet' ,
2023-11-28 15:32:34 +08:00
options : [
{ type : "Switch" , args : { title : "Configure first RJ45" , fallback : false , outvar : "conf_first_rj45" , tip : "Configure channels 0-3" } } ,
{
"if" : [
{ "var" : "conf_first_rj45" } ,
{ type : "Group" , items : [
{ type : "Switch" , args : { title : "Output channel #0" , fallback : true , outvar : "output_0" , tip : "Set channel #0 to output" } } ,
{ type : "Switch" , args : { title : "Output channel #1" , fallback : true , outvar : "output_1" , tip : "Set channel #1 to output" } } ,
{ type : "Switch" , args : { title : "Output channel #2" , fallback : true , outvar : "output_2" , tip : "Set channel #2 to output" } } ,
{ type : "Switch" , args : { title : "Output channel #3" , fallback : true , outvar : "output_3" , tip : "Set channel #3 to output" } } ,
] }
]
} ,
{ type : "Switch" , args : { title : "Configure second RJ45" , fallback : false , outvar : "conf_second_rj45" , tip : "Configure channels 4-7" } } ,
{
"if" : [
{ "var" : "conf_second_rj45" } ,
{ type : "Group" , items : [
{ type : "Switch" , args : { title : "Output channel #4" , fallback : true , outvar : "output_4" , tip : "Set channel #4 to output" } } ,
{ type : "Switch" , args : { title : "Output channel #5" , fallback : true , outvar : "output_5" , tip : "Set channel #5 to output" } } ,
{ type : "Switch" , args : { title : "Output channel #6" , fallback : true , outvar : "output_6" , tip : "Set channel #6 to output" } } ,
{ type : "Switch" , args : { title : "Output channel #7" , fallback : true , outvar : "output_7" , tip : "Set channel #7 to output" } } ,
] }
]
} ,
{ type : "Switch" , args : { title : "Configure third RJ45" , fallback : false , outvar : "conf_third_rj45" , tip : "Configure channels 8-11" } } ,
{
"if" : [
{ "var" : "conf_third_rj45" } ,
{ type : "Group" , items : [
{ type : "Switch" , args : { title : "Output channel #8" , fallback : true , outvar : "output_8" , tip : "Set channel #8 to output" } } ,
{ type : "Switch" , args : { title : "Output channel #9" , fallback : true , outvar : "output_9" , tip : "Set channel #9 to output" } } ,
{ type : "Switch" , args : { title : "Output channel #10" , fallback : true , outvar : "output_10" , tip : "Set channel #10 to output" } } ,
{ type : "Switch" , args : { title : "Output channel #11" , fallback : true , outvar : "output_11" , tip : "Set channel #11 to output" } } ,
] }
]
} ,
{ type : "Switch" , args : { title : "Configure fourth RJ45" , fallback : false , outvar : "conf_fourth_rj45" , tip : "Configure channels 12-15" } } ,
{
"if" : [
{ "var" : "conf_fourth_rj45" } ,
{ type : "Group" , items : [
{ type : "Switch" , args : { title : "Output channel #12" , fallback : true , outvar : "output_12" , tip : "Set channel #12 to output" } } ,
{ type : "Switch" , args : { title : "Output channel #13" , fallback : true , outvar : "output_13" , tip : "Set channel #13 to output" } } ,
{ type : "Switch" , args : { title : "Output channel #14" , fallback : true , outvar : "output_14" , tip : "Set channel #14 to output" } } ,
{ type : "Switch" , args : { title : "Output channel #15" , fallback : true , outvar : "output_15" , tip : "Set channel #15 to output" } } ,
] }
]
} ,
{
"if" : [
{ "or" : [
{ "and" : [ { "var" : "conf_first_rj45" } , { "!" : { "missing" : [ "output_0" , "output_1" , "output_2" , "output_3" ] } } , { "!" : { "and" : [ { "var" : "output_0" } , { "var" : "output_1" } , { "var" : "output_2" } , { "var" : "output_3" } ] } } ] } ,
{ "and" : [ { "var" : "conf_second_rj45" } , { "!" : { "missing" : [ "output_4" , "output_5" , "output_6" , "output_7" ] } } , { "!" : { "and" : [ { "var" : "output_4" } , { "var" : "output_5" } , { "var" : "output_6" } , { "var" : "output_7" } ] } } ] } ,
{ "and" : [ { "var" : "conf_third_rj45" } , { "!" : { "missing" : [ "output_8" , "output_9" , "output_10" , "output_11" ] } } , { "!" : { "and" : [ { "var" : "output_8" } , { "var" : "output_9" } , { "var" : "output_10" } , { "var" : "output_11" } ] } } ] } ,
{ "and" : [ { "var" : "conf_fourth_rj45" } , { "!" : { "missing" : [ "output_12" , "output_13" , "output_14" , "output_15" ] } } , { "!" : { "and" : [ { "var" : "output_12" } , { "var" : "output_13" } , { "var" : "output_14" } , { "var" : "output_15" } ] } } ] }
] } ,
{ type : "Switch" , args : { title : "Edge counter" , outvar : "edge_counter" , tip : "Enable edge counter for inputs" } }
]
}
] ,
2019-10-02 12:16:07 +08:00
size : 'small' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_eem_source"
] ,
consumes : {
hp : 4 ,
eem : 2
}
2019-10-02 12:16:07 +08:00
} ,
'urukul' : {
2020-03-02 20:57:38 +08:00
id : 'urukul' ,
name : 'DDS' ,
name _number : '4410' ,
name _codename : 'Urukul' ,
2019-11-06 14:48:26 +08:00
price : 2350 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_Urukul.svg' ,
2019-10-02 12:16:07 +08:00
specs : [
2019-11-06 14:48:26 +08:00
'4 channel 1GS/s DDS.' ,
'Output frequency (-3 dB): <1 to >400 MHz.' ,
2023-11-28 15:32:34 +08:00
'Frequency resolution ~0.25 Hz (32 bit)' ,
2019-11-06 14:48:26 +08:00
'Nominal max output power 10 dBm.' ,
'Digital step attenuator 0 to -31.5dB.' ,
'RF switch (1ns temporal resolution), 70dB isolation.' ,
2021-02-16 09:58:25 +08:00
'AD9910 and AD9912 cards can be used at the same time in the same crate.' ,
2024-07-29 12:55:22 +08:00
'Power amplifier (e.g. AOM driver) options available, contact us for details.' ,
'Can be integrated and shipped with single- or double-pass fiber-coupled AOM at most wavelengths 400nm-1650nm, AOM driver, low-noise monitor PD and SU-Servo to reduce laser, AOM and fiber noise. Contact us for details.'
2019-10-02 12:16:07 +08:00
] ,
2022-01-19 14:27:48 +08:00
datasheet _file : '/docs/sinara-datasheets/4410-4412.pdf' ,
datasheet _name : '4410/4412 Urukul datasheet' ,
2023-11-28 15:32:34 +08:00
options : [
{ type : "Switch" , args : { title : "Use 1 EEM" , outvar : "mono_eem" , tip : "Use one EEM port setup. RF switch and synchronization will be unavailable." } } ,
{
"if" : [
{ "var" : "mono_eem" } ,
[
2024-03-27 16:14:05 +08:00
{ type : "SwitchLine" , args : { title : "Ext CLK" , outvar : "ext_clk" ,
validator : { name : "frequency" , params : { min : 10e6 , max : 1e9 } } ,
fallback : { text : "125 MHz" , checked : false } } } ,
2023-11-28 15:32:34 +08:00
] ,
[
{ type : "Switch" , args : { title : "Synchronization" , outvar : "sync" , tip : "Synchronize phases across Urukuls" } } ,
{
"if" : [
{ "var" : "sync" } ,
null ,
[
2024-03-27 16:14:05 +08:00
{ type : "SwitchLine" , args : { title : "Ext CLK" , outvar : "ext_clk" ,
validator : { name : "frequency" , params : { min : 10e6 , max : 1e9 } } ,
fallback : { text : "125 MHz" , checked : false } } } ,
2023-11-28 15:32:34 +08:00
{
"if" : [
{ "var" : "ext_data.has_sampler" } ,
{ type : "Switch" , args : { title : "SUServo mode" , outvar : "suservo" } } ,
null
]
}
]
]
}
]
]
}
] ,
2019-10-02 12:16:07 +08:00
size : 'small' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_eem_source" ,
"no_clk_source"
] ,
consumes : {
hp : 4 ,
eem : 2 ,
clk : 1
}
2023-11-28 15:32:34 +08:00
} ,
'urukul_4412' : {
id : 'urukul_4412' ,
name : 'DDS' ,
name _number : '4412' ,
name _codename : 'Urukul' ,
price : 2350 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_Urukul-4412.svg' ,
2023-11-28 15:32:34 +08:00
specs : [
'4 channel 1GS/s DDS.' ,
'Higher frequency resolution ~8 µHz (47 bit)' ,
'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.' ,
'AD9912 chip.' ,
'AD9910 and AD9912 cards can be used at the same time in the same crate.' ,
2024-07-29 12:55:22 +08:00
'Power amplifier (e.g. AOM driver) options available, contact us for details.' ,
'Can be integrated and shipped with single- or double-pass fiber-coupled AOM at most wavelengths 400nm-1650nm, and AOM driver. Contact us for details.'
2023-11-28 15:32:34 +08:00
] ,
datasheet _file : '/docs/sinara-datasheets/4410-4412.pdf' ,
datasheet _name : '4410/4412 Urukul datasheet' ,
options : [
{ type : "Switch" , args : { title : "Use 1 EEM" , outvar : "mono_eem" , tip : "Use one EEM port setup. RF switch and synchronization will be unavailable." } } ,
2024-03-27 16:14:05 +08:00
{ type : "SwitchLine" , args : { title : "Ext CLK" , outvar : "ext_clk" ,
validator : { name : "frequency" , params : { min : 10e6 , max : 1e9 } } ,
fallback : { text : "125 MHz" , checked : false } } }
2023-11-28 15:32:34 +08:00
] ,
size : 'small' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_eem_source" ,
"no_clk_source"
] ,
consumes : {
hp : 4 ,
eem : 2 ,
clk : 1
}
2019-10-02 12:16:07 +08:00
} ,
2021-03-23 18:14:38 +08:00
'phaser' : {
id : 'phaser' ,
name : 'AWG' ,
name _number : '4624' ,
name _codename : 'Phaser' ,
price : 4260 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_Phaser.svg' ,
2021-03-23 18:14:38 +08:00
specs : [
2021-03-23 18:16:39 +08:00
'2x 1.25 GS/s IQ upconverters.' ,
'dual IQ mixer + 0.3 GHz to 4.8 GHz VCO + PLL.' ,
2024-08-27 22:48:42 +08:00
'up to 16 dynamic tones using MIQRO gateware (available separately from QUARTIQ).' ,
2021-03-23 18:16:39 +08:00
'31.5 dB range digital step attenuator (similar to Urukul).' ,
'2 channels of 5 MS/s ADC (similar to Sampler).' ,
'Artix-7 FPGA.' ,
'Internal MMCX clock from Kasli/Clocker and external SMA.' ,
2021-03-23 18:15:39 +08:00
'The upconverter is optional, if you would like the baseband version please leave us a note.'
2021-03-23 18:14:38 +08:00
] ,
2023-11-28 15:32:34 +08:00
options : [
2024-03-27 16:14:05 +08:00
{ type : "SwitchLine" , args : { title : "Ext CLK" , outvar : "ext_clk" ,
validator : { name : "frequency" , params : { min : 10e6 , max : 1e9 } } ,
fallback : { text : "125 MHz" , checked : false } } } ,
2023-11-28 15:32:34 +08:00
{ type : "Radio" , args : { title : "Variant" , outvar : "variant" , variants : [ "Baseband" , "Upconverter" ] , fallback : 1 } } ,
] ,
2021-03-23 18:14:38 +08:00
size : 'small' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_eem_source" ,
"no_clk_source"
] ,
consumes : {
hp : 4 ,
eem : 1 ,
clk : 1
}
2021-03-23 18:14:38 +08:00
} ,
2019-10-02 12:16:07 +08:00
'zotino' : {
id : 'zotino' ,
2020-03-02 20:57:38 +08:00
name : 'DAC' ,
name _number : '5432' ,
name _codename : 'Zotino' ,
2019-11-06 14:48:26 +08:00
price : 1600 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_Zotino.svg' ,
2019-10-02 12:16:07 +08:00
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.' ,
2021-07-30 18:09:32 +08:00
'Channels can also be broken out to BNC or SMA using IDC-BNC, IDC-SMA or IDC-MCX cards.' ,
'DAC temperature can be stabilized using the Sinara 8451 Thermostat (sold separately).'
2019-10-02 12:16:07 +08:00
] ,
2023-11-28 15:32:34 +08:00
options : [
2024-07-04 13:28:02 +08:00
{
"if" : [
{ "var" : "ext_data.has_thermostat" } ,
[
{ type : "Switch" , args : { title : "TEC" , outvar : "tec" , fallback : true , tip : "Used for stabilizing temperature with Sinara 8451 Thermostat" } }
] ,
[
{ type : "Switch" , args : { title : "TEC" , outvar : "tec" , tip : "Used for stabilizing temperature with Sinara 8451 Thermostat" } }
]
]
}
2023-11-28 15:32:34 +08:00
] ,
2022-01-19 14:27:48 +08:00
datasheet _file : '/docs/sinara-datasheets/5432.pdf' ,
datasheet _name : '5432 Zotino datasheet' ,
2019-10-02 12:16:07 +08:00
size : 'small' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_eem_source" ,
"idc_resource"
] ,
consumes : {
hp : 4 ,
2024-07-04 13:28:02 +08:00
eem : 1 ,
tec : 1
2019-10-02 12:16:07 +08:00
} ,
2023-12-06 16:27:43 +08:00
resources : [
{ name : "idc" , max : 4 }
]
2019-10-02 12:16:07 +08:00
} ,
2021-03-23 00:55:55 +08:00
'fastino' : {
id : 'fastino' ,
name : 'DAC' ,
name _number : '5632' ,
name _codename : 'Fastino' ,
price : 3390 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_Fastino.svg' ,
2021-03-23 00:55:55 +08:00
specs : [
'32-channel DAC.' ,
'16-bit resolution.' ,
2021-03-23 00:57:29 +08:00
'2 MSPS simultaneously on all channels (requires gateware acceleration).' ,
2021-03-23 00:55:55 +08:00
'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' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_eem_source" ,
"idc_resource" ,
] ,
consumes : {
hp : 4 ,
eem : 1
2021-03-23 00:55:55 +08:00
} ,
2023-12-06 16:27:43 +08:00
resources : [
{ name : "idc" , max : 4 }
]
2021-03-23 00:55:55 +08:00
} ,
2019-10-02 12:16:07 +08:00
'idc-bnc-adapter' : {
id : 'idc-bnc-adapter' ,
2020-03-02 20:57:38 +08:00
name : 'BNC-IDC' ,
name _number : '5518' ,
name _codename : '' ,
2019-11-06 14:48:26 +08:00
price : 160 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_IDC-BNC-adapter.svg' ,
2019-10-02 12:16:07 +08:00
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' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_idc_source"
] ,
consumes : {
hp : 8 ,
idc : 1
}
2019-10-02 12:16:07 +08:00
} ,
2024-07-09 17:30:59 +08:00
'hvamp32' : {
id : 'hvamp32' ,
name : 'HV Amplifier' ,
name _number : '5633' ,
name _codename : '' ,
price : 1500 ,
image : '/images/shop/graphic-03_HVAMP32.svg' ,
specs : [
2024-10-10 16:47:51 +08:00
'Amplifier: LTC6090, 32 channels.' ,
2024-12-20 11:16:33 +08:00
'Output voltage: ±50V.' ,
2024-07-09 17:30:59 +08:00
'Over-temperature protection.' ,
'External 12V power supply.' ,
'Slew rate 21V/us typical.' ,
2024-10-10 16:47:51 +08:00
'Bandwidth: 12MHz/gain, 2.4MHz typical.' ,
2024-07-09 17:30:59 +08:00
'The same connector as in Zotino and Fastino.'
] ,
size : 'small' ,
warnings : [
"no_idc_source"
] ,
resources : [
{ name : "idc" , max : 4 }
] ,
consumes : {
hp : 4 ,
idc : 4
}
} ,
2020-03-05 10:26:03 +08:00
'idc-sma-adapter' : {
id : 'idc-sma-adapter' ,
name : 'SMA-IDC' ,
name _number : '5528' ,
name _codename : '' ,
price : 160 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_SMA-IDC.svg' ,
2020-03-05 10:26:03 +08:00
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.'
] ,
2020-03-05 12:21:37 +08:00
size : 'small' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_idc_source"
] ,
consumes : {
hp : 4 ,
idc : 1
}
2020-03-05 10:26:03 +08:00
} ,
2024-09-27 13:47:04 +08:00
'idc-mcx-adapter' : {
id : 'idc-mcx-adapter' ,
name : 'MCX-IDC' ,
name _number : '5538' ,
name _codename : '' ,
price : 320 ,
image : '/images/shop/graphic-03_MCX-IDC32.svg' ,
specs : [
'Breaks out analog signals from Zotino or HD68-IDC to MCX connectors.' ,
'Each card provides 32 channels.' ,
] ,
size : 'big' ,
type : 'idc-bnc' ,
warnings : [
"no_idc_source"
] ,
consumes : {
hp : 8 ,
idc : 4
}
} ,
2019-10-02 12:16:07 +08:00
'hd68-idc-adapter' : {
id : 'hd68-idc-adapter' ,
name : 'HD68-IDC' ,
2020-03-02 20:57:38 +08:00
name _number : '5568' ,
name _codename : '' ,
2019-11-06 14:48:26 +08:00
price : 150 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_HD68.svg' ,
2019-10-02 12:16:07 +08:00
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' ,
2023-11-28 15:32:34 +08:00
options : [
2024-02-07 16:23:17 +08:00
{ type : "Radio" , args : { title : "Cable length" , outvar : "hd68_cable_len" , variants : [ "1 M" , "2 M" , "3 M" ] , tip : "The desired length of the HD68 cable" , fallback : 1 } } ,
2023-11-28 15:32:34 +08:00
] ,
options _class : "hd68-idc" ,
2023-12-06 16:27:43 +08:00
warnings : [
"idc_resource"
] ,
consumes : {
hp : 4
2019-10-02 12:16:07 +08:00
} ,
2023-12-06 16:27:43 +08:00
resources : [
{ name : "idc" , max : 4 }
]
2019-10-02 12:16:07 +08:00
} ,
'novo' : {
id : 'novo' ,
2020-03-02 20:57:38 +08:00
name : 'Sampler' ,
name _number : '5108' ,
name _codename : '' ,
2019-11-06 14:48:26 +08:00
price : 1600 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_Sampler.svg' ,
2019-10-02 12:16:07 +08:00
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
] ,
2023-11-28 15:32:34 +08:00
options : [
{ type : "Switch" , args : { title : "1 EEM mode" , outvar : "mono_eem" } } ,
{
"if" : [
{ "and" : [ { "var" : "ext_data.has_dds" } , { "!" : { "var" : "mono_eem" } } ] } ,
{ type : "Switch" , args : { title : "SUServo mode" , outvar : "suservo" } } ,
null
]
} ,
{ type : "Switch" , args : { title : "Configure termination" , outvar : "config_term" } } ,
{
"if" : [
{ "var" : "config_term" } ,
{ type : "Group" , items : [
{ type : "Switch" , args : { title : "Termination #0" , outvar : "term_0" , tip : "Enable termination on channel #0" } } ,
{ type : "Switch" , args : { title : "Termination #1" , outvar : "term_1" , tip : "Enable termination on channel #1" } } ,
{ type : "Switch" , args : { title : "Termination #2" , outvar : "term_2" , tip : "Enable termination on channel #2" } } ,
{ type : "Switch" , args : { title : "Termination #3" , outvar : "term_3" , tip : "Enable termination on channel #3" } } ,
{ type : "Switch" , args : { title : "Termination #4" , outvar : "term_4" , tip : "Enable termination on channel #4" } } ,
{ type : "Switch" , args : { title : "Termination #5" , outvar : "term_5" , tip : "Enable termination on channel #5" } } ,
{ type : "Switch" , args : { title : "Termination #6" , outvar : "term_6" , tip : "Enable termination on channel #6" } } ,
{ type : "Switch" , args : { title : "Termination #7" , outvar : "term_7" , tip : "Enable termination on channel #7" } } ,
] } ]
}
] ,
2019-10-02 12:16:07 +08:00
size : 'big' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_eem_source"
] ,
consumes : {
hp : 8 ,
eem : 2
2019-10-02 12:16:07 +08:00
}
} ,
'koster' : {
id : 'koster' ,
2020-03-02 20:57:38 +08:00
name : 'Grabber' ,
name _number : '6302' ,
name _codename : '' ,
2019-11-06 14:48:26 +08:00
price : 550 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_Grabber.svg' ,
2019-10-02 12:16:07 +08:00
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
] ,
2023-11-28 15:32:34 +08:00
options : [
{ type : "Radio" , args : { title : "Connectors" , outvar : "n_eem" , variants : [ "1 EEM" , "2 EEM" , "3 EEM" ] , tip : "Number of EEM ports to use." , fallback : 1 } } ,
] ,
2019-10-02 12:16:07 +08:00
size : 'small' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_eem_source"
] ,
consumes : {
hp : 4 ,
eem : 2
2019-10-02 12:16:07 +08:00
}
} ,
'clocker' : {
id : 'clocker' ,
name : 'Clocker' ,
2020-03-02 20:57:38 +08:00
name _number : '7210' ,
name _codename : '' ,
2019-11-06 14:48:26 +08:00
price : 525 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_Clocker.svg' ,
2019-10-02 12:16:07 +08:00
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
] ,
2023-11-28 15:32:34 +08:00
options : [
{ type : "Switch" , args : { title : "Ext CLK" , outvar : "ext_clk" } } ,
{ type : "Switch" , args : { title : "Ext power" , outvar : "ext_pwr" , "tip" : "Use external power supply in order to reduce number of used EEM connectors" } }
] ,
options _class : "clocker" ,
2019-10-02 12:16:07 +08:00
size : 'small' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_eem_source" ,
"no_clk_source" ,
"clk_resource"
] ,
consumes : {
hp : 4 ,
eem : 1 ,
clk : 1
2019-10-02 12:16:07 +08:00
} ,
2023-12-06 16:27:43 +08:00
resources : [
{ name : "clk" , max : 6 }
]
2019-10-02 12:16:07 +08:00
} ,
2019-11-06 14:48:26 +08:00
'stabilizer' : {
id : 'stabilizer' ,
2020-03-02 20:57:38 +08:00
name : 'DSP' ,
name _number : '8452' ,
name _codename : 'Stabilizer' ,
2019-12-03 18:20:11 +08:00
price : 2000 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_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
] ,
2023-11-28 15:32:34 +08:00
options : [
2024-03-27 16:14:05 +08:00
{ type : "SwitchLine" , args : { title : "IP" , outvar : "ip" ,
validator : { name : "ipv4or6" } ,
fallback : { text : "DHCP" , checked : false } ,
tip : "Set up IP address used by the device" } } ,
2023-11-28 15:32:34 +08:00
{ type : "Switch" , args : { title : "Ext power" , outvar : "ext_pwr" , "tip" : "Use external power supply in order to reduce number of used EEM connectors" } } ,
{ type : "Switch" , args : { title : "Term #0" , outvar : "term_0" , tip : "Enable termination on ADC channel #0" } } ,
{ type : "Switch" , args : { title : "Term #1" , outvar : "term_1" , tip : "Enable termination on ADC channel #1" } }
] ,
options _class : "stabilizer" ,
2019-10-02 12:16:07 +08:00
size : 'small' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_eem_source"
] ,
consumes : {
hp : 4 ,
eem : 1
} ,
2019-10-02 12:16:07 +08:00
} ,
2024-07-03 16:00:00 +08:00
'fast_servo' : {
id : 'fast_servo' ,
name : 'Fast DSP' ,
name _number : '8462' ,
name _codename : 'Fast Servo' ,
price : 2900 ,
image : '/images/shop/graphic-03_Fast-Servo.svg' ,
specs : [
'High-speed, low-latency servo (Stabilizer-compatible) module.' ,
'Trenz TE0715-04 SoC module (XC7Z015).' ,
'2 channel 125MHz 16bit ADC (LTC2195).' ,
'2 channel 125MHz 14bit DAC (AD9117).' ,
'100Base-T Ethernet.' ,
'Can work stand-alone with PoE or DC supply.'
] ,
options : [
{ type : "SwitchLine" , args : { title : "IP" , outvar : "ip" ,
validator : { name : "ipv4or6" } ,
fallback : { text : "DHCP" , checked : false } ,
tip : "Set up IP address used by the device" } } ,
{ type : "Switch" , args : { title : "Ext power" , outvar : "ext_pwr" , "tip" : "Use external power supply in order to reduce number of used EEM connectors" } } ,
{ type : "Switch" , args : { title : "Term #0" , outvar : "term_0" , tip : "Enable termination on ADC channel #0" } } ,
{ type : "Switch" , args : { title : "Term #1" , outvar : "term_1" , tip : "Enable termination on ADC channel #1" } }
] ,
options _class : "stabilizer" ,
size : 'small' ,
warnings : [
"no_eem_source"
] ,
consumes : {
hp : 4 ,
eem : 1
} ,
} ,
2019-10-02 12:16:07 +08:00
'mirny' : {
id : 'mirny' ,
2020-03-02 20:57:38 +08:00
name : 'Synthesizer' ,
2020-04-18 10:31:31 +08:00
name _number : '4456' ,
2020-03-02 20:57:38 +08:00
name _codename : 'Mirny' ,
2019-11-06 14:48:26 +08:00
price : 2660 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_Mirny.svg' ,
2019-10-02 12:16:07 +08:00
specs : [
2019-11-06 14:48:26 +08:00
'4-channel Wide-band PLL/VCO-based microwave frequency synthesiser.' ,
'53 MHz to >4 GHz.' ,
2023-06-14 17:43:02 +08:00
'Up to 13.6 GHz when using the mezzanine.' ,
2019-11-06 14:48:26 +08:00
'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
] ,
2023-11-28 15:32:34 +08:00
options : [
2024-03-27 16:14:05 +08:00
{ type : "SwitchLine" , args : { title : "Ext CLK" , outvar : "ext_clk" ,
validator : { name : "frequency" , params : { min : 10e6 , max : 600e6 } } ,
fallback : { text : "125 MHz" , checked : false } } }
2023-11-28 15:32:34 +08:00
] ,
2019-10-02 12:16:07 +08:00
size : 'small' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_eem_source" ,
"no_clk_source"
] ,
consumes : {
hp : 4 ,
eem : 1 ,
clk : 1
2019-10-02 12:16:07 +08:00
} ,
} ,
2023-06-14 17:43:02 +08:00
'almazny' : {
id : 'almazny' ,
2023-06-30 10:17:41 +08:00
name : 'HF Synthesizer' ,
2023-06-14 17:43:02 +08:00
name _number : '4457' ,
2023-06-30 10:17:41 +08:00
name _codename : 'Mirny + Almazny' ,
2023-06-14 17:43:02 +08:00
price : 3660 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_Almazny.svg' ,
2023-06-14 17:43:02 +08:00
specs : [
'Mirny with high frequency mezzanine.' ,
'Additional 4 channels up to 12 GHz.' ,
2023-06-30 10:18:35 +08:00
'Each Almazny channel outputs twice the frequency of its corresponding Mirny channel.' ,
2023-06-14 17:43:02 +08:00
] ,
2023-11-28 15:32:34 +08:00
options : [
2024-03-27 16:14:05 +08:00
{ type : "SwitchLine" , args : { title : "Ext CLK" , outvar : "ext_clk" ,
validator : { name : "frequency" , params : { min : 10e6 , max : 600e6 } } ,
fallback : { text : "125 MHz" , checked : false } } }
2023-11-28 15:32:34 +08:00
] ,
2023-06-14 17:43:02 +08:00
size : 'big' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_eem_source" ,
"no_clk_source"
] ,
consumes : {
hp : 8 ,
eem : 1 ,
clk : 1
} ,
2023-07-05 12:36:06 +08:00
} ,
'thermostat-eem' : {
id : 'thermostat-eem' ,
name : 'Thermostat EEM' ,
name _number : '8453' ,
name _codename : '' ,
price : 2600 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_Thermostat-EEM.svg' ,
2023-07-05 12:36:06 +08:00
specs : [
'4 TEC channels.' ,
'Sensor channel count: 8 differential, 16 single-ended.' ,
'Output HD44 DSUB connector.' ,
'Up to 8W (+/-2A with 4V compliance) heater/TEC drive from MAX1968 drivers.' ,
'Up to 16W (+4A 4V) from MAX1969 drivers.' ,
'100Base-T Ethernet with PoE.'
] ,
2023-11-28 15:32:34 +08:00
options : [
{ type : "Switch" , args : { title : "Ext power" , outvar : "ext_pwr" , "tip" : "Use external power supply in order to reduce number of used EEM connectors" } }
] ,
2023-07-05 12:36:06 +08:00
size : 'small' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_eem_source"
] ,
consumes : {
hp : 4 ,
eem : 1 ,
}
2023-08-10 12:27:06 +08:00
} ,
2024-07-04 13:28:02 +08:00
'thermostat2ch' : {
id : 'thermostat2ch' ,
name : 'Thermostat' ,
name _number : '8451' ,
name _codename : '' ,
price : 900 ,
image : '/images/shop/graphic-03_Thermostat2ch.svg' ,
specs : [
'2 TEC channels.' ,
'Parallel output 10 pin IDC 2.54mm and 5 pin 3.81mm connectors per channel.' ,
'Up to 8W (+/-2A with 4V compliance) heater/TEC drive from MAX1968 drivers.' ,
'100Base-T Ethernet with PoE.' ,
'Can stabilize temperature of Sinara 5432 DAC or external devices containing TEC and thermistor.'
] ,
size : 'small' ,
consumes : {
hp : 4
} ,
resources : [
{ name : "tec" , max : 2 }
]
} ,
2023-10-11 11:01:26 +08:00
'shuttler' : {
id : 'shuttler' ,
name : 'DAC' ,
name _number : '5716' ,
name _codename : 'Shuttler' ,
price : 8500 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_Shuttler.svg' ,
2023-10-11 11:01:26 +08:00
specs : [
2023-10-11 11:04:33 +08:00
'16-ch, 125 MSPS DAC EEM with remote analog front end board.' ,
'High DC resolution (up to ~18 bits with sigma-delta modulation) for trap electrode bias.' ,
'~15MHz default analog bandwidth.' ,
2023-10-11 11:01:26 +08:00
'AD9117 DACs (14 bits @ 125 MSPS, <1 LSB DNL).' ,
2023-10-11 11:04:33 +08:00
'Differential analog output via mini-SAS HD with shielded impedance-matched pairs.' ,
2023-10-11 11:30:57 +08:00
'Included remote analog front-end (AFE) board converts differential signals to ±10V single-ended at the point of use, with additional gain and filtering.' ,
2023-10-11 11:01:26 +08:00
] ,
size : 'big' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_eem_source" ,
"no_clk_source"
] ,
consumes : {
hp : 8 ,
eem : 1 ,
clk : 1
} ,
2023-10-11 11:01:26 +08:00
} ,
2023-08-10 12:27:06 +08:00
'pounder' : {
id : 'pounder' ,
name : 'PDH lock generator' ,
name _number : '4459' ,
name _codename : 'Stabilizer + Pounder' ,
price : 4460 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_Pounder.svg' ,
2023-08-10 12:27:06 +08:00
specs : [
'Stabilizer with Pounder daughter card.' ,
'2-channel Pound Drever Hall (PDH) lock generator.' ,
'AD9959 DDS (500MSPS, 10-bit).'
] ,
2023-11-28 15:32:34 +08:00
options : [
2024-03-27 16:14:05 +08:00
{ type : "SwitchLine" , args : { title : "IP" , outvar : "ip" ,
validator : { name : "ipv4or6" } ,
fallback : { text : "DHCP" , checked : false } ,
tip : "Set up IP address used by the device" } } ,
2023-11-28 15:32:34 +08:00
{ type : "Switch" , args : { title : "Ext power" , outvar : "ext_pwr" , "tip" : "Use external power supply in order to reduce number of used EEM connectors" } } ,
2024-03-27 16:14:05 +08:00
{ type : "SwitchLine" , args : { title : "Ext CLK" , outvar : "ext_clk" ,
fallback : { text : "125 MHz" , checked : false } , validator : { name : "frequency" , params : { min : 10e6 , max : 1e9 } } } } ,
2023-11-28 15:32:34 +08:00
{ type : "Switch" , args : { title : "Termination #0" , outvar : "term_0" , tip : "Enable termination on ADC channel #0" } } ,
{ type : "Switch" , args : { title : "Termination #1" , outvar : "term_1" , tip : "Enable termination on ADC channel #1" } }
] ,
2023-08-10 12:27:06 +08:00
size : 'big' ,
2023-12-06 16:27:43 +08:00
warnings : [
"no_eem_source" ,
"no_clk_source"
] ,
consumes : {
2024-08-09 12:03:43 +08:00
hp : 8 ,
2023-12-06 16:27:43 +08:00
eem : 1 ,
clk : 1
}
2023-10-10 17:34:52 +08:00
} ,
'eem_pwr_mod' : {
id : 'eem_pwr_mod' ,
name : 'EEM AC Power Module' ,
name _number : '1106' ,
name _codename : '' ,
price : 750 ,
2023-12-12 16:09:29 +08:00
image : '/images/shop/graphic-03_eem_pwr_mod.svg' ,
2023-10-10 17:34:52 +08:00
specs : [
2023-10-10 17:53:25 +08:00
"EEM AC power module." ,
"400W with forced cooling (25CFM), 200W with free air convection." ,
"Universal input." ,
"IEC inlet on front panel." ,
"EMC filter." ,
"LED current indicator." ,
"6 rear side outputs." ,
"Mains circuit protected with steel cover." ,
"Optional - external power brick will be shipped free of charge if removed."
2023-10-10 17:34:52 +08:00
] ,
size : 'big' ,
2023-12-06 16:27:43 +08:00
warnings : [ ] ,
consumes : {
2024-08-09 12:03:43 +08:00
hp : 8 ,
2023-12-06 16:27:43 +08:00
} ,
2023-10-10 17:34:52 +08:00
} ,
2024-08-01 15:30:37 +08:00
'kirdy' : {
id : 'kirdy' ,
name : 'Laser diode driver' ,
name _number : '1550' ,
name _codename : 'Kirdy' ,
price : 1700 ,
image : '/images/shop/graphic-03_Kirdy.svg' ,
specs : [
2024-08-04 12:01:07 +08:00
"Precision LD driver: 300mA max output current, 20-bit resolution, 4V compliance voltage." ,
"RMS noise 10Hz-1MHz: <200nA, density <300pA/√Hz." ,
"Low-frequency modulation input, DC-18MHz 3dB bandwidth, suitable for laser locks and linewidth reduction." ,
"High-frequency Bias-T modulation input, suitable for PDH sideband generation." ,
"Monitor photodiode and LD protection." ,
"Temperature controller: ±1A max current, sub-mK stability." ,
"Full digital control and power over Ethernet." ,
"Can ship with single-frequency narrow-linewidth laser pre-installed (1270-1610nm from USD +200.00, 633-1064nm from USD +4,000.00), fiber output on front panel." ,
"Also suitable for commercial or homebuilt ECDL heads (with additional piezo driver), and injection-locked Fabry-Perot diodes."
2024-08-01 15:30:37 +08:00
] ,
options : [
{ type : "Line" , args : { title : "IP" , outvar : "ip" ,
validator : { name : "ipv4" } ,
fallback : "192.168.1.128/24" ,
tip : "Set up IP address used by the device." } } ,
] ,
size : 'big' ,
type : null ,
warnings : [ ] ,
consumes : {
hp : 8 ,
} ,
} ,
2019-10-02 12:16:07 +08:00
} ,
columns : {
/ * * *
2024-03-15 15:22:05 +08:00
* catalog is the column containing all items on left aside ,
2019-10-02 12:16:07 +08:00
* name should not change
* /
2024-03-15 15:22:05 +08:00
'catalog' : {
id : 'catalog' ,
title : 'Catalog' ,
2019-10-02 12:16:07 +08:00
/* itemIds define items order - change order to suit your need */
2023-06-30 10:10:15 +08:00
categories : [
{ name : 'Core' ,
itemIds : [
'kasli' ,
'kaslisoc' ] } ,
{ name : 'TTL' ,
itemIds : [
'bnc-dio' ,
'sma-dio' ,
'mcx-dio' ,
'rj45-dio' ] } ,
{ name : 'RF' ,
itemIds : [
'clocker' ,
'urukul' ,
2023-11-28 15:32:34 +08:00
'urukul_4412' ,
2023-06-30 10:10:15 +08:00
'phaser' ,
'mirny' ,
2023-08-10 16:00:04 +08:00
'almazny' ,
'pounder' ] } ,
2023-06-30 10:10:15 +08:00
{ name : 'DAC/ADC' ,
itemIds : [
'zotino' ,
'fastino' ,
2024-07-09 17:30:59 +08:00
'hvamp32' ,
2023-10-11 11:01:26 +08:00
'novo' ,
'shuttler' ] } ,
2023-06-30 10:10:15 +08:00
{ name : 'Adapters' ,
itemIds : [
'idc-bnc-adapter' ,
'idc-sma-adapter' ,
2024-09-27 13:47:04 +08:00
'idc-mcx-adapter' ,
2023-06-30 10:10:15 +08:00
'hd68-idc-adapter' ,
'vhdcicarrier' ] } ,
2024-07-03 16:00:00 +08:00
{ name : 'Servos' ,
2023-06-30 10:10:15 +08:00
itemIds : [
2023-07-05 12:36:06 +08:00
'stabilizer' ,
2024-07-03 16:00:00 +08:00
'fast_servo' ,
2023-08-10 12:27:06 +08:00
'pounder' ,
2024-07-04 13:28:02 +08:00
'thermostat2ch' ,
2024-07-03 16:00:00 +08:00
'thermostat-eem' ] } ,
{ name : 'Misc' ,
itemIds : [
'koster' ,
2023-10-10 17:34:52 +08:00
'eem_pwr_mod' ,
2024-08-01 15:30:37 +08:00
'kirdy' ,
2023-10-10 17:34:52 +08:00
] }
2019-10-02 12:16:07 +08:00
] ,
} ,
2023-12-11 17:05:35 +08:00
"crates" : [ {
id : "crate0" ,
crate _mode : "rack" ,
2024-01-25 17:10:14 +08:00
fan _tray : false ,
2023-12-08 17:36:12 +08:00
items : [ ] ,
2023-12-12 16:09:29 +08:00
warnings : [ ] ,
occupiedHP : 0 ,
2024-01-05 17:22:53 +08:00
} ,
{
id : "spare" ,
name : "Spare cards" ,
crate _mode : "no_crate" ,
items : [ ] ,
warnings : [ ] ,
occupiedHP : 0 ,
}
]
2019-10-02 12:16:07 +08:00
} ,
} ;
window . shop _data = shop _data ;