Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
59b241c
Replacement pmf_cast with a standard C++11 solution: std::function an…
homewsn Feb 19, 2024
8ec8c8c
Fix warning/error: incompatible implicit declaration of built-in func…
homewsn Feb 19, 2024
71a06c4
Replace __builtin_clz with __CLZ (CMSIS standard)
homewsn Feb 19, 2024
e0092c3
Variable length arrays (VLAs) is not C++11 standard but C99
homewsn Feb 19, 2024
c51c008
Define M_PI and M_SQRT1_2 if not defined
homewsn Feb 19, 2024
f489e21
Correct __BKPT value
homewsn Feb 19, 2024
a3f9b37
Fix warning/error: invalid conversion from 'Widget*' to 'MenuEntry*' …
homewsn Feb 19, 2024
366c3ad
Fix warning/error: invalid conversion from 'uint32_t* {aka long unsig…
homewsn Feb 19, 2024
7f1b8b8
Fix warning/error: more than one instance of overloaded function "abs…
homewsn Feb 19, 2024
faf3a8d
To avoid possible linker errors, a C99 inline function should additio…
homewsn Feb 19, 2024
181ca5b
Own HardFault_Handler for each compiler
homewsn Feb 19, 2024
c42f866
Correct calibration resistor value. Thanks to wocard2
homewsn Feb 19, 2024
9d61c5b
Correct Vbias0 of AD5941. Thanks to wocard2
homewsn Feb 19, 2024
53339d8
Correct typical value for the Internal reference voltage of the STM32…
homewsn Feb 19, 2024
723cff2
Add support for XPT2046 touch controller
homewsn Feb 19, 2024
5920226
Change debug options
homewsn Feb 20, 2024
8c3ef7b
Add IAR project
homewsn Feb 20, 2024
5ffa8f2
Add a modified version of the circuit and PCB
homewsn Feb 20, 2024
a314102
Add laser-cut acrylic case design
homewsn Feb 20, 2024
466d0d0
Add new pictures
homewsn Feb 20, 2024
41a3445
Add to README.md
homewsn Feb 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# LCR Meter

![Inductance Measurement](pictures/Inductor.jpg)
![Inductance Measurement](pictures/original/Inductor.jpg)

### Key specifications
* Measurement frequency: 100Hz-200kHz
Expand All @@ -17,4 +17,11 @@
* ESR
* Quality factor
##### Example of a sweep, showing the self-resonant frequency of a capacitor at approximately 5.5kHz
![Inductance Measurement](pictures/Cap.jpg)
![Inductance Measurement](pictures/original/Cap.jpg)

#### Modified version:
* Two possible toolchains: System Workbench for STM32 or IAR
* Slightly modified PCB
* Laser-cut acrylic case
##### Resistance measurement 1 kOhm +- 0.1%
![Resistance measurement](pictures/modified/precision_resistor_1k.jpg)
Binary file added hardware/modified/case/LCR-meter-case.zip
Binary file not shown.
Binary file added hardware/modified/case/case.SLDASM
Binary file not shown.
Binary file added hardware/modified/case/fixer-display-left.SLDPRT
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added hardware/modified/case/fixer-main-rear-top.SLDPRT
Binary file not shown.
Binary file added hardware/modified/case/layout.DWG
Binary file not shown.
Binary file added hardware/modified/case/layout.SLDASM
Binary file not shown.
Binary file added hardware/modified/case/layout.SLDDRW
Binary file not shown.
Binary file added hardware/modified/case/layout.cdr
Binary file not shown.
Binary file added hardware/modified/case/layout_curves.cdr
Binary file not shown.
Binary file added hardware/modified/case/layout_curves.dwg
Binary file not shown.
Binary file added hardware/modified/case/side-back.SLDPRT
Binary file not shown.
Binary file added hardware/modified/case/side-front.SLDPRT
Binary file not shown.
Binary file added hardware/modified/case/side-x.SLDPRT
Binary file not shown.
Binary file added hardware/modified/case/side-y.SLDPRT
Binary file not shown.
Binary file added hardware/modified/case/side-z.SLDPRT
Binary file not shown.
6,249 changes: 6,249 additions & 0 deletions hardware/modified/pcb/LCR.brd

Large diffs are not rendered by default.

20,550 changes: 20,550 additions & 0 deletions hardware/modified/pcb/LCR.sch

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions hardware/modified/pcb/ReadMe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Changed electrical circuit and printed circuit board:
- TAG-CONNECT ICSP connector replaced with pin header
- SI8651EB-B-IU replaced by ADuM1401CRWZ
- added USBLC6-2P6 for ESD protection on USB
- the display pin header is moved closer to the edge of the board for a display tighter fit
- added a fourth hole for mounting
Binary file added hardware/modified/pcb/gerber_files.zip
Binary file not shown.
Binary file added hardware/modified/pcb/lib/adum140x.lbr
Binary file not shown.
147 changes: 147 additions & 0 deletions hardware/modified/pcb/lib/alemv.lbr
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="9.4.2">
<drawing>
<settings>
<setting alwaysvectorfont="no"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.1" unitdist="inch" unit="inch" style="lines" multiple="1" display="no" altdistance="0.01" altunitdist="inch" altunit="inch"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="2" name="Route2" color="16" fill="1" visible="no" active="yes"/>
<layer number="3" name="Route3" color="17" fill="1" visible="no" active="yes"/>
<layer number="4" name="Route4" color="18" fill="1" visible="no" active="yes"/>
<layer number="5" name="Route5" color="19" fill="1" visible="no" active="yes"/>
<layer number="6" name="Route6" color="25" fill="1" visible="no" active="yes"/>
<layer number="7" name="Route7" color="26" fill="1" visible="no" active="yes"/>
<layer number="8" name="Route8" color="27" fill="1" visible="no" active="yes"/>
<layer number="9" name="Route9" color="28" fill="1" visible="no" active="yes"/>
<layer number="10" name="Route10" color="29" fill="1" visible="no" active="yes"/>
<layer number="11" name="Route11" color="30" fill="1" visible="no" active="yes"/>
<layer number="12" name="Route12" color="20" fill="1" visible="no" active="yes"/>
<layer number="13" name="Route13" color="21" fill="1" visible="no" active="yes"/>
<layer number="14" name="Route14" color="22" fill="1" visible="no" active="yes"/>
<layer number="15" name="Route15" color="23" fill="1" visible="no" active="yes"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>
<layer number="20" name="Dimension" color="24" fill="1" visible="yes" active="yes"/>
<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="25" name="tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="26" name="bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="27" name="tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="28" name="bValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="29" name="tStop" color="7" fill="3" visible="no" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="no" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="no" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="no" active="yes"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="yes"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="yes"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>
<layer number="37" name="tTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="38" name="bTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="39" name="tKeepout" color="4" fill="11" visible="yes" active="yes"/>
<layer number="40" name="bKeepout" color="1" fill="11" visible="yes" active="yes"/>
<layer number="41" name="tRestrict" color="4" fill="10" visible="yes" active="yes"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="yes" active="yes"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="yes" active="yes"/>
<layer number="44" name="Drills" color="7" fill="1" visible="no" active="yes"/>
<layer number="45" name="Holes" color="7" fill="1" visible="no" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="yes" active="yes"/>
<layer number="49" name="Reference" color="7" fill="1" visible="yes" active="yes"/>
<layer number="51" name="tDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="88" name="SimResults" color="9" fill="1" visible="yes" active="yes"/>
<layer number="89" name="SimProbes" color="9" fill="1" visible="yes" active="yes"/>
<layer number="90" name="Modules" color="5" fill="1" visible="yes" active="yes"/>
<layer number="91" name="Nets" color="2" fill="1" visible="yes" active="yes"/>
<layer number="92" name="Busses" color="1" fill="1" visible="yes" active="yes"/>
<layer number="93" name="Pins" color="2" fill="1" visible="yes" active="yes"/>
<layer number="94" name="Symbols" color="4" fill="1" visible="yes" active="yes"/>
<layer number="95" name="Names" color="7" fill="1" visible="yes" active="yes"/>
<layer number="96" name="Values" color="7" fill="1" visible="yes" active="yes"/>
<layer number="97" name="Info" color="7" fill="1" visible="yes" active="yes"/>
<layer number="98" name="Guide" color="6" fill="1" visible="yes" active="yes"/>
</layers>
<library>
<packages>
<package name="SOT23-6" urn="urn:adsk.eagle:footprint:8086245/1">
<description>&lt;b&gt;Small Outline Transistor&lt;/b&gt; 6 lead</description>
<wire x1="1.422" y1="-0.781" x2="-1.423" y2="-0.781" width="0.1524" layer="51"/>
<wire x1="-1.423" y1="-0.781" x2="-1.423" y2="0.781" width="0.1524" layer="21"/>
<wire x1="-1.423" y1="0.781" x2="1.422" y2="0.781" width="0.1524" layer="51"/>
<wire x1="1.422" y1="0.781" x2="1.422" y2="-0.781" width="0.1524" layer="21"/>
<circle x="-1.15" y="-0.5" radius="0.1" width="0" layer="21"/>
<smd name="1" x="-0.95" y="-1.15" dx="0.6" dy="0.9" layer="1"/>
<smd name="2" x="0" y="-1.15" dx="0.6" dy="0.9" layer="1"/>
<smd name="3" x="0.95" y="-1.15" dx="0.6" dy="0.9" layer="1"/>
<smd name="4" x="0.95" y="1.15" dx="0.6" dy="0.9" layer="1"/>
<smd name="5" x="0" y="1.15" dx="0.6" dy="0.9" layer="1"/>
<smd name="6" x="-0.95" y="1.15" dx="0.6" dy="0.9" layer="1"/>
<text x="-1.397" y="-2.672" size="1.016" layer="27" ratio="10">&gt;VALUE</text>
<text x="-1.397" y="1.702" size="1.016" layer="25" ratio="10">&gt;NAME</text>
<rectangle x1="-1.2" y1="-1.4" x2="-0.7" y2="-0.8" layer="51"/>
<rectangle x1="-0.25" y1="-1.4" x2="0.25" y2="-0.8" layer="51"/>
<rectangle x1="0.7" y1="-1.4" x2="1.2" y2="-0.8" layer="51"/>
<rectangle x1="0.7" y1="0.8" x2="1.2" y2="1.4" layer="51"/>
<rectangle x1="-0.25" y1="0.8" x2="0.25" y2="1.4" layer="51"/>
<rectangle x1="-1.2" y1="0.8" x2="-0.7" y2="1.4" layer="51"/>
</package>
</packages>
<symbols>
<symbol name="USBLC6-2P6">
<pin name="IO1" x="-12.446" y="2.54" length="short"/>
<pin name="GND" x="-12.446" y="0" length="short" direction="pwr"/>
<pin name="IO2" x="-12.446" y="-2.54" length="short"/>
<pin name="IO2@1" x="10.414" y="-2.54" length="short" rot="R180"/>
<pin name="VBUS" x="10.414" y="0" length="short" direction="pwr" rot="R180"/>
<pin name="IO1@1" x="10.414" y="2.54" length="short" rot="R180"/>
<wire x1="-9.906" y1="-5.08" x2="7.874" y2="-5.08" width="0.254" layer="94"/>
<wire x1="7.874" y1="-5.08" x2="7.874" y2="5.08" width="0.254" layer="94"/>
<wire x1="7.874" y1="5.08" x2="-9.906" y2="5.08" width="0.254" layer="94"/>
<wire x1="-9.906" y1="5.08" x2="-9.906" y2="-5.08" width="0.254" layer="94"/>
<text x="-5.08" y="6.35" size="1.778" layer="95">&gt;NAME</text>
<text x="-5.588" y="-7.62" size="1.778" layer="96">&gt;VALUE</text>
</symbol>
</symbols>
<devicesets>
<deviceset name="USBLC6-2P6" prefix="U">
<description>Very low capacitance ESD protection of VBUS (USB)</description>
<gates>
<gate name="G$1" symbol="USBLC6-2P6" x="25.4" y="0"/>
</gates>
<devices>
<device name="" package="SOT23-6">
<connects>
<connect gate="G$1" pin="GND" pad="2"/>
<connect gate="G$1" pin="IO1" pad="1"/>
<connect gate="G$1" pin="IO1@1" pad="6"/>
<connect gate="G$1" pin="IO2" pad="3"/>
<connect gate="G$1" pin="IO2@1" pad="4"/>
<connect gate="G$1" pin="VBUS" pad="5"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
</devicesets>
</library>
</drawing>
<compatibility>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports URNs for individual library
assets (packages, symbols, and devices). The URNs of those assets
will not be understood (or retained) with this version.
</note>
</compatibility>
</eagle>
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file added pictures/modified/alligator_clips.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pictures/modified/capacitor_220uF.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pictures/modified/pcb_bottom_side.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pictures/modified/pcb_fully soldered.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pictures/modified/pcb_soldered_digital_part.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pictures/modified/pcb_top_side.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pictures/modified/precision_resistor_1k.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pictures/modified/resistor_10k.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pictures/modified/top_view.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
7 changes: 7 additions & 0 deletions software/IAR/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# IAR files
*.dep
*.ewd
*.ewt
settings/
Debug/
Release/
Loading