Skip to content

Commit

Permalink
Fix merge conflict with layout
Browse files Browse the repository at this point in the history
  • Loading branch information
napowderly committed Dec 4, 2024
2 parents 606b504 + cd4820c commit 1a47c80
Show file tree
Hide file tree
Showing 10 changed files with 10,560 additions and 14,090 deletions.
20 changes: 18 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
# cell-sim
# Cell Simulator

Wooohooo a new package!
This cell-sim is designed to mimic a LiPo battery pack for develpoment of the surrounding electronics, like a BMS.

- 16 channels
- Open-Source hardware design, you can embed onto your own HIL setup
- ⚡️ 0-5V and 0-500mA per channel
- DMM muxed to each channel for arbitarily precise measurment
- Open-circuit simulation on each channel
- 📏 16bit ADC feedback for voltage and current
- 🔌 USB + 100MBit Ethernet + WiFi w/ Python software interface

![IMG_0374 3](https://github.com/user-attachments/assets/d8fa4661-c460-48e2-a26a-71079aa79707)

## Design overview

![Cell Diagram](docs/cell.png)

![Board Render](docs/board.png)
106 changes: 106 additions & 0 deletions docs/Cell.drawio
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36" version="24.8.6">
<diagram name="Page-1" id="3JFedEkxwdhEUqEdjneB">
<mxGraphModel dx="660" dy="1817" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="yu4wVyU20quHp_qzIFxP-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="yu4wVyU20quHp_qzIFxP-1" target="yu4wVyU20quHp_qzIFxP-4">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-1" value="Isolated DCDC" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="100" y="410" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="yu4wVyU20quHp_qzIFxP-2" target="yu4wVyU20quHp_qzIFxP-1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-2" value="12V" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="30" y="410" width="50" height="60" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="yu4wVyU20quHp_qzIFxP-4" target="yu4wVyU20quHp_qzIFxP-6">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-4" value="Buck" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="180" y="410" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="yu4wVyU20quHp_qzIFxP-6" target="yu4wVyU20quHp_qzIFxP-13">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-6" value="LDO" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="260" y="410" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" edge="1" parent="1" source="yu4wVyU20quHp_qzIFxP-7" target="yu4wVyU20quHp_qzIFxP-8">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="yu4wVyU20quHp_qzIFxP-7" target="yu4wVyU20quHp_qzIFxP-4">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="yu4wVyU20quHp_qzIFxP-7" target="yu4wVyU20quHp_qzIFxP-6">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="yu4wVyU20quHp_qzIFxP-7" target="yu4wVyU20quHp_qzIFxP-15">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-7" value="I2C Isolator" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="100" y="330" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-8" value="I2C MUX" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="30" y="330" width="50" height="60" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="yu4wVyU20quHp_qzIFxP-13" target="yu4wVyU20quHp_qzIFxP-18">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="yu4wVyU20quHp_qzIFxP-13" target="yu4wVyU20quHp_qzIFxP-20">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="400" y="510" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-13" value="Current Shunt" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="340" y="410" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="yu4wVyU20quHp_qzIFxP-15" target="yu4wVyU20quHp_qzIFxP-13">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-15" value="ADC" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="340" y="330" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="yu4wVyU20quHp_qzIFxP-18" target="yu4wVyU20quHp_qzIFxP-27">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-18" value="Output Relay" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="420" y="410" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-20" value="DMM Relay" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="420" y="480" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="yu4wVyU20quHp_qzIFxP-22" target="yu4wVyU20quHp_qzIFxP-18">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="yu4wVyU20quHp_qzIFxP-22" target="yu4wVyU20quHp_qzIFxP-20">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="500" y="360" />
<mxPoint x="500" y="510" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-22" value="GPIO Expander" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="420" y="330" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.639;entryY=-0.024;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="yu4wVyU20quHp_qzIFxP-7" target="yu4wVyU20quHp_qzIFxP-22">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="290" y="360" />
<mxPoint x="290" y="310" />
<mxPoint x="458" y="310" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="yu4wVyU20quHp_qzIFxP-27" value="Cell Output" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="520" y="410" width="60" height="60" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
Binary file added docs/board.png
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 docs/cell.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 1a47c80

Please sign in to comment.