<feed xmlns='http://www.w3.org/2005/Atom'>
<title>iot-contact/pcb/iot-contact.kicad_sch, branch main</title>
<subtitle>IoT device to check if doors and windows are closed or open</subtitle>
<id>https://cgit.xengineering.eu/iot-contact/atom?h=main</id>
<link rel='self' href='https://cgit.xengineering.eu/iot-contact/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/'/>
<updated>2025-08-10T15:36:15Z</updated>
<entry>
<title>pcb: Place test points</title>
<updated>2025-08-10T15:36:15Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-08-10T15:36:15Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=c50d7275a98c420506c1be35d1c067394af700f5'/>
<id>urn:sha1:c50d7275a98c420506c1be35d1c067394af700f5</id>
<content type='text'>
They should be used to easier connect cables to the board to debug
hardware or firmware issues.
</content>
</entry>
<entry>
<title>pcb: main: Set all part values</title>
<updated>2025-08-10T15:28:31Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-08-10T15:28:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=69ac0e4b43d0c48cca58008d41d4551bb723d510'/>
<id>urn:sha1:69ac0e4b43d0c48cca58008d41d4551bb723d510</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pcb: Implement RJ45 termination and shielding</title>
<updated>2025-08-10T14:38:52Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-08-10T14:38:52Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=a7ce8945983816c77b9d0b40e9619857b6721065'/>
<id>urn:sha1:a7ce8945983816c77b9d0b40e9619857b6721065</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pcb: Add TODO for RJ45 connector</title>
<updated>2025-07-29T09:52:27Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-29T09:52:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=939abbffbb0d1f120df017a6984f4a24af8c86da'/>
<id>urn:sha1:939abbffbb0d1f120df017a6984f4a24af8c86da</id>
<content type='text'>
Adding this TODO text and marking the termination and shielding related
pins as unconnected makes the ERC clean. This allows to right now fail
the build in case of bad ERC.

This is preferred to not unintentionally inject other issues. The RJ45
connector and shielding / termination has to be reworked anyway.
</content>
</entry>
<entry>
<title>pcb: Fix +3V3 and +3.3V confusion</title>
<updated>2025-07-27T16:01:47Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-27T16:01:47Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=514352748fee605be176e2f37dd9b12047458503'/>
<id>urn:sha1:514352748fee605be176e2f37dd9b12047458503</id>
<content type='text'>
ERC brought up that those two global power labels were mixed. This is of
course a design bug which is now fixed by consistently using +3.3V.
</content>
</entry>
<entry>
<title>pcb: Remove 4-pin blind connector</title>
<updated>2025-07-27T15:43:05Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-27T15:43:05Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=95ecbd8c555d3021a08bedb4234f38abd0df2db3'/>
<id>urn:sha1:95ecbd8c555d3021a08bedb4234f38abd0df2db3</id>
<content type='text'>
The old concept was to have three connectors:

- 2-pin for contact loop
- 3-pin for AC supply (PE, N, L)
- 4-pin for blind connection (PE, N, L_UP, L_DOWN)

The new concept is:

- 2-pin for contact loop
- 3-pin for AC supply (L) and blind connection (L_UP, L_DOWN)

This saves the PCB space for one of the biggest parts. Furthermore it
reduces space constraints for the PCB routing.

The removed neutral and protective earth pins should not be a problem.
It is less convenient for mounting since additional connectors between
the supply and blind cable are required but apart from that N and PE
would not have safety benefits in the current design.

This used to be different when an aluminium case was considered at least
as option. But the requirements for PE connection of the two halves of
the housing would have a huge space requirement. Thus an anyway cheaper
plastic case is the current goal.
</content>
</entry>
<entry>
<title>pcb: power: Add `PWR_FLAG` symbols</title>
<updated>2025-07-25T20:25:27Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-25T20:02:41Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=d3e7f19f1f87b03e9a7c8a170b9c4351ac565268'/>
<id>urn:sha1:d3e7f19f1f87b03e9a7c8a170b9c4351ac565268</id>
<content type='text'>
This resolves ERC issues. The ERC complains that an power input is not
fed by a power output if there is a component like a ferrite bead or 0
Ohm resistor between the two.

The `PWR_FLAG` tells the ERC that it was explicitly checked that this is
not a mistake.
</content>
</entry>
<entry>
<title>pcb: Fix open line ERC issue</title>
<updated>2025-07-25T19:49:35Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-25T19:49:35Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=0937bceda70b14f9ac66f58954eb4dc91bc15068'/>
<id>urn:sha1:0937bceda70b14f9ac66f58954eb4dc91bc15068</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pcb: Select fuse holder</title>
<updated>2025-07-25T16:52:35Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-25T16:44:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=a5c810a52c6157648f234edac6654fff325d0765'/>
<id>urn:sha1:a5c810a52c6157648f234edac6654fff325d0765</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pcb: Remove wipe button pull-up resistor</title>
<updated>2025-07-25T16:35:13Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-25T16:35:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=00410764a9c6c13eea872b029a6055a9e6cc5d3f'/>
<id>urn:sha1:00410764a9c6c13eea872b029a6055a9e6cc5d3f</id>
<content type='text'>
The internal pull-up resistor of the STM32 can be used.
</content>
</entry>
<entry>
<title>pcb: Reset part annotations</title>
<updated>2025-07-25T16:21:10Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-25T16:21:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=68d56b6f8e1abeaaa6982245bb73e9f9d712b44c'/>
<id>urn:sha1:68d56b6f8e1abeaaa6982245bb73e9f9d712b44c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pcb: Remove resistors for ESD protection</title>
<updated>2025-07-25T15:28:27Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-25T15:28:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=4a86aafe5d6ad1f16381ed339b3ec641239be3e2'/>
<id>urn:sha1:4a86aafe5d6ad1f16381ed339b3ec641239be3e2</id>
<content type='text'>
It is hard to say if these are necessary. For sure they are not
necessary anymore when the device is assembled inside the case. Thus the
risk is taken to provide some more space and reduce assembly effort.
</content>
</entry>
<entry>
<title>pcb: Use red LED for error indication</title>
<updated>2025-07-24T20:51:23Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-24T20:51:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=360bc81c7532b6677dfb01898bbd94eca6ab75d2'/>
<id>urn:sha1:360bc81c7532b6677dfb01898bbd94eca6ab75d2</id>
<content type='text'>
The idea of the red LED used to be to indicate power delivery to the
board independent of firmware.

While this is good to know it adds the constraint that even without
firmware the LED should light up. Furthermore it should stop lighting up
when the firmware takes over the blinking with different colors. This
was solved with a NOT gate.

This adds more parts to the assembly at the cost of rare space. To
reduce space consumption this feature is removed.

The effect is that the user cannot distinguish anymore if the board has
an issue with power supply or with not running firmware. This is
acceptable because the user cannot do anything about both issues.

Developers have the chance to e.g. connect the UART to validate if the
firmware is running.
</content>
</entry>
<entry>
<title>pcb: Remove reset button</title>
<updated>2025-07-24T20:46:30Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-24T20:43:11Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=abfefc7f1bc9927f99e38bb89762dbd6a19ed460'/>
<id>urn:sha1:abfefc7f1bc9927f99e38bb89762dbd6a19ed460</id>
<content type='text'>
It is required to save as much place as possible on the PCB. There used
to be these reset methods:

- JTAG reset
- button reset
- power-cycle
- firmware-based reset

Taking away the button reset option is reasonable since for the
development and production use case there are still enough options.

Developers should use the JTAG reset or power-cycle and users will
anyway use firmware-based resets (e.g. during updates) or power-cycles
which is anyway most intuitive to users.
</content>
</entry>
<entry>
<title>pcb: Solve external and PoE power supply</title>
<updated>2025-07-24T20:40:21Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-24T20:40:21Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=19daf5941c95a34eb6596e4a62de541a6080f644'/>
<id>urn:sha1:19daf5941c95a34eb6596e4a62de541a6080f644</id>
<content type='text'>
Now there are 6 locations for 3 zero Ohm resistors. Three places to
power by PoE and three to power externally. Never all of them should be
placed.
</content>
</entry>
<entry>
<title>pcb: Add F1 to protect AC devices</title>
<updated>2025-07-24T20:18:49Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-24T20:18:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=944c834a7dabf5335c0780e14348b1d7d65ebe9c'/>
<id>urn:sha1:944c834a7dabf5335c0780e14348b1d7d65ebe9c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pcb: Connect RMII, MDIO and PHY reset</title>
<updated>2025-07-24T12:45:32Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-23T12:00:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=5e15c86cd5197466653f510a7ccc4b76d67f69d1'/>
<id>urn:sha1:5e15c86cd5197466653f510a7ccc4b76d67f69d1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pcb: Add NOT-logic for power LED</title>
<updated>2025-07-23T11:10:34Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-23T11:10:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=efe675df60a05ca7a8140788f99e0647d22b1071'/>
<id>urn:sha1:efe675df60a05ca7a8140788f99e0647d22b1071</id>
<content type='text'>
The status LED should always display on color either constantly on or
blinking.

To make sure even without firmware this is given a NOT gate is added.
</content>
</entry>
<entry>
<title>pcb: Switch to one RGB LED</title>
<updated>2025-07-23T10:59:03Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-23T10:59:03Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=1e3c106c2d345aaff83f1db9a9a831f6dcbe8505'/>
<id>urn:sha1:1e3c106c2d345aaff83f1db9a9a831f6dcbe8505</id>
<content type='text'>
This is more space efficient and makes it easier to label the LEDs.
There is just one "status LED" lighting up in different colors compared
to one "update LED", "power LED" and "activity LED".
</content>
</entry>
<entry>
<title>pcb: io: Finish draft for motor control</title>
<updated>2025-07-23T10:31:40Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-23T10:06:45Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=63cc1ee45125c3d10f6c66d681bb59898a790691'/>
<id>urn:sha1:63cc1ee45125c3d10f6c66d681bb59898a790691</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pcb: Move version detection to processor schematic</title>
<updated>2025-07-23T09:57:32Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-23T09:57:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=24d9a38a95a7cc51528efebcb5d81dd8ea67bef8'/>
<id>urn:sha1:24d9a38a95a7cc51528efebcb5d81dd8ea67bef8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pcb: Switch to three wire connectors</title>
<updated>2025-07-22T16:40:02Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-22T16:31:07Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=52f6f99757e43f1ad5b551dee4c308c72c2a4cf5'/>
<id>urn:sha1:52f6f99757e43f1ad5b551dee4c308c72c2a4cf5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pcb: ethernet: Add initial schematic</title>
<updated>2025-07-22T16:18:19Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-05-25T19:58:15Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=1620d188cfdc9660c69ab50b33d9e69ad99c34ea'/>
<id>urn:sha1:1620d188cfdc9660c69ab50b33d9e69ad99c34ea</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pcb: processor: Finish first schematic</title>
<updated>2025-05-25T18:08:39Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-05-24T20:00:19Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=161dd48aa8a14bb99a31e91480977e2961d27a72'/>
<id>urn:sha1:161dd48aa8a14bb99a31e91480977e2961d27a72</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pcb: Invert button signals</title>
<updated>2025-05-24T12:04:13Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-05-24T12:04:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=5e48ef91e68fcddc591950ca56c930c50912454f'/>
<id>urn:sha1:5e48ef91e68fcddc591950ca56c930c50912454f</id>
<content type='text'>
Making them active-low makes it easier to reset the MCU. For the wipe
functionality it does not make a role since it will simply be defined in
Devicetree.
</content>
</entry>
<entry>
<title>pcb: Add voltage divider for PCB versioning</title>
<updated>2025-05-24T11:52:16Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-05-24T11:52:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=6db34475d1935f368bec60f530f88cd066924849'/>
<id>urn:sha1:6db34475d1935f368bec60f530f88cd066924849</id>
<content type='text'>
This voltage divider provides an analog voltage between GND and +3.3V to
indicate which hardware revision this board is.

Thus the same firmware image can be used on multiple PCB versions
compensating the hardware differences in software.

The resistor combinations are calculated by
`tools/resistory_selector.py`.
</content>
</entry>
<entry>
<title>pcb: Replace J6 &amp; J7 by bigger J5</title>
<updated>2025-05-24T10:01:55Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-11T18:22:05Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=fdd5234c383f294d934da0901f3bf7a96f2c19a3'/>
<id>urn:sha1:fdd5234c383f294d934da0901f3bf7a96f2c19a3</id>
<content type='text'>
This reduces the electrical contacts which is possible and necessary
because of size constraints.
</content>
</entry>
<entry>
<title>pcb: Update to KiCad 9.x</title>
<updated>2025-04-01T16:13:10Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-01T16:13:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=aa3a6384f14ee7d148b84523aa30723bc1020d39'/>
<id>urn:sha1:aa3a6384f14ee7d148b84523aa30723bc1020d39</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pcb: Add hierarchical labels and connections</title>
<updated>2025-02-18T18:44:49Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-02-18T18:44:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=968d182429594578654a983d8a5b605f8f152650'/>
<id>urn:sha1:968d182429594578654a983d8a5b605f8f152650</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pcb: Replace text fields by symbol descriptions</title>
<updated>2025-02-18T18:26:05Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-02-18T18:26:05Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=19008e463bbf182e481e06c034299268fa329843'/>
<id>urn:sha1:19008e463bbf182e481e06c034299268fa329843</id>
<content type='text'>
This makes it easier to keep the descriptions and the text inside the
schematic in sync.
</content>
</entry>
</feed>
