{"id":22120388,"url":"https://github.com/znitche/picovoltmeter","last_synced_at":"2025-07-25T12:33:12.582Z","repository":{"id":156655942,"uuid":"446441355","full_name":"zNitche/picoVoltmeter","owner":"zNitche","description":"Raspberry Pi Pico ADC Voltmeter","archived":true,"fork":false,"pushed_at":"2024-04-30T17:50:22.000Z","size":1533,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-02T13:11:25.841Z","etag":null,"topics":["adc","micropython","raspberry-pi-pico","voltmeter"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zNitche.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-10T13:48:22.000Z","updated_at":"2024-09-16T14:07:59.000Z","dependencies_parsed_at":"2024-12-02T08:03:54.532Z","dependency_job_id":null,"html_url":"https://github.com/zNitche/picoVoltmeter","commit_stats":null,"previous_names":["znitche/picovoltmeter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zNitche/picoVoltmeter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zNitche%2FpicoVoltmeter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zNitche%2FpicoVoltmeter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zNitche%2FpicoVoltmeter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zNitche%2FpicoVoltmeter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zNitche","download_url":"https://codeload.github.com/zNitche/picoVoltmeter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zNitche%2FpicoVoltmeter/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267007598,"owners_count":24020261,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-25T02:00:09.625Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adc","micropython","raspberry-pi-pico","voltmeter"],"created_at":"2024-12-01T14:23:11.992Z","updated_at":"2025-07-25T12:33:12.265Z","avatar_url":"https://github.com/zNitche.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## RPiPico Voltmeter\n\n---\n\nExperiments with Raspberry Pi Pico ADC voltmeter\n\n---\n\n### Parts\n| Part Name                      | Quantity |\n|--------------------------------|:--------:|\n| Raspberry Pi Pico              |    1     |\n| 10K Ω resistor                 |    1     |\n| 2.2K Ω resistor                |    1     |\n| 330 Ω resistor                 |    1     |\n| LM4040 voltage reference diode |    1     |\n| 3.3V Zener diode               |    1     |\n| 10uF ceramic capacitor         |    2     |\n\n### Experiments\nSeries of experiments performed measuring 12V input voltage in order to find the best method to reduce ADC noise.\nInput voltage is supplied through voltage divider to maintain voltage range safe for Pico ADC\nin this case 1:6 ratio so 6V of input voltage == 1V on ADC Pin.\n\nMy conclusion is that the best results can be achieved by using a voltage reference diode (LM4040) in combination with ceramic capacitors,\nalthough to get the most accurate readings it may be necessary to perform voltage measurements and set the \nvoltage divider value (`VOLTAGE_DIVIDER_FACTOR`) for different voltage ranges.\nZener diode used for extra protection may affect voltage divider ratio, it can be checked and adjusted (if needed) \nwith digital voltmeter.\n\n#### Using internal reference voltage (ADC range 0V - 3.3V)\n\n##### Voltage Divider\n\n![only_voltage_divider_diagram](.media/diagrams/only_voltage_divider.png)\n![only_voltage_divider](.media/plots/only_voltage_divider.png)\n\n##### Voltage Divider + Zener diode\n\n![voltage_divider_zener_diode_diagram](.media/diagrams/voltage_divider_zener_diode.png)\n![voltage_divider_zener_diode](.media/plots/voltage_divider_zener_diode.png)\n\n##### Voltage Divider + Ceramic Capacitor\n\n![voltage_divider_ceramic_cap_diagram](.media/diagrams/voltage_divider_ceramic_cap.png)\n![voltage_divider_ceramic_cap](.media/plots/voltage_divider_ceramic_cap.png)\n\n##### Voltage Divider + 2x Ceramic Capacitor\n\n![voltage_divider_2x_ceramic_cap_diagram](.media/diagrams/voltage_divider_2x_ceramic_cap.png)\n![voltage_divider_2x_ceramic_cap](.media/plots/voltage_divider_2x_ceramic_cap.png)\n\n#### Using external reference voltage (ADC range 0V - 3V)\n\n##### Voltage Divider + Ceramic Capacitor + LM4040 + Ceramic Capacitor (The best results)\n\n![voltage_divider_ceramic_cap_lm4040_internal_power_ceramic_cap_diagram](.media/diagrams/voltage_divider_ceramic_cap_lm4040_internal_power_ceramic_cap.png)\n![voltage_divider_ceramic_cap_lm4040_internal_power_ceramic_cap](.media/plots/voltage_divider_ceramic_cap_lm4040_internal_power_ceramic_cap.png)\n\n##### Voltage Divider + Ceramic Capacitor + LM4040 + Ceramic Capacitor + Zener diode\n\n![voltage_divider_ceramic_cap_lm4040_internal_power_ceramic_cap_zener_diagram](.media/diagrams/voltage_divider_ceramic_cap_lm4040_internal_power_ceramic_cap_zener.png)\n![voltage_divider_ceramic_cap_lm4040_internal_power_ceramic_cap_zener](.media/plots/voltage_divider_ceramic_cap_lm4040_internal_power_ceramic_cap_zener.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fznitche%2Fpicovoltmeter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fznitche%2Fpicovoltmeter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fznitche%2Fpicovoltmeter/lists"}