diff --git a/hp4155/Custom_SMU/debug.ipynb b/hp4155/Custom_SMU/debug.ipynb index 6c1bf097ddf3281c4edcacd421d75f2e5da736cd..7044e738a7bd8122f06f4e3c98ce39752b8af636 100644 --- a/hp4155/Custom_SMU/debug.ipynb +++ b/hp4155/Custom_SMU/debug.ipynb @@ -3,13 +3,13 @@ { "cell_type": "code", "execution_count": 1, - "id": "8faef648-e31f-48c5-a101-d6070b2d1990", + "id": "70e36e46-2332-484d-9576-22f869e335bc", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "e492303ec1f2459e9f63b8498bc1129b", + "model_id": "aac9d803eab04d8487de412700c8bd31", "version_major": 2, "version_minor": 0 }, @@ -23,7 +23,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "85f2ead829654b5c857966936ec6680f", + "model_id": "3f50962b21b94d6c88e10a4ad2e15d1f", "version_major": 2, "version_minor": 0 }, @@ -37,7 +37,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "5c7be71e5aaf426497bd37ba6a4ee6d4", + "model_id": "f04dcfa5ab3c442f8c987de79a4b826c", "version_major": 2, "version_minor": 0 }, @@ -275,7 +275,7 @@ " # These are correcly defined and include the plotted ones\n", " values = {}\n", " for variable in variables:\n", - " key = f\"{variable['name']} ({variable['unit']})\"\n", + " key = variable['name']+\"(\"+variable['unit'] +\")\"\n", " values[key] = device.return_values(variable['name'])\n", "\n", " plot_results(values,device)\n", @@ -283,7 +283,7 @@ " # Save results\n", " df = pd.DataFrame(values)\n", "\n", - " filename = f\"{sample_series}_{field}_{dut}_{measurement_name}.txt\"\n", + " filename = f\"{sample_series}_{field}_{dut}_{measurement_name}_sweep.txt\"\n", " txt_file = create_file(filename)\n", " ini_file = os.path.splitext(txt_file)[0]+'.ini'\n", "\n", @@ -316,53 +316,53 @@ " for i, smu in enumerate(smus):\n", " config.add_section(f\"SMU{i+1}\")\n", " for key,value in smu.items():\n", - " config.set(f\"SMU{i+1}\",key,value)\n", + " config.set(f\"SMU{i+1}\",key,str(value))\n", "\n", " # Secondly the user functions\n", " config.add_section(\"USER FUNCTIONS\")\n", " for i, user_function in enumerate(user_functions):\n", " config.add_section(f\"USER FUNCTION {i+1}\")\n", " for key,value in user_function.items():\n", - " config.set(f\"USER FUNCTION {i+1}\",key,value)\n", + " config.set(f\"USER FUNCTION {i+1}\",key,str(value))\n", "\n", " # Then the 3rd page\n", " config.add_section(\"VAR1\")\n", " for key,value in var1.items():\n", - " config.set(\"VAR1\",key,value)\n", + " config.set(\"VAR1\",key,str(value))\n", "\n", " config.add_section(\"VAR2\")\n", " for key,value in var2.items():\n", - " config.set(\"VAR2\",key,value)\n", + " config.set(\"VAR2\",key,str(value))\n", " \n", " config.add_section(\"VARD\")\n", " for key, value in vard.items():\n", - " config.set(\"VARD\",key,value)\n", + " config.set(\"VARD\",key,str(value))\n", "\n", " config.add_section(\"PULSE\")\n", " for key,value in pulse.items():\n", - " config.set(\"PULSE\",key,value)\n", + " config.set(\"PULSE\",key,str(value))\n", " \n", " # Now The constant smus\n", " config.add_section('CONSTANT SMUS')\n", " for i, cons_smu in enumerate(cons_smus):\n", " config.add_section(f\"CONSTANT SMU{i+1}\")\n", " for key, value in cons_smu.items():\n", - " config.set(f\"CONSTANT SMU{i+1}\",key,value)\n", + " config.set(f\"CONSTANT SMU{i+1}\",key,str(value))\n", " \n", "\n", " # Page 4 The axes\n", " config.add_section('AXES')\n", " for i,axis in enumerate(axes):\n", - " config_add_section(f\"AXIS {i+1}\")\n", + " config.add_section(f\"AXIS {i+1}\")\n", " for key,value in axis.items():\n", - " config.set(f\"AXIS {i+1}\",key,value)\n", + " config.set(f\"AXIS {i+1}\",key,str(value))\n", " \n", " # Page 5 The varibles\n", " config.add_section(\"SAVED VARIABLES\")\n", " for i, variable in enumerate(variables):\n", " config.add_section(f\"VARIABLE {i+1}\")\n", " for key,value in variable.items():\n", - " config.set(f\"VARIABLE {i+1}\",key,value)\n", + " config.set(f\"VARIABLE {i+1}\",key,str(value))\n", "\n", " config.write(configfile)\n", " # Sampling Measurement Mode\n", @@ -375,7 +375,7 @@ " points=third_page[14,0].value,\n", " filter=int(third_page[17,0].value)\n", " )\n", - " duration = third_page[13,0].value\n", + " duration = third_page[15,0].value\n", "\n", " # Set the smus all constant\n", " #page 1\n", @@ -424,15 +424,10 @@ " device.total_sampling_time(duration)\n", "\n", " # Setup the constant SMUs\n", - " cons_smu_numbers = check_cons_smu_sampling(smus)\n", - " for i, cons_smu in enumerate(smus):\n", + " cons_smu_numbers = check_cons_smu_samp(smus)\n", + " for i, cons_smu in enumerate(cons_smus):\n", " if i+1 in cons_smu_numbers: # check if the constant smu was found in the first page func\n", - " device.setup_smu_sampling(i+1,cons_smu)\n", - "\n", - " # Set integration time\n", - " device.intergration_time(integration_time)\n", - " \n", - "\n", + " device.setup_smu_sampling(i+1,cons_smu) \n", "\n", " # Now set the axes\n", " setup_axes(axes,device)\n", @@ -469,7 +464,7 @@ " # These are correcly defined and include the plotted ones\n", " values = {}\n", " for variable in variables:\n", - " key = f\"{variable['name']} ({variable['unit']})\"\n", + " key = variable['name']+\"(\"+variable['unit'] +\")\"\n", " values[key] = device.return_values(variable['name'])\n", "\n", " plot_results(values,device)\n", @@ -510,41 +505,41 @@ " for i, smu in enumerate(smus):\n", " config.add_section(f\"SMU{i+1}\")\n", " for key,value in smu.items():\n", - " config.set(f\"SMU{i+1}\",key,value)\n", + " config.set(f\"SMU{i+1}\",key,str(value))\n", "\n", " # Secondly the user functions\n", " config.add_section(\"USER FUNCTIONS\")\n", " for i, user_function in enumerate(user_functions):\n", " config.add_section(f\"USER FUNCTION {i+1}\")\n", " for key,value in user_function.items():\n", - " config.set(f\"USER FUNCTION {i+1}\",key,value)\n", + " config.set(f\"USER FUNCTION {i+1}\",key,str(value))\n", "\n", " # Then the 3rd page\n", " config.add_section('SAMPLING PARAMETERS')\n", " for key,value in parameters.items():\n", - " config.set('SAMPLING PARAMETERS',key,value)\n", + " config.set('SAMPLING PARAMETERS',key,str(value))\n", "\n", " # Now the constant smus\n", " config.add_section('CONSTANT SMUS')\n", " for i, cons_smu in enumerate(cons_smus):\n", " config.add_section(f\"CONSTANT SMU{i+1}\")\n", " for key, value in cons_smu.items():\n", - " config.set(f\"CONSTANT SMU{i+1}\",key,value)\n", + " config.set(f\"CONSTANT SMU{i+1}\",key,str(value))\n", " \n", "\n", " # Page 4 The axes\n", " config.add_section('AXES')\n", " for i,axis in enumerate(axes):\n", - " config_add_section(f\"AXIS {i+1}\")\n", + " config.add_section(f\"AXIS {i+1}\")\n", " for key,value in axis.items():\n", - " config.set(f\"AXIS {i+1}\",key,value)\n", + " config.set(f\"AXIS {i+1}\",key,str(value))\n", " \n", " # Page 5 The varibles\n", " config.add_section(\"SAVED VARIABLES\")\n", " for i, variable in enumerate(variables):\n", " config.add_section(f\"VARIABLE {i+1}\")\n", " for key,value in variable.items():\n", - " config.set(f\"VARIABLE {i+1}\",key,value)\n", + " config.set(f\"VARIABLE {i+1}\",key,str(value))\n", "\n", " config.write(configfile)\n", " else: # Stress\n", @@ -568,7 +563,7 @@ " )\n", "\n", " # Now define the parameters\n", - " duration = third_page[13,0].value\n", + " duration = third_page[15,0].value\n", " if duration <= 0:\n", " error_box(\"Stress Time should be positive!\")\n", " change_state(first_page,second_page,third_page,fourth_page,fifth_page)\n", @@ -611,7 +606,7 @@ " ini.disabled = False\n", " return\n", "\n", - " filename = f\"{sample_series}_{field}_{dut}_{measurement_name}_sweep.txt\"\n", + " filename = f\"{sample_series}_{field}_{dut}_{measurement_name}_stress.txt\"\n", " txt_file = create_file(filename)\n", " ini_file = os.path.splitext(txt_file)[0]+'.ini'\n", "\n", @@ -643,9 +638,9 @@ " config.set(f\"SMU{i+1}\",key,value)\n", "\n", " config.add_section('PARAMETERS')\n", - " config.set('PARAMETERS', \"STRESS TIME\",duration)\n", - " config.set('PARAMETERS', \"HOLD TIME\",hold_time)\n", - " config.set('PARAMETERS', \"FILTER\",filter)\n", + " config.set('PARAMETERS', \"STRESS TIME\",str(duration))\n", + " config.set('PARAMETERS', \"HOLD TIME\",str(hold_time))\n", + " config.set('PARAMETERS', \"FILTER\",str(filter))\n", " \n", " \n", " # Now the constant smus\n", @@ -653,7 +648,7 @@ " for i, cons_smu in enumerate(cons_smus):\n", " config.add_section(f\"CONSTANT SMU{i+1}\")\n", " for key, value in cons_smu.items():\n", - " config.set(f\"CONSTANT SMU{i+1}\",key,value)\n", + " config.set(f\"CONSTANT SMU{i+1}\",key,str(value))\n", " config.write(configfile)\n", "\n", " # End of fuction\n", @@ -707,6 +702,14 @@ " \n", "start.on_click(on_start_clicked)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5dcfff06-d975-4473-b3d1-6a3543e319d7", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/hp4155/Custom_SMU/lib/help.py b/hp4155/Custom_SMU/lib/help.py index a6966441c7d9ab9d38c4efe3b1f2368987f90a50..929521d4ba50a83b48dd85664781e7e07bd04e75 100644 --- a/hp4155/Custom_SMU/lib/help.py +++ b/hp4155/Custom_SMU/lib/help.py @@ -132,22 +132,22 @@ def plot_results(values,device): fig,ax1 = plt.subplots() ax1.set_xlabel(x_label) - ax1.set_ylabel(y1_label,color = 'y') # Yellow Color + ax1.set_ylabel(y1_label,color = 'tab:red') # Yellow Color ax1.set_xscale(x_scale) ax1.set_yscale(y1_scale) - ax1.scatter(x_values,y1_values,color='y') - ax1.tick_params(axis ='y', labelcolor ='y',which='both') + ax1.scatter(x_values,y1_values,color='tab:red') + ax1.tick_params(axis ='y', labelcolor ='tab:red',which='both') if y2_var!= "": # Adding Twin Axes # Blue color ax2 = ax1.twinx() - ax2.set_ylabel(y2_label,color = 'b') + ax2.set_ylabel(y2_label,color = 'tab:green') ax2.set_yscale(y2_scale) - ax2.scatter(x_values,y2_values,color='b') - ax2.tick_params(axis ='y', labelcolor ='b',which='both') + ax2.scatter(x_values,y2_values,color='tab:green') + ax2.tick_params(axis ='y', labelcolor ='tab:green',which='both') display(fig) # The checks will be corrected later @@ -175,7 +175,7 @@ def create_file(filename): def check_cons_smu_samp(smus:list): cons_smu_numbers = [] for i,smu in enumerate(smus): - if smu['mode']!='COMM': # Non Grounded SMUs + if smu['mode']!='COMM' and smu["disabled"]==False: # Non Grounded active SMUs cons_smu_numbers.append(i+1) # for the actual number of smus return cons_smu_numbers