Compare commits

..

535 Commits

Author SHA1 Message Date
hueso
49181dadde Moonrise face
Some checks failed
Build / build (push) Has been cancelled
Build / build-simulator (push) Has been cancelled
2025-05-16 19:02:44 -03:00
hueso
8abf6f4f5b Fixed buffer overflows in sunrise_sunset_face
Some checks failed
Build / build (push) Has been cancelled
Build / build-simulator (push) Has been cancelled
GitHub Pages / gh-pages (push) Has been cancelled
2025-05-15 11:59:21 -03:00
Joey Castillo
8c39d42824 Merge branch 'main' of github.com:joeycastillo/Sensor-Watch 2025-05-06 23:57:45 -04:00
Joey Castillo
56f2c93783 sensor watch pro test procedure 2025-05-06 23:56:19 -04:00
Wesley Ellis
14e64caac9
Merge pull request #512 from tahnok/schematic-readme
Add schematic info to README
2025-04-03 08:58:30 -04:00
Wesley Ellis
cc6a0c363e Add links to schematics and gerbers for different models 2025-04-01 09:55:41 -04:00
Wesley Ellis
845caa30fb Add link to schematics and gerbers to README 2025-04-01 09:55:41 -04:00
Joey Castillo
0ef5e5700e Sensor Watch Pro 2025-03-08 17:42:54 -05:00
Jeremy O'Brien
e8f31beb70
Smallchess face (#272)
* smallchess face

* use correct game-state modifying board move function

* make show last work after undo

* use SCL_Game->ply instead of board[ply_byte]

* beep when cpu is done computing a move

* increase engine strength to ply 3

* match ply type and use the local variable where available

* fix warnings

* add doc to smallchess face

* smallchess: fix compile warnings

* smallchess: move smallchesslib.h to movement/lib
2024-09-17 22:36:34 -04:00
joeycastillo
c2103d9eaa silence warnings in butterfly_game_face 2024-09-17 22:27:43 -04:00
joeycastillo
88338dc0ba silence warnings in wareki_face 2024-09-17 22:19:22 -04:00
Hugo Chargois
e8ba597131
Add Butterfly game face (#338) 2024-09-17 22:04:00 -04:00
kbc-yam
52c3d5b796
add wareki_face for japanese user (#351) 2024-09-17 22:00:44 -04:00
MarkBlyth
7af5626147
Add min/max temperature watch face (#335) 2024-09-17 21:54:33 -04:00
Austoria
b2d313e0e7
Metronome Complication (#303)
* Metronome Complication

A simple metronome complication that allows user to set BPM, toggle sound, and set counts per measure.

* silence warnings in metronome_face

* avoid mode button in metronome settings, other tweaks

---------

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2024-09-17 21:46:20 -04:00
jokomo24
0f5defe789
Face for tracking the menstrual cycle (#250)
Authored-by: jokomo <jokomo@parallels-ubuntu18.04>
2024-09-17 20:55:50 -04:00
joeycastillo
3634460a02 silence warning in beeps_face 2024-09-17 20:46:00 -04:00
Jose Castillo
fc2f9c5130
add accelerometer interrupt counter (#452) 2024-09-17 20:38:09 -04:00
Matheus Afonso Martins Moreira
bf4d461d8c Merge branch 'next' - new faces before the freeze
Merge the next branch containing numerous new sensor watch faces
as well as some new features. Not all of them made it in the end
and we even had to revert improvements merged in last next due to
issues that weren't found during testing. Still, I am very proud
to be merging in and closing over 20 pull requests.

I believe the project is in the best possible shape it can be
before the movement 2.0 refactor.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: David Volovskiy <devolov@gmail.com>
Tested-on-hardware-by: CarpeNoctem <cryptomax@pm.me>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/469
2024-09-17 17:36:40 -03:00
Matheus Afonso Martins Moreira
fe9a0a693d Revert PR #268 - add daylight savings time toggle
The DST code has not yet been fully tested, the upcoming movement
refactor is upon us and it will integrate with the micro timezone
library anyway. Revert it so that next can be merged into main.

This reverts commit 5a8a49a8c77d6d5ba0f46f0e5b51dec2daba46db, reversing
changes made to bfadb81e82dfe47c4445ce7978d9dbc3b4706808.
2024-09-17 17:28:41 -03:00
Matheus Afonso Martins Moreira
30267dfc0c Revert PR #470 - fixes world_clock2 face
The DST code has not yet been fully tested, the upcoming movement
refactor is upon us and it will integrate with the micro timezone
library anyway. Revert it so that next can be merged into main.

This reverts commit 3c86a42aa83356735be2bd84b7027b156e8d3a2c, reversing
changes made to be969c4deb144280b59d0293cc45dc3443b096cf.
2024-09-17 17:28:41 -03:00
Matheus Afonso Martins Moreira
a9d503b807 Revert PR #470 - implement automatic DST toggling
The DST code has not yet been fully tested, the upcoming movement
refactor is upon us and it will integrate with the micro timezone
library anyway. Revert it so that next can be merged into main.

This reverts commit ac5bf8cfce67cdb5662aeea618c2eb9511f0d190, reversing
changes made to 5a8a49a8c77d6d5ba0f46f0e5b51dec2daba46db.
2024-09-17 17:28:32 -03:00
Matheus Afonso Martins Moreira
683032219e Revert PR #471 - add DST to sunrise/sunset
The DST code has not yet been fully tested, the upcoming movement
refactor is upon us and it will integrate with the micro timezone
library anyway. Revert it so that next can be merged into main.

This reverts commit 0cc28b9811e76de3dc2cc2919d5309cfa48edfeb, reversing
changes made to 337864eb543c9b5cd83667ab0eafb476f63af54c.
2024-09-17 17:02:16 -03:00
Matheus Afonso Martins Moreira
ea5efb4d82 faces/clock: clear segments if not in 024h mode
There was an issue where the clock's display would remain in 024h mode
even after switching back to 12h/24h mode because it only took into
account the leading zero bit, whose value is meaningless unless the
24h mode bit is also set.

The issue is fixed by taking both bits into account.

Closes #476.

Reported-by: CarpeNoctem <cryptomax@pm.me>
GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/476
2024-09-16 15:54:09 -03:00
Matheus Afonso Martins Moreira
f2479bee4f faces/simple_clock: clear segments if not in 024h
There was an issue where the simple clock's display would remain in
024h mode even after switching back to 12h/24h mode because it only
took into account the leading zero bit, whose value is meaningless
unless the 24h mode bit is also set.

The issue is fixed by taking both bits into account.

Closes #476.

Reported-by: CarpeNoctem <cryptomax@pm.me>
GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/476
2024-09-16 15:53:48 -03:00
Matheus Afonso Martins Moreira
831aadddea faces/alarm: use snprintf formats for 24h and 024h
This ensures that the display is always in a consistent state.

Reported-by: CarpeNoctem <cryptomax@pm.me>
GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/476
2024-09-16 15:19:08 -03:00
Matheus Afonso Martins Moreira
5926e81d25 faces/alarm: fix 24h indication in 024h mode
The watch was not indicating to the user that it was in 24h mode
when set to the leading zero 024h time format. This could lead
to ambiguity and confusion, so make sure to indicate 24h mode.

Closes #476.

Reported-by: CarpeNoctem <cryptomax@pm.me>
GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/476
2024-09-16 14:42:43 -03:00
Matheus Afonso Martins Moreira
035fff52da Revert merge of PR #437 - debouncing logic
This reverts commit a715265af61ecab41eaefe0c5a7e7c806d0db41b, reversing
changes made to 9c093f954084e61614cba1c259e4581a87420813.

Insidious issues were found in the course of long term testing
by the community, and further reviews of the code were not enough
to pinpoint the issue and fix it. So for now the appropriate action
is to revert these changes while development continues, and possibly
merge them back in once they have been stabilized.

Tested-on-hardware-by: David Volovskiy <devolov@gmail.com>
Tested-on-hardware-by: CarpeNoctem <cryptomax@pm.me>
Tested-on-hardware-by: Krzysztof Gałka <@kshysztof@Discord>
2024-09-15 21:10:10 -03:00
Matheus Afonso Martins Moreira
c9cbb82163 Revert merge of PR #437 - debouncing logic
This reverts commit a715265af61ecab41eaefe0c5a7e7c806d0db41b, reversing
changes made to 9c093f954084e61614cba1c259e4581a87420813.

Insidious issues were found in the course of long term testing
by the community, and further reviews of the code were not enough
to pinpoint the issue and fix it. So for now the appropriate action
is to revert these changes while development continues, and possibly
merge them back in once they have been stabilized.

Tested-on-hardware-by: David Volovskiy <devolov@gmail.com>
Tested-on-hardware-by: CarpeNoctem <cryptomax@pm.me>
Tested-on-hardware-by: Krzysztof Gałka <@kshysztof@Discord>
2024-09-15 21:00:22 -03:00
Matheus Afonso Martins Moreira
3c86a42aa8 Merge PR #470 - fixes world_clock2 face
The new DST changes caused problems in one specific face - world_clock2.
An incorrect variable was used due to a confusing name.
It has been revised to fix the problems that were caused.

Closes #475.

Reported-by: CarpeNoctem <cryptomax@pm.me>
Fixed-by: David Volovskiy <devolov@gmail.com>
Tested-by: CarpeNoctem <cryptomax@pm.me>
Tested-on-hardware-by: CarpeNoctem <cryptomax@pm.me>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/470
GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/475
2024-09-15 20:45:33 -03:00
David Volovskiy
1462d18376 Fixed the tz that the world clock references 2024-09-15 19:13:38 -04:00
Matheus Afonso Martins Moreira
be969c4deb Revert PR #387 - fixes LE state restoration
This commit caused state restored from backup registers
to be overwritten. It is thereby reverted until a better
solution is found or movement is refactored.

This reverts commit 524098b9258232964d7756d4d44f16b006d340bf.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
References: https://github.com/joeycastillo/Sensor-Watch/pull/474
2024-09-10 12:10:48 -03:00
Matheus Afonso Martins Moreira
673f90b724 make: add beeps face to build
PR #386 did not add the C file to the makefile,
causing the build to fail at the link stage
due to the missing object file and the symbols
that were supposed to be provided by it.

Adding the file to the build fixes #472.

Reported-by: CarpeNoctem <cryptomax@pm.me>
Fixed-by: CarpeNoctem <cryptomax@pm.me>
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/472
2024-09-10 00:05:54 -03:00
Matheus Afonso Martins Moreira
44b543421d Merge PR #430 - improve tally face
Adds the ability to tally negative counts, tally quickly by holding down
the buttons as well as the ability to enable and cycle through multiple
preset initial values for numerous contexts such as card games.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/430
2024-09-08 21:20:25 -03:00
Matheus Afonso Martins Moreira
0cc28b9811 Merge PR #471 - add DST to sunrise/sunset presets
Implements automatic DST data to the sunrise/sunset presets,
making the whole system more automatic and therefore more reliable.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/471
2024-09-08 21:12:24 -03:00
David Volovskiy
9d1410780c sunrise sunset fix during DST 2024-09-08 18:18:00 -04:00
David Volovskiy
0d16329574 Sunrise sunset face now warns about using DST 2024-09-08 18:13:17 -04:00
David Volovskiy
f6f427ca7d Daylight offsets now references the timezone of the destination; but it does cause an issue due to DST 2024-09-08 18:13:17 -04:00
David Volovskiy
22c25f5c23 Added commented-out defines for MTG and Yugioh 2024-09-08 18:09:38 -04:00
David Volovskiy
a539bd7da7 Don't try to cycle through presets if the preset count is one 2024-09-08 18:03:16 -04:00
Matheus Afonso Martins Moreira
7a4424b2d4 faces/tally: convert size into compile time const
Creates a macro that returns the size of the presets array,
converting it into a compile time constant value that occupies
no memory and that compilers can constant fold into other expressions
potentially leading to dead code elimination.
2024-09-08 18:53:42 -03:00
Matheus Afonso Martins Moreira
e4e0b611f3 faces/tally: avoid resetting counters
Don't reset the counters unless there are multiple presets.
Move back to the first face directly if there are no presets
to cycle through.
2024-09-08 18:49:09 -03:00
Matheus Afonso Martins Moreira
6b7ea8bbaa faces/tally: add yugioh life point presets
Add common Yu-Gi-Oh card game life point preset values
for the tally face, opt in by defining a preprocessor macro.
2024-09-08 18:39:55 -03:00
Matheus Afonso Martins Moreira
531bcfd285 faces/tally: make mtg presets optin via macros
Use preprocessor macros to conditionally compile in Magic the Gathering
initial value presets for the tally mark, thereby making them opt in.
2024-09-08 18:38:53 -03:00
David Volovskiy
137906e14a Added more presets to the tally face 2024-09-08 17:23:53 -04:00
Matheus Afonso Martins Moreira
337864eb54 Merge PR #454 - fix activation event
Fix issue where the calculator face's user interface display
was delayed about a quarter second due to the activation event
being a no-op.

Tested-by: David Volovskiy <devolov@gmail.com>
Reported-by: David Volovskiy <devolov@gmail.com>
Fixed-by: David Volovskiy <devolov@gmail.com>
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/454
2024-09-08 15:33:35 -03:00
Matheus Afonso Martins Moreira
0f6f79a85a Merge PR #468 - fix github ci
Bump GitHub's checkout action to v4, fixing the continuous integration.

GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/468
2024-09-08 15:22:50 -03:00
Matheus Afonso Martins Moreira
c2723ebc8e make: fix missing separator error 2024-09-08 14:22:26 -03:00
Matheus Afonso Martins Moreira
ac5bf8cfce Merge PR #470 - implement automatic DST toggling
Implements logic to automatically offset daylight saving time settings
when calculating timezone offsets. This should make the DST functions
work automatically with no need for user input in most cases.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/470
2024-09-08 13:41:52 -03:00
mcguirepr89
608199268e removed break; from EVENT_ACTIVATE -- thanks @voloved 2024-09-08 11:49:01 -04:00
David Volovskiy
c02ec307ff Tally face sound now uses the preference's beep so decrementing fast can happen immedietly 2024-09-08 11:44:01 -04:00
David Volovskiy
002f5bc242 Updated the tally couter face to allow for presets, negative numbers, fast scrolling, and toggling sound 2024-09-08 11:39:48 -04:00
David Volovskiy
5ae88e438d Minot cleanup 2024-09-08 10:50:09 -04:00
Matheus Afonso Martins Moreira
5a8a49a8c7 Merge PR #268 - add daylight savings time toggle
Adds a toggle in the preferences face that allows the user
to enable or disable the daylight savings time.

Should help produce the correct results with the sunrise/sunset presets.

A proper solution would be to integrate the tzinfo database
but it's too big for the watch at the time of this writing.
Can't be done unless it can be shrunk down into a subset
the user would be interested. Even then it's a stopgap
since the database is likely to keep growing over time.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/268
2024-09-08 11:09:10 -03:00
R. Alex Barbieri
52f9500666 add blinking to DST toggle in settings page 2024-09-08 11:08:14 -03:00
Matheus Afonso Martins Moreira
bfadb81e82 Merge PR #401 - add fuzzy time watch face
Displays the time in a "close enough" manner:
periods of five minutes, relative to the nearest hour.

For example:

 - 3:24 -> 25 past 3
 - 3:50 -> 10 to 4
 - 3:59 -> 4 o'clock
 - 1:35 -> 35 past 1
 - 1:50 -> 10 to 2
 - 2:00 -> 2 o'clock

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Ruben Nic <RubenSandwich@users.noreply.github.com>
Tested-on-hardware-by: KlingonJane <148595159+KlingonJane@users.noreply.github.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/401
2024-09-07 20:57:24 -03:00
Matheus Afonso Martins Moreira
6d1d4f0594 Merge PR #386 - add beep demo face
Allows the user manually trigger all 87 buzzer notes.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Wesley Black <hello@wesleyblack.ca>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/386
2024-09-07 20:53:08 -03:00
Matheus Afonso Martins Moreira
1f6153809b Merge PR #413 - add thermometer face
Measures the temperature until it stabilizes for half a minute.

This watch face is not meant to diagnose, treat, cure or prevent
any disease.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/413
2024-09-07 20:49:19 -03:00
Matheus Afonso Martins Moreira
941a6ec523 Merge PR #454 - add simple calculator watch face
Adds a simple calculator watch face to the sensor watch
capable of addition, subtraction, multiplication, division
and exponentiation.

Reviewed-by: Joey Castillo <joeycastillo@utexas.edu>
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-by: Joey Castillo <joeycastillo@utexas.edu>
Tested-on-hardware-by: mcguirepr89 <mcguirepr89@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/454
2024-09-07 20:38:08 -03:00
Matheus Afonso Martins Moreira
99586f8442 Merge PR #394 - keep LED lit while buttons held
Keeps the LED turned on while the user is interacting with the watch.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/394
2024-09-07 20:31:46 -03:00
Matheus Afonso Martins Moreira
b9dbc4ed21 Merge PR #398 - add simon game watch face
Adds a watch face that allows playing the classic Simon game
with the watch's buzzer and RGB LED.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/398
2024-09-07 20:28:45 -03:00
Matheus Afonso Martins Moreira
543788b622 Merge PR #287 - add minimal clock face
Add a minimalist clock face that shows only hours and minutes.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/287
2024-09-07 20:14:26 -03:00
Matheus Afonso Martins Moreira
7de53f9fa0 Merge PR #269 - add french revolutionary time face
Adds a french revolutionary time watch face which displays the time
divided into ten hours of one hundred minutes each which are in turn
divided into one hundred seconds each.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Reviewed-by: Wesley Aptekar-Cassels <me@wesleyac.com>
Reviewed-by: Alex Maestas <git@se30.xyz>
Tested-on-hardware-by: CarpeNoctem <cryptomax@pm.me>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/269
2024-09-07 20:00:16 -03:00
Matheus Afonso Martins Moreira
ce249abde6 Merge PR #259 - add higher or lower game face
Adds a watch face that implements a game where the player
must guess if the next card will be higher or lower than
the last cards that have been revealed.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Chris <chris.ellis.git.dev@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/259
2024-09-07 19:59:52 -03:00
Matheus Afonso Martins Moreira
c805cdc7df Merge PR #266 - add deadline tracking watch face
Adds a timing watch face that focuses on
keeping track of specific deadlines.

Dates and times can be set on the watch face
and it will display the time remaining at ever
decreasing levels of granularity for the sake
of brevity and ease of understanding.

For example, it will display years and months if over a year is left,
months and days if less than one year is left,
days and hours if less than one month is left
and the full remaining time if less than a day is left.

It also notifies the user when a deadline has passed recently.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Konrad Rieck <konrad@mlsec.org>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/266
2024-09-07 19:59:31 -03:00
Chris
9e1e692511 Hi-lo: Additional code tweaks 2024-09-07 19:59:04 -03:00
Konrad Rieck
50cff54833 move to deadline face on alarm 2024-09-07 19:59:04 -03:00
Chris
97ad12d939 Merge pull request #1 from voloved/higher-lower-game
Hi-lo: Made cards go through a deck format.
2024-09-07 19:59:04 -03:00
Konrad Rieck
e2ec468754 Alarm handled using background task.
The alarm for deadlines is now handled via a background task. Instead of a scheduled task that prevents sleep mode, the face checks in the background every minute whether an deadline is due. If this is the case, the face wakes up from sleep mode and starts a scheduled task for the remaining seconds.
2024-09-07 19:59:04 -03:00
Chris
6db0a62bbf Hi-lo: Use alternate card faces 2024-09-07 19:59:04 -03:00
David Volovskiy
93b9ca6341 Made cards go through a deck format. 2024-09-07 19:59:04 -03:00
Konrad Rieck
27ab799e85 Fixed bugs and improved watchface
- A background task is only scheduled if the alarm option is activated. If the option is enabled, an alarm sounds when the next deadline is reached. If the option is disabled, no alarm sounds and the watch can enter low energy sleep.

- Fixed tick frequency error. During running mode, the clock ticks at 1Hz. This is set in the init function `_running_init` and thus ensures that we do not run too fast when returning from the setting mode.

- Minor corrections to comments and indentations.
2024-09-07 19:59:04 -03:00
Konrad Rieck
c89316b3ec removed higher frequency in first loop run. 2024-09-07 19:59:04 -03:00
Konrad Rieck
fab8c94428 moved tick_freq to deadline_state_t structure. 2024-09-07 19:59:04 -03:00
Konrad Rieck
c102a10165 beep on button 2024-09-07 19:59:04 -03:00
Konrad Rieck
4cb00ebb4e support for alarm 2024-09-07 19:59:04 -03:00
Konrad Rieck
fea60e615c display closest deadline on activation 2024-09-07 19:59:04 -03:00
CarpeNoctem
07a2a49e72 french_revolutionary face: fix compiler warning and uninitialized date_time variable 2024-09-07 19:47:17 -03:00
Matheus Afonso Martins Moreira
852c3aad27 Merge PR #423 - add periodic table face
Adds a watch face full of useful information
about every known chemical element.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: PrimmR <primmr@icloud.com>
Tested-on-hardware-by: David Volovskiy <devolov@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/423
2024-09-07 18:47:20 -03:00
Matheus Afonso Martins Moreira
02e66309d4 Merge PR #444 - implement countdown autorepeater
Adds the ability to automatically restart the timer
in the countdown watch face. This allows users to
easily time repeating events.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/444
2024-09-07 16:52:29 -03:00
Joseph Bryant
ddaf3a8324 Add auto-repeat feature to Countdown watch face 2024-09-07 16:49:45 -03:00
Matheus Afonso Martins Moreira
80dc8a247f Merge PR #465 - add metal gear solid codec chime
Snake? Snake?! SNAAAAAAAAAAAAAAAAAAAAAAKE!

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/465
2024-09-07 16:43:00 -03:00
Jeremy O'Brien
a79bb46d39 add metal gear solid codec tune 2024-09-07 16:41:56 -03:00
Matheus Afonso Martins Moreira
3462d51071 Merge PR #467 - add harry potter chimes
Add Harry Potter themed hourly signal chimes, short and long variants.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/467
2024-09-07 16:26:10 -03:00
mcguirepr89
48fd4ee903 slightly shorter first note 2024-09-06 10:19:17 -04:00
atax1a
b69cd117f9
Merge pull request #468 from theAlexes/theAlexes/ci-fix
bump to the newer upload-artifact github action
2024-09-04 20:22:26 +00:00
Alex Maestas
fd526ed401 bump to the newer upload-artifact github action 2024-09-04 20:10:37 +00:00
mcguirepr89
b37be89bae adds a short and long harry potter signal 2024-09-04 11:46:33 -04:00
Matheus Afonso Martins Moreira
014ef32576 Merge PR #293 - add instant LED duration
Adds an instant LED duration preference that only keeps the LED lit
while the LIGHT button remains held down.

Matches the behavior of the original watch.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Wesley Aptekar-Cassels <me@wesleyac.com>
Tested-on-hardware-by: 814d3 (GitHub)
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/293
2024-09-03 19:06:40 -03:00
Matheus Afonso Martins Moreira
c0a72acb7c Merge PR #419 - add endless runner watch face
Adds an endless runner game face to the Sensor Watch.

The player character runs endlessly towards the right.
An endless number of obstacles speed towards him.
The player must jump over them or lose the game
when the player character runs smack into the obstacle.
Jumping requires fuel which is a limited resource
that must be managed by the player.

Features selectable difficulties and high score tracking.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/419
2024-09-03 18:50:12 -03:00
Matheus Afonso Martins Moreira
cd4b285c6e Merge PR #436 - add wordle watch face
Ports the famous Wordle game to the Sensor Watch.

A random 5 letter word is chosen and the player must guess it
without exceeding the configured maximum number of attempts.
Letters guessed correctly will stay in place.
Letters present in the word but in the wrong place will blink.

Streak tracking is supported and compile time configurable.

A Python script which finds an optimal dictionary is also included
and can be used to further customize the watch face.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/436
2024-09-03 18:49:18 -03:00
Matheus Afonso Martins Moreira
4d6a9345f2 Merge PR #299 - leading zero representation
Adds a movement-wide leading zero 024h representation mode
that's toggleable in the preferences watch face.
Also adds support for the new display mode to existing faces.

I modified the logic a bit to ensure the 24h indicator remains lit
in the simple clock face even when in 024h mode. I also added support
to the more advanced clock face. In the future I will add a compile time
toggle to it as well.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/299
2024-09-03 18:49:13 -03:00
David Volovskiy
118c07a3b6 Reduced struct memory per code review 2024-09-03 17:13:59 -04:00
David Volovskiy
faec45ce24 Include ability to select only the best words as the first choice 2024-09-03 17:09:52 -04:00
David Volovskiy
2e46aa0e2c got rid of hardcoding of half-second zero blink 2024-09-03 16:25:05 -04:00
David Volovskiy
c74ed78d72 Changed U LOSE to LOSE 2024-09-03 16:20:11 -04:00
David Volovskiy
e4a5121303 bug fix on displaying time in LE mode 2024-09-03 16:20:11 -04:00
David Volovskiy
28b14d3665 LE mode in the endless runner now displays the current time. 2024-09-03 16:20:11 -04:00
David Volovskiy
324942009e Added second fuel mode where we don't recharge the fuel if it hits zero. 2024-09-03 16:20:11 -04:00
David Volovskiy
30363d408e Added fuel mode 2024-09-03 16:20:11 -04:00
David Volovskiy
c027b247b2 Changed hi score number offset and refactored some code 2024-09-03 16:20:11 -04:00
David Volovskiy
503fcd6ebc Added author in header 2024-09-03 16:20:11 -04:00
David Volovskiy
6ec6476d0f Refectored the state machine 2024-09-03 16:20:11 -04:00
David Volovskiy
07d2bc91a5 Modified hi score display to allow for 3 digits in hi-score, it now resets at the beginning of each month 2024-09-03 16:20:11 -04:00
David Volovskiy
2d7aaceff7 hi score resets weekly 2024-09-03 16:20:11 -04:00
David Volovskiy
6f3f09c5ba Reformat to remove some hardocded variables 2024-09-03 16:20:11 -04:00
David Volovskiy
defd01f9f0 Added baby mode which used to be easy mode; easy mode is now same speed as normal, but 3 frames to jump and normal is 2 frames. 2024-09-03 16:20:11 -04:00
David Volovskiy
abc0bedbde Gave an extra jumping frame for non-hard mode; Curr scroll now loops; Title changed to ER 2024-09-03 16:20:11 -04:00
David Volovskiy
ed3c4d3c30 Fixed the long delays when beginning a game 2024-09-03 16:20:11 -04:00
David Volovskiy
e2870eb7af Removed the binary print debug function 2024-09-03 16:20:11 -04:00
David Volovskiy
73a975d0d9 Added endless-runner face 2024-09-03 16:20:11 -04:00
David Volovskiy
4dedcb3a6d Added ability to find best starting word 2024-09-03 16:11:54 -04:00
David Volovskiy
dd719183cf hard mode btn changed; logic changed on daily streak so if puzzle wasn't started and completed the previous day, then drop the streak 2024-09-03 16:11:54 -04:00
David Volovskiy
5435bc7f34 Streak face fix 2024-09-03 16:11:54 -04:00
David Volovskiy
d1c19166a1 WORDLE_USE_DAILY_STREAK logic changed 2024-09-03 16:11:54 -04:00
David Volovskiy
c43820e75d Wordle game resets after 24hrs of not playing when not using daily streak 2024-09-03 16:11:54 -04:00
David Volovskiy
41df6c113f Reset streak if don't continue 2024-09-03 16:11:54 -04:00
David Volovskiy
b364a6cfab Changed the lap to hard mode; fixed the ignore used letters 2024-09-03 16:11:54 -04:00
David Volovskiy
8205abe5be Revert "LAP indicator now dispalys on all screens"
This reverts commit 3bfa336b4d609668f6d8c71164f8f579f41240a5.
2024-09-03 16:11:54 -04:00
David Volovskiy
255ea97cc4 Documentation fix 2024-09-03 16:11:54 -04:00
David Volovskiy
4b8bd61408 Added explanation on LAP icon 2024-09-03 16:11:54 -04:00
David Volovskiy
c87e814140 LAP indicator now dispalys on all screens 2024-09-03 16:11:54 -04:00
David Volovskiy
733318c036 skip_wrong_letter is now a toggle 2024-09-03 16:11:54 -04:00
David Volovskiy
d98f749f3b Changed variable names for dictionary header 2024-09-03 16:11:54 -04:00
David Volovskiy
fdff6f581a Name change in python script 2024-09-03 16:11:54 -04:00
David Volovskiy
1b887aea2b Made skipping a wrong letters a #define 2024-09-03 16:11:54 -04:00
David Volovskiy
b58d6c0a2e Changed size of word lists from const int to #define to avoid folding constant array error 2024-09-03 16:11:54 -04:00
David Volovskiy
8342fef84f Added ability to skip already guessed letters that are wrong 2024-09-03 16:11:54 -04:00
David Volovskiy
0d16d126cd Added ability to guess non-dict words and repeats as that can save 11.5KB of watch memory 2024-09-03 16:11:54 -04:00
David Volovskiy
5149e7e1dd the dict of words to its own header 2024-09-03 16:11:54 -04:00
David Volovskiy
1d2fb20e99 Readding comment showing count of possible words. 2024-09-03 16:11:54 -04:00
David Volovskiy
099f78443e Added ability to use T in Wordle 2024-09-03 16:11:54 -04:00
David Volovskiy
7f38f8e416 modified Wordle list to use Wordle's own list and add 2 more letters 2024-09-03 16:11:54 -04:00
David Volovskiy
1a1560b59d Bugfix on elements not resetting when winning or losing 2024-09-03 16:11:54 -04:00
David Volovskiy
0d58f0d77d JOB to JOb 2024-09-03 16:11:54 -04:00
David Volovskiy
af6f6002ba Fixed the bug of the text not resetting after a timeout 2024-09-03 16:11:54 -04:00
David Volovskiy
a0ffd0ca7f Fix on playing with daily streak 2024-09-03 16:11:54 -04:00
David Volovskiy
7ceb682675 Better handling of seeing if currently playing 2024-09-03 16:11:54 -04:00
David Volovskiy
cb57ef237d Got rid of continue's blinking 2024-09-03 16:11:54 -04:00
David Volovskiy
ce31db3712 Continue test now blinks 2024-09-03 16:11:54 -04:00
David Volovskiy
1868f8446a Added continue screen 2024-09-03 16:11:54 -04:00
David Volovskiy
57ca74b253 Added SONIC and LASER to the allowed words 2024-09-03 16:11:54 -04:00
David Volovskiy
935ede9fda Fixed leaving the screen and coming back 2024-09-03 16:11:54 -04:00
David Volovskiy
4257b71562 combined two areas of code into one function 2024-09-03 16:11:54 -04:00
David Volovskiy
67c1089fb2 Don't delete the submitted characters if already guessed or not in dict 2024-09-03 16:11:54 -04:00
David Volovskiy
a0111fbe24 Swapped the Nice and Job so the Nice text is more likely to appear first. 2024-09-03 16:11:54 -04:00
David Volovskiy
2a10402d19 Removed wordle from movmeent face after testing 2024-09-03 16:08:12 -04:00
David Volovskiy
4bb4bc85fa USE_RANDOM_GUESS variable added 2024-09-03 16:08:12 -04:00
David Volovskiy
1e76022146 Gave the wordle face the ability to give random guesses on the first word 2024-09-03 16:08:12 -04:00
David Volovskiy
1675af6449 bug fix on max score 2024-09-03 16:08:12 -04:00
David Volovskiy
6dd46b46b1 Able to turn the expanded dict on and off with a variable 2024-09-03 16:08:12 -04:00
David Volovskiy
10eda8b208 Added expanded dictionary to check against 2024-09-03 16:08:12 -04:00
David Volovskiy
580f8bf8ee bugfix on iterating to previous position 2024-09-03 16:08:12 -04:00
David Volovskiy
02f6a3256c Added documentation for Wordle face 2024-09-03 16:08:12 -04:00
David Volovskiy
3e327eb7fd Another fix on the word_check 2024-09-03 16:08:12 -04:00
David Volovskiy
cef0d8836a Don't allow readding already guessed items 2024-09-03 16:08:12 -04:00
David Volovskiy
8ea779874f Face compares the values correctly now and does a dict lookup first 2024-09-03 16:08:12 -04:00
David Volovskiy
0c86be4a40 Swapped button mapping and removed fast iteration 2024-09-03 16:08:12 -04:00
David Volovskiy
676f50d194 Added fast cycle 2024-09-03 16:08:12 -04:00
David Volovskiy
3a24ede3de day streak and further wordle dev 2024-09-03 16:08:12 -04:00
David Volovskiy
ee53e83ae7 Changed dict to a smaller and simpler one 2024-09-03 16:08:12 -04:00
David Volovskiy
6bf22edbdc Continued Wordle dev 2024-09-03 16:08:12 -04:00
David Volovskiy
2e878e146c Start of Wordle 2024-09-03 16:08:12 -04:00
Matheus Afonso Martins Moreira
d4bd10ba5e Merge branch 'next'
This merge adds numerous individually small fixes and improvements
which amount to a sizeable set of features.

 - New hourly chime tunes added
 - Old hourly chime tunes improved
 - Display of characters on the stock LCD improved
 - Documentation improved
 - Simulator improved
 - Leap year handling improved
 - Months and their days sanity checked and fixed
 - More compile time configurable defaults added
 - Excessively exact time checks relaxed
 - Clock face indicators matched to original watch
 - Hardware interface issue fixed

The most significant new feature however is software debouncing.
The sensor watch now properly handles hardware switch bouncing,
making the button inputs much more precise at the cost of a small amount
of latency, greatly improving usability. Any watch faces which require
holding down buttons as part of their user interface, the pulsometer
for example, should see huge improvements in their usability.

 * 9c093f9 Merge PR #387 - configurable default birthdate/location
 * 879c48c Merge PR #417 - improve 24h only mode
 * db4097b Merge PR #426 - add temperature input to simulator
 * dea0566 Merge PR #428 - fix issues in sunrise/sunset
 * c8ca0d3 Merge PR #431 - fix wrong number of days in month
 * 95ca374 Merge PR #433 - fix clock face indicators
 * 663cd72 Merge PR #434 - fix leap years
 * a715265 Merge PR #437 - debouncing logic
 * c741332 Merge PR #439 - fix scheduled task misses
 * 657ff72 Merge PR #440 - fix countdown face issues
 * c8a87d3 Merge PR #441 - update documentation
 * dd04443 Merge PR #443 - improved t and y character display
 * 42dc151 Merge PR #447 - improve kim possible chime
 * fa0cdef Merge PR #450 - sync after enabling RTC
 * a67076f Merge PR #458 - add layla tune
 * 23c422b Merge PR #459 - add power rangers tune
 * a2e5417 Merge PR #461 - improve t/y special case docs

Tested-on-hardware-by: Alex Maestas <git@se30.xyz>
Tested-on-hardware-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Wesley Ellis <tahnok@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/460
2024-09-03 01:03:08 -03:00
Matheus Afonso Martins Moreira
a67076f437 Merge PR #458 - add layla tune
Awesome lick from Eric Clapton - Layla.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/458
2024-09-03 00:49:20 -03:00
Matheus Afonso Martins Moreira
23c422b27a Merge PR #459 - add power rangers tune
The power lies on their side.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/459
2024-09-03 00:42:33 -03:00
Matheus Afonso Martins Moreira
a2e5417de9 Merge PR #461 - improve t/y special case docs
Fix a typo and make the documentation clearer.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/461
2024-09-03 00:28:25 -03:00
mcguirepr89
b774900ae6 finally squashed the bug 2024-09-02 13:10:26 -04:00
Metehan
696f7f12ec add power rangers tune 2024-09-02 02:11:27 +03:00
Metehan
6268ce4381 update layla tune 2024-09-02 00:03:21 +03:00
mcguirepr89
12b1432aae mode long press = reset_all() 2024-09-01 10:10:59 -04:00
Metehan
6f7693e880 add layla tune 2024-09-01 02:33:05 +03:00
mcguirepr89
20946e88f4 Merge remote-tracking branch 'fork/add_simple_calculator_face' into add_simple_calculator_face 2024-08-31 17:51:01 -04:00
mcguirepr89
70426751f8 negative toggle was only for first_num -- fixed 2024-08-31 17:47:15 -04:00
mcguirepr89
c75a21196f commented out debugging printf() statements 2024-08-31 14:46:23 -04:00
mcguirepr89
b607b6f7a9 removed note about mode long press 2024-08-31 12:44:29 -04:00
mcguirepr89
e13d42b5b5 mode=movement_move_to_next_face & longmode = face0 2024-08-31 12:41:57 -04:00
mcguirepr89
28db77f90c forgot to mention long press MODE for next face 2024-08-31 08:36:02 -04:00
mcguirepr89
18154deef4 Adds a simple calculator face 2024-08-31 08:31:26 -04:00
Matheus Afonso Martins Moreira
fa0cdef45b Merge PR #450 - sync after enabling RTC
According to the data sheet, writing to a Control A register's ENABLE
bit will trigger write synchronization and set SYNCBUSY's ENABLE bit
which will be automatically cleared by the hardware once the write
operation is complete.

It is necessary to wait until SYNCBUSY's ENABLE bit is clear.
Reading synchronized registers before that returns previous values.
Writing synchronized registers before that drops the write and generates
an error value in another register.

The data sheet recommends polling the ENABLE bit in this situation.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/450
References: SAM L22 Family Data Sheet §§ 14.3.2, 14.3.3, 14.3.4, 14.3.5
2024-08-30 16:47:47 -03:00
Matheus Afonso Martins Moreira
879c48ce4d Merge PR #417 - improve 24h only mode
Enhances 24 hour only mode by setting defaults properly
and skipping past the 12/24 hour settings page in the
preferences watch face.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/417
2024-08-30 16:47:47 -03:00
Matheus Afonso Martins Moreira
db4097bf84 Merge PR #426 - add temperature input to simulator
This patch enhances the Sensor Watch simulator with a temperature input
allowing users to simulate and test the temperature sensor.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/426
2024-08-30 16:47:47 -03:00
Matheus Afonso Martins Moreira
dea05663b0 Merge PR #428 - fix issues in sunrise/sunset
Takes zero into account, allowing the sunrise/sunset watch face
to work with no presets defined.

Also resolves a warning during compilation of the sunrise/sunset face.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/428
2024-08-30 16:47:47 -03:00
Matheus Afonso Martins Moreira
663cd725f8 Merge PR #434 - fix leap years
Improves handling of months in the Sensor Watch
by computing whether the given year is a leap year.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/434
2024-08-30 16:47:38 -03:00
Matheus Afonso Martins Moreira
c8ca0d3619 Merge PR #431 - fix wrong number of days in month
July has 31 days and but was set to 30 days in the Sensor Watch.
This patch fixes the discrepancy.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/431
2024-08-30 16:46:22 -03:00
Matheus Afonso Martins Moreira
95ca374c98 Merge PR #433 - fix clock face indicators
I misinterpreted the documentation and swapped the alarm and time signal
indicators in the clock face. This patch brings it back in sync with
the original watch's behavior as described in the manual.

Reported-by: 814d3 (GitHub)
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/433
References: https://github.com/joeycastillo/Sensor-Watch/pull/380
References: https://github.com/joeycastillo/Sensor-Watch/issues/132
2024-08-30 16:46:22 -03:00
Matheus Afonso Martins Moreira
657ff724d0 Merge PR #440 - fix countdown face issues
Avoid potential underflow when evaluating x - y with y > x.
Evaluate it only when y <= x instead.

Avoid clearing indicators in background task
since another watch face is likely active.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/440
2024-08-30 16:46:22 -03:00
Matheus Afonso Martins Moreira
42dc15117e Merge PR #447 - improve kim possible chime
The current one is slightly off compared to the original tune.

Original: https://www.youtube.com/watch?v=_3nfrGdVcv0
Before: https://onlinesequencer.net/4159215
After: https://onlinesequencer.net/4160385

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/447
2024-08-30 16:46:22 -03:00
Matheus Afonso Martins Moreira
a715265af6 Merge PR #437 - debouncing logic
Mechanical switches exhibit temporary voltage fluctuations
when electrical contact is made, which manifest as "bouncing"
between the logical high and low states. Sampling the switch's
state during this period of stability produces invalid results.

The switch must be debounced by ignoring the generated interrupts
until the switch's state has stabilized. This is implemented by delaying
the input events until an empirically determined time has elapsed.
As such this pull request introduces customizable high resolution timers
for debouncing button down and up events.

This software debouncing unfortunately increases the sensor watch's
input latency. This is an acceptable tradeoff due to better usability:
watch faces which require holding down buttons such as the pulsometer
should work much more reliably after this patch.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
Tested-on-hardware-by: Krzysztof Gałka <@kshysztof@Discord>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/437
References: https://en.wikipedia.org/wiki/Switch#Contact_bounce
2024-08-30 16:44:38 -03:00
Matheus Moreira
9c093f9540 Merge PR #387 - configurable default birthdate/location
Adds the ability to configure at compilation time
the movement's default birth date and location.

Tested-by: madhogs <madhogs@protonmail.com>
Tested-by: Niehztog <niehztog@gmail.com>
Tested-on-hardware-by: madhogs <madhogs@protonmail.com>
Tested-on-hardware-by: Niehztog <niehztog@gmail.com>
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/387
2024-08-30 16:44:38 -03:00
Matheus Moreira
c7413322a5 Merge PR #439 - fix scheduled task misses
The movement was checking for scheduled tasks
by comparing for equality their scheduled times to
the current time. However, it is possible that the time
has moved past the scheduled time by the time the
function executes, leading to scheduled tasks not
being executed and therefore to missed deadlines.

Changing it to `<=` fixes the problem by taking that
possibility into account.

Helped-by: Wesley Ellis <tahnok@gmail.com>
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/439
2024-08-30 16:44:38 -03:00
Matheus Moreira
c8a87d3b7c Merge PR #441 - update documentation
The TOTP watch face has gained a new declarative API
for defining secrets directly in the source code but the
documentation still describes the old interfaces.
This pull request brings the documentation up to date
with currect practice.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/441
2024-08-30 16:44:38 -03:00
Matheus Moreira
dd04443413 Merge PR #443 - improved t and y character display
The t and y characters were not being displayed optimally
in certain positions. This commit improves it substantially
by internally remapping those characters to better looking
characters when displaying on those positions.

Tested-by: David Volovskiy <devolov@gmail.com>
Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/443
References: https://hchargois.github.io/sensor-watch-playground/
2024-08-30 16:44:00 -03:00
Joseph Bryant
cae5d8a33f wait for RTC SYNCBUSY in watch_register_extwake_callback 2024-08-30 16:20:32 -03:00
metehan-arslan
2a194dfa69
style: remove extra whitespace 2024-08-28 20:40:32 +00:00
metehan-arslan
77fb6202c9
Update SIGNAL_TUNE_KIM_POSSIBLE notes 2024-08-27 13:56:36 +03:00
David Volovskiy
fe259ee526 Comment change 2024-08-26 21:40:56 -04:00
Matheus Moreira
01940449b6
Merge PR #442 - update devcontainer image
The devcontainer image stopped working
because the requested Ubuntu image
was too outdated. This pull request
brings it up to date and it should remain
functional until 2029. It also enables
use of the emulator by installing the
needed dependencies.

Reviewed-by: Matheus Afonso Martins Moreira <matheus@matheusmoreira.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/442
2024-08-26 09:41:08 -03:00
David Volovskiy
d5a8c57c82 Additional code review change 2024-08-23 22:25:02 -04:00
David Volovskiy
c6f2bff75e Code review edits 2024-08-23 17:35:16 -04:00
David Volovskiy
9640f452cd Made the T and Y characters look more unique on the 4 and 6 position 2024-08-22 20:46:47 -04:00
Nicholas Rodrigues Lordello
f02e73c1c4
Update Devcontainer Dockerfile
This PR updates the .devcontainer Dockerfile which was no longer
working. Attempting to build an image from the Dockerfile would result
in an error:

```
E: The repository 'http://archive.ubuntu.com/ubuntu kinetic Release' does not have a Release file.
```

AFAIU, this is because the 22.04 release is no longer supported. I
changed the base image to the current LTS release, which should remain
supported until 2029.

In addition, the Dockerfile is also modified to install `emscripten` APT
package. While this is not the recommented installation method from the
Emscripten docs, it is much more convenient and works enough to build
the simulator using the resulting Docker image.
2024-08-22 14:54:41 +02:00
Nicholas Rodrigues Lordello
a4fc048f94
Update TOTP Face Documentation
The TOTP face header file documentation contained outdated instructions
for configuring the complication with TOTP credentials. This PR updates
the documentation to match what is expected in `totp_face.c`.
2024-08-22 14:53:17 +02:00
Joseph Bryant
e2c5babb2c don't change the bell indicator from within background task 2024-08-18 22:09:37 +01:00
Joseph Bryant
dcd4d12c0a avoid delta overflow in countdown draw 2024-08-18 22:09:17 +01:00
Joseph Bryant
20b4a32835 make sure we don't miss our scheduled tasks 2024-08-18 20:09:06 +01:00
David Volovskiy
e9837ff0cb Stops Running cb_fast_tick when the watch debounce timer is defined as 0 2024-08-17 02:52:30 -04:00
David Volovskiy
2cdfa2d3b3 Set the debounce tick variables to 0 to make the face work the same as stock. 2024-08-17 02:45:22 -04:00
David Volovskiy
9861da84c3 Changed debounce to ignore button presses after a press down or up rathe rthan dact after a set amount of time due to an issue of delay_ms allowing a shoft-bricking 2024-08-11 11:00:08 -04:00
David Volovskiy
09576807eb Made the days_in_month its own function 2024-08-10 07:40:52 -04:00
David Volovskiy
f85a7f2c78 Swapped the bell and alarm icon on the clock face to match Casio's doc 2024-08-10 06:38:46 -04:00
Struan
1da9d0aefe
fix: july has 31 days 2024-08-07 22:24:57 -06:00
atax1a
0ad5fa4733
Merge pull request #429 from theAlexes/theAlexes/format-command
add a format command
2024-08-07 04:51:12 +00:00
Alex Maestas
44bdc8503e explain usage in format command when arg isn't YES 2024-08-05 23:11:54 +00:00
Alex Maestas
ca1da33b82 in filesystem_init, handle the error code correctly 2024-08-05 23:09:24 +00:00
Alex Maestas
7000d08ba5 add a format command 2024-08-05 23:06:18 +00:00
David Volovskiy
598e876186 check_and_act_on_daylight_savings now only occurs in one spot 2024-08-04 10:11:33 -04:00
David Volovskiy
2824a62908 Bugfix on not registering the top of an hour 2024-08-04 09:53:04 -04:00
Christian Buschau
7a15ed3591
faces/alarm_thermometer: new watch face 2024-08-03 18:59:41 +02:00
David Volovskiy
51176344dc Made it so the code works with a completely empty preset list 2024-08-03 11:42:42 -04:00
David Volovskiy
84f0db0654 Fix to remove compiler complaint 2024-08-03 11:38:45 -04:00
David Volovskiy
6ae5dfef70 Leap Years Now Handled Dynamically 2024-08-03 11:20:25 -04:00
David Volovskiy
aebea960c0 Cleanup to the default branch 2024-08-03 10:08:24 -04:00
David Volovskiy
e50390b673 DST roll is now a global variable in watch_rtc 2024-08-03 10:07:57 -04:00
David Volovskiy
74421c7e65 Day roll back repeat fix 2024-08-03 09:39:02 -04:00
David Volovskiy
fa2907e098 Some more cleanup 2024-08-03 09:38:00 -04:00
Christian Buschau
db165bec30
Fix all days in a month 2024-08-03 12:22:15 +02:00
Robert Masen
ccf99a9727 add temp input to simulator 2024-08-02 18:20:44 -05:00
David Volovskiy
bae8c65825 Made the faces I care about not need to continuously re-find the timezone 2024-08-02 07:37:30 -04:00
David Volovskiy
4c546b14dc The timezone now auto-corrects with DST (but still displays the same offset in the settings screen to the user) 2024-08-02 01:25:01 -04:00
David Volovskiy
149911e4ad Time now auto-updates with DST 2024-08-02 01:23:21 -04:00
atax1a
e732afbec6
Merge pull request #424 from edwardspeyer/bug-fix-july-31
Allow setting July 31st as today's date
2024-07-31 18:13:40 +00:00
EGS
278520bfaf Allow setting July 31st as today's date
To allow a valid date to be set the `set_time_face` cycles through the
valid days for a given month.  July was incorrectly encoded as having 30
days (it has 31!)
2024-07-31 18:17:04 +01:00
David Volovskiy
7bbac4cd80 Brought debounce time to 8ms rather than 15 2024-07-31 07:33:25 -04:00
David Volovskiy
027e42dc58 Moved a few lines around to match main 2024-07-31 07:25:09 -04:00
David Volovskiy
e297b3013e Using debounce that triggers when there's no change for Xms rather than just ignoring new presses after Xms 2024-07-31 07:22:33 -04:00
David Volovskiy
607946ed2e A little bit of clean-up 2024-07-30 07:27:47 -04:00
David Volovskiy
f7d1b8f9f3 Delay for starting the debounce no loonger happens 2024-07-29 23:53:25 -04:00
David Volovskiy
7f2ac61375 Fixed stuck fast_tick 2024-07-29 21:43:32 -04:00
David Volovskiy
73c3ba3ae7 Cleaned up code 2024-07-29 21:05:19 -04:00
David Volovskiy
36117ca207 using cb_fast_tick again 2024-07-29 20:48:17 -04:00
David Volovskiy
9727dac3c3 Revert "Leaving sleep with alarm button up doesn't trigger alarm button"
This reverts commit 7d5aaf60caa943a248a7f635111ddfd50c230389.
2024-07-29 20:28:10 -04:00
David Volovskiy
947e299494 Made the debounce register rising edges rather than falling edges 2024-07-29 20:13:54 -04:00
David Volovskiy
4a4fce428e Removed some dead code 2024-07-29 18:24:58 -04:00
David Volovskiy
df2dac5a07 debouince now uses cb_fast_tick and holding the button now also gets debounced 2024-07-29 18:12:46 -04:00
David Volovskiy
7d5aaf60ca Leaving sleep with alarm button up doesn't trigger alarm button 2024-07-29 07:44:31 -04:00
David Volovskiy
4375ca37e0 Added debouncing 2024-07-29 07:39:51 -04:00
PrimmR
a9e6b82f00 Update timeout & low energy behaviour 2024-07-25 15:31:25 +01:00
voloved
6e26c01de0
Holding light button on a non-element screen will turn on the light (#2)
* Holding light button on a non-element screen will turn on the light.

* The alarm and led button press moves back to the currently-selected element symbol page rather than the next and previous one

* Usage update
2024-07-25 14:18:56 +01:00
PrimmR
cb90a1980f Added LED button combo 2024-07-24 11:18:24 +01:00
atax1a
42c14c2e5b
Merge pull request #420 from voloved/sunrise_sunset_presets
Added ability to add presets to the sunrise and sunset face
2024-07-24 04:49:03 +00:00
voloved
c8702d346e
Added subscreens to periodic table face; added title and faster scrolling (#1)
* Added subscreens to periodic table face; added title and faster scrolling

* Resized buf for element display

* Fixed scrolling to work on actual hardware

* Added delay before _loop_text at title and bugfix on elements shorter than 6 char

* Title screen displays when le_mode starts

* Added documentation on usage and removed unneeded variable
2024-07-23 10:35:38 +01:00
Wesley Ellis
8aa1a3f8fa
Merge pull request #422 from wryun/fix-totp-lfs-error-params
Fix TOTP LFS printf string
2024-07-21 08:43:05 -04:00
James Haggerty
222c60b072 Fix TOTP LFS printf string 2024-07-21 09:10:28 +10:00
James Haggerty
5f1a651732 Keep light on if interacting
This makes it possible to do a bunch of things without
having to keep touching the light button.

I don't really see any downside with this. If you want
the light to go off, just stop touching buttons.
2024-07-21 08:25:54 +10:00
David Volovskiy
a13c8c35b8 Code review commit 2024-07-20 15:59:42 -04:00
David Volovskiy
9ee319c888 Typo in comment 2024-07-20 14:48:32 -04:00
David Volovskiy
a3d23ab45e Long press of Alarm goes back to default 2024-07-20 14:46:42 -04:00
David Volovskiy
a7c0fb7dfd Added ability to add presets to the sunrise and sunset face 2024-07-20 14:35:37 -04:00
David Volovskiy
2afc2c6721 isolating this bit of complexity in movement function; Add ifdefs in clock faces for DCE 2024-07-10 07:22:55 -04:00
joeycastillo
5ec3dca9e4 documentation fix 2024-07-10 06:56:49 -04:00
joeycastillo
ac5fb40730 remove dead code 2024-07-10 06:49:56 -04:00
David Volovskiy
7f6a9e5c9b Typo fix on PREFERENCES_FACE_NUM_PREFERENCES 2024-07-08 18:33:17 -04:00
David Volovskiy
b923d50652 CLOCK_FACE_24H_ONLY hides the preference to change the setting and defaults the mode to 24Hr mode 2024-07-08 18:32:41 -04:00
atax1a
5f5d86353f
Merge pull request #397 from madhogs/wyrun-totp-lfs-fix
Reduce totp_face_lfs memory usage
2024-07-08 21:10:46 +00:00
voloved
3eaf807590
Added Timeout; Ability to turn off LED and Sound; Added doublespeed mode. (#1)
* Check that color is valid

Instead of merely checking that COLOR is set, check that it is one of
RED, BLUE or GREEN

* Added ability to turn off sound and timer with modes

* Added enum for mode

---------

Co-authored-by: Wesley Ellis <tahnok@gmail.com>
2024-07-07 19:23:31 -04:00
Jose Castillo
d98d14d236
Add support for Sensor Watch Pro (#412)
* Sensor Watch Pro board definition

* Disable hot-plugging on SWCLK

* Add rainbow test

* Move interrupt mapping to board config

* New color definition for Pro boards in makefile
2024-07-06 11:07:02 -04:00
joeycastillo
89a2af92ef silence warnings 2024-07-06 08:52:41 -04:00
Wesley Ellis
226cda748c
Merge pull request #408 from tahnok/sanity-check-color
Check that color is valid
2024-06-26 11:40:28 -04:00
Wesley Ellis
96fdf64c4c Check that color is valid
Instead of merely checking that COLOR is set, check that it is one of
RED, BLUE or GREEN
2024-06-26 11:30:31 -04:00
Ruben Nic
7a2ecad334 Custom setting of switch from past to to index 2024-05-25 18:16:50 -04:00
Ruben Nic
af0f8d2732 If the alarm is enabled show bell not signal 2024-05-18 10:44:43 -04:00
Ruben Nic
53f11cbd1e have close enough to update less and clean up code 2024-05-15 12:30:00 -04:00
Ruben Nic
fa35b8bb77 Add close enough clock face 2024-05-06 20:32:59 -04:00
Matt Greer
9794f86430 simon_face: Simon game complication 2024-05-05 13:43:33 -04:00
R. Alex Barbieri
2ce07f9539 add blinking to DST toggle in settings page 2024-04-27 13:33:32 -05:00
R. Alex Barbieri
e3d67af604 Merge remote-tracking branch 'origin/main' into manual_dst_toggle
* origin/main: (119 commits)
  add an openocd.cfg for openocd 0.12.0
  Fix compile errors and warnings in movement.c and shell.c
  faces/totp: avoid displaying when key is invalid
  faces/totp: fix error message not displayed bug
  faces/totp: remove dynamic memory allocation
  faces/totp: improve memory usage
  faces: restore simple_clock_face
  uf2conv: argument to `re.split` should be a rawstring
  movement: fix unintended timeout short circuiting
  movement: convert can_sleep an automatic variable
  faces/pulsometer: remember pulsometer measurement
  faces/pulsometer: remember pulsometer calibration
  faces/totp: update copyrights
  faces/totp: allow moving backwards through codes
  faces/clock: add 24h only feature
  faces/clock: update copyrights and credits
  faces/totp: delete leading underscores
  faces/totp: rename initializer macro to credential
  faces/totp: improve TOTP initializer labeling
  faces/totp: decode secrets when setting up
  ...
2024-04-27 13:23:53 -05:00
James Haggerty
77ea1b8965 Reduce totp_face_lfs memory usage 2024-04-26 16:05:35 +01:00
atax1a
439843f56b
Merge pull request #388 from TheOnePerson/fix-compile-errors
Fix compile errors and warnings in movement.c and shell.c
2024-04-09 22:24:19 +00:00
atax1a
45beca19e8
Merge pull request #389 from joeycastillo/theAlexes/add-openocd
add an openocd.cfg for openocd 0.12.0
2024-04-09 22:23:21 +00:00
madhogs
524098b925 add the ability to set location and birthdate in movement config 2024-03-31 13:27:54 +01:00
atax1a
d2b5ed7155
Merge pull request #383 from theAlexes/theAlexes/fix-uf2conv
uf2conv: argument to `re.split` should be a rawstring
2024-03-31 00:40:05 +00:00
atax1a
1e29fe85e5
Merge pull request #385 from matheusmoreira/totp-hot-patch
TOTP hotfix: reduce memory usage
2024-03-31 00:39:43 +00:00
Alex Maestas
f28209b290 add an openocd.cfg for openocd 0.12.0 2024-03-31 00:37:35 +00:00
TheOnePerson
c22123961f Fix compile errors and warnings in movement.c and shell.c 2024-03-29 11:49:48 +01:00
Wesley Black
69f25f1016
Add files via upload 2024-03-20 17:54:23 -03:00
Wesley Black
0e70adf4d4
Update movement_faces.h 2024-03-20 17:53:45 -03:00
Matheus Afonso Martins Moreira
10701f3d50 faces/totp: avoid displaying when key is invalid
Fixes a division by zero bug caused by calling getCodeFromTimestamp
without having initialized the TOTP library with a secret first.
This was happening because the face calls totp_display on activation,
meaning the validity of the secret was not checked since this is
done in the generate function.

Now the validity of the key is determined solely by the size
of the current decoded key. A general display function checks it
and decides whether to display the code or just the error message.

The size of the current decoded key is initialized to zero
on watch face activation, ensuring fail safe operation.

Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: madhogs <59648482+madhogs@users.noreply.github.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/385
2024-03-20 12:54:20 -03:00
Matheus Afonso Martins Moreira
7e5c34773a faces/totp: fix error message not displayed bug
Forgot to call watch_display_string on the error message.
Of course the message isn't going to be displayed.

Also, increase the buffer size to 10 characters
and output a space to the last position.
This ensures the segments are cleared.

Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: madhogs <59648482+madhogs@users.noreply.github.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/385
2024-03-20 12:54:10 -03:00
Matheus Afonso Martins Moreira
3f850d79c8 faces/totp: remove dynamic memory allocation
Allocate an unlimited extent 128 byte buffer once during setup
instead of allocating and deallocating repeatedly. A static buffer
was not used because it fails to be reentrant and prevents multiple
instances of the watch face to be compiled by the user.

The advantage is the complete prevention of memory management errors,
improving the reliability of the watch. It also eliminates the overhead
of the memory allocator itself since malloc is not free.
The disadvantage is a worst case default size of 128 bytes was required,
meaning about 90 bytes will be wasted in the common case since most keys
are not that big. This can be overridden by the user via preprocessor.

The key lengths are checked on TOTP watch face initialization
and if any key is found to be too large to fit the buffer
it is turned off and the label and ERROR is displayed instead.

The base32 encoded secrets are decoded dynamically to the buffer
at the following times:

 - Face enters the foreground
 - User switches TOTP code

Therefore, there is still some extra runtime overhead
that can still be eliminated by code generation.
This will be addressed in future commits.

Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: madhogs <59648482+madhogs@users.noreply.github.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/385
2024-03-18 11:40:55 -03:00
Matheus Afonso Martins Moreira
df38c262b8 faces/totp: improve memory usage
The TOTP face is working in the simulator but fails on the real hardware
when loaded with lots of codes, just like the LFS version.
This is likely caused by the recent refactoring of the TOTP face
which introduced a declarative credential interface for ease of use.
That's accomplished by decoding the secrets at runtime which increases
the RAM requirements. Users are likely hitting memory limits.

In order to mitigate this, the algorithm is changed from decoding
all of the secrets only once during initialization to on the fly
decoding of the secret for the current TOTP credential only.
This converts this face's dynamic memory usage from O(N) to O(1)
at the cost of memory management when switching faces and credentials
which could impact power consumption. Issue is confirmed fixed by
author of issue who has tested it on real hardware. Fixes #384.

Due to variable key sizes, the memory cannot be statically allocated.
Perhaps there's a maximum key size that can serve as worst case?

Also took this opportunity to restructure the code a bit.
Also added code to check for memory allocation failure.

Reported-by: madhogs <59648482+madhogs@users.noreply.github.com>
Fixed-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: madhogs <59648482+madhogs@users.noreply.github.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/384
2024-03-17 20:48:54 -03:00
Matheus Afonso Martins Moreira
955ac94de3 faces: restore simple_clock_face
Restore the original simple clock face as requested.
2024-03-16 20:04:08 -03:00
Alex Maestas
40b71400c5 uf2conv: argument to re.split should be a rawstring 2024-03-16 16:50:55 +00:00
Matheus Afonso Martins Moreira
8bf652f213 Merge branch 'timeout-event-and-sleep-logic'
Currently, movement drops timeout events in case the previous loop
indicates that sleep is not possible. This is due to unintended
short circuiting behavior of && and is fixed with a temporary variable.

The static qualifier of can_sleep is also removed.

Helped-by: Alex Maestas <git@se30.xyz>
Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/376
2024-03-08 06:56:55 -03:00
Matheus Afonso Martins Moreira
ca40d101d3 Merge branch 'structured-totp+maxz' into advanced
Aggregates the TOTP credentials into a data structure,
making it easier to define and use the credentials.
Also incorporate backwards movement code from another branch.

Co-authored-by: Max Zettlmeißl <max@zettlmeissl.de>
Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/369
GitHub-Related-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/356
2024-03-08 06:56:31 -03:00
Matheus Afonso Martins Moreira
66796805ac Merge branch 'advanced-pulsometer' into advanced
Implements an advanced pulsometer that can be calibrated by the user.
Also features a streamlined and responsive user interface,
new documentation and generally improved code.

Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/371
2024-03-08 06:54:50 -03:00
Matheus Afonso Martins Moreira
4b269c5063 Merge branch 'advanced-clock+24h' into advanced
Completely refactors the simple clock face
and lays the foundations for new features.

Also adds a compile time 24 hour mode only feature.

Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/373
2024-03-08 06:54:22 -03:00
Matheus Afonso Martins Moreira
7208df1dfb Merge branch 'moon-phase-face-long-press-reset'
Makes a long press of the ALARM button reset the face to current day.

Reviewed-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-by: Wesley Aptekar-Cassels <me@wesleyac.com>
Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/316
2024-03-08 06:52:49 -03:00
Matheus Afonso Martins Moreira
f35cb849de Merge branch 'compile-time-preferences'
Adds overridable C preprocessor definitions for every user preference.
Enables the user to set defaults and omit the preferences face.

The default behavior of the watch is preserved.

Suggested-by: Wesley Aptekar-Cassels <me@wesleyac.com>
Implemented-by: madhogs <x3dh4vhf@duck.com>
Reviewed-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/295
GitHub-Related-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/291
2024-03-08 06:52:22 -03:00
Matheus Afonso Martins Moreira
35c0a4be87 Merge branch 'usb-improvements' into advanced
- Change newline prints to also send carriage return
 - Introduce shell module for serial shell with argument parsing
 - Introduce shell command list for compile time command registration
 - Refactor file system commands for shell subsystem
 - Introduce new shell commands:
   - 'help' command
   - 'flash' command to reset into bootloader
   - 'stress' tests CDC serial writes of various lengths
     - optional delay parameter
 - Harden USB handling
   - Hangs less
   - Drops fewer inputs
 - Circular buffers for both reads and writes

Reported-by: Edward Shin <contact@edwardsh.in>
Tested-by: Edward Shin <contact@edwardsh.in>
Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Reviewed-by: James Haggerty <james@gruemail.com>
Reviewed-by: Wesley Aptekar-Cassels <me@wesleyac.com>
Reviewed-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/344
2024-03-08 06:51:34 -03:00
Matheus Afonso Martins Moreira
592e18bf0e Merge branch 'silicon-errata' into advanced
Implements the recommended workarounds for numerous silicon errata,
reducing power consumption and preventing freezes and hard faults.

Tested-by: Alex Maestas <git@se30.xyz>
Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: Alex Maestas <git@se30.xyz>
Tested-on-hardware-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Reviewed-by: Wesley Aptekar-Cassels <me@wesleyac.com>
Reviewed-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/340
GitHub-Related-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/361
GitHub-Related-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/359
Reference: https://ww1.microchip.com/downloads/aemDocuments/documents/MCU32/ProductDocuments/Errata/SAM-L22-Family-Silicon-Errata-and-Data-Sheet-Clarification-DS80000782.pdf
2024-03-08 06:50:16 -03:00
Matheus Afonso Martins Moreira
a4ee7dd7fc Merge 'fix-sunrise-sunset-uninitialized'
Fixes a crash due to use of uninitialized buffer when setting location.

Reported-by: eshrh <esrh@gatech.edu>
Fixed-by: Wesley Aptekar-Cassels <me@wesleyac.com>
Reviewed-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/329
GitHub-Issue: https://github.com/joeycastillo/Sensor-Watch/issues/198
Fixes: https://github.com/joeycastillo/Sensor-Watch/issues/198
2024-03-08 06:49:18 -03:00
Matheus Afonso Martins Moreira
b1adbd548e movement: fix unintended timeout short circuiting
Currently, movement drops time out events in case the previous loop
indicates that sleep is not possible due to short circuiting behavior
of logical and in C: if the left-hand side is false, the right hand
side is not evaluated at all, which means the loop is not called.
This was not intended to happen.

Fix it by storing the result in a second boolean variable
and working out the logic after the fact.
2024-03-05 21:49:32 -03:00
Matheus Afonso Martins Moreira
6ca553e648 movement: convert can_sleep an automatic variable
It is a simple boolean value and its scope is limited to the function.
There is no reason that I can think of for it to be a static variable.
2024-03-05 21:08:10 -03:00
Matheus Afonso Martins Moreira
fb3b96c8b7 faces/pulsometer: remember pulsometer measurement
Avoid resetting it to zero when the face is activated.
Initialize the variables once when the face is first set up.

This makes it remember the last measurement taken by the user.
It will no longer be overwritten when the watch face activates.
2024-03-05 04:41:58 -03:00
Matheus Afonso Martins Moreira
e1b1493894 faces/pulsometer: remember pulsometer calibration
Avoid resetting it to default when the face is activated.
Set the default pulsometer calibration once,
only when the face is first set up.

This makes it remember the calibration set by the user.
It will no longer overwrite it.
2024-03-05 04:14:10 -03:00
Matheus Afonso Martins Moreira
92baa2200f faces/totp: update copyrights
Update the copyrights to include full name attribution
to Max Zettlmeißl whose code I've incorporated and who
has explicitly licensed it as MIT.

Max Zettlmeißl (@maxz) commented on 2024-01-20:

> I provide all my changes under the MIT license

GitHub-Comment: https://github.com/joeycastillo/Sensor-Watch/pull/356#issuecomment-1902114306
2024-03-05 03:58:09 -03:00
Max Zettlmeißl
26e1b7bdc4 faces/totp: allow moving backwards through codes
Adds the ability to cycle back to the previous credential with LIGHT.
Long pressing LIGHT activates the LED.

Co-authored-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
2024-03-05 03:58:09 -03:00
Matheus Afonso Martins Moreira
4a66035f77 faces/clock: add 24h only feature
The clock watch face can now be configured at build time
to only display the time in 24h mode. Also enabled in forced 24h mode.

This should result in smaller code size due to dead code elimination.
2024-03-05 00:46:27 -03:00
Matheus Afonso Martins Moreira
4cca3a0fac faces/clock: update copyrights and credits
Update the copyrights to include full name attribution to all
who contributed to the clock watch face, including myself.

Also add an SPDX license identifier header comment to the files.
2024-03-05 00:46:27 -03:00
Matheus Afonso Martins Moreira
4633be0845 faces/totp: delete leading underscores
Makes for cleaner symbols.
2024-02-25 22:57:47 -03:00
Matheus Afonso Martins Moreira
238709e1d9 faces/totp: rename initializer macro to credential
Shorter and far more expressive.
2024-02-25 22:53:15 -03:00
Matheus Afonso Martins Moreira
46a4076f9e faces/totp: improve TOTP initializer labeling
It now generates the string literal from the preprocessor token.
Even warns the user if the string is too long!
2024-02-25 22:52:31 -03:00
Matheus Afonso Martins Moreira
d70511515e faces/totp: decode secrets when setting up
This allows the user to easily copy the base32 encoded secrets
into the TOTP record initializers. They will be decoded once
at runtime when the face is being set up by the movement framework.

Also rename the array of TOTP records to credentials. Much better.
2024-02-25 22:50:47 -03:00
Matheus Afonso Martins Moreira
69639a5736 faces/clock: indicate low power only when needed
There is no need to set the indicator on every clock tick.
Indicate only when the battery is checked.
2024-02-25 15:24:15 -03:00
Matheus Afonso Martins Moreira
5c376d9b9a faces/clock: indicate alarm only when necessary
The alarm state is not modified within the clock face.
Therefore, it only needs to be set when the face is activated.
2024-02-25 15:24:15 -03:00
Matheus Afonso Martins Moreira
2df6b2879a faces/clock: refactor time signal toggling code
Simplifies the code by defining dedicated functions for this.
2024-02-25 15:24:15 -03:00
Matheus Afonso Martins Moreira
1e2c23cf13 faces/clock: refactor clock display code
Simplifies the code by defining dedicated functions for this.
2024-02-25 15:24:15 -03:00
Matheus Afonso Martins Moreira
830200f9c3 faces/clock: reorder periodic battery check
Check the battery after the time has been updated.
Place all the indication code next to each other.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira
bf4d7a3f2b faces/clock: refactor partial time display code
Simplifies the code by defining dedicated functions for this.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira
8f07192053 faces/clock: refactor full time display code
Simplifies the code by defining dedicated functions for this.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira
76add5a2da faces/clock: refactor tick tock animation code
Simplifies the code by defining dedicated functions for this.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira
1d79930ab7 faces/clock: refactor low power tick function
Simplifies the code by defining dedicated functions
and separating the case from the main ones.

Also use the snprintf function since the buffer size is known.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira
e7052fe4e2 faces/clock: simplify LAP indication function
Simplifies the code by adding a dedicated function for this.
Also documents the meaning of the LAP indicator: Low Available Power.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira
0773439a49 faces/clock: refactor daily battery check
Move the code in question to a dedicated function. Better organized.
Add overridable preprocessor definition for the low battery threshold.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira
91713392a5 faces/clock: simplify PM indication function
Simplifies the code by adding dedicated functions for this.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira
113b4bba9c faces/clock: simplify 24h indication function
Simplifies the code by adding a dedicated function for this.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira
2132320d5c faces/clock: simplify signal indication function
Simplifies the code and makes it use the correct indicator.
For some reason it had been switched with the alarm indicator.

    WATCH_INDICATOR_BELL
        The small bell indicating that an alarm is set.

    WATCH_INDICATOR_SIGNAL
        The hourly signal indicator.
        Also useful for indicating that sensors are on.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira
e2cba9f2f2 faces/clock: simplify alarm indication function
Deduplicates state in the clock state and movement settings.
Makes the code simpler.

Also makes it use the correct indicator.
For some reason it had been switched
with the hourly chime indicator.

    WATCH_INDICATOR_BELL
        The small bell indicating that an alarm is set.

    WATCH_INDICATOR_SIGNAL
        The hourly signal indicator.
        Also useful for indicating that sensors are on.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira
e6d8b6aaff faces/clock: define general indication function
Sets or clears the specified indicator based on some boolean value.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira
01312c2deb faces/clock: move structure definition
Instances of the clock state structure
are only passed to the clock face itself
and only via the opaque context pointer.
No other code uses it.

Thus there is no need to expose it in a header file.
So make it an implementation detail of the watch face
by localizing it inside the translation unit.
2024-02-25 15:24:14 -03:00
Matheus Afonso Martins Moreira
8f040252fd faces: rename simple_clock_face to clock_face
It's not actually so simple and will only gain features from now on.
Just "clock face" also feels more canonical.
2024-02-24 18:53:07 -03:00
Matheus Afonso Martins Moreira
30ebf4743e faces/pulsometer: move structure definition
Instances of the pulsometer state structure are only passed
to the pulsometer itself and only via the opaque context pointer.
No other code uses it. There is no need to expose it in a header file
so make it an implementation detail of the watch face.
2024-02-24 05:17:56 -03:00
Matheus Afonso Martins Moreira
4d77273238 faces/pulsometer: update copyrights and credits
Update the copyrights to include full name attribution to all
who contributed to the pulsometer watch face, including myself.

Also add an SPDX license identifier header comment to the files.
2024-02-24 05:17:43 -03:00
Matheus Afonso Martins Moreira
4b67ef56c6 faces/pulsometer: document the advanced pulsometer
Thoroughly document the new advanced pulsometer watch face
by describing what it is and how it works.
2024-02-24 05:17:43 -03:00
Matheus Afonso Martins Moreira
ea47bf9f22 faces/pulsometer: implement advanced pulsometer
Implements an advanced pulsometer that can be recalibrated by the user.
The main clock face now displays the measured pulses per minute.
The day of month digits now display the pulsometer calibration.
The light button now cycles through integer graduations
which now range from 1 to 39 pulses per minute.
Long presses of the light button cycle by 10 instead of 1.

The watch face's responsiveness to input has been carefully optimized.
The code has been reorganized and generally improved.
2024-02-24 05:17:43 -03:00
Matheus Afonso Martins Moreira
1c0050c97b faces/totp: update copyright and license data
Update the copyrights to include full name attribution
to all who contributed to this watch face, including myself.

Also add an SPDX license identifier header comment to the files.

https://spdx.org/licenses/MIT.html
2024-02-21 03:25:29 -03:00
Matheus Afonso Martins Moreira
0ebd94c4e1 faces/totp: delete unused structure field
The TOTP watch face now keeps track of each key separately.
There is no need to compute offsets at runtime.
2024-02-20 23:24:01 -03:00
Matheus Afonso Martins Moreira
79cfe315ff faces/totp: update watch face logic for new struct
Using the new structured TOTP record data structure
allows the TOTP watch face to statically and implicitly
compute the total number of defined TOTP records.

Users can now simply add new keys and records in the designated area
and the watch face will compile and automatically use them with no need
to maintain a separate array size variable. Less chance of mistakes.
2024-02-20 23:20:21 -03:00
Matheus Afonso Martins Moreira
bbb920a5d8 faces/totp: define current TOTP data function
Selects the appropriate TOTP data structure
given the TOTP watch face state.
2024-02-20 23:18:00 -03:00
Matheus Afonso Martins Moreira
48e7fb1a7c faces/totp: define TOTP data array size function
Computes the size of the array of TOTP records.
The compiler will likely evaluate it at compile time.
2024-02-20 23:16:41 -03:00
Matheus Afonso Martins Moreira
a99f6a716f faces/totp: update example data to new structure
The data definitions are much shorter and easier to read now.
2024-02-20 23:15:15 -03:00
Matheus Afonso Martins Moreira
8a7d9326cf faces/totp: define TOTP struct initializer macro
Generates a compound initializer for the given TOTP parameters.
Lessens repetition and allows functional definitions of TOTP records.
2024-02-20 23:12:53 -03:00
Matheus Afonso Martins Moreira
67907e4e5c faces/totp: define TOTP data structure
Aggregates all the data necessary for TOTP generation.
2024-02-20 23:10:13 -03:00
madhogs
3c6affb419
Merge branch 'main' into preferences_in_config 2024-02-14 17:17:10 +00:00
Max Zettlmeißl
af18673e1a
Change inactivity deadlines: add 10 minutes and remove 2 days. (#365)
I like to use the ten minute timeout on my watch and there are other
people who have similar interests in a lower deadline. The two day
deadline had to go to still accommodate the change within the three
bit index.

The default setting is still the one hour timeout.
2024-02-07 14:02:41 -05:00
Wesley Ellis
11de5936c5
Merge pull request #362 from Kistelini/fix
Revert "make the watch-face a global in movement.c, actually"
2024-01-22 12:09:05 -05:00
Alex Maestas
a2a60eb31a annotate SLEEPCFG-register detail 2024-01-22 00:39:20 +00:00
Alex Maestas
af49d3cfcb annotate voltage regulation erratum 2024-01-22 00:39:20 +00:00
Alex Maestas
2ae8f9863b annotate SysTick erratum 2024-01-22 00:39:20 +00:00
Alex Maestas
83a0e4e992 annotate TRNG erratum, address review comment 2024-01-22 00:39:18 +00:00
Christian Buschau
898b159a90
Revert "make the watch-face a global in movement.c, actually"
This reverts commit 0e801ed505cb0c368bf1eb0473058efb6c275a3e.
2024-01-21 20:31:37 +01:00
Wesley Aptekar-Cassels
3703d565ed
Merge pull request #337 from theAlexes/theAlexes/wyoscan-zero
make the zero in wyoscan a little more visually appealing
2024-01-21 02:35:32 -05:00
Wesley Aptekar-Cassels
3f58ce7693
Merge pull request #322 from WesleyAC/watch-face-save-load
Add save_load_face
2024-01-21 02:10:16 -05:00
Wesley Aptekar-Cassels
501ed8f9d2
Merge branch 'main' into watch-face-save-load 2024-01-21 02:08:28 -05:00
Wesley Aptekar-Cassels
45ede8f256
Merge pull request #319 from WesleyAC/watch-face-day-night-percentage
Add day_night_percentage_face.
2024-01-21 02:06:14 -05:00
Wesley Aptekar-Cassels
fe48776dae
Merge branch 'main' into watch-face-day-night-percentage 2024-01-21 02:04:20 -05:00
Wesley Aptekar-Cassels
332728b511
Merge pull request #318 from WesleyAC/watch-face-simple-coin-flip
Add simple_coin_flip_face
2024-01-21 02:03:41 -05:00
Wesley Aptekar-Cassels
f16ce6a767
Merge branch 'main' into watch-face-simple-coin-flip 2024-01-21 02:01:27 -05:00
Wesley Aptekar-Cassels
233036ff59
Merge pull request #315 from WesleyAC/watch-face-solstice
Add solstice_face
2024-01-21 02:00:51 -05:00
Wesley Aptekar-Cassels
29784983b5
Merge branch 'main' into watch-face-solstice 2024-01-21 01:58:20 -05:00
Wesley Aptekar-Cassels
e49a75b8ef
Merge pull request #339 from theAlexes/theAlexes/cleanup
did a tiny bit of code cleanup, encountered a bug that might fix some sleep-mode issues
2024-01-21 01:44:19 -05:00
Wesley Aptekar-Cassels
d7369cd00d
Merge branch 'main' into theAlexes/cleanup 2024-01-21 01:31:58 -05:00
Wesley Aptekar-Cassels
9e41ac8e49
Merge pull request #360 from CarpeNoctem/compiler_warning_watch_face_index
template: fix compiler warning on watch_face_index as mentioned in PR269
2024-01-21 01:21:32 -05:00
CarpeNoctem
6985ca54f3 template: fix compiler warning on watch_face_index as mentioned in PR 269 2024-01-17 23:08:54 +11:00
Wesley Aptekar-Cassels
07e45acba7
Merge pull request #325 from WesleyAC/fix-le-buzzer-default-tune
Fix buzzer in LE mode.
2024-01-11 19:53:51 -05:00
joeycastillo
cd44cb74a2 fix alternate firmware script 2024-01-10 09:38:33 -05:00
Wesley Aptekar-Cassels
bf8c1b5dae
Merge pull request #342 from theAlexes/theAlexes/nanosec-profile-bug
delete stray line of code that messed with correction profile
2024-01-09 17:46:48 -05:00
Alex Maestas
aa3a1eeeef movement: Use LE mode code to keep buzzer awake, instead of sleeping. 2024-01-09 16:24:11 -05:00
Wesley Aptekar-Cassels
50dccd07d3 buzzer: fix simulator build, refactor sequence_length. 2024-01-09 16:22:21 -05:00
Wesley Aptekar-Cassels
e9fe4aeefe Enable custom signal tones in LE mode.
This makes movement_play_signal synchronous when in LE mode, despite
using the underlying asynchronous API. It's a bit of a hack, but it
should work well enough for now.

This also moves the enabling/disabling of the buzzer into the
movement_play_signal function, so that watch faces no longer have to do
it.
2024-01-09 16:22:21 -05:00
Wesley Aptekar-Cassels
3ee32c6e57 Use legacy buzzer functions when playing default tune.
This allows the default tune to be played in LE mode.

Fixes: #275
2024-01-09 16:22:21 -05:00
Wesley Aptekar-Cassels
6f4917a0d5 Revert "Merge pull request #283 from neutralinsomniac/fix_hourly_chime_background"
This reverts commit 5c94111ea20e50cb9dab8f416603403185e933b3, reversing
changes made to bc9b4ce700d3f12adc0daceaa880e3d638df0c2b.
2024-01-09 16:22:21 -05:00
Jose Castillo
b6cdef0689
Merge pull request #350 from pfmaggi/main
Handle visibility for tomato watchface
2024-01-09 15:54:46 -05:00
Pietro F. Maggi
8e0e942573 Handle visibility for tomato watchface
(cherry picked from commit 547e8248ba3538693ee8c587a92ffece7b40d1a2)
2024-01-07 12:43:18 +01:00
Edward Shin
5b762d0168 USB Improvements
* Introduce shell module for basic serial shell with argument parsing
* Introduce shell_cmd_list module for basic compile-time command
  registration
* Harden USB handling to hang less and drop fewer inputs
  - Service tud_task() with periodic TC0 timer interrupt
  - Service cdc_task() with periodic TC1 timer interrupt
  - Handle shell servicing in main app loop
  - Add a circular buffering layer for reads/writes
* Change newline prints to also send carriage return
* Refactor filesystem commands for shell subsystem
* Introduce new shell commands:
  - 'help' command
  - 'flash' command to reset into bootloader
  - 'stress' command to stress CDC writes

Testing:
* Shell validated on Sensor Watch Blue w/ Linux host
* Shell validated in emscripten emulator
* Tuned by spamming inputs during `stress` cmd until stack didn't crash
2024-01-07 00:20:20 -05:00
Alex Maestas
399679ac59 delete stray line of code that messed with correction profile while adjusting cadence 2023-12-22 22:35:46 +00:00
Alex Maestas
de692e05e2 make any unknown interrupts/faults reset the microcontroller 2023-12-18 06:41:21 +00:00
Alex Maestas
d96d6f9c91 make the HAL sleep function obey the chip documentation
the sleep mode doesn't get set immediately, and needs to be waited upon.
2023-12-18 03:09:36 +00:00
Alex Maestas
d10fa223b2 address SysTick erratum, which can hard-fault the chip 2023-12-18 01:29:28 +00:00
Alex Maestas
93d7f38d67 fix simulator build by declaring Trng type as a void pointer 2023-12-17 22:40:04 +00:00
Alex Maestas
68f3865227 work around silicon erratum in SUPC/VREG 2023-12-17 17:40:19 +00:00
Alex Maestas
89e86fe629 work around silicon erratum in TRNG 2023-12-17 17:39:59 +00:00
Alex Maestas
0e801ed505 make the watch-face a global in movement.c, actually 2023-12-17 03:23:26 +00:00
Alex Maestas
8eae6eabd6 clean up trailing whitespace in movement.c 2023-12-16 22:23:32 +00:00
Alex Maestas
0ffe19da5b use a pointer to the watch face in the app loop instead of indirecting through the index each time, and also recalculate can_sleep based on the timeout loop call. 2023-12-16 22:23:19 +00:00
Alex Maestas
06d546f179 make it clear that the movement_state contains indexes 2023-12-16 22:08:10 +00:00
Alex Maestas
dd9ca10122 make the zero in wyoscan a little more visually appealing 2023-12-08 22:11:56 +00:00
Wesley Aptekar-Cassels
63d6bc6aa0
Merge pull request #336 from theAlexes/theAlexes/sanitize
fix undefined behavior found by clang's sanitize

The compiler isn't completely assured of the possible range of this variable. Probably harmless, but it clears up a clang sanitize error.
2023-12-06 21:49:58 -05:00
Alex Maestas
8206f37fcf fix undefined behavior found by clang's sanitize 2023-12-07 02:24:26 +00:00
PrimmR
1b90a4a07a
Kitchen Conversions Face 2023-12-01 15:33:38 -05:00
Wesley Aptekar-Cassels
91c82ee5f2
Merge pull request #281 from Kistelini/day_one_face
Improvements for Day One face
2023-11-27 23:24:04 -05:00
Wesley Aptekar-Cassels
a2f1ba9171
Merge branch 'main' into day_one_face 2023-11-27 23:08:28 -05:00
Alex Utter
7802994854
Fix missing documentation for many clock faces:
* Move from .c to .h as needed for consistency.
* When missing from both, copy from pull request or wiki.
* When missing entirely, infer functionality from source code.
2023-11-27 23:06:19 -05:00
PrimmR
7eb725a5f6 Periodic Table Face 2023-11-24 18:58:07 +00:00
Wesley Aptekar-Cassels
3487d742f1
Merge pull request #330 from hchargois/fix-simulator-keyboard-shortcuts
Fix simulator keyboard shortcuts
2023-11-19 21:56:05 -05:00
Hugo Chargois
b82d728937 Simulator: Add keyboard arrows as buttons shortcuts 2023-11-19 19:50:39 +01:00
Hugo Chargois
bd9d792230 Simulator: Allow sending debug command with Enter 2023-11-19 19:50:39 +01:00
Hugo Chargois
2534dc7a65 Simulator: Allow typing a, l & m in console input
These keys are the shortcuts to "press" the alarm, light and mode
buttons. However, they prevent these letters from being input in the
debug console to send filesystem commands. Strangely, there was already
some code to allow typing these letters in the console output, but not
in the input.
2023-11-19 19:45:51 +01:00
Wesley Aptekar-Cassels
4ececdc57a
Merge pull request #305 from ekaitz-zarraga/couch-2-5k
Add Couch-To-5k training face
2023-11-19 11:44:11 -05:00
Ekaitz Zárraga
735bbc97d7
Merge branch 'main' into couch-2-5k 2023-11-19 15:36:52 +01:00
Ekaitz Zarraga
f77ddc83b8 Resign when the entering LE 2023-11-19 15:31:56 +01:00
Ekaitz Zarraga
30c8da7f55 Fit naming conventions 2023-11-19 15:28:45 +01:00
Wesley Aptekar-Cassels
50e3da11bd
Merge pull request #308 from BrianBinFL/feat/minute-repeater-decimal-face
Add minute repeater decimal face
2023-11-19 01:07:31 -05:00
Wesley Aptekar-Cassels
6cc2b23723
Merge branch 'main' into feat/minute-repeater-decimal-face 2023-11-19 00:56:33 -05:00
Wesley Aptekar-Cassels
76b580a5be
Merge pull request #262 from rieck/timestamp-fix
Fix for incorrect conversion from `watch_date_time` to Unix time.
2023-11-19 00:10:19 -05:00
Wesley Aptekar-Cassels
1f6409a71c sunrise_sunset_face: Fix use of uninitialized memory.
This was causing a crash in the simulator when setting the location.

Fixes: #198
2023-11-18 23:53:24 -05:00
Wesley Aptekar-Cassels
c4a5cb463e
Merge pull request #276 from hchargois/simulator-volume-slider
Simulator volume slider
2023-11-18 23:17:56 -05:00
Wesley Aptekar-Cassels
3b9fd8b0e9
Merge pull request #302 from LtKeks/Sensor-Watch-bugfix-timer_face-datatype
timer_face - Possibility to set seconds as default values
2023-11-18 23:12:51 -05:00
Wesley Aptekar-Cassels
2b7162c2be
Merge pull request #270 from perw/tuning_tones
new face: Tuning tones
2023-11-18 23:11:56 -05:00
Victor Graf
5b212a4423
Fix simulator and hardware divergence in callback handling (#252)
When using the simulator, I encountered cases where the light would become stuck on, and the watch
would be unresponsive. In particular, this would occur when pressing the light button on the
sunrise sunset watch face.

I appears that this is caused by a divergence in out the callback mask is interpreted by the
hardware interface, and in the simulator in the following function.

void watch_rtc_disable_matching_periodic_callbacks(uint8_t mask)

In particular, a mask of 0xFE is intended to disable all except the 128hz callback at index 0,
but instead disables all except the 1hz callback at index 7 in the simulator.
2023-11-18 23:10:45 -05:00
Wesley Aptekar-Cassels
ae6ccfd637
Merge pull request #273 from hchargois/atchar-pos-0
Turn on the funky segment of pos 0 for char '@'
2023-11-18 23:09:17 -05:00
Wesley Aptekar-Cassels
cda66e8c31
Merge pull request #267 from navan93/print-memory-percentages
Print memory percentages
2023-11-18 23:08:30 -05:00
Hugo Chargois
2e9ea8c36f Improve simulator page design 2023-11-19 01:24:57 +01:00
Jose Castillo
0263d9e0c7
Merge pull request #292 from WesleyAC/error-when-no-color
Don't allow building without setting board color.
2023-11-17 12:31:40 -05:00
Christian Buschau
984990fb66
day_one_face: show set date on short alarm button press 2023-11-17 09:11:18 +01:00
Christian Buschau
e8b7985dde
day_one_face: enable quick cycle through settings
This allows the alarm button to be held down in the date settings and
quickly cycle through the dates instead of having to push for each
single increment like in other faces.
2023-11-17 09:11:18 +01:00
Christian Buschau
1022359252
day_one_face: allow years until 2080
This is the same limit introduced in commit 7fd51ca
2023-11-17 09:11:18 +01:00
Christian Buschau
8c7e9fa558
day_one_face: cleanup 2023-11-17 09:11:16 +01:00
Wesley Aptekar-Cassels
1120690e13 Add save_load_face. 2023-11-09 22:22:40 -05:00
Wesley Aptekar-Cassels
691f2fe506 day_night_percentage_face: Clear seconds digits when entering LE mode. 2023-11-09 20:31:56 -05:00
Wesley Aptekar-Cassels
26f63dcaeb day_night_percentage_face: Use PM indicator instead of DA/NI.
This allows for use of the weekday digits for displaying the weekday.
2023-11-09 17:35:58 -05:00
Wesley Aptekar-Cassels
2e8ee9965e day_night_percentage_face: Calculate rise/set/daylen only once per day. 2023-11-09 17:21:35 -05:00
Wesley Aptekar-Cassels
f1d4d4ce89 Add day_night_percentage_face. 2023-11-09 02:34:36 -05:00
Wesley Aptekar-Cassels
73f689e65a Add simple_coin_flip_face. 2023-11-08 19:29:56 -05:00
Wesley Aptekar-Cassels
dcf167a8bf Add solstice_face. 2023-11-06 18:01:44 -05:00
Wesley Aptekar-Cassels
fc8c1fc726 moon_phase_face: Make alarm long-press reset to current day. 2023-11-03 06:34:31 -04:00
Jonathan Glines
f633b7634b Support leading zero representation for 24h clock
Toggle between default behavior and leading zero with long-press of alarm
button on page with 24h setting.
2023-10-29 11:15:50 -04:00
Brian Blakley
9c895817a0 Add minute repeater decimal face 2023-10-24 18:20:54 -04:00
Ekaitz Zarraga
d3d76ed0e7 Add sound to pause/resume button 2023-10-21 15:47:26 +02:00
Ekaitz Zarraga
cde6ae3598 Add Couch-To-5k training face 2023-10-21 01:30:03 +02:00
joeycastillo
67be6affd3 new standard firmware for october boards 2023-10-19 15:49:27 -04:00
LtKeks
ad846f5060 Update timer_face.c
Corrects the data type of the standard values in order to be able to configure seconds as well.
2023-10-15 17:35:36 +02:00
Wesley Aptekar-Cassels
7d353bba1c Set default board color for GH workflow.
I've chosen blue arbitrarily.
2023-10-05 12:42:43 -04:00
madhogs
868fecd248 add compile-time options for all preferences to movement_config 2023-10-02 17:23:11 +01:00
Wesley Aptekar-Cassels
4763568900 movement: default to "instant" led_duration.
This is a matter of personal preference, but "instant" is the behaviour
of the original watch, and seems like the thing more people would
expect. Feel free not to take this commit if you disagree, though.
2023-09-29 22:13:29 -04:00
Wesley Aptekar-Cassels
30195a2619 movement: Add "instant" led_duration option.
This illuminates the LED only for the time that the button is pressed,
and turns it off as soon as it's released, which is the behaviour of the
original watch.

I chose a led_duration of zero to represent "instant" and all bits set
to represent "no LED", which is arbitrary but seemed more sensible to
me.
2023-09-29 22:10:14 -04:00
Dennisman219
2164593484 Leading 0 for hours <12 in 24h mode 2023-09-29 14:17:30 +02:00
Dennisman219
c15b01cd4c Added missing description to header file 2023-09-29 14:16:51 +02:00
Wesley Aptekar-Cassels
c28ba6ef0b Don't allow building without setting board color.
Fixes: #288
2023-09-28 18:29:32 -04:00
Dennisman219
57e9f11a0c Minimal clock face 2023-09-27 22:14:19 +02:00
Jose Castillo
5c94111ea2
Merge pull request #283 from neutralinsomniac/fix_hourly_chime_background
fix signal tunes not firing in background, and move buzzer disable/enable logic into movement
2023-09-24 13:06:19 -04:00
joeycastillo
b162dc0663 use movement_play_signal for default tune (fixes background signal) 2023-09-24 12:41:18 -04:00
Jeremy O'Brien
45f402b4ec move buzzer enabled detection logic into movement for movement_play_signal/tune
this way watch faces don't have to disable/enable the buzzer themselves
before calling movement_play_signal() and movement_play_tune()
2023-09-23 10:56:12 -04:00
Jeremy O'Brien
bfde84f01d fix signal tunes not firing in background, and split out foreground/background chime functions 2023-09-22 07:29:04 -04:00
Hugo Chargois
baadb0b43f Save the selected skin of the simulator in local storage 2023-09-16 02:39:39 +02:00
Hugo Chargois
2e364f4ef9 Add a volume slider in the simulator 2023-09-16 02:39:39 +02:00
joeycastillo
bc9b4ce700 update alternate firmware for new board color 2023-09-13 14:08:52 -04:00
joeycastillo
9cd39cd3e3 add new COLOR flag 2023-09-13 11:40:40 -04:00
Hugo Chargois
ebfeb1f21a Turn on the funky segment of pos 0 for char '@' 2023-09-09 02:22:08 +02:00
Per Waagø
9e88f37ced new face: Tuning tones
Add a new face that plays out tones that can be used as a
reference when tuning musical instruments.
2023-09-06 21:46:31 +02:00
CarpeNoctem
82ed355aba fix two-part bug with decimal seconds introduced during big refactor. 2023-09-06 01:21:26 +10:00
CarpeNoctem
56f76b8c6a Initial commit of French Revolutionary (Decimal) Time face. (french_revolutionary_face) 2023-09-06 00:20:55 +10:00
R. Alex Barbieri
f3c28ede96 add a manual dst toggle
Uses a simplistic set of jump tables to toggle daylight savings on and off.
2023-09-02 14:52:37 -05:00
Navaneeth Bhardwaj
a5abf7ff7a Print memory percentages
this gives better idea of memories used.
2023-09-03 00:20:04 +05:30
joeycastillo
7fd51caa25 support years through 2080 2023-08-27 17:53:17 -04:00
joeycastillo
e4ad0e5567 default year to 2023 2023-08-27 17:53:02 -04:00
joeycastillo
1cb5d00aaf final build of red firmware 2023-08-27 17:52:18 -04:00
joeycastillo
cd9d85e808 update red firmware for shipboards.sh 2023-08-26 11:49:18 -04:00
joeycastillo
d323b79916 new default firmware 2023-08-25 15:44:33 -04:00
joeycastillo
e38f3bbec9 show temperature and battery voltage in low energy mode 2023-08-25 15:44:33 -04:00
joeycastillo
413e4602a7 final gerbers 2023-08-25 13:41:55 -04:00
Konrad Rieck
43e94ca0f2 Watch face for tracking deadlines.
You can enter and monitor up to four different deadlines by providing their respective date and time. The watch face displays the remaining time at matching granularity, ranging from years to seconds.
2023-08-20 22:34:50 +02:00
joeycastillo
fd2c8c2065 add sensor watch lite 2023-08-17 14:35:51 -04:00
Konrad Rieck
0f9bb0bd37 Fixed incorrect conversion from UNIX timestamp to watch_date_time. 2023-08-11 22:26:34 +02:00
mrbrown8
15eeca6b59
Decimal time face (#260)
* Update movement_faces.h

adding decimal_time_face.h to build

* Decimal Time, a new clock face

This face presents the current time as hours and hundredths of an hour.

* add decimal time to Makefile
2023-07-29 08:10:28 -04:00
Jose Castillo
07f150fbec
Merge pull request #253 from Kistelini/counter
Counter face: change sound to non-blocking, add option to deactivate sound
2023-07-29 07:48:16 -04:00
joeycastillo
e5dcc9d1b7 counter face: move beep_on to watch face state 2023-07-29 07:43:51 -04:00
Jose Castillo
2738a8b77a
Merge pull request #258 from analogist/nanosec-fix-profbounds
fix nanosec_face correction_profile bounds from going negative
2023-07-29 07:30:40 -04:00
austenadler
340e5d1a4a
Fix lengthBytesUTF8 not a function (#255)
* Add lengthBytesUTF8 as an exported runtime method

* Also export printErr as a runtime method

---------

Co-authored-by: Austen Adler <agadler@austenadler.com>
2023-07-29 07:25:27 -04:00
Willy Hardy
923112172d
Wyoscan .5 hz watchface (#256)
* initial wyoscan commit

* initial attempt at animation

* kinda working

* visually working but running out of memory

* slower

* little fixes

* add hardware watch blink function

* refine number animation

* remove movement from config for merging

* silence warnings

---------

Co-authored-by: Willy Hardy <whardy@redhat.com>
2023-07-29 07:22:42 -04:00
joeycastillo
1377d36622 silence warnings 2023-07-29 07:03:49 -04:00
joeycastillo
6a69e0a691 prep for red boards 2023-07-29 07:01:19 -04:00
Chris
b147ac0c67 Hi-lo: Update face description
- Remove test code
2023-07-23 15:51:25 +01:00
Chris
739ad64cc1 Hi-lo: Allow flipped board rendering option 2023-07-23 15:51:25 +01:00
Chris
a831ed3336 Hi-lo: Initial game face commit 2023-07-23 15:51:22 +01:00
James Wu
19672edcfb fix settings/nanosec correction_profile bounds 2023-07-20 00:27:37 +00:00
Hein-NonesensE
ed8149a759
Counter face: change sound to non-blocking, add option to deactivate sound 2023-07-04 17:02:31 +02:00
joeycastillo
b49259e4e0 add basic flashlight function 2023-06-29 16:17:19 -04:00
Jose Castillo
05e069ead1
Merge pull request #248 from TheOnePerson/simple-watch-bin-led
simple watch binary light: show current time by flashing the LED as binary code
2023-06-10 11:58:23 -04:00
Jeremy O'Brien
c1580b356d
movement: add custom hourly chime tunes (#209)
* movement: add custom hourly chime tunes

* slightly tweak note timings

* add kim possible ringtone
2023-06-10 11:55:09 -04:00
TheOnePerson
8f7452fd99 simple watch bin led: add functionality of representing the current time as binary code LED flashing. 2023-05-21 08:34:02 +02:00
randogoth
d348482759
geomancy.c warnings fix (#240) 2023-05-18 07:44:50 -04:00
Jose Castillo
9916e75e9b
Merge pull request #247 from TheOnePerson/timer-face
Timer face: fix error with repeating timers
2023-05-18 07:43:39 -04:00
TheOnePerson
45d9b97f07 timer face: fix problem with messed up durations for repeating timers / always beep when starting a timer 2023-05-18 13:10:32 +02:00
TheOnePerson
7331851c77 Merge branch 'main' into timer-face
# Conflicts:
#	movement/make/Makefile
#	movement/movement_faces.h
2023-05-18 09:42:13 +02:00
joeycastillo
798b29f297 rename folder for cross-platform compatibility 2023-05-14 10:41:02 -04:00
joeycastillo
33c2d7dd61
Merge pull request #238 from joeycastillo/randonaut-and-geomancy
Randonaut and geomancy
2023-04-17 21:34:56 -04:00
joeycastillo
d01320e114
Merge pull request #239 from randogoth/randonaut-and-geomancy
deobfuscated code, fixed warnings
2023-04-17 21:16:08 -04:00
randogoth
432de34709 deobfuscated code, fixed warnings 2023-04-16 21:54:26 +03:00
joeycastillo
00541bd9c5 fix most warnings 2023-04-16 11:06:11 -04:00
randogoth
c4da02ca2c Randonaut Watch Face (#233)
* init

* advanced latlon setting

* simple functionality done

* lat lon high precision fwd bwd

* edit toggle

* added readme for branch

* DD DMS conversion & cleanup

* DD to OLC conversion

* olc encoding & decoding

* OLC implementation

* swapped bools for modes, code cleanup

* place name editor

* updated button logic, fixed display

* load and save  places in state array

* todo list

* simplified OLC functions

* geohash conversion functions

* geohash display & digit functions

* todo

* finished geohash implementation

* code display function, defaults, bugfixes

* read/write file/reg logic

* long light in DATA to cancel

* write to registry

* todo

* read & write backup register

* file read/write

* todo

* new more concise button logic, optimizations

* todo

* renamed & cleaned up, fixed button logic

* documentation

* documentation

* LAP mode for all coordinate screens

* faster and more precise geohash algorithm

* updated description

* updated docu

* simple place face

* bugfixes, updated documentation

* init

* meh

* added public functions for OLC and Geohash

* randonauting face

* fix

* display fix

* cleanup

* bugfixes

* bugfix

* added place

* fixed TRNG call

* fixed declaration conflict

* modulo bias filter

* simplified things, chance RNG selection

* fixed button logic, better menus

* cleanup

* documentation

* docu fixes

* original README

* updated place_face

* fallback to register location

* removed pointless freq req

* reset config

* fixed dependency issue

* minor bugfixes

* saved a bit :)

* fix
2023-04-16 11:00:44 -04:00
randogoth
721887de3a Coin & Dice Toss & Geomantic Divination Watch Faces (#235)
* init

* advanced latlon setting

* simple functionality done

* lat lon high precision fwd bwd

* edit toggle

* added readme for branch

* DD DMS conversion & cleanup

* DD to OLC conversion

* olc encoding & decoding

* OLC implementation

* swapped bools for modes, code cleanup

* place name editor

* updated button logic, fixed display

* load and save  places in state array

* todo list

* simplified OLC functions

* geohash conversion functions

* geohash display & digit functions

* todo

* finished geohash implementation

* code display function, defaults, bugfixes

* read/write file/reg logic

* long light in DATA to cancel

* write to registry

* todo

* read & write backup register

* file read/write

* todo

* new more concise button logic, optimizations

* todo

* renamed & cleaned up, fixed button logic

* documentation

* documentation

* LAP mode for all coordinate screens

* faster and more precise geohash algorithm

* updated description

* updated docu

* simple place face

* bugfixes, updated documentation

* init

* meh

* added public functions for OLC and Geohash

* randonauting face

* fix

* display fix

* cleanup

* bugfixes

* bugfix

* added place

* fixed TRNG call

* fixed declaration conflict

* modulo bias filter

* simplified things, chance RNG selection

* fixed button logic, better menus

* cleanup

* documentation

* docu fixes

* init

* basic functions

* all needed static functions done

* progress

* coins and dice done

* progress

* place update

* divination faces functionality done

* better divine_bit

* figure numbers and names

* captions optional

* coin animation

* dice animation & optimizations

* animation

* changed names, documented

* bugfix

* cleanup

* reset config

---------

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-04-16 11:00:08 -04:00
joeycastillo
bfeca93008 silence warnings around morsecalc 2023-04-16 10:56:08 -04:00
joeycastillo
e083f9b386 silence most warnings 2023-04-16 10:49:03 -04:00
joeycastillo
eb71681779 Revert "Coin & Dice Toss & Geomantic Divination Watch Faces (#235)"
This reverts commit 34030bf3e403b2043dcd9f960189d93190dcbb0c.
2023-04-16 10:46:52 -04:00
joeycastillo
00e641c2a7 Revert "Randonaut Watch Face (#233)"
This reverts commit a3fe36f6dbdbde331fb7c10138e4b0c3fa8ad298.
2023-04-16 10:46:44 -04:00
joeycastillo
721cb8386d Merge branch 'main' of https://github.com/joeycastillo/Sensor-Watch 2023-04-16 10:37:14 -04:00
joeycastillo
1acd2b0369 return movement_config to standard list of watch faces 2023-04-16 10:30:49 -04:00
randogoth
a3fe36f6db
Randonaut Watch Face (#233)
* init

* advanced latlon setting

* simple functionality done

* lat lon high precision fwd bwd

* edit toggle

* added readme for branch

* DD DMS conversion & cleanup

* DD to OLC conversion

* olc encoding & decoding

* OLC implementation

* swapped bools for modes, code cleanup

* place name editor

* updated button logic, fixed display

* load and save  places in state array

* todo list

* simplified OLC functions

* geohash conversion functions

* geohash display & digit functions

* todo

* finished geohash implementation

* code display function, defaults, bugfixes

* read/write file/reg logic

* long light in DATA to cancel

* write to registry

* todo

* read & write backup register

* file read/write

* todo

* new more concise button logic, optimizations

* todo

* renamed & cleaned up, fixed button logic

* documentation

* documentation

* LAP mode for all coordinate screens

* faster and more precise geohash algorithm

* updated description

* updated docu

* simple place face

* bugfixes, updated documentation

* init

* meh

* added public functions for OLC and Geohash

* randonauting face

* fix

* display fix

* cleanup

* bugfixes

* bugfix

* added place

* fixed TRNG call

* fixed declaration conflict

* modulo bias filter

* simplified things, chance RNG selection

* fixed button logic, better menus

* cleanup

* documentation

* docu fixes

* original README

* updated place_face

* fallback to register location

* removed pointless freq req

* reset config

* fixed dependency issue

* minor bugfixes

* saved a bit :)

* fix
2023-04-16 10:29:42 -04:00
randogoth
34030bf3e4
Coin & Dice Toss & Geomantic Divination Watch Faces (#235)
* init

* advanced latlon setting

* simple functionality done

* lat lon high precision fwd bwd

* edit toggle

* added readme for branch

* DD DMS conversion & cleanup

* DD to OLC conversion

* olc encoding & decoding

* OLC implementation

* swapped bools for modes, code cleanup

* place name editor

* updated button logic, fixed display

* load and save  places in state array

* todo list

* simplified OLC functions

* geohash conversion functions

* geohash display & digit functions

* todo

* finished geohash implementation

* code display function, defaults, bugfixes

* read/write file/reg logic

* long light in DATA to cancel

* write to registry

* todo

* read & write backup register

* file read/write

* todo

* new more concise button logic, optimizations

* todo

* renamed & cleaned up, fixed button logic

* documentation

* documentation

* LAP mode for all coordinate screens

* faster and more precise geohash algorithm

* updated description

* updated docu

* simple place face

* bugfixes, updated documentation

* init

* meh

* added public functions for OLC and Geohash

* randonauting face

* fix

* display fix

* cleanup

* bugfixes

* bugfix

* added place

* fixed TRNG call

* fixed declaration conflict

* modulo bias filter

* simplified things, chance RNG selection

* fixed button logic, better menus

* cleanup

* documentation

* docu fixes

* init

* basic functions

* all needed static functions done

* progress

* coins and dice done

* progress

* place update

* divination faces functionality done

* better divine_bit

* figure numbers and names

* captions optional

* coin animation

* dice animation & optimizations

* animation

* changed names, documented

* bugfix

* cleanup

* reset config

---------

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-04-16 10:16:10 -04:00
randogoth
ccf44281e7
Dual Timer, a variant of the Stock Stopwatch (#236)
* init

* advanced latlon setting

* simple functionality done

* lat lon high precision fwd bwd

* edit toggle

* added readme for branch

* DD DMS conversion & cleanup

* DD to OLC conversion

* olc encoding & decoding

* OLC implementation

* swapped bools for modes, code cleanup

* place name editor

* updated button logic, fixed display

* load and save  places in state array

* todo list

* simplified OLC functions

* geohash conversion functions

* geohash display & digit functions

* todo

* finished geohash implementation

* code display function, defaults, bugfixes

* read/write file/reg logic

* long light in DATA to cancel

* write to registry

* todo

* read & write backup register

* file read/write

* todo

* new more concise button logic, optimizations

* todo

* renamed & cleaned up, fixed button logic

* documentation

* documentation

* LAP mode for all coordinate screens

* faster and more precise geohash algorithm

* updated description

* updated docu

* simple place face

* bugfixes, updated documentation

* init

* meh

* added public functions for OLC and Geohash

* randonauting face

* fix

* display fix

* cleanup

* bugfixes

* bugfix

* added place

* fixed TRNG call

* fixed declaration conflict

* modulo bias filter

* simplified things, chance RNG selection

* fixed button logic, better menus

* cleanup

* documentation

* docu fixes

* original README

* updated place_face

* fallback to register location

* removed pointless freq req

* init

* dual chronograph

* documented and cleaned up

* unused var warning fix

* swap TC2 with TC3 to avoid conflict

* conflict

* show active when returning to face

* docu

* removed unneeded file

* added remain

* show screen on startup

* simplified mode button
2023-04-16 10:13:51 -04:00
randogoth
2b87623611
Planetary Hours Faces (#234)
* initial setup & test

* simplified solar calulcation function

* Initial Release

* initial setup

* UTC offset fixes

* finished and cleaned up

* renamed faces

* optimizations & astro symbols

* wrapping ruler

* cleanup

* optimizations

* merged latest place_face

* documentation

* fixed faster seconds

* removed place_face from branch

* reset config

---------

Co-authored-by: NN Solex <info@sublunar.space>
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-04-16 10:13:21 -04:00
Christian Chapman
462f24b313
Aperture priority light meter face (#230)
* initial commit, added opt3001 light meter test app

* tested working light meter board, i2c communication still has issues

* fixed i2c; rudimentary lightmeter works!

* added aperture priority ui

* added aperture priority ui

* added README

* adjusted cal

* fixed bugs (HI shutter speed, lux mode toggle)

* made it possible to advance to the next face

* initialized lux variable

* lowered tolerance for HI and LO

* Changed EV display from always showing EV100 to showing EV[iso setting]

* dont display old ev when ISO changes

* changed mode and light behavior

* updated readme

* fixed indentation

* made lightmeter display logic more consistent

* made lightmeter display logic more consistent

* reverted rules.mk (for merge into upstream)

* reverted rules.mk (for merge into upstream)

* removed OPT3001 PCB model

* made lux mode default, corrected timeout behavior

---------

Co-authored-by: Christian Chapman <user@debian>
2023-04-16 10:05:55 -04:00
Bernd Plontsch
bfde33c946
Adding Breathing complication (#220)
* Added complication

* Including complication in build configuration

* Clean up

* restore default watch face selection

* Fixed comment

* Remove unused

* Made functions internal

---------

Co-authored-by: Bernd Plontsch <bernd@plontsch@gmail.com>
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-04-16 10:04:46 -04:00
Christian Chapman
0a836cecea
Morsecalc refactor (#229)
* Added Morse code based RPN calculator

* added manual and memory register

* fixed morsecalc negative indicator, edited header comment

* adjusted stack display controls

* Fixed warnings. Added calculator token aliasing ability. Added binary shorthand for numeral entry. Extended morse code binary tree.

* ui tweaks

* Update movement_config.h

* silence warning

* Reorganized codebase and simplified morse code reading routines.

* added 'quit if submission is empty' behavior

* reverted rules.mk change for merge into main

* corrected timeout behavior

* consolidated morsecode lib into one file; deleted old mc.c mc.h

* consolidated morsecode lib into one file; deleted old mc.c mc.h

* removed specious null in morsecode bintree string

---------

Co-authored-by: Christian Chapman <user@debian>
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-04-16 10:01:03 -04:00
joeycastillo
16a96d16b2 add LIS2DW accelerometer board 2023-04-13 20:57:08 -04:00
joeycastillo
99ad430a01 add kicad stuff to gitignore 2023-04-13 20:55:53 -04:00
joeycastillo
933807b041 organize sensor watch accessory boards 2023-04-13 20:53:53 -04:00
TheOnePerson
e3f76317b5
Time Left Face: Visualize progress in any time interval (#217)
* time left face: initial commit, fully functional

* time left face: typos

* time left face: correct even more typos in documentation

---------

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-03-11 16:40:55 -05:00
Konrad Rieck
84b947766e
Alternative implementation of world clock (#216)
* Implementation of alternative world clock.

* Fixed two minor bugs
- Only start in settings mode on first activation
- Fixed typo in time zone names

---------

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-03-11 16:37:40 -05:00
joeycastillo
7aecc13b62
Merge pull request #221 from TheOnePerson/simulator-add-segment-0-15
Simulator LCD: add tiny element in the lower left corner for the first display position
2023-03-11 16:33:44 -05:00
joeycastillo
7793333ed3
Merge pull request #213 from wryun/fix-cat
Fix cat command
2023-03-11 16:33:13 -05:00
TheOnePerson
b90e997481
Invaders Face (#210)
* invaders face: Initial commit, fully functional so far

* invaders face: silence compiler warning

* invaders face: prevent involuntary restarts when the game is over and save some bytes on flags

---------

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-03-11 16:31:17 -05:00
gugray
9af51de624
Activity face + Chirpy TX (#187)
* chirpy demo face; activity face stub

* activity face WIP: can log, pause and clear

* activity face and chirpy demo: ready to flash to watch

* activity face tweaks

* hour display for hours < 10

* fix: added rogue paused seconds when stopping activity

* LE mode; lower power with 1Hz tick

* fix: midnight is 12

* Documentation in code comments

* fixes from code review by @neutralinsomniac

* chirpy_demo_face option to chirp out nanosec.ini + auto-format

* UI tweaks

* remove erroneously added file (content revoked)

* UI tweaks: return from LE mode; time display vs LAP

* add default loop handler (will enable long-mode-to-first-face)

* reset watch faces to match main branch
2023-03-11 16:27:18 -05:00
TheOnePerson
2d46a9bf9e
Timer Face: Advanced countdown face with presets (#224)
* timer face: initial commit, fully functional

* timer face: show slot number in normal mode

---------

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-03-11 16:26:36 -05:00
thg191
7584f9bf98
discgolf_face initial commit (#207)
* discgolf_face initial commit

* Comment on wrong line

* updated drawing method and added beeps

* Put description in appropriate file, added license

* fixed for loops that didn't cover whole array, long mode press snaps back to default face

---------

Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
2023-03-11 16:12:00 -05:00
joeycastillo
b7419866d9
Merge pull request #204 from Jonas-fr/repetition_minute
New face - Repetition Minute, fork of simple clock with an accessibillity feature
2023-03-11 16:08:19 -05:00
joeycastillo
266831cef0
Merge branch 'main' into repetition_minute 2023-03-11 16:06:38 -05:00
joeycastillo
3dafdc4709
Merge pull request #218 from TheOnePerson/fix-interval-face-globals
interval face: make global vars static
2023-03-11 16:05:32 -05:00
joeycastillo
0e2c179e15
Merge pull request #211 from neutralinsomniac/fix-day-one-compile-warning
fix compile warning in day one face
2023-03-11 16:05:20 -05:00
TheOnePerson
45e4bc31c4 timer face: show slot number in normal mode 2023-03-10 22:17:15 +01:00
TheOnePerson
267cdaa222 timer face: initial commit, fully functional 2023-03-06 21:41:48 +01:00
TheOnePerson
739d719e7c simulator: add tiny element in the lower left corner for the first display position. 2023-02-25 15:24:32 +01:00
TheOnePerson
567a21e8a5 interval face: make global vars static 2023-02-20 07:51:45 +01:00
James Haggerty
192d0b0450 Fix cat command
If we ran into a heap that wasn't filled with '\0', fun things.
2023-02-12 20:27:48 +11:00
Jeremy O'Brien
faa860f83d fix compile warning in day one face 2023-02-10 22:30:26 -05:00
Hein-NonesensE
59ff549235
Sensor watch sailing face (#205)
* Update sailing_face.c

Modified sailing_face.

Added features, some of which @niclashoyer already suggested in his initial PR:
- stopwatch-like counter after start signal
- lap counter after start signal
- optional additional sounds at every minute, 30s, 10s countdown
- sound options (no sound, start only, signals only, all)
- maximum starting time up to 10min (instead of 9)
- improved timing, display is no longer delayed by sound

* Update sailing_face.h

Modified sailing_face.

Added features, some of which @niclashoyer already suggested in his initial PR:
- stopwatch-like counter after start signal
- lap counter after start signal
- optional additional sounds at every minute, 30s, 10s countdown
- sound options (no sound, start only, signals only, all)
- maximum starting time up to 10min (instead of 9)
- improved timing, display is no longer delayed by sound
2023-02-10 18:07:53 -06:00
kingannoy
c814c780e3 Allow days in the future
With this small change you can also count down to a important upcoming event!

This is my first time coding in C, so please double check everything! But in the emulator this seemed to work!
2023-02-10 17:08:32 -06:00
joeycastillo
827c3eb4a4 what fresh hell was that? 2023-02-10 16:44:36 -06:00
Jeremy O'Brien
a461e8e8f9 countdown_face: implement holding light to reset the currently edited timer value (and everything below it) 2023-02-10 16:31:24 -06:00
tslil clingman
f571da4346 habit face
Track a single habit, occuring at most once per day, with an eight-day
look back and total count
2023-02-10 16:09:55 -06:00
Ronny Lam
eca75cfb23 Added option to use_iso_8601_weeknumber 2023-02-10 15:18:39 -06:00
joeycastillo
26b1ea51b9 make TOTP face more responsive when swapping between codes 2023-02-08 12:33:50 -05:00
Jonas Termeau
36ff634ced New face - Repetition Minute, fork of simple clock with an accessibility feature added : time reading via beeps 2023-02-02 23:07:24 +01:00
855 changed files with 277666 additions and 628292 deletions

View File

@ -1,6 +1,4 @@
FROM ubuntu:22.10 FROM ubuntu:24.04
# TODO: install emscripten (https://emscripten.org/docs/getting_started/downloads.html)
# TODO: Clean this up once buildkit is supported gracefully in devcontainers # TODO: Clean this up once buildkit is supported gracefully in devcontainers
# https://github.com/microsoft/vscode-remote-release/issues/1409 # https://github.com/microsoft/vscode-remote-release/issues/1409
@ -27,7 +25,9 @@ RUN apt-get update \
# ca certs need to be available for fetching git submodules # ca certs need to be available for fetching git submodules
ca-certificates \ ca-certificates \
# python is used to convert binaries to uf2 files # python is used to convert binaries to uf2 files
python3 python-is-python3 python3 python-is-python3 \
# emscripten for building simulator
emscripten
# Download and verify both x86-64 and aarch64 toolchains. This is unfortunate and # Download and verify both x86-64 and aarch64 toolchains. This is unfortunate and
# slows down the build, but it's a clean-ish option until buildkit can be used. # slows down the build, but it's a clean-ish option until buildkit can be used.
@ -47,4 +47,4 @@ RUN /bin/sh -c 'set -ex && \
fi' fi'
RUN rm $X86_64_TOOLCHAIN_FILENAME RUN rm $X86_64_TOOLCHAIN_FILENAME
RUN rm $AARCH64_TOOLCHAIN_FILENAME RUN rm $AARCH64_TOOLCHAIN_FILENAME

View File

@ -6,7 +6,10 @@ on:
branches-ignore: branches-ignore:
- gh-pages - gh-pages
jobs: env:
COLOR: BLUE
jobs:
build: build:
container: container:
image: ghcr.io/armmbed/mbed-os-env:latest image: ghcr.io/armmbed/mbed-os-env:latest
@ -26,7 +29,7 @@ jobs:
run: make run: make
working-directory: 'movement/make' working-directory: 'movement/make'
- name: Upload UF2 - name: Upload UF2
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v4
with: with:
name: watch.uf2 name: watch.uf2
path: movement/make/build/watch.uf2 path: movement/make/build/watch.uf2
@ -49,7 +52,7 @@ jobs:
cp watch.html index.html cp watch.html index.html
tar -czf simulator.tar.gz index.html watch.wasm watch.js tar -czf simulator.tar.gz index.html watch.wasm watch.js
- name: Upload simulator build - name: Upload simulator build
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v4
with: with:
name: simulator.tar.gz name: simulator.tar.gz
path: movement/make/build-sim/simulator.tar.gz path: movement/make/build-sim/simulator.tar.gz

6
.gitignore vendored
View File

@ -18,4 +18,10 @@
.vs .vs
.vscode .vscode
docs/ docs/
*.kicad_sch-bak
*-backups/ *-backups/
*.bak
_autosave*
fp-info-cache
.~*
*.plan

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +1,14 @@
{ {
"board": { "board": {
"active_layer": 31, "active_layer": 0,
"active_layer_preset": "", "active_layer_preset": "",
"auto_track_width": false, "auto_track_width": false,
"hidden_netclasses": [],
"hidden_nets": [], "hidden_nets": [],
"high_contrast_mode": 0, "high_contrast_mode": 0,
"net_color_mode": 1, "net_color_mode": 1,
"opacity": { "opacity": {
"images": 0.6,
"pads": 1.0, "pads": 1.0,
"tracks": 1.0, "tracks": 1.0,
"vias": 1.0, "vias": 1.0,
@ -39,7 +41,6 @@
11, 11,
12, 12,
13, 13,
14,
15, 15,
16, 16,
17, 17,
@ -60,9 +61,11 @@
33, 33,
34, 34,
35, 35,
36 36,
39,
40
], ],
"visible_layers": "0001020_ffffffff", "visible_layers": "0021020_ffffffff",
"zone_display_mode": 1 "zone_display_mode": 1
}, },
"meta": { "meta": {

View File

@ -1,5 +1,6 @@
{ {
"board": { "board": {
"3dviewports": [],
"design_settings": { "design_settings": {
"defaults": { "defaults": {
"board_outline_line_width": 0.049999999999999996, "board_outline_line_width": 0.049999999999999996,
@ -34,8 +35,8 @@
"other_text_upright": false, "other_text_upright": false,
"pads": { "pads": {
"drill": 0.0, "drill": 0.0,
"height": 1.5, "height": 0.5,
"width": 1.5 "width": 0.5
}, },
"silk_line_width": 0.12, "silk_line_width": 0.12,
"silk_text_italic": false, "silk_text_italic": false,
@ -56,15 +57,13 @@
} }
], ],
"drc_exclusions": [ "drc_exclusions": [
"clearance|-5315000|11176000|94ed4e14-64f5-4caa-95ff-8b9708aa7544|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-5315000|8979100|5cd38060-de87-4f4f-a5a5-bcc37f72c4bd|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-5625900|11061900|75982c35-ff0f-49b9-9689-fa686b50f581|794ce734-e263-448b-83cd-a968d937aa77", "clearance|-5625900|11061900|75982c35-ff0f-49b9-9689-fa686b50f581|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-5625900|11290100|2160b495-17e4-4702-974c-8dfae747fab3|794ce734-e263-448b-83cd-a968d937aa77", "clearance|-5625900|11290100|2160b495-17e4-4702-974c-8dfae747fab3|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-5842000|10426500|e57f3b3a-4723-4e07-8171-742af76c848c|794ce734-e263-448b-83cd-a968d937aa77", "clearance|-5842000|10426500|e57f3b3a-4723-4e07-8171-742af76c848c|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-5875000|10426500|f5a996bd-0004-4389-911c-56d6075768c5|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|140899579|112414621|2160b495-17e4-4702-974c-8dfae747fab3|794ce734-e263-448b-83cd-a968d937aa77", "clearance|140899579|112414621|2160b495-17e4-4702-974c-8dfae747fab3|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|141210479|110103621|5cd38060-de87-4f4f-a5a5-bcc37f72c4bd|794ce734-e263-448b-83cd-a968d937aa77", "clearance|9127300|23236100|e57f3b3a-4723-4e07-8171-742af76c848c|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|141210479|112300521|94ed4e14-64f5-4caa-95ff-8b9708aa7544|794ce734-e263-448b-83cd-a968d937aa77", "clearance|9343400|23871500|75982c35-ff0f-49b9-9689-fa686b50f581|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|9343400|24099700|2160b495-17e4-4702-974c-8dfae747fab3|794ce734-e263-448b-83cd-a968d937aa77",
"copper_edge_clearance|-11025479|-5628081|37ab839f-4d7b-4245-953f-2634f5afcffb|e329256e-bdf0-4014-9891-c83b43b0f3d7", "copper_edge_clearance|-11025479|-5628081|37ab839f-4d7b-4245-953f-2634f5afcffb|e329256e-bdf0-4014-9891-c83b43b0f3d7",
"copper_edge_clearance|-11213318|-5628081|ba19627a-6a39-44f8-902b-f787bac11df5|9c17f86d-3c3a-47b5-8457-2cbc72af8eb6", "copper_edge_clearance|-11213318|-5628081|ba19627a-6a39-44f8-902b-f787bac11df5|9c17f86d-3c3a-47b5-8457-2cbc72af8eb6",
"copper_edge_clearance|-11301518|6548250|1dcdbe51-f435-4a4a-bccc-6fd33aa2d9ee|1699a332-384d-49ae-bcfb-3d1fb593020d", "copper_edge_clearance|-11301518|6548250|1dcdbe51-f435-4a4a-bccc-6fd33aa2d9ee|1699a332-384d-49ae-bcfb-3d1fb593020d",
@ -72,14 +71,14 @@
"copper_edge_clearance|-11419521|-4541378|37ab839f-4d7b-4245-953f-2634f5afcffb|6f8f709d-15fc-456e-97fe-38f64c22fb50", "copper_edge_clearance|-11419521|-4541378|37ab839f-4d7b-4245-953f-2634f5afcffb|6f8f709d-15fc-456e-97fe-38f64c22fb50",
"copper_edge_clearance|-11481144|-4556784|37ab839f-4d7b-4245-953f-2634f5afcffb|9c17f86d-3c3a-47b5-8457-2cbc72af8eb6", "copper_edge_clearance|-11481144|-4556784|37ab839f-4d7b-4245-953f-2634f5afcffb|9c17f86d-3c3a-47b5-8457-2cbc72af8eb6",
"copper_edge_clearance|-11551827|4604698|9b59854a-c816-42da-81ee-a2a1bc1d81e9|4ed284a8-64f0-4233-b5a8-d1d2d5ac4542", "copper_edge_clearance|-11551827|4604698|9b59854a-c816-42da-81ee-a2a1bc1d81e9|4ed284a8-64f0-4233-b5a8-d1d2d5ac4542",
"copper_edge_clearance|-11551827|4604698|9b59854a-c816-42da-81ee-a2a1bc1d81e9|af2f71c8-164d-4028-8061-6227e2d9f535",
"copper_edge_clearance|-11697669|4241800|9b59854a-c816-42da-81ee-a2a1bc1d81e9|ae8ee581-2a39-472b-ae6f-d3550afdaa82", "copper_edge_clearance|-11697669|4241800|9b59854a-c816-42da-81ee-a2a1bc1d81e9|ae8ee581-2a39-472b-ae6f-d3550afdaa82",
"copper_edge_clearance|-11811379|4241800|9b59854a-c816-42da-81ee-a2a1bc1d81e9|0407acb5-5db7-4b9a-9b18-8424a1311eac", "copper_edge_clearance|-11811379|4241800|9b59854a-c816-42da-81ee-a2a1bc1d81e9|0407acb5-5db7-4b9a-9b18-8424a1311eac",
"copper_edge_clearance|-11913368|3272640|df12fcbd-7579-42a9-996a-a2152d1dfa93|1699a332-384d-49ae-bcfb-3d1fb593020d", "copper_edge_clearance|-11913368|3272640|df12fcbd-7579-42a9-996a-a2152d1dfa93|1699a332-384d-49ae-bcfb-3d1fb593020d",
"copper_edge_clearance|-12200000|-2757631|827ceb97-2070-461e-84b4-63295916a7c1|9c17f86d-3c3a-47b5-8457-2cbc72af8eb6",
"copper_edge_clearance|-5848631|11706250|90708b84-5e3e-4b75-a7be-07232ff20bef|2160b495-17e4-4702-974c-8dfae747fab3", "copper_edge_clearance|-5848631|11706250|90708b84-5e3e-4b75-a7be-07232ff20bef|2160b495-17e4-4702-974c-8dfae747fab3",
"copper_edge_clearance|-6362618|11433400|70a3d0de-ad3a-499c-b9e3-fa0bf3b8302b|2160b495-17e4-4702-974c-8dfae747fab3", "copper_edge_clearance|-6362618|11433400|70a3d0de-ad3a-499c-b9e3-fa0bf3b8302b|2160b495-17e4-4702-974c-8dfae747fab3",
"copper_edge_clearance|-9549488|8443408|103df901-4048-4b74-a297-d384d6607268|6d7d4c39-58a0-4206-abf9-27e21e78543d", "copper_edge_clearance|-9549488|8443408|103df901-4048-4b74-a297-d384d6607268|6d7d4c39-58a0-4206-abf9-27e21e78543d",
"copper_edge_clearance|-9549488|8443408|103df901-4048-4b74-a297-d384d6607268|d7c6bc66-4df3-4b71-886c-32c400735cc3", "copper_edge_clearance|11236300|6021831|ab1d8d3e-b421-491e-b102-8b655f5b49b6|0251fd1d-3d1a-41b6-b0f5-efb6d578fc1b",
"copper_edge_clearance|11416625|4717601|d8854a48-2068-440c-a460-cfd915d43f01|60ded8d5-f434-49a2-ac94-690eea4ff2fd", "copper_edge_clearance|11416625|4717601|d8854a48-2068-440c-a460-cfd915d43f01|60ded8d5-f434-49a2-ac94-690eea4ff2fd",
"copper_edge_clearance|11479052|4729327|d8854a48-2068-440c-a460-cfd915d43f01|0251fd1d-3d1a-41b6-b0f5-efb6d578fc1b", "copper_edge_clearance|11479052|4729327|d8854a48-2068-440c-a460-cfd915d43f01|0251fd1d-3d1a-41b6-b0f5-efb6d578fc1b",
"copper_edge_clearance|11629941|3925941|d8854a48-2068-440c-a460-cfd915d43f01|33a7437b-1cb3-4152-981e-eef21bef09b2", "copper_edge_clearance|11629941|3925941|d8854a48-2068-440c-a460-cfd915d43f01|33a7437b-1cb3-4152-981e-eef21bef09b2",
@ -87,30 +86,116 @@
"copper_edge_clearance|134811929|97497353|9405bec8-9b85-4b22-873c-30ac8cf07680|9c17f86d-3c3a-47b5-8457-2cbc72af8eb6", "copper_edge_clearance|134811929|97497353|9405bec8-9b85-4b22-873c-30ac8cf07680|9c17f86d-3c3a-47b5-8457-2cbc72af8eb6",
"copper_edge_clearance|134827810|105366321|9b59854a-c816-42da-81ee-a2a1bc1d81e9|ae8ee581-2a39-472b-ae6f-d3550afdaa82", "copper_edge_clearance|134827810|105366321|9b59854a-c816-42da-81ee-a2a1bc1d81e9|ae8ee581-2a39-472b-ae6f-d3550afdaa82",
"copper_edge_clearance|135044335|96567737|37ab839f-4d7b-4245-953f-2634f5afcffb|9c17f86d-3c3a-47b5-8457-2cbc72af8eb6", "copper_edge_clearance|135044335|96567737|37ab839f-4d7b-4245-953f-2634f5afcffb|9c17f86d-3c3a-47b5-8457-2cbc72af8eb6",
"copper_edge_clearance|135117639|96274521|37ab839f-4d7b-4245-953f-2634f5afcffb|98927e26-9201-4a93-bb63-f780fb365bc3",
"copper_edge_clearance|135212939|107096752|24501187-692e-44b2-9405-3e6564df4c24|1699a332-384d-49ae-bcfb-3d1fb593020d", "copper_edge_clearance|135212939|107096752|24501187-692e-44b2-9405-3e6564df4c24|1699a332-384d-49ae-bcfb-3d1fb593020d",
"copper_edge_clearance|140162861|112557921|70a3d0de-ad3a-499c-b9e3-fa0bf3b8302b|2160b495-17e4-4702-974c-8dfae747fab3", "copper_edge_clearance|140162861|112557921|70a3d0de-ad3a-499c-b9e3-fa0bf3b8302b|2160b495-17e4-4702-974c-8dfae747fab3",
"copper_edge_clearance|140676848|112830771|90708b84-5e3e-4b75-a7be-07232ff20bef|2160b495-17e4-4702-974c-8dfae747fab3", "copper_edge_clearance|140676848|112830771|90708b84-5e3e-4b75-a7be-07232ff20bef|2160b495-17e4-4702-974c-8dfae747fab3",
"copper_edge_clearance|158004531|105853848|d8854a48-2068-440c-a460-cfd915d43f01|0251fd1d-3d1a-41b6-b0f5-efb6d578fc1b", "copper_edge_clearance|158004531|105853848|d8854a48-2068-440c-a460-cfd915d43f01|0251fd1d-3d1a-41b6-b0f5-efb6d578fc1b",
"copper_edge_clearance|158155420|105050462|d8854a48-2068-440c-a460-cfd915d43f01|33a7437b-1cb3-4152-981e-eef21bef09b2", "copper_edge_clearance|158155420|105050462|d8854a48-2068-440c-a460-cfd915d43f01|33a7437b-1cb3-4152-981e-eef21bef09b2",
"copper_edge_clearance|158212379|104747189|6ec0def0-d080-4810-ad42-53efa264a14a|0251fd1d-3d1a-41b6-b0f5-efb6d578fc1b", "copper_edge_clearance|158212379|104747189|6ec0def0-d080-4810-ad42-53efa264a14a|0251fd1d-3d1a-41b6-b0f5-efb6d578fc1b",
"copper_edge_clearance|26385925|17527201|d8854a48-2068-440c-a460-cfd915d43f01|60ded8d5-f434-49a2-ac94-690eea4ff2fd",
"copper_edge_clearance|26599241|16735541|d8854a48-2068-440c-a460-cfd915d43f01|33a7437b-1cb3-4152-981e-eef21bef09b2",
"copper_edge_clearance|26656200|16432268|6ec0def0-d080-4810-ad42-53efa264a14a|0251fd1d-3d1a-41b6-b0f5-efb6d578fc1b",
"copper_edge_clearance|3157921|17051400|9b59854a-c816-42da-81ee-a2a1bc1d81e9|0407acb5-5db7-4b9a-9b18-8424a1311eac",
"copper_edge_clearance|3271631|17051400|9b59854a-c816-42da-81ee-a2a1bc1d81e9|ae8ee581-2a39-472b-ae6f-d3550afdaa82",
"copper_edge_clearance|3417473|17414298|9b59854a-c816-42da-81ee-a2a1bc1d81e9|4ed284a8-64f0-4233-b5a8-d1d2d5ac4542",
"copper_edge_clearance|3488156|8252816|37ab839f-4d7b-4245-953f-2634f5afcffb|9c17f86d-3c3a-47b5-8457-2cbc72af8eb6",
"copper_edge_clearance|3549779|8268222|37ab839f-4d7b-4245-953f-2634f5afcffb|6f8f709d-15fc-456e-97fe-38f64c22fb50",
"copper_edge_clearance|3667782|19357850|1dcdbe51-f435-4a4a-bccc-6fd33aa2d9ee|1699a332-384d-49ae-bcfb-3d1fb593020d",
"copper_edge_clearance|3943821|7181519|37ab839f-4d7b-4245-953f-2634f5afcffb|e329256e-bdf0-4014-9891-c83b43b0f3d7",
"copper_edge_clearance|5419812|21253008|103df901-4048-4b74-a297-d384d6607268|6d7d4c39-58a0-4206-abf9-27e21e78543d",
"copper_edge_clearance|9120669|24515850|90708b84-5e3e-4b75-a7be-07232ff20bef|2160b495-17e4-4702-974c-8dfae747fab3",
"hole_clearance|-1901316|10712400|5773b5d8-0592-418a-8b1a-2395e8e7ee4d|8f6b6709-2bcb-4f68-8ec9-e57808459ee1", "hole_clearance|-1901316|10712400|5773b5d8-0592-418a-8b1a-2395e8e7ee4d|8f6b6709-2bcb-4f68-8ec9-e57808459ee1",
"hole_clearance|-2622600|10712400|ba29c963-2b77-4401-ad90-4e23ee1d6e9c|8f6b6709-2bcb-4f68-8ec9-e57808459ee1", "hole_clearance|-2622600|10712400|ba29c963-2b77-4401-ad90-4e23ee1d6e9c|8f6b6709-2bcb-4f68-8ec9-e57808459ee1",
"hole_clearance|143902879|111836921|ba29c963-2b77-4401-ad90-4e23ee1d6e9c|8f6b6709-2bcb-4f68-8ec9-e57808459ee1", "hole_clearance|143902879|111836921|ba29c963-2b77-4401-ad90-4e23ee1d6e9c|8f6b6709-2bcb-4f68-8ec9-e57808459ee1",
"hole_clearance|144624163|111836921|5773b5d8-0592-418a-8b1a-2395e8e7ee4d|8f6b6709-2bcb-4f68-8ec9-e57808459ee1", "hole_clearance|144624163|111836921|5773b5d8-0592-418a-8b1a-2395e8e7ee4d|8f6b6709-2bcb-4f68-8ec9-e57808459ee1",
"hole_clearance|155058479|99784721|397c6a58-ff1e-44da-82fc-0d7c0bb88582|8bf6d62b-e48a-41ef-9a23-e6b6fdf2c68e", "hole_clearance|155058479|99784721|397c6a58-ff1e-44da-82fc-0d7c0bb88582|8bf6d62b-e48a-41ef-9a23-e6b6fdf2c68e",
"hole_clearance|23502300|11469800|397c6a58-ff1e-44da-82fc-0d7c0bb88582|8bf6d62b-e48a-41ef-9a23-e6b6fdf2c68e",
"hole_clearance|8533000|-1339800|397c6a58-ff1e-44da-82fc-0d7c0bb88582|8bf6d62b-e48a-41ef-9a23-e6b6fdf2c68e", "hole_clearance|8533000|-1339800|397c6a58-ff1e-44da-82fc-0d7c0bb88582|8bf6d62b-e48a-41ef-9a23-e6b6fdf2c68e",
"silk_over_copper|-11828400|3000000|e5584725-c6b2-444b-9952-fd07e923f97c|1699a332-384d-49ae-bcfb-3d1fb593020d", "silk_edge_clearance|19977700|24822100|cb682c98-1447-4c14-8bbb-c7d05b378a4b|3b10a40e-0c8d-4715-81ca-4ad903851be3",
"silk_over_copper|-11860097|3197553|9b59854a-c816-42da-81ee-a2a1bc1d81e9|e5584725-c6b2-444b-9952-fd07e923f97c", "silk_edge_clearance|5008400|12012500|cb682c98-1447-4c14-8bbb-c7d05b378a4b|3b10a40e-0c8d-4715-81ca-4ad903851be3",
"silk_over_copper|10883000|-539800|80a33098-6716-495a-a93c-33dbe31233aa|800b65a4-e777-43c7-97b8-d5ee87069507", "silk_over_copper|10883000|-539800|80a33098-6716-495a-a93c-33dbe31233aa|800b65a4-e777-43c7-97b8-d5ee87069507",
"silk_over_copper|134665382|104322074|9b59854a-c816-42da-81ee-a2a1bc1d81e9|e5584725-c6b2-444b-9952-fd07e923f97c",
"silk_over_copper|134697079|104124521|e5584725-c6b2-444b-9952-fd07e923f97c|1699a332-384d-49ae-bcfb-3d1fb593020d",
"silk_over_copper|151533879|113137021|cb682c98-1447-4c14-8bbb-c7d05b378a4b|3b10a40e-0c8d-4715-81ca-4ad903851be3", "silk_over_copper|151533879|113137021|cb682c98-1447-4c14-8bbb-c7d05b378a4b|3b10a40e-0c8d-4715-81ca-4ad903851be3",
"silk_over_copper|155708479|100584721|2fda1c1e-3a0c-47d3-b865-8d366d04b31e|397c6a58-ff1e-44da-82fc-0d7c0bb88582", "silk_over_copper|155708479|100584721|2fda1c1e-3a0c-47d3-b865-8d366d04b31e|397c6a58-ff1e-44da-82fc-0d7c0bb88582",
"silk_over_copper|157408479|100584721|80a33098-6716-495a-a93c-33dbe31233aa|800b65a4-e777-43c7-97b8-d5ee87069507", "silk_over_copper|157408479|100584721|80a33098-6716-495a-a93c-33dbe31233aa|800b65a4-e777-43c7-97b8-d5ee87069507",
"silk_over_copper|5008400|12012500|cb682c98-1447-4c14-8bbb-c7d05b378a4b|3b10a40e-0c8d-4715-81ca-4ad903851be3", "silk_over_copper|5008400|12012500|cb682c98-1447-4c14-8bbb-c7d05b378a4b|3b10a40e-0c8d-4715-81ca-4ad903851be3",
"silk_over_copper|5569544|6635800|17bb032d-f3fc-4d20-b54b-d09f9e6a51f2|ba29c963-2b77-4401-ad90-4e23ee1d6e9c", "silk_over_copper|5569544|6635800|17bb032d-f3fc-4d20-b54b-d09f9e6a51f2|ba29c963-2b77-4401-ad90-4e23ee1d6e9c",
"silk_over_copper|9183000|-539800|2fda1c1e-3a0c-47d3-b865-8d366d04b31e|397c6a58-ff1e-44da-82fc-0d7c0bb88582" "silk_over_copper|9183000|-539800|2fda1c1e-3a0c-47d3-b865-8d366d04b31e|397c6a58-ff1e-44da-82fc-0d7c0bb88582",
"solder_mask_bridge|-1382000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-1382000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|-2088000|-5500000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-2088000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-2088000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|-2449713|-5391100|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-2620900|-5391100|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-2794000|-5564200|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-2794000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-2794000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|-3500000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-3500000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|-3500000|-6914000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-3594300|11848900|c7e2124d-111c-474c-9df5-4a89441062c0|e57f3b3a-4723-4e07-8171-742af76c848c",
"solder_mask_bridge|-4206000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-4206000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|-4206000|-6970000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-4912000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-4912000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|-4912000|-6899000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-5618000|-5500000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-5618000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-5618000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|-5625900|11290100|794ce734-e263-448b-83cd-a968d937aa77|2160b495-17e4-4702-974c-8dfae747fab3",
"solder_mask_bridge|-6324000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-6324000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|-676000|-5500000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-676000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|-7030000|-5435600|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-7030000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-7030000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|-7736000|-5500000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-7736000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-7736000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|-8442000|-5511200|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-8442000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-8442000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|-9148000|-5603987|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|-9148000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|1442000|-5500000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|1442000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|2148000|-5500000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|2148000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|2148000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|2772369|-5500000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|2854000|-5581631|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|2854000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|30000|-5500000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|30000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|3560000|-5500000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|3560000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|3560000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|4185600|-5500000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|4266000|-5580400|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|4266000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|4972000|-5435600|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|4972000|-5500000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|4972000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|5678000|-5399006|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|5678000|-5500000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|5678000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|6384000|-5500000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|6384000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|7090000|-5500000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|7090000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|736000|-5500000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|736000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|7796000|-5500000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|7796000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|8502000|-5500000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|9a2ed2e4-4b3f-462c-a389-8ff99b31478a",
"solder_mask_bridge|8502000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"solder_mask_bridge|9208000|-6250000|2027bcbf-cb36-4548-b6f0-b9b56bb58ef7|c43dae57-486d-4927-8a8c-b77d4dfdd0c3",
"starved_thermal|1631000|-3213100|d88fe181-a965-45bb-b61b-0e5d5d101beb|79777112-3e43-419c-996d-3c67a3aede7b|F.Cu",
"starved_thermal|16600300|9596500|d88fe181-a965-45bb-b61b-0e5d5d101beb|79777112-3e43-419c-996d-3c67a3aede7b|F.Cu",
"starved_thermal|24260900|9888600|d88fe181-a965-45bb-b61b-0e5d5d101beb|c8fabca9-57b7-4d36-85be-53fc68f72bc5|F.Cu",
"starved_thermal|9291600|-2921000|d88fe181-a965-45bb-b61b-0e5d5d101beb|c8fabca9-57b7-4d36-85be-53fc68f72bc5|F.Cu"
], ],
"meta": { "meta": {
"filename": "board_design_settings.json", "filename": "board_design_settings.json",
@ -119,20 +204,26 @@
"rule_severities": { "rule_severities": {
"annular_width": "error", "annular_width": "error",
"clearance": "error", "clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error", "copper_edge_clearance": "error",
"copper_sliver": "ignore",
"courtyards_overlap": "error", "courtyards_overlap": "error",
"diff_pair_gap_out_of_range": "error", "diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error", "diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error", "drill_out_of_range": "error",
"duplicate_footprints": "warning", "duplicate_footprints": "warning",
"extra_footprint": "warning", "extra_footprint": "warning",
"footprint": "error",
"footprint_type_mismatch": "error", "footprint_type_mismatch": "error",
"hole_clearance": "error", "hole_clearance": "error",
"hole_near_hole": "error", "hole_near_hole": "error",
"invalid_outline": "error", "invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error", "item_on_disabled_layer": "error",
"items_not_allowed": "error", "items_not_allowed": "error",
"length_out_of_range": "error", "length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "ignore",
"malformed_courtyard": "error", "malformed_courtyard": "error",
"microvia_drill_out_of_range": "error", "microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore", "missing_courtyard": "ignore",
@ -142,9 +233,14 @@
"padstack": "error", "padstack": "error",
"pth_inside_courtyard": "ignore", "pth_inside_courtyard": "ignore",
"shorting_items": "error", "shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning", "silk_over_copper": "warning",
"silk_overlap": "warning", "silk_overlap": "warning",
"skew_out_of_range": "error", "skew_out_of_range": "error",
"solder_mask_bridge": "warning",
"starved_thermal": "error",
"text_height": "ignore",
"text_thickness": "ignore",
"through_hole_pad_without_hole": "error", "through_hole_pad_without_hole": "error",
"too_many_vias": "error", "too_many_vias": "error",
"track_dangling": "warning", "track_dangling": "warning",
@ -153,7 +249,6 @@
"unconnected_items": "error", "unconnected_items": "error",
"unresolved_variable": "error", "unresolved_variable": "error",
"via_dangling": "warning", "via_dangling": "warning",
"zone_has_empty_net": "error",
"zones_intersect": "error" "zones_intersect": "error"
}, },
"rules": { "rules": {
@ -161,18 +256,63 @@
"allow_microvias": false, "allow_microvias": false,
"max_error": 0.005, "max_error": 0.005,
"min_clearance": 0.127, "min_clearance": 0.127,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.127, "min_copper_edge_clearance": 0.127,
"min_hole_clearance": 0.25, "min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25, "min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.19999999999999998, "min_microvia_diameter": 0.19999999999999998,
"min_microvia_drill": 0.09999999999999999, "min_microvia_drill": 0.09999999999999999,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0, "min_silk_clearance": 0.0,
"min_text_height": 0.7999999999999999,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3, "min_through_hole_diameter": 0.3,
"min_track_width": 0.127, "min_track_width": 0.127,
"min_via_annular_width": 0.049999999999999996, "min_via_annular_width": 0.049999999999999996,
"min_via_diameter": 0.39999999999999997, "min_via_diameter": 0.39999999999999997,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true "use_height_for_length_calcs": true
}, },
"teardrop_options": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 5,
"td_on_pad_in_zone": false,
"td_onpadsmd": true,
"td_onroundshapesonly": false,
"td_ontrackend": false,
"td_onviapad": true
}
],
"teardrop_parameters": [
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [ "track_widths": [
0.0, 0.0,
0.127, 0.127,
@ -191,7 +331,8 @@
"zones_allow_external_fillets": false, "zones_allow_external_fillets": false,
"zones_use_no_outline": true "zones_use_no_outline": true
}, },
"layer_presets": [] "layer_presets": [],
"viewports": []
}, },
"boards": [], "boards": [],
"cvpcb": { "cvpcb": {
@ -375,27 +516,33 @@
"rule_severities": { "rule_severities": {
"bus_definition_conflict": "error", "bus_definition_conflict": "error",
"bus_entry_needed": "error", "bus_entry_needed": "error",
"bus_label_syntax": "error",
"bus_to_bus_conflict": "error", "bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error", "bus_to_net_conflict": "error",
"conflicting_netclasses": "error",
"different_unit_footprint": "error", "different_unit_footprint": "error",
"different_unit_net": "error", "different_unit_net": "error",
"duplicate_reference": "error", "duplicate_reference": "error",
"duplicate_sheet_names": "error", "duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error", "extra_units": "error",
"global_label_dangling": "warning", "global_label_dangling": "warning",
"hier_label_mismatch": "error", "hier_label_mismatch": "error",
"label_dangling": "error", "label_dangling": "error",
"lib_symbol_issues": "warning", "lib_symbol_issues": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning", "multiple_net_names": "warning",
"net_not_bus_member": "warning", "net_not_bus_member": "warning",
"no_connect_connected": "warning", "no_connect_connected": "warning",
"no_connect_dangling": "warning", "no_connect_dangling": "warning",
"pin_not_connected": "error", "pin_not_connected": "error",
"pin_not_driven": "error", "pin_not_driven": "error",
"pin_to_pin": "warning", "pin_to_pin": "error",
"power_pin_not_driven": "error", "power_pin_not_driven": "error",
"similar_labels": "warning", "similar_labels": "warning",
"simulation_model_issue": "error",
"unannotated": "error", "unannotated": "error",
"unit_value_mismatch": "error", "unit_value_mismatch": "error",
"unresolved_variable": "error", "unresolved_variable": "error",
@ -413,7 +560,7 @@
"net_settings": { "net_settings": {
"classes": [ "classes": [
{ {
"bus_width": 12.0, "bus_width": 12,
"clearance": 0.127, "clearance": 0.127,
"diff_pair_gap": 0.25, "diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25, "diff_pair_via_gap": 0.25,
@ -427,10 +574,10 @@
"track_width": 0.25, "track_width": 0.25,
"via_diameter": 0.8, "via_diameter": 0.8,
"via_drill": 0.4, "via_drill": 0.4,
"wire_width": 6.0 "wire_width": 6
}, },
{ {
"bus_width": 12.0, "bus_width": 12,
"clearance": 0.127, "clearance": 0.127,
"diff_pair_gap": 0.25, "diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25, "diff_pair_via_gap": 0.25,
@ -439,18 +586,15 @@
"microvia_diameter": 0.3, "microvia_diameter": 0.3,
"microvia_drill": 0.1, "microvia_drill": 0.1,
"name": "gnd", "name": "gnd",
"nets": [
"GND"
],
"pcb_color": "rgba(0, 0, 0, 0.000)", "pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)", "schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.254, "track_width": 0.254,
"via_diameter": 0.5588, "via_diameter": 0.5588,
"via_drill": 0.3048, "via_drill": 0.3048,
"wire_width": 6.0 "wire_width": 6
}, },
{ {
"bus_width": 12.0, "bus_width": 12,
"clearance": 0.127, "clearance": 0.127,
"diff_pair_gap": 0.25, "diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25, "diff_pair_via_gap": 0.25,
@ -459,21 +603,29 @@
"microvia_diameter": 0.3, "microvia_diameter": 0.3,
"microvia_drill": 0.1, "microvia_drill": 0.1,
"name": "power", "name": "power",
"nets": [
"VCC"
],
"pcb_color": "rgba(0, 0, 0, 0.000)", "pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)", "schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.254, "track_width": 0.254,
"via_diameter": 0.5588, "via_diameter": 0.5588,
"via_drill": 0.3048, "via_drill": 0.3048,
"wire_width": 6.0 "wire_width": 6
} }
], ],
"meta": { "meta": {
"version": 2 "version": 3
}, },
"net_colors": null "net_colors": null,
"netclass_assignments": null,
"netclass_patterns": [
{
"netclass": "gnd",
"pattern": "GND"
},
{
"netclass": "power",
"pattern": "VCC"
}
]
}, },
"pcbnew": { "pcbnew": {
"last_paths": { "last_paths": {
@ -489,6 +641,8 @@
"schematic": { "schematic": {
"annotate_start_num": 0, "annotate_start_num": 0,
"drawing": { "drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_line_thickness": 6.0, "default_line_thickness": 6.0,
"default_text_size": 50.0, "default_text_size": 50.0,
"field_names": [], "field_names": [],
@ -520,7 +674,11 @@
"page_layout_descr_file": "empty.kicad_wks", "page_layout_descr_file": "empty.kicad_wks",
"plot_directory": "", "plot_directory": "",
"spice_adjust_passive_values": false, "spice_adjust_passive_values": false,
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"", "spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65, "subpart_first_id": 65,
"subpart_id_separator": 0 "subpart_id_separator": 0
}, },

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +1,14 @@
{ {
"board": { "board": {
"active_layer": 2, "active_layer": 31,
"active_layer_preset": "", "active_layer_preset": "",
"auto_track_width": true, "auto_track_width": true,
"hidden_netclasses": [],
"hidden_nets": [], "hidden_nets": [],
"high_contrast_mode": 0, "high_contrast_mode": 0,
"net_color_mode": 1, "net_color_mode": 1,
"opacity": { "opacity": {
"images": 0.6,
"pads": 1.0, "pads": 1.0,
"tracks": 1.0, "tracks": 1.0,
"vias": 1.0, "vias": 1.0,
@ -37,6 +39,7 @@
9, 9,
10, 10,
11, 11,
12,
13, 13,
14, 14,
15, 15,
@ -61,11 +64,17 @@
35, 35,
36 36
], ],
"visible_layers": "00290a0_80000007", "visible_layers": "00290aa_80000007",
"zone_display_mode": 0 "zone_display_mode": 0
}, },
"git": {
"repo_password": "",
"repo_type": "",
"repo_username": "",
"ssh_key": ""
},
"meta": { "meta": {
"filename": "OSO-SWAT-B2-00.kicad_prl", "filename": "OSO-SWAT-C1-rounded.kicad_prl",
"version": 3 "version": 3
}, },
"project": { "project": {

View File

@ -0,0 +1,692 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": false,
"text_position": 0,
"units_format": 1
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.9,
"height": 0.9,
"width": 0.9
},
"silk_line_width": 0.12,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.15,
"silk_text_upright": false,
"zones": {
"45_degree_only": false,
"min_clearance": 1e-06
}
},
"diff_pair_dimensions": [
{
"gap": 0.0,
"via_gap": 0.0,
"width": 0.0
}
],
"drc_exclusions": [
"clearance|6549579|23514621|0dac23a8-f43b-4e30-9a10-b757851281ba|192908ec-7c4c-4ab1-a565-bc709c96b57f",
"clearance|7950000|22690000|821d722e-241b-43f8-bcb8-12290d54f4d9|192908ec-7c4c-4ab1-a565-bc709c96b57f",
"clearance|7970521|23400521|e003e765-2ee5-400f-abaa-d669dc68a0c6|192908ec-7c4c-4ab1-a565-bc709c96b57f",
"clearance|8581179|22000000|3dde5b5d-55b0-42ee-abfb-5429896be16c|192908ec-7c4c-4ab1-a565-bc709c96b57f",
"clearance|8581179|22002512|3cab235c-f7da-46c2-8b4d-9d21002f2b49|192908ec-7c4c-4ab1-a565-bc709c96b57f",
"items_not_allowed|6130279|23400521|0dac23a8-f43b-4e30-9a10-b757851281ba|00000000-0000-0000-0000-000000000000",
"items_not_allowed|7050400|23400521|e003e765-2ee5-400f-abaa-d669dc68a0c6|00000000-0000-0000-0000-000000000000",
"items_not_allowed|7950000|23035000|821d722e-241b-43f8-bcb8-12290d54f4d9|00000000-0000-0000-0000-000000000000",
"items_not_allowed|8640000|22000000|3cab235c-f7da-46c2-8b4d-9d21002f2b49|00000000-0000-0000-0000-000000000000",
"items_not_allowed|8780000|22000000|3dde5b5d-55b0-42ee-abfb-5429896be16c|00000000-0000-0000-0000-000000000000"
],
"meta": {
"filename": "board_design_settings.json",
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "warning",
"copper_sliver": "warning",
"courtyards_overlap": "warning",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "error",
"hole_clearance": "error",
"hole_near_hole": "error",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "error",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "warning",
"starved_thermal": "warning",
"text_height": "warning",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_dangling": "warning",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"allow_blind_buried_vias": false,
"allow_microvias": false,
"max_error": 0.005,
"min_clearance": 0.0889,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.0889,
"min_hole_clearance": 0.0889,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.2,
"min_track_width": 0.0889,
"min_via_annular_width": 0.125,
"min_via_diameter": 0.45,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_onpadsmd": true,
"td_onroundshapesonly": false,
"td_ontrackend": false,
"td_onviapad": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [
0.0,
0.0762,
0.0889,
0.1016,
0.127,
0.1524,
0.1778,
0.2032,
0.254,
0.3048,
0.55
],
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [
{
"diameter": 0.0,
"drill": 0.0
},
{
"diameter": 0.5588,
"drill": 0.3048
}
],
"zones_allow_external_fillets": false,
"zones_use_no_outline": true
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"conflicting_netclasses": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"lib_symbol_issues": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "error",
"power_pin_not_driven": "error",
"similar_labels": "warning",
"simulation_model_issue": "error",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "OSO-SWAT-C1-rounded.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.0889,
"diff_pair_gap": 0.0889,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.0889,
"line_style": 0,
"microvia_diameter": 0.45,
"microvia_drill": 0.2,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.0889,
"via_diameter": 0.45,
"via_drill": 0.2,
"wire_width": 6
},
{
"bus_width": 12,
"clearance": 0.0889,
"diff_pair_gap": 0.0889,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.0889,
"line_style": 0,
"microvia_diameter": 0.45,
"microvia_drill": 0.2,
"name": "gnd",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2032,
"via_diameter": 0.45,
"via_drill": 0.2,
"wire_width": 6
},
{
"bus_width": 12,
"clearance": 0.0889,
"diff_pair_gap": 0.0889,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.0889,
"line_style": 0,
"microvia_diameter": 0.45,
"microvia_drill": 0.2,
"name": "power",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2032,
"via_diameter": 0.45,
"via_drill": 0.2,
"wire_width": 6
}
],
"meta": {
"version": 3
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": [
{
"netclass": "gnd",
"pattern": "GND"
},
{
"netclass": "power",
"pattern": "VCC"
}
]
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"plot": "./OSO-SWAT-C1-06",
"pos_files": "",
"specctra_dsn": "",
"step": "OSO-SWAT-C1.step",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"bom_export_filename": "OSO-SWAT-C1-05.csv",
"bom_fmt_presets": [],
"bom_fmt_settings": {
"field_delimiter": ",",
"keep_line_breaks": false,
"keep_tabs": false,
"name": "CSV",
"ref_delimiter": ",",
"ref_range_delimiter": "",
"string_delimiter": "\""
},
"bom_presets": [],
"bom_settings": {
"exclude_dnp": false,
"fields_ordered": [
{
"group_by": false,
"label": "Reference",
"name": "Reference",
"show": true
},
{
"group_by": true,
"label": "Value",
"name": "Value",
"show": true
},
{
"group_by": false,
"label": "Datasheet",
"name": "Datasheet",
"show": true
},
{
"group_by": true,
"label": "Footprint",
"name": "Footprint",
"show": true
},
{
"group_by": false,
"label": "Qty",
"name": "${QUANTITY}",
"show": true
},
{
"group_by": true,
"label": "DNP",
"name": "${DNP}",
"show": true
},
{
"group_by": false,
"label": "#",
"name": "${ITEM_NUMBER}",
"show": false
},
{
"group_by": false,
"label": "Description",
"name": "Description",
"show": false
}
],
"filter_string": "",
"group_symbols": true,
"name": "",
"sort_asc": true,
"sort_field": "Reference"
},
"connection_grid_size": 50.0,
"drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"operating_point_overlay_i_precision": 3,
"operating_point_overlay_i_range": "~A",
"operating_point_overlay_v_precision": 3,
"operating_point_overlay_v_range": "~V",
"overbar_offset_ratio": 1.23,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"ngspice": {
"fix_include_paths": true,
"fix_passive_vals": false,
"meta": {
"version": 0
},
"model_mode": 0,
"workbook_filename": ""
},
"page_layout_descr_file": "empty.kicad_wks",
"plot_directory": "",
"spice_adjust_passive_values": false,
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_dissipations": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"3048f5e8-34bb-46da-8fa5-8c5aad2586f2",
"Root"
]
],
"text_variables": {}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +1,14 @@
{ {
"board": { "board": {
"active_layer": 31, "active_layer": 0,
"active_layer_preset": "", "active_layer_preset": "",
"auto_track_width": true, "auto_track_width": true,
"hidden_netclasses": [],
"hidden_nets": [], "hidden_nets": [],
"high_contrast_mode": 0, "high_contrast_mode": 0,
"net_color_mode": 1, "net_color_mode": 1,
"opacity": { "opacity": {
"images": 0.6,
"pads": 1.0, "pads": 1.0,
"tracks": 1.0, "tracks": 1.0,
"vias": 1.0, "vias": 1.0,
@ -62,8 +64,14 @@
35, 35,
36 36
], ],
"visible_layers": "0015055_80000007", "visible_layers": "0015055_80000001",
"zone_display_mode": 1 "zone_display_mode": 0
},
"git": {
"repo_password": "",
"repo_type": "",
"repo_username": "",
"ssh_key": ""
}, },
"meta": { "meta": {
"filename": "OSO-SWAT-C1.kicad_prl", "filename": "OSO-SWAT-C1.kicad_prl",

View File

@ -1,15 +1,19 @@
{ {
"board": { "board": {
"3dviewports": [],
"design_settings": { "design_settings": {
"defaults": { "defaults": {
"board_outline_line_width": 0.049999999999999996, "apply_defaults_to_fp_fields": false,
"copper_line_width": 0.19999999999999998, "apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false, "copper_text_italic": false,
"copper_text_size_h": 1.5, "copper_text_size_h": 1.5,
"copper_text_size_v": 1.5, "copper_text_size_v": 1.5,
"copper_text_thickness": 0.3, "copper_text_thickness": 0.3,
"copper_text_upright": false, "copper_text_upright": false,
"courtyard_line_width": 0.049999999999999996, "courtyard_line_width": 0.05,
"dimension_precision": 4, "dimension_precision": 4,
"dimension_units": 3, "dimension_units": 3,
"dimensions": { "dimensions": {
@ -20,22 +24,22 @@
"text_position": 0, "text_position": 0,
"units_format": 1 "units_format": 1
}, },
"fab_line_width": 0.09999999999999999, "fab_line_width": 0.1,
"fab_text_italic": false, "fab_text_italic": false,
"fab_text_size_h": 1.0, "fab_text_size_h": 1.0,
"fab_text_size_v": 1.0, "fab_text_size_v": 1.0,
"fab_text_thickness": 0.15, "fab_text_thickness": 0.15,
"fab_text_upright": false, "fab_text_upright": false,
"other_line_width": 0.09999999999999999, "other_line_width": 0.1,
"other_text_italic": false, "other_text_italic": false,
"other_text_size_h": 1.0, "other_text_size_h": 1.0,
"other_text_size_v": 1.0, "other_text_size_v": 1.0,
"other_text_thickness": 0.15, "other_text_thickness": 0.15,
"other_text_upright": false, "other_text_upright": false,
"pads": { "pads": {
"drill": 0.0, "drill": 0.9,
"height": 0.55, "height": 0.9,
"width": 0.55 "width": 0.9
}, },
"silk_line_width": 0.12, "silk_line_width": 0.12,
"silk_text_italic": false, "silk_text_italic": false,
@ -55,89 +59,7 @@
"width": 0.0 "width": 0.0
} }
], ],
"drc_exclusions": [ "drc_exclusions": [],
"clearance|-3911600|8979100|dbdaa6e0-ed53-4e9d-99f3-4910505ae870|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-3911600|9007974|dbdaa6e0-ed53-4e9d-99f3-4910505ae870|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-3911600|9906000|2e88cedd-98c0-46e0-bb16-79ab5354b03f|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-4394200|10388600|514b8878-de76-48ab-95c8-da96cf738f00|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-4394200|8979100|fa2f01b7-7f02-42a4-85e4-59376888ec72|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-4394200|9831824|5f1c822b-216d-46ed-b421-2eb294dfc5b7|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-4394200|9831824|799b0042-1281-4b9d-b373-0d3ee5cff34a|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-4546600|10541000|2e88cedd-98c0-46e0-bb16-79ab5354b03f|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-4787900|10782300|514b8878-de76-48ab-95c8-da96cf738f00|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-4876271|10870671|acf0ab5a-4fc3-479f-9401-b35ef79e6e56|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-4876271|10870671|de129e2b-575f-40f4-90dd-741d90daceb5|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-5181600|11176000|20a5138c-5ba0-4ff0-b986-ed821cf22034|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-5181600|11176000|74d0f838-b7eb-400a-a36d-7a30456db148|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-5315000|11176000|94ed4e14-64f5-4caa-95ff-8b9708aa7544|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-5315000|8979100|5cd38060-de87-4f4f-a5a5-bcc37f72c4bd|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-5514326|-347848|b597f016-2892-4480-9bc1-970083f01de9|971e9763-ade2-490f-833f-b4f718ec5271",
"clearance|-5613400|11176000|74d0f838-b7eb-400a-a36d-7a30456db148|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|-5625900|11290100|2160b495-17e4-4702-974c-8dfae747fab3|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|140899579|112414621|2160b495-17e4-4702-974c-8dfae747fab3|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|141210479|110103621|5cd38060-de87-4f4f-a5a5-bcc37f72c4bd|794ce734-e263-448b-83cd-a968d937aa77",
"clearance|141210479|112300521|94ed4e14-64f5-4caa-95ff-8b9708aa7544|794ce734-e263-448b-83cd-a968d937aa77",
"copper_edge_clearance|-10774234|-5983094|ba19627a-6a39-44f8-902b-f787bac11df5|f9b7bd43-1bb3-4eb2-b696-7791c89ea3fb",
"copper_edge_clearance|-11073558|-5628081|ba19627a-6a39-44f8-902b-f787bac11df5|e8366998-b542-4813-9273-4197177cfc8f",
"copper_edge_clearance|-11074463|-5667249|ba19627a-6a39-44f8-902b-f787bac11df5|0ac84b75-cbef-407c-8472-c32e1f604bef",
"copper_edge_clearance|-11074463|-5667249|ba19627a-6a39-44f8-902b-f787bac11df5|5fbdbd98-56ea-43b2-b1b5-12d4e9edbf1f",
"copper_edge_clearance|-11074463|-5667249|ba19627a-6a39-44f8-902b-f787bac11df5|8d66bf4f-1f8a-4b86-b2c4-13b2ec113226",
"copper_edge_clearance|-11074469|-5667888|ba19627a-6a39-44f8-902b-f787bac11df5|9b33c2de-bc4b-451c-a5f9-93b8a36d5caf",
"copper_edge_clearance|-11080393|-6293207|ba19627a-6a39-44f8-902b-f787bac11df5|3b72de00-bc5b-40a5-8390-e0dc7187371e",
"copper_edge_clearance|-11080393|-6293207|ba19627a-6a39-44f8-902b-f787bac11df5|9b33c2de-bc4b-451c-a5f9-93b8a36d5caf",
"copper_edge_clearance|-11080393|-6293207|ba19627a-6a39-44f8-902b-f787bac11df5|a1d09e2e-c093-4dec-ace0-ca65b36549dc",
"copper_edge_clearance|-11143288|-5667240|ba19627a-6a39-44f8-902b-f787bac11df5|0d77902d-affa-4939-8ab2-26eb3aef0ce4",
"copper_edge_clearance|-11144380|-5665049|ba19627a-6a39-44f8-902b-f787bac11df5|c4b4f5c3-d4dc-4c20-86a1-5267b18f0b02",
"copper_edge_clearance|-11301518|6548250|1dcdbe51-f435-4a4a-bccc-6fd33aa2d9ee|1699a332-384d-49ae-bcfb-3d1fb593020d",
"copper_edge_clearance|-11312540|5972231|24501187-692e-44b2-9405-3e6564df4c24|1699a332-384d-49ae-bcfb-3d1fb593020d",
"copper_edge_clearance|-11346081|-4523017|37ab839f-4d7b-4245-953f-2634f5afcffb|a333ff12-9a47-43a2-8ce7-1416484dc68e",
"copper_edge_clearance|-11346081|-4523018|37ab839f-4d7b-4245-953f-2634f5afcffb|c1dc8f6c-e33b-4591-ac18-b113a6ead62f",
"copper_edge_clearance|-11346081|-4523018|37ab839f-4d7b-4245-953f-2634f5afcffb|d7f42b08-54bb-4483-88cf-e8fe93f5613f",
"copper_edge_clearance|-11477935|4588252|9b59854a-c816-42da-81ee-a2a1bc1d81e9|3adf45ca-8e01-4480-a849-ee4df2ed9c60",
"copper_edge_clearance|-11481144|-4556784|37ab839f-4d7b-4245-953f-2634f5afcffb|9c17f86d-3c3a-47b5-8457-2cbc72af8eb6",
"copper_edge_clearance|-11697669|4241800|9b59854a-c816-42da-81ee-a2a1bc1d81e9|ae8ee581-2a39-472b-ae6f-d3550afdaa82",
"copper_edge_clearance|-11913368|3272640|df12fcbd-7579-42a9-996a-a2152d1dfa93|1699a332-384d-49ae-bcfb-3d1fb593020d",
"copper_edge_clearance|-12200000|-2757631|827ceb97-2070-461e-84b4-63295916a7c1|9c17f86d-3c3a-47b5-8457-2cbc72af8eb6",
"copper_edge_clearance|-5848631|11706250|90708b84-5e3e-4b75-a7be-07232ff20bef|2160b495-17e4-4702-974c-8dfae747fab3",
"copper_edge_clearance|-6362618|11433400|70a3d0de-ad3a-499c-b9e3-fa0bf3b8302b|2160b495-17e4-4702-974c-8dfae747fab3",
"copper_edge_clearance|11094583|6152017|ab1d8d3e-b421-491e-b102-8b655f5b49b6|41bf0e78-2590-49f1-b7a2-c30d57620657",
"copper_edge_clearance|11094583|6152017|ab1d8d3e-b421-491e-b102-8b655f5b49b6|6c45d3cf-bfb0-427c-8585-1fa5dbe5ee15",
"copper_edge_clearance|11342224|4703628|d8854a48-2068-440c-a460-cfd915d43f01|640b6719-1ff5-4f38-8074-6ed5b4dea8ba",
"copper_edge_clearance|11342224|4703628|d8854a48-2068-440c-a460-cfd915d43f01|75ea651a-6070-4563-ae61-35cfdfbdff69",
"copper_edge_clearance|11342224|4703628|d8854a48-2068-440c-a460-cfd915d43f01|e502fd32-cc34-4c69-be75-f78be671bf3f",
"copper_edge_clearance|11342224|4703628|d8854a48-2068-440c-a460-cfd915d43f01|e97ec891-0573-42cf-8a4a-b25a0004e46f",
"copper_edge_clearance|11342224|4703629|d8854a48-2068-440c-a460-cfd915d43f01|2be12e96-9de7-4ab2-9d46-4a19550422c4",
"copper_edge_clearance|11479052|4729327|d8854a48-2068-440c-a460-cfd915d43f01|0251fd1d-3d1a-41b6-b0f5-efb6d578fc1b",
"copper_edge_clearance|11629941|3925941|d8854a48-2068-440c-a460-cfd915d43f01|33a7437b-1cb3-4152-981e-eef21bef09b2",
"copper_edge_clearance|11686900|3622668|6ec0def0-d080-4810-ad42-53efa264a14a|0251fd1d-3d1a-41b6-b0f5-efb6d578fc1b",
"copper_edge_clearance|134811929|97497353|9405bec8-9b85-4b22-873c-30ac8cf07680|9c17f86d-3c3a-47b5-8457-2cbc72af8eb6",
"copper_edge_clearance|134827810|105366321|9b59854a-c816-42da-81ee-a2a1bc1d81e9|ae8ee581-2a39-472b-ae6f-d3550afdaa82",
"copper_edge_clearance|135044335|96567737|37ab839f-4d7b-4245-953f-2634f5afcffb|9c17f86d-3c3a-47b5-8457-2cbc72af8eb6",
"copper_edge_clearance|135117639|96274521|37ab839f-4d7b-4245-953f-2634f5afcffb|98927e26-9201-4a93-bb63-f780fb365bc3",
"copper_edge_clearance|135212939|107096752|24501187-692e-44b2-9405-3e6564df4c24|1699a332-384d-49ae-bcfb-3d1fb593020d",
"copper_edge_clearance|140162861|112557921|70a3d0de-ad3a-499c-b9e3-fa0bf3b8302b|2160b495-17e4-4702-974c-8dfae747fab3",
"copper_edge_clearance|140676848|112830771|90708b84-5e3e-4b75-a7be-07232ff20bef|2160b495-17e4-4702-974c-8dfae747fab3",
"copper_edge_clearance|158004531|105853848|d8854a48-2068-440c-a460-cfd915d43f01|0251fd1d-3d1a-41b6-b0f5-efb6d578fc1b",
"copper_edge_clearance|158155420|105050462|d8854a48-2068-440c-a460-cfd915d43f01|33a7437b-1cb3-4152-981e-eef21bef09b2",
"copper_edge_clearance|158212379|104747189|6ec0def0-d080-4810-ad42-53efa264a14a|0251fd1d-3d1a-41b6-b0f5-efb6d578fc1b",
"hole_clearance|-1901316|10712400|5773b5d8-0592-418a-8b1a-2395e8e7ee4d|8f6b6709-2bcb-4f68-8ec9-e57808459ee1",
"hole_clearance|-2622600|10712400|ba29c963-2b77-4401-ad90-4e23ee1d6e9c|8f6b6709-2bcb-4f68-8ec9-e57808459ee1",
"hole_clearance|143902879|111836921|ba29c963-2b77-4401-ad90-4e23ee1d6e9c|8f6b6709-2bcb-4f68-8ec9-e57808459ee1",
"hole_clearance|144624163|111836921|5773b5d8-0592-418a-8b1a-2395e8e7ee4d|8f6b6709-2bcb-4f68-8ec9-e57808459ee1",
"hole_clearance|155058479|99784721|397c6a58-ff1e-44da-82fc-0d7c0bb88582|8bf6d62b-e48a-41ef-9a23-e6b6fdf2c68e",
"hole_clearance|8533000|-1339800|397c6a58-ff1e-44da-82fc-0d7c0bb88582|8bf6d62b-e48a-41ef-9a23-e6b6fdf2c68e",
"silk_over_copper|-11828400|3000000|e5584725-c6b2-444b-9952-fd07e923f97c|1699a332-384d-49ae-bcfb-3d1fb593020d",
"silk_over_copper|-11860097|3197553|9b59854a-c816-42da-81ee-a2a1bc1d81e9|e5584725-c6b2-444b-9952-fd07e923f97c",
"silk_over_copper|10883000|-539800|80a33098-6716-495a-a93c-33dbe31233aa|800b65a4-e777-43c7-97b8-d5ee87069507",
"silk_over_copper|134665382|104322074|9b59854a-c816-42da-81ee-a2a1bc1d81e9|e5584725-c6b2-444b-9952-fd07e923f97c",
"silk_over_copper|134697079|104124521|e5584725-c6b2-444b-9952-fd07e923f97c|1699a332-384d-49ae-bcfb-3d1fb593020d",
"silk_over_copper|151533879|113137021|cb682c98-1447-4c14-8bbb-c7d05b378a4b|3b10a40e-0c8d-4715-81ca-4ad903851be3",
"silk_over_copper|155708479|100584721|2fda1c1e-3a0c-47d3-b865-8d366d04b31e|397c6a58-ff1e-44da-82fc-0d7c0bb88582",
"silk_over_copper|157408479|100584721|80a33098-6716-495a-a93c-33dbe31233aa|800b65a4-e777-43c7-97b8-d5ee87069507",
"silk_over_copper|5008400|12012500|cb682c98-1447-4c14-8bbb-c7d05b378a4b|3b10a40e-0c8d-4715-81ca-4ad903851be3",
"silk_over_copper|5641871|6506062|17bb032d-f3fc-4d20-b54b-d09f9e6a51f2|340f123c-48e9-49c6-974a-02087b73fa8b",
"silk_over_copper|9183000|-539800|2fda1c1e-3a0c-47d3-b865-8d366d04b31e|397c6a58-ff1e-44da-82fc-0d7c0bb88582"
],
"meta": { "meta": {
"filename": "board_design_settings.json", "filename": "board_design_settings.json",
"version": 2 "version": 2
@ -145,20 +67,28 @@
"rule_severities": { "rule_severities": {
"annular_width": "error", "annular_width": "error",
"clearance": "error", "clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "warning", "copper_edge_clearance": "warning",
"copper_sliver": "warning",
"courtyards_overlap": "warning", "courtyards_overlap": "warning",
"diff_pair_gap_out_of_range": "error", "diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error", "diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error", "drill_out_of_range": "error",
"duplicate_footprints": "warning", "duplicate_footprints": "warning",
"extra_footprint": "warning", "extra_footprint": "warning",
"footprint": "error",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "error", "footprint_type_mismatch": "error",
"hole_clearance": "error", "hole_clearance": "error",
"hole_near_hole": "error", "hole_near_hole": "error",
"holes_co_located": "warning",
"invalid_outline": "error", "invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error", "item_on_disabled_layer": "error",
"items_not_allowed": "error", "items_not_allowed": "error",
"length_out_of_range": "error", "length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error", "malformed_courtyard": "error",
"microvia_drill_out_of_range": "error", "microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore", "missing_courtyard": "ignore",
@ -168,9 +98,14 @@
"padstack": "error", "padstack": "error",
"pth_inside_courtyard": "ignore", "pth_inside_courtyard": "ignore",
"shorting_items": "error", "shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning", "silk_over_copper": "warning",
"silk_overlap": "warning", "silk_overlap": "warning",
"skew_out_of_range": "error", "skew_out_of_range": "error",
"solder_mask_bridge": "warning",
"starved_thermal": "warning",
"text_height": "warning",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error", "through_hole_pad_without_hole": "error",
"too_many_vias": "error", "too_many_vias": "error",
"track_dangling": "warning", "track_dangling": "warning",
@ -179,29 +114,77 @@
"unconnected_items": "error", "unconnected_items": "error",
"unresolved_variable": "error", "unresolved_variable": "error",
"via_dangling": "warning", "via_dangling": "warning",
"zone_has_empty_net": "error",
"zones_intersect": "error" "zones_intersect": "error"
}, },
"rules": { "rules": {
"allow_blind_buried_vias": false, "allow_blind_buried_vias": false,
"allow_microvias": false, "allow_microvias": false,
"max_error": 0.005, "max_error": 0.005,
"min_clearance": 0.08889999999999999, "min_clearance": 0.0889,
"min_copper_edge_clearance": 0.08889999999999999, "min_connection": 0.0,
"min_hole_clearance": 0.08889999999999999, "min_copper_edge_clearance": 0.0889,
"min_hole_clearance": 0.0889,
"min_hole_to_hole": 0.25, "min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.19999999999999998, "min_microvia_diameter": 0.2,
"min_microvia_drill": 0.09999999999999999, "min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0, "min_silk_clearance": 0.0,
"min_through_hole_diameter": 0.19999999999999998, "min_text_height": 0.8,
"min_track_width": 0.08889999999999999, "min_text_thickness": 0.08,
"min_through_hole_diameter": 0.2,
"min_track_width": 0.0889,
"min_via_annular_width": 0.125, "min_via_annular_width": 0.125,
"min_via_diameter": 0.44999999999999996, "min_via_diameter": 0.45,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true "use_height_for_length_calcs": true
}, },
"teardrop_options": [
{
"td_onpadsmd": true,
"td_onroundshapesonly": false,
"td_ontrackend": false,
"td_onviapad": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [ "track_widths": [
0.0, 0.0,
0.0762, 0.0762,
0.0889,
0.1016, 0.1016,
0.127, 0.127,
0.1524, 0.1524,
@ -211,6 +194,32 @@
0.3048, 0.3048,
0.55 0.55
], ],
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [ "via_dimensions": [
{ {
"diameter": 0.0, "diameter": 0.0,
@ -224,7 +233,15 @@
"zones_allow_external_fillets": false, "zones_allow_external_fillets": false,
"zones_use_no_outline": true "zones_use_no_outline": true
}, },
"layer_presets": [] "ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_presets": [],
"viewports": []
}, },
"boards": [], "boards": [],
"cvpcb": { "cvpcb": {
@ -408,27 +425,33 @@
"rule_severities": { "rule_severities": {
"bus_definition_conflict": "error", "bus_definition_conflict": "error",
"bus_entry_needed": "error", "bus_entry_needed": "error",
"bus_label_syntax": "error",
"bus_to_bus_conflict": "error", "bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error", "bus_to_net_conflict": "error",
"conflicting_netclasses": "error",
"different_unit_footprint": "error", "different_unit_footprint": "error",
"different_unit_net": "error", "different_unit_net": "error",
"duplicate_reference": "error", "duplicate_reference": "error",
"duplicate_sheet_names": "error", "duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error", "extra_units": "error",
"global_label_dangling": "warning", "global_label_dangling": "warning",
"hier_label_mismatch": "error", "hier_label_mismatch": "error",
"label_dangling": "error", "label_dangling": "error",
"lib_symbol_issues": "warning", "lib_symbol_issues": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning", "multiple_net_names": "warning",
"net_not_bus_member": "warning", "net_not_bus_member": "warning",
"no_connect_connected": "warning", "no_connect_connected": "warning",
"no_connect_dangling": "warning", "no_connect_dangling": "warning",
"pin_not_connected": "error", "pin_not_connected": "error",
"pin_not_driven": "error", "pin_not_driven": "error",
"pin_to_pin": "warning", "pin_to_pin": "error",
"power_pin_not_driven": "error", "power_pin_not_driven": "error",
"similar_labels": "warning", "similar_labels": "warning",
"simulation_model_issue": "error",
"unannotated": "error", "unannotated": "error",
"unit_value_mismatch": "error", "unit_value_mismatch": "error",
"unresolved_variable": "error", "unresolved_variable": "error",
@ -446,7 +469,7 @@
"net_settings": { "net_settings": {
"classes": [ "classes": [
{ {
"bus_width": 12.0, "bus_width": 12,
"clearance": 0.0889, "clearance": 0.0889,
"diff_pair_gap": 0.0889, "diff_pair_gap": 0.0889,
"diff_pair_via_gap": 0.25, "diff_pair_via_gap": 0.25,
@ -460,10 +483,10 @@
"track_width": 0.0889, "track_width": 0.0889,
"via_diameter": 0.45, "via_diameter": 0.45,
"via_drill": 0.2, "via_drill": 0.2,
"wire_width": 6.0 "wire_width": 6
}, },
{ {
"bus_width": 12.0, "bus_width": 12,
"clearance": 0.0889, "clearance": 0.0889,
"diff_pair_gap": 0.0889, "diff_pair_gap": 0.0889,
"diff_pair_via_gap": 0.25, "diff_pair_via_gap": 0.25,
@ -472,18 +495,15 @@
"microvia_diameter": 0.45, "microvia_diameter": 0.45,
"microvia_drill": 0.2, "microvia_drill": 0.2,
"name": "gnd", "name": "gnd",
"nets": [
"GND"
],
"pcb_color": "rgba(0, 0, 0, 0.000)", "pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)", "schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2032, "track_width": 0.2032,
"via_diameter": 0.45, "via_diameter": 0.45,
"via_drill": 0.2, "via_drill": 0.2,
"wire_width": 6.0 "wire_width": 6
}, },
{ {
"bus_width": 12.0, "bus_width": 12,
"clearance": 0.0889, "clearance": 0.0889,
"diff_pair_gap": 0.0889, "diff_pair_gap": 0.0889,
"diff_pair_via_gap": 0.25, "diff_pair_via_gap": 0.25,
@ -492,36 +512,120 @@
"microvia_diameter": 0.45, "microvia_diameter": 0.45,
"microvia_drill": 0.2, "microvia_drill": 0.2,
"name": "power", "name": "power",
"nets": [
"VCC"
],
"pcb_color": "rgba(0, 0, 0, 0.000)", "pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)", "schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2032, "track_width": 0.2032,
"via_diameter": 0.45, "via_diameter": 0.45,
"via_drill": 0.2, "via_drill": 0.2,
"wire_width": 6.0 "wire_width": 6
} }
], ],
"meta": { "meta": {
"version": 2 "version": 3
}, },
"net_colors": null "net_colors": null,
"netclass_assignments": null,
"netclass_patterns": [
{
"netclass": "gnd",
"pattern": "GND"
},
{
"netclass": "power",
"pattern": "VCC"
}
]
}, },
"pcbnew": { "pcbnew": {
"last_paths": { "last_paths": {
"gencad": "", "gencad": "",
"idf": "", "idf": "",
"netlist": "", "netlist": "",
"plot": "./OSO-SWAT-C1-06",
"pos_files": "./temp/",
"specctra_dsn": "", "specctra_dsn": "",
"step": "", "step": "OSO-SWAT-C1.step",
"svg": "",
"vrml": "" "vrml": ""
}, },
"page_layout_descr_file": "" "page_layout_descr_file": ""
}, },
"schematic": { "schematic": {
"annotate_start_num": 0, "annotate_start_num": 0,
"bom_export_filename": "OSO-SWAT-C1-05-bottom.csv",
"bom_fmt_presets": [],
"bom_fmt_settings": {
"field_delimiter": ",",
"keep_line_breaks": false,
"keep_tabs": false,
"name": "CSV",
"ref_delimiter": ",",
"ref_range_delimiter": "",
"string_delimiter": "\""
},
"bom_presets": [],
"bom_settings": {
"exclude_dnp": false,
"fields_ordered": [
{
"group_by": false,
"label": "Reference",
"name": "Reference",
"show": true
},
{
"group_by": true,
"label": "Value",
"name": "Value",
"show": true
},
{
"group_by": false,
"label": "Datasheet",
"name": "Datasheet",
"show": true
},
{
"group_by": true,
"label": "Footprint",
"name": "Footprint",
"show": true
},
{
"group_by": false,
"label": "Qty",
"name": "${QUANTITY}",
"show": true
},
{
"group_by": true,
"label": "DNP",
"name": "${DNP}",
"show": true
},
{
"group_by": false,
"label": "#",
"name": "${ITEM_NUMBER}",
"show": false
},
{
"group_by": false,
"label": "Description",
"name": "Description",
"show": false
}
],
"filter_string": "",
"group_symbols": true,
"name": "",
"sort_asc": true,
"sort_field": "Reference"
},
"connection_grid_size": 50.0,
"drawing": { "drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_line_thickness": 6.0, "default_line_thickness": 6.0,
"default_text_size": 50.0, "default_text_size": 50.0,
"field_names": [], "field_names": [],
@ -532,6 +636,11 @@
"intersheets_ref_suffix": "", "intersheets_ref_suffix": "",
"junction_size_choice": 3, "junction_size_choice": 3,
"label_size_ratio": 0.375, "label_size_ratio": 0.375,
"operating_point_overlay_i_precision": 3,
"operating_point_overlay_i_range": "~A",
"operating_point_overlay_v_precision": 3,
"operating_point_overlay_v_range": "~V",
"overbar_offset_ratio": 1.23,
"pin_symbol_size": 25.0, "pin_symbol_size": 25.0,
"text_offset_ratio": 0.15 "text_offset_ratio": 0.15
}, },
@ -553,14 +662,19 @@
"page_layout_descr_file": "empty.kicad_wks", "page_layout_descr_file": "empty.kicad_wks",
"plot_directory": "", "plot_directory": "",
"spice_adjust_passive_values": false, "spice_adjust_passive_values": false,
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"", "spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_dissipations": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65, "subpart_first_id": 65,
"subpart_id_separator": 0 "subpart_id_separator": 0
}, },
"sheets": [ "sheets": [
[ [
"3048f5e8-34bb-46da-8fa5-8c5aad2586f2", "3048f5e8-34bb-46da-8fa5-8c5aad2586f2",
"" "Root"
] ]
], ],
"text_variables": {} "text_variables": {}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,154 @@
(footprint "ELT3KN"
(version 20240108)
(generator "pcbnew")
(generator_version "8.0")
(layer "F.Cu")
(property "Reference" "REF**"
(at 0 -2.5 0)
(unlocked yes)
(layer "F.SilkS")
(uuid "a169e63e-29cc-4564-a621-b8211c147892")
(effects
(font
(size 1 1)
(thickness 0.2)
(bold yes)
)
)
)
(property "Value" "ELT3KN"
(at 0 2.5 0)
(unlocked yes)
(layer "F.Fab")
(uuid "12f117ff-fc54-4392-9702-20053568a437")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Footprint" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "4696eff2-7885-4247-8d7f-ea328aeb61b3")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "38e32ed5-5bed-49cc-a302-cc80b63f7eca")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Description" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "bbe09b54-7873-4c59-90a5-708f27e5af76")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(attr smd)
(fp_arc
(start -1.495202 -0.697761)
(mid -0.886339 -1.391726)
(end 0 -1.65)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "2b5cd3f8-b18c-4557-94e3-1779ca1608f1")
)
(fp_arc
(start 0 -1.65)
(mid 0.886339 -1.391727)
(end 1.495202 -0.697761)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "d473595f-e35a-4857-8449-1d9f3feacdc9")
)
(fp_arc
(start 0 1.65)
(mid -0.886339 1.391727)
(end -1.495202 0.697761)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "d37347f0-9221-4e4b-a029-a04f185819ec")
)
(fp_arc
(start 1.495202 0.697761)
(mid 0.886339 1.391726)
(end 0 1.65)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "f12bf60f-5b3d-45b5-82f7-79448488ae21")
)
(fp_circle
(center 0 0)
(end 1.65 0)
(stroke
(width 0.1)
(type default)
)
(fill none)
(layer "F.Fab")
(uuid "3ab1094b-f4c1-4436-87a3-fa43bddd0a8d")
)
(fp_text user "${REFERENCE}"
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(uuid "0739cf1b-8f40-4d32-91d0-496ba0ec98b8")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(pad "1" smd roundrect
(at -2.15 0)
(size 1.4 1.05)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "e742aada-aafd-47f3-8447-3fbf9c4a7579")
)
(pad "2" smd roundrect
(at 2.15 0)
(size 1.4 1.05)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "fa457dd1-8427-41f4-83ec-ab02d543d005")
)
)

View File

@ -1,54 +1,282 @@
(footprint "SW_EVP-BB1AAB000" (version 20211014) (generator pcbnew) (footprint "SW_EVP-BB1AAB000"
(layer "F.Cu") (version 20240108)
(tedit 0) (generator "pcbnew")
(fp_text reference "REF**" (at -2.628409 -1.50195) (layer "F.SilkS") (generator_version "8.0")
(effects (font (size 1.169909 1.169909) (thickness 0.101731)) (justify left bottom)) (layer "F.Cu")
(tstamp 5bfc1104-d8e6-463d-96bf-3b297940d17a) (property "Reference" "REF**"
) (at -2.628409 -1.50195 0)
(fp_text value ">VALUE" (at -2.629818 3.005518) (layer "F.Fab") (layer "F.SilkS")
(effects (font (size 1.170545 1.170545) (thickness 0.101786)) (justify left bottom)) (uuid "5bfc1104-d8e6-463d-96bf-3b297940d17a")
(tstamp 0d6e3660-78d4-4c9d-aa40-0c2181937185) (effects
) (font
(fp_poly (pts (size 1.169909 1.169909)
(xy -1.095 -0.145) (thickness 0.101731)
(xy -1.555 -0.145) )
(xy -1.555 -0.605) (justify left bottom)
(xy -1.095 -0.605) )
) (layer "F.Paste") (width 0) (fill solid) (tstamp 6db398f8-2729-450b-aef1-8242c2cd2e0f)) )
(fp_poly (pts (property "Value" ">VALUE"
(xy -1.095 0.605) (at -2.629818 3.005518 0)
(xy -1.555 0.605) (layer "F.Fab")
(xy -1.555 0.145) (uuid "0d6e3660-78d4-4c9d-aa40-0c2181937185")
(xy -1.095 0.145) (effects
) (layer "F.Paste") (width 0) (fill solid) (tstamp 84da75db-45c9-4044-8d1e-347621238750)) (font
(fp_poly (pts (size 1.170545 1.170545)
(xy 1.555 0.605) (thickness 0.101786)
(xy 1.095 0.605) )
(xy 1.095 0.145) (justify left bottom)
(xy 1.555 0.145) )
) (layer "F.Paste") (width 0) (fill solid) (tstamp 85bec7d7-877b-406c-bad8-abaa99fcbe23)) )
(fp_poly (pts (property "Footprint" ""
(xy 1.555 -0.145) (at 0 0 0)
(xy 1.095 -0.145) (layer "F.Fab")
(xy 1.095 -0.605) (hide yes)
(xy 1.555 -0.605) (uuid "adf19691-fa3b-4d7a-abc1-3f78748c21cf")
) (layer "F.Paste") (width 0) (fill solid) (tstamp e8fb6dd3-e158-4257-9e15-870695c296b7)) (effects
(fp_line (start -1.3 0.9635) (end 1.3 0.9635) (layer "F.SilkS") (width 0.127) (tstamp 2a0673e1-384a-4091-aad2-73c6b1e7babd)) (font
(fp_line (start -1.3 -0.9635) (end 1.3 -0.9635) (layer "F.SilkS") (width 0.127) (tstamp daeab9ff-4ca6-4d3e-8486-53bc65dc2c70)) (size 1.27 1.27)
(fp_line (start 1.85 -1.05) (end 1.85 1.05) (layer "F.CrtYd") (width 0.05) (tstamp 4939d836-3fdc-47f9-b885-f87382603570)) (thickness 0.15)
(fp_line (start -1.85 1.05) (end -1.85 -1.05) (layer "F.CrtYd") (width 0.05) (tstamp b1dcf4ab-520c-4ad1-8398-87f8dd8fec29)) )
(fp_line (start -1.85 -1.05) (end 1.85 -1.05) (layer "F.CrtYd") (width 0.05) (tstamp d6daa52c-633b-4f9e-9611-999747c83ff7)) )
(fp_line (start 1.85 1.05) (end -1.85 1.05) (layer "F.CrtYd") (width 0.05) (tstamp e4f415ce-fdbb-4c24-b2a1-e501eae24f60)) )
(fp_line (start -1.3 0.8) (end -1.3 -0.8) (layer "F.Fab") (width 0.127) (tstamp 1e090053-4c0c-424f-8664-54986066ef27)) (property "Datasheet" ""
(fp_line (start 1.3 0.8) (end -1.3 0.8) (layer "F.Fab") (width 0.127) (tstamp 31b618ce-8704-4bd2-948f-25d290b97ca7)) (at 0 0 0)
(fp_line (start -1.3 -0.8) (end 1.3 -0.8) (layer "F.Fab") (width 0.127) (tstamp 8e13a383-d573-4545-b914-42a75e606b8c)) (layer "F.Fab")
(fp_line (start 1.3 -0.8) (end 1.3 0.8) (layer "F.Fab") (width 0.127) (tstamp df66859c-c21f-4048-8e27-8d86d5f411f0)) (hide yes)
(pad "A1" smd rect (at -1.325 -0.375) (size 0.55 0.55) (layers "F.Cu" "F.Mask") (uuid "e644642e-886c-44ac-b86f-d6c911d62221")
(solder_mask_margin 0.0635) (tstamp efeb691d-5593-439a-a931-ffe8a985f2c4)) (effects
(pad "A2" smd rect (at -1.325 0.375) (size 0.55 0.55) (layers "F.Cu" "F.Mask") (font
(solder_mask_margin 0.0635) (tstamp 4ceaa3e3-568f-42dd-8491-a773d8add0f9)) (size 1.27 1.27)
(pad "B1" smd rect (at 1.325 -0.375) (size 0.55 0.55) (layers "F.Cu" "F.Mask") (thickness 0.15)
(solder_mask_margin 0.0635) (tstamp 5bdc0a88-b8c1-4c56-b2c0-8737e7eeb5ed)) )
(pad "B2" smd rect (at 1.325 0.375) (size 0.55 0.55) (layers "F.Cu" "F.Mask") )
(solder_mask_margin 0.0635) (tstamp fb158033-514b-4126-84ba-b82cd884d9a2)) )
(property "Description" ""
(at 0 0 0)
(layer "F.Fab")
(hide yes)
(uuid "36f34cd2-251b-4e5d-9062-61208ddf5d26")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(fp_line
(start -1.325 -0.375)
(end -1.325 0.375)
(stroke
(width 0.465)
(type solid)
)
(layer "F.Paste")
(uuid "4d800587-4919-426d-b1ba-7b44b3e9466f")
)
(fp_line
(start 1.325 -0.375)
(end 1.325 0.375)
(stroke
(width 0.465)
(type solid)
)
(layer "F.Paste")
(uuid "ce64bb60-7755-4c83-8701-9a2cef3a1c7b")
)
(fp_poly
(pts
(xy -1.095 -0.145) (xy -1.555 -0.145) (xy -1.555 -0.605) (xy -1.095 -0.605)
)
(stroke
(width 0)
(type solid)
)
(fill solid)
(layer "F.Paste")
(uuid "6db398f8-2729-450b-aef1-8242c2cd2e0f")
)
(fp_poly
(pts
(xy -1.095 0.605) (xy -1.555 0.605) (xy -1.555 0.145) (xy -1.095 0.145)
)
(stroke
(width 0)
(type solid)
)
(fill solid)
(layer "F.Paste")
(uuid "84da75db-45c9-4044-8d1e-347621238750")
)
(fp_poly
(pts
(xy 1.555 -0.145) (xy 1.095 -0.145) (xy 1.095 -0.605) (xy 1.555 -0.605)
)
(stroke
(width 0)
(type solid)
)
(fill solid)
(layer "F.Paste")
(uuid "e8fb6dd3-e158-4257-9e15-870695c296b7")
)
(fp_poly
(pts
(xy 1.555 0.605) (xy 1.095 0.605) (xy 1.095 0.145) (xy 1.555 0.145)
)
(stroke
(width 0)
(type solid)
)
(fill solid)
(layer "F.Paste")
(uuid "85bec7d7-877b-406c-bad8-abaa99fcbe23")
)
(fp_line
(start -1.3 -0.9635)
(end 1.3 -0.9635)
(stroke
(width 0.127)
(type solid)
)
(layer "F.SilkS")
(uuid "daeab9ff-4ca6-4d3e-8486-53bc65dc2c70")
)
(fp_line
(start -1.3 0.9635)
(end 1.3 0.9635)
(stroke
(width 0.127)
(type solid)
)
(layer "F.SilkS")
(uuid "2a0673e1-384a-4091-aad2-73c6b1e7babd")
)
(fp_line
(start -1.325 -0.375)
(end -1.325 0.375)
(stroke
(width 0.55)
(type solid)
)
(layer "F.Mask")
(uuid "573428fa-1f2a-49c8-b999-dc918c489ec0")
)
(fp_line
(start 1.325 -0.375)
(end 1.325 0.375)
(stroke
(width 0.55)
(type solid)
)
(layer "F.Mask")
(uuid "3f0f8722-1483-4aa6-bcae-dcff8ecba59b")
)
(fp_line
(start -1.85 -1.05)
(end 1.85 -1.05)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "d6daa52c-633b-4f9e-9611-999747c83ff7")
)
(fp_line
(start -1.85 1.05)
(end -1.85 -1.05)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "b1dcf4ab-520c-4ad1-8398-87f8dd8fec29")
)
(fp_line
(start 1.85 -1.05)
(end 1.85 1.05)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "4939d836-3fdc-47f9-b885-f87382603570")
)
(fp_line
(start 1.85 1.05)
(end -1.85 1.05)
(stroke
(width 0.05)
(type solid)
)
(layer "F.CrtYd")
(uuid "e4f415ce-fdbb-4c24-b2a1-e501eae24f60")
)
(fp_line
(start -1.3 -0.8)
(end 1.3 -0.8)
(stroke
(width 0.127)
(type solid)
)
(layer "F.Fab")
(uuid "8e13a383-d573-4545-b914-42a75e606b8c")
)
(fp_line
(start -1.3 0.8)
(end -1.3 -0.8)
(stroke
(width 0.127)
(type solid)
)
(layer "F.Fab")
(uuid "1e090053-4c0c-424f-8664-54986066ef27")
)
(fp_line
(start 1.3 -0.8)
(end 1.3 0.8)
(stroke
(width 0.127)
(type solid)
)
(layer "F.Fab")
(uuid "df66859c-c21f-4048-8e27-8d86d5f411f0")
)
(fp_line
(start 1.3 0.8)
(end -1.3 0.8)
(stroke
(width 0.127)
(type solid)
)
(layer "F.Fab")
(uuid "31b618ce-8704-4bd2-948f-25d290b97ca7")
)
(pad "A1" smd rect
(at -1.325 -0.375)
(size 0.55 0.55)
(layers "F.Cu" "F.Mask")
(solder_mask_margin 0.0635)
(uuid "efeb691d-5593-439a-a931-ffe8a985f2c4")
)
(pad "A2" smd rect
(at -1.325 0.375)
(size 0.55 0.55)
(layers "F.Cu" "F.Mask")
(solder_mask_margin 0.0635)
(uuid "4ceaa3e3-568f-42dd-8491-a773d8add0f9")
)
(pad "B1" smd rect
(at 1.325 -0.375)
(size 0.55 0.55)
(layers "F.Cu" "F.Mask")
(solder_mask_margin 0.0635)
(uuid "5bdc0a88-b8c1-4c56-b2c0-8737e7eeb5ed")
)
(pad "B2" smd rect
(at 1.325 0.375)
(size 0.55 0.55)
(layers "F.Cu" "F.Mask")
(solder_mask_margin 0.0635)
(uuid "fb158033-514b-4126-84ba-b82cd884d9a2")
)
) )

View File

@ -1,4 +1,4 @@
Default True 2.0 3 Default True 2.0 3
gnd True 2.0 3 gnd True 2.0 3
power True 2.0 3 power True 2.0 3
True True True True False

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,493 @@
(kicad_pcb (version 20211014) (generator pcbnew)
(general
(thickness 0.19)
)
(paper "A4")
(layers
(0 "F.Cu" signal)
(31 "B.Cu" signal)
(32 "B.Adhes" user "B.Adhesive")
(33 "F.Adhes" user "F.Adhesive")
(34 "B.Paste" user)
(35 "F.Paste" user)
(36 "B.SilkS" user "B.Silkscreen")
(37 "F.SilkS" user "F.Silkscreen")
(38 "B.Mask" user)
(39 "F.Mask" user)
(40 "Dwgs.User" user "User.Drawings")
(41 "Cmts.User" user "User.Comments")
(42 "Eco1.User" user "User.Eco1")
(43 "Eco2.User" user "User.Eco2")
(44 "Edge.Cuts" user)
(45 "Margin" user)
(46 "B.CrtYd" user "B.Courtyard")
(47 "F.CrtYd" user "F.Courtyard")
(48 "B.Fab" user)
(49 "F.Fab" user)
(50 "User.1" user)
(51 "User.2" user)
(52 "User.3" user)
(53 "User.4" user)
(54 "User.5" user)
(55 "User.6" user)
(56 "User.7" user)
(57 "User.8" user)
(58 "User.9" user)
)
(setup
(stackup
(layer "F.SilkS" (type "Top Silk Screen") (color "White"))
(layer "F.Paste" (type "Top Solder Paste"))
(layer "F.Mask" (type "Top Solder Mask") (color "#CC66004D") (thickness 0.01))
(layer "F.Cu" (type "copper") (thickness 0.035))
(layer "dielectric 1" (type "core") (thickness 0.1) (material "Polyimide") (epsilon_r 3.2) (loss_tangent 0.004))
(layer "B.Cu" (type "copper") (thickness 0.035))
(layer "B.Mask" (type "Bottom Solder Mask") (color "#CC66004D") (thickness 0.01))
(layer "B.Paste" (type "Bottom Solder Paste"))
(layer "B.SilkS" (type "Bottom Silk Screen") (color "White"))
(copper_finish "None")
(dielectric_constraints no)
)
(pad_to_mask_clearance 0)
(pcbplotparams
(layerselection 0x00010fc_ffffffff)
(disableapertmacros false)
(usegerberextensions false)
(usegerberattributes true)
(usegerberadvancedattributes true)
(creategerberjobfile true)
(svguseinch false)
(svgprecision 6)
(excludeedgelayer true)
(plotframeref false)
(viasonmask false)
(mode 1)
(useauxorigin false)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15.000000)
(dxfpolygonmode true)
(dxfimperialunits true)
(dxfusepcbnewfont true)
(psnegative false)
(psa4output false)
(plotreference true)
(plotvalue true)
(plotinvisibletext false)
(sketchpadsonfab false)
(subtractmaskfromsilk false)
(outputformat 1)
(mirror false)
(drillshape 0)
(scaleselection 1)
(outputdirectory "OSO-SWAB-B1-00")
)
)
(net 0 "")
(net 1 "/A1_RX")
(net 2 "/A2_TX")
(net 3 "/A4_INT1")
(net 4 "GND")
(net 5 "/A3_INT2")
(net 6 "/SDA")
(net 7 "/SCL")
(net 8 "VCC")
(net 9 "/A0_UNUSED")
(footprint "OSO-MISC-21-021 Sensor Watch Motion II:FH19C9S05SH10-FFC" (layer "F.Cu")
(tedit 0) (tstamp c450d786-1278-4a96-8a62-a0d27859c515)
(at 153.2255 106.7461)
(descr "<b>FH19C-9S-0.5SH(10)-1</b><br>\n")
(property "Sheetfile" "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_sch")
(property "Sheetname" "")
(path "/4dc3cbb6-fb37-42a6-81e4-ab57e8e35700")
(fp_text reference "U$3" (at 0 0) (layer "F.SilkS") hide
(effects (font (size 1.27 1.27) (thickness 0.15)))
(tstamp 9040ae45-373a-45fc-adb3-fcfaa02764b2)
)
(fp_text value "FH19C-9S-0.5SH_10-FFC" (at 0 0) (layer "F.Fab") hide
(effects (font (size 1.27 1.27) (thickness 0.15)))
(tstamp 5af4c90c-a654-4d3a-80bb-293a78da42b9)
)
(fp_poly (pts
(xy 2.56543 3.556)
(xy -2.56537 3.556)
(xy -2.56643 0.898)
(xy 2.56437 0.898)
) (layer "B.Mask") (width 0) (fill solid) (tstamp 21283db5-1009-43c5-a3ef-4954974a3a30))
(pad "1" smd rect (at 2 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(net 8 "VCC") (pinfunction "1") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp b2e7f160-81a2-4f3a-9cac-d6cba543336c))
(pad "2" smd rect (at 1.5 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(net 4 "GND") (pinfunction "2") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp 4a8a2808-da08-4211-a839-b545ca46843d))
(pad "3" smd rect (at 1 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(net 3 "/A4_INT1") (pinfunction "3") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp 1ad63a96-1ef2-463e-9ea7-81ba46599172))
(pad "4" smd rect (at 0.5 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(net 5 "/A3_INT2") (pinfunction "4") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp 44970b45-f7b0-47cc-a114-209df0456d8f))
(pad "5" smd rect (at 0 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(net 2 "/A2_TX") (pinfunction "5") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp 16a60cfb-4140-483f-9675-22643c201dcd))
(pad "6" smd rect (at -0.5 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(net 1 "/A1_RX") (pinfunction "6") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp edf03a5b-8be1-48f8-8f16-4719d937182d))
(pad "7" smd rect (at -1 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(net 6 "/SDA") (pinfunction "7") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp b54a21f9-d0ee-47bd-8a33-6d2ccb2f1964))
(pad "8" smd rect (at -1.5 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(net 7 "/SCL") (pinfunction "8") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp 496964dd-0d25-423f-9576-ddcd7d92b9c0))
(pad "9" smd rect (at -2 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(net 9 "/A0_UNUSED") (pinfunction "9") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp 6a847b13-3d48-4df7-8dd7-d515f51aacbf))
)
(footprint "OSO-MISC-21-021 Sensor Watch Motion II:LGA12R50P4X4_200X200X70" (layer "B.Cu")
(tedit 0) (tstamp 38449293-6eb3-4fce-a813-980a83af30a5)
(at 145.3261 101.9201 180)
(property "Sheetfile" "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_sch")
(property "Sheetname" "")
(path "/f61a4c5e-e4e7-40df-976e-1899d4c8a12a")
(fp_text reference "U2" (at 0.02175 2.6201) (layer "B.SilkS")
(effects (font (size 0.406899 0.406899) (thickness 0.101101)) (justify left mirror))
(tstamp 2fb12f0c-a2cb-4979-8ff3-7261f4205a8f)
)
(fp_text value "LIS2DW12TR" (at -1.501141 -2.001519) (layer "B.Fab")
(effects (font (size 0.406974 0.406974) (thickness 0.101026)) (justify left mirror))
(tstamp 79ae9206-147d-40c8-b439-c5e1aa71ef7c)
)
(fp_line (start -1.05 -0.555) (end -1.05 -1.05) (layer "B.SilkS") (width 0.127) (tstamp 02ae2e5e-0358-428d-9b47-799126b254ae))
(fp_line (start 1.05 -1.05) (end 1.05 -0.555) (layer "B.SilkS") (width 0.127) (tstamp 29d50b3c-acc8-4899-ab05-b18d21ab3b3c))
(fp_line (start 0.555 1.05) (end 1.05 1.05) (layer "B.SilkS") (width 0.127) (tstamp 3ccbbde2-8e04-400e-bf38-caa624eba487))
(fp_line (start -1.05 0.555) (end -1.05 1.05) (layer "B.SilkS") (width 0.127) (tstamp 418272bc-4a1c-4292-abcc-02abb40a91b1))
(fp_line (start 1.05 1.05) (end 1.05 0.555) (layer "B.SilkS") (width 0.127) (tstamp 6b1bdfd4-bd5f-4649-8e19-6c646bd31d41))
(fp_line (start -1.05 1.05) (end -0.555 1.05) (layer "B.SilkS") (width 0.127) (tstamp b9246ad8-1e96-4d28-8417-be94c523f7fa))
(fp_line (start 0.555 -1.05) (end 1.05 -1.05) (layer "B.SilkS") (width 0.127) (tstamp bfa111e0-c472-4d7f-9f9f-eb6d8452f0bc))
(fp_line (start -1.05 -1.05) (end -0.555 -1.05) (layer "B.SilkS") (width 0.127) (tstamp ed58876d-2aff-4c39-a693-85bc921546dc))
(fp_circle (center -1.5 0.75) (end -1.45 0.75) (layer "B.SilkS") (width 0.1) (fill none) (tstamp eed4a4a1-5971-4468-a0eb-4adabc23ee91))
(fp_line (start -1.25 -1.25) (end -1.25 1.25) (layer "B.CrtYd") (width 0.05) (tstamp 0c936eb0-2bed-42c5-a43a-a8c2138d10f6))
(fp_line (start 1.25 1.25) (end 1.25 -1.25) (layer "B.CrtYd") (width 0.05) (tstamp b9af5acd-a7ff-4d1f-a5af-28344932ba28))
(fp_line (start -1.25 1.25) (end 1.25 1.25) (layer "B.CrtYd") (width 0.05) (tstamp df602652-97d0-42fe-8c45-0c9e9cdbab8a))
(fp_line (start 1.25 -1.25) (end -1.25 -1.25) (layer "B.CrtYd") (width 0.05) (tstamp e6004e06-b498-4cbf-a2cd-4065cdd9ac30))
(fp_line (start 1 1) (end 1 -1) (layer "B.Fab") (width 0.127) (tstamp 04b92bea-33f5-431d-87c9-1b951c5a0895))
(fp_line (start 1 -1) (end -1 -1) (layer "B.Fab") (width 0.127) (tstamp 8c6e9c84-beb1-4bc6-b6c0-93f5915e6d31))
(fp_line (start -1 -1) (end -1 1) (layer "B.Fab") (width 0.127) (tstamp c65c8660-c3aa-4e44-a24a-c0839e96ffe1))
(fp_line (start -1 1) (end 1 1) (layer "B.Fab") (width 0.127) (tstamp c9623f6f-a650-4e25-8bd7-692927ca8f9d))
(fp_circle (center -0.75 0.75) (end -0.7 0.75) (layer "B.Fab") (width 0.1) (fill none) (tstamp 06bb0748-9b94-4559-8b9c-a59aa1c8ab55))
(pad "1" smd rect (at -0.76 0.75 180) (size 0.4 0.35) (layers "B.Cu" "B.Paste" "B.Mask")
(net 7 "/SCL") (pinfunction "SCL/SPC") (pintype "input") (solder_mask_margin 0.0635) (tstamp 3db7e36b-889f-4f74-9156-b304ec17949b))
(pad "2" smd rect (at -0.76 0.25 180) (size 0.4 0.35) (layers "B.Cu" "B.Paste" "B.Mask")
(net 8 "VCC") (pinfunction "CS") (pintype "input") (solder_mask_margin 0.0635) (tstamp 358727b9-955e-4b0e-8f93-faac9b591622))
(pad "3" smd rect (at -0.76 -0.25 180) (size 0.4 0.35) (layers "B.Cu" "B.Paste" "B.Mask")
(net 8 "VCC") (pinfunction "SDO/SDA0") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp bf192f28-5a1f-4b77-af0f-de5ad059ed8c))
(pad "4" smd rect (at -0.76 -0.75 180) (size 0.4 0.35) (layers "B.Cu" "B.Paste" "B.Mask")
(net 6 "/SDA") (pinfunction "SDA/SDI/SDO") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp ec19640d-d714-4214-b3c1-ade84ffe1184))
(pad "5" smd rect (at -0.25 -0.76 180) (size 0.35 0.4) (layers "B.Cu" "B.Paste" "B.Mask")
(solder_mask_margin 0.0635) (tstamp 98922bc7-e895-48ee-8f8c-8718a306a6e9))
(pad "6" smd rect (at 0.25 -0.76 180) (size 0.35 0.4) (layers "B.Cu" "B.Paste" "B.Mask")
(net 4 "GND") (pinfunction "GND") (pintype "power_in") (solder_mask_margin 0.0635) (tstamp 1ae80af8-dac6-46a2-88cc-ea6877872716))
(pad "7" smd rect (at 0.76 -0.75 180) (size 0.4 0.35) (layers "B.Cu" "B.Paste" "B.Mask")
(net 4 "GND") (pinfunction "RES") (pintype "passive") (solder_mask_margin 0.0635) (tstamp ed3d45a3-b988-41b3-8d80-5013f0b90226))
(pad "8" smd rect (at 0.76 -0.25 180) (size 0.4 0.35) (layers "B.Cu" "B.Paste" "B.Mask")
(net 4 "GND") (pinfunction "GND") (pintype "power_in") (solder_mask_margin 0.0635) (tstamp afff67d6-aa97-4848-86fb-883a57bddf5a))
(pad "9" smd rect (at 0.76 0.25 180) (size 0.4 0.35) (layers "B.Cu" "B.Paste" "B.Mask")
(net 8 "VCC") (pinfunction "VDD") (pintype "power_in") (solder_mask_margin 0.0635) (tstamp a4de6280-2a67-4f62-9a7b-e57bae02df74))
(pad "10" smd rect (at 0.76 0.75 180) (size 0.4 0.35) (layers "B.Cu" "B.Paste" "B.Mask")
(net 8 "VCC") (pinfunction "VDD_IO") (pintype "power_in") (solder_mask_margin 0.0635) (tstamp 861bccff-e93d-4aab-b5fb-31ba7ca49f23))
(pad "11" smd rect (at 0.25 0.76 180) (size 0.35 0.4) (layers "B.Cu" "B.Paste" "B.Mask")
(net 5 "/A3_INT2") (pinfunction "INT2") (pintype "output") (solder_mask_margin 0.0635) (tstamp 8581ef53-a74b-453a-a79a-1ad12a5b60be))
(pad "12" smd rect (at -0.25 0.76 180) (size 0.35 0.4) (layers "B.Cu" "B.Paste" "B.Mask")
(net 3 "/A4_INT1") (pinfunction "INT1") (pintype "output") (solder_mask_margin 0.0635) (tstamp 651bf078-2bd8-4627-9a4d-396860ade5d0))
)
(footprint "OSO-MISC-21-021 Sensor Watch Motion II:_0603MP" (layer "B.Cu")
(tedit 0) (tstamp 52f3f076-84fe-4d87-b520-c9ec8ac43cd8)
(at 142.4051 101.3359 90)
(descr "<b>0603 MicroPitch</b>")
(property "Sheetfile" "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_sch")
(property "Sheetname" "")
(path "/dbf111d5-5941-4c1b-8fad-675981ce34f4")
(fp_text reference "C2" (at 2.0359 0.3949 180) (layer "B.SilkS")
(effects (font (size 0.388031 0.388031) (thickness 0.119969)) (justify left mirror))
(tstamp 9bd4d62d-7a56-42ce-b3f5-7a6d01978996)
)
(fp_text value "10uF" (at -0.9525 -0.9525 90) (layer "B.Fab")
(effects (font (size 0.442163 0.442163) (thickness 0.065837)) (justify left mirror))
(tstamp dd43d085-ec5b-4b38-8a0a-a3e36d67876d)
)
(fp_poly (pts
(xy -0.1999 -0.25)
(xy 0.1999 -0.25)
(xy 0.1999 0.25)
(xy -0.1999 0.25)
) (layer "B.Adhes") (width 0) (fill solid) (tstamp bf433100-c31b-441a-977d-11c8dfea5e5d))
(fp_line (start 0 0.254) (end 0 -0.254) (layer "B.SilkS") (width 0.2032) (tstamp c0b3ca6d-cbf4-4a4a-829a-bd12e3d6f696))
(fp_line (start 0.432 0.306) (end -0.432 0.306) (layer "B.Fab") (width 0.1016) (tstamp 62361dc9-703b-4d4c-9ead-64531412f98d))
(fp_line (start -0.432 -0.306) (end 0.432 -0.306) (layer "B.Fab") (width 0.1016) (tstamp f78d3c08-172c-4642-a357-be3cd6805e97))
(fp_poly (pts
(xy 0.4318 -0.4)
(xy 0.8 -0.4)
(xy 0.8 0.4)
(xy 0.4318 0.4)
) (layer "B.Fab") (width 0) (fill solid) (tstamp 430dd9e0-a77c-40c2-a434-88901e1d63f9))
(fp_poly (pts
(xy -0.8 -0.4)
(xy -0.4318 -0.4)
(xy -0.4318 0.4)
(xy -0.8 0.4)
) (layer "B.Fab") (width 0) (fill solid) (tstamp e99999ac-764f-42aa-af5f-f6b490544976))
(pad "1" smd rect (at -0.762 0 90) (size 0.8 0.8) (layers "B.Cu" "B.Paste" "B.Mask")
(net 4 "GND") (pinfunction "1") (pintype "passive") (solder_mask_margin 0.0635) (tstamp 05f47ce8-fbff-4c88-a713-924ebec9cd7f))
(pad "2" smd rect (at 0.762 0 90) (size 0.8 0.8) (layers "B.Cu" "B.Paste" "B.Mask")
(net 8 "VCC") (pinfunction "2") (pintype "passive") (solder_mask_margin 0.0635) (tstamp 3418d403-467d-4e3f-8239-51594743a971))
)
(footprint "OSO-MISC-21-021 Sensor Watch Motion II:B1,27" (layer "B.Cu")
(tedit 0) (tstamp 53397a02-3122-469f-8a6e-5586e1d48a70)
(at 144.8435 104.4601 180)
(descr "<b>TEST PAD</b>")
(property "Sheetfile" "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_sch")
(property "Sheetname" "")
(path "/1936aa8e-84b5-486e-a2d5-81ae44fd41c7")
(fp_text reference "TP3" (at -1.0668 0.3302) (layer "B.SilkS") hide
(effects (font (size 0.30226 0.30226) (thickness 0.075565)) (justify left mirror))
(tstamp a286de89-e15e-41ca-972a-92b40dbbd887)
)
(fp_text value "TPB1,27" (at -0.635 -0.762) (layer "B.Fab")
(effects (font (size 0.503794 0.503794) (thickness 0.004206)) (justify left mirror))
(tstamp 0f58640a-48e4-4c58-8582-c0d0f03f67c9)
)
(pad "TP" smd roundrect (at 0 0 180) (size 1.27 1.27) (layers "B.Cu" "B.Mask") (roundrect_rratio 0.5)
(net 2 "/A2_TX") (pinfunction "TP") (pintype "input") (solder_mask_margin 0.0635) (tstamp 37a22dff-bef4-4a54-aa97-606b44b0539d))
)
(footprint "OSO-MISC-21-021 Sensor Watch Motion II:B1,27" (layer "B.Cu")
(tedit 0) (tstamp 8492a13d-c2e7-4353-90d5-a0194203e30e)
(at 146.2659 105.0951 180)
(descr "<b>TEST PAD</b>")
(property "Sheetfile" "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_sch")
(property "Sheetname" "")
(path "/a4b4c4fb-1c78-4a88-b6d6-c95ced14e6a1")
(fp_text reference "TP4" (at -1.0668 0) (layer "B.SilkS") hide
(effects (font (size 0.30226 0.30226) (thickness 0.075565)) (justify left mirror))
(tstamp ec765bc0-6a42-4727-9951-7e00656f3a23)
)
(fp_text value "TPB1,27" (at -0.635 -0.762) (layer "B.Fab")
(effects (font (size 0.503794 0.503794) (thickness 0.004206)) (justify left mirror))
(tstamp 4d040dbd-23bd-4b9e-9905-fecd7f7a7e91)
)
(pad "TP" smd roundrect (at 0 0 180) (size 1.27 1.27) (layers "B.Cu" "B.Mask") (roundrect_rratio 0.5)
(net 1 "/A1_RX") (pinfunction "TP") (pintype "input") (solder_mask_margin 0.0635) (tstamp 964091ca-8bbe-4ac8-aaf6-8ee79894dac0))
)
(footprint "OSO-MISC-21-021 Sensor Watch Motion II:_0603MP" (layer "B.Cu")
(tedit 0) (tstamp 92f1bd8b-af09-4166-bc64-aef654c0183a)
(at 143.6243 101.3359 -90)
(descr "<b>0603 MicroPitch</b>")
(property "Sheetfile" "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_sch")
(property "Sheetname" "")
(path "/81f117f8-2e22-4d95-9843-a6438cc9b8fd")
(fp_text reference "C1" (at -2.0359 0.3243 -180) (layer "B.SilkS")
(effects (font (size 0.388031 0.388031) (thickness 0.119969)) (justify right mirror))
(tstamp 16e2b64b-b1f1-4a7b-a067-eb93b95619a3)
)
(fp_text value "0.1uF" (at -0.9525 -0.9525 -270) (layer "B.Fab")
(effects (font (size 0.442163 0.442163) (thickness 0.065837)) (justify right mirror))
(tstamp e0be7d00-bf2d-45a1-865e-97f1376ca4dd)
)
(fp_poly (pts
(xy -0.1999 -0.25)
(xy 0.1999 -0.25)
(xy 0.1999 0.25)
(xy -0.1999 0.25)
) (layer "B.Adhes") (width 0) (fill solid) (tstamp 737141da-8a5b-4eb5-a94c-2d98ea03ea2b))
(fp_line (start 0 0.254) (end 0 -0.254) (layer "B.SilkS") (width 0.2032) (tstamp 3cb29946-354e-4d69-8954-0cb5df5feb34))
(fp_line (start -0.432 -0.306) (end 0.432 -0.306) (layer "B.Fab") (width 0.1016) (tstamp 58356900-2195-4f68-aa48-0fbeed8a0258))
(fp_line (start 0.432 0.306) (end -0.432 0.306) (layer "B.Fab") (width 0.1016) (tstamp d1fc816b-12b7-4411-becf-b39225ef5a06))
(fp_poly (pts
(xy 0.4318 -0.4)
(xy 0.8 -0.4)
(xy 0.8 0.4)
(xy 0.4318 0.4)
) (layer "B.Fab") (width 0) (fill solid) (tstamp 372669d9-06c5-4965-b34a-bd1ca4aba83d))
(fp_poly (pts
(xy -0.8 -0.4)
(xy -0.4318 -0.4)
(xy -0.4318 0.4)
(xy -0.8 0.4)
) (layer "B.Fab") (width 0) (fill solid) (tstamp 3d2b07eb-66f2-4ca0-8b52-77b42ce79ea8))
(pad "1" smd rect (at -0.762 0 270) (size 0.8 0.8) (layers "B.Cu" "B.Paste" "B.Mask")
(net 8 "VCC") (pinfunction "1") (pintype "passive") (solder_mask_margin 0.0635) (tstamp f408e8b3-d3b1-4975-afa3-6edd4111b541))
(pad "2" smd rect (at 0.762 0 270) (size 0.8 0.8) (layers "B.Cu" "B.Paste" "B.Mask")
(net 4 "GND") (pinfunction "2") (pintype "passive") (solder_mask_margin 0.0635) (tstamp 5fefcc14-df85-4c73-a324-fe9d5f1fa478))
)
(footprint "OSO-MISC-21-021 Sensor Watch Motion II:B1,27" (layer "B.Cu")
(tedit 0) (tstamp d47e36a3-5090-4cf4-bf91-6b011b5fab8a)
(at 142.3035 103.3044 180)
(descr "<b>TEST PAD</b>")
(property "Sheetfile" "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_sch")
(property "Sheetname" "")
(path "/6ea9dd18-adcc-4aba-8efa-d45943bee5d6")
(fp_text reference "TP1" (at 0.4064 -1.2954 270) (layer "B.SilkS") hide
(effects (font (size 0.30226 0.30226) (thickness 0.075565)) (justify right mirror))
(tstamp 8643f50e-4c54-42e3-8f4e-9e7c565345a4)
)
(fp_text value "TPB1,27" (at -0.635 -0.762) (layer "B.Fab")
(effects (font (size 0.503794 0.503794) (thickness 0.004206)) (justify left mirror))
(tstamp 0ca4bbc5-6d45-40ae-a4b8-b0264327e89b)
)
(pad "TP" smd roundrect (at 0 0 180) (size 1.27 1.27) (layers "B.Cu" "B.Mask") (roundrect_rratio 0.5)
(net 4 "GND") (pinfunction "TP") (pintype "input") (solder_mask_margin 0.0635) (tstamp b69db92a-8dc0-4427-8729-230fe7829975))
)
(footprint "OSO-MISC-21-021 Sensor Watch Motion II:B1,27" (layer "B.Cu")
(tedit 0) (tstamp d5562657-0bb5-4045-b7d6-e98fd391f4a3)
(at 143.3195 104.4601 180)
(descr "<b>TEST PAD</b>")
(property "Sheetfile" "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_sch")
(property "Sheetname" "")
(path "/ec24969b-8391-44db-a79f-3fa50f7e4597")
(fp_text reference "TP2" (at -0.4064 0.8636) (layer "B.SilkS") hide
(effects (font (size 0.30226 0.30226) (thickness 0.075565)) (justify left mirror))
(tstamp 3eb69f50-8679-4783-841b-f3e56c6658ed)
)
(fp_text value "TPB1,27" (at -0.635 -0.762) (layer "B.Fab")
(effects (font (size 0.503794 0.503794) (thickness 0.004206)) (justify left mirror))
(tstamp de2ea6ae-7e35-4c49-af6d-0ddbb267d18e)
)
(pad "TP" smd roundrect (at 0 0 180) (size 1.27 1.27) (layers "B.Cu" "B.Mask") (roundrect_rratio 0.5)
(net 8 "VCC") (pinfunction "TP") (pintype "input") (solder_mask_margin 0.0635) (tstamp 1b224beb-e21a-4340-ac2c-31b7fa1f7f8e))
)
(gr_line (start 155.7147 105.0951) (end 147.5105 105.0951) (layer "F.SilkS") (width 0.127) (tstamp 09b40b31-a75f-48c5-94ff-dac04c6dfaf8))
(gr_line (start 147.0025 100.5231) (end 147.0025 104.5871) (layer "F.SilkS") (width 0.127) (tstamp 59eee44c-9efd-402f-80e1-02593f15460b))
(gr_arc (start 146.2405 99.7611) (mid 146.779315 99.984285) (end 147.0025 100.5231) (layer "F.SilkS") (width 0.127) (tstamp a8fc3609-a41b-4706-8233-14786995acaa))
(gr_arc (start 147.5105 105.0951) (mid 147.15129 104.94631) (end 147.0025 104.5871) (layer "F.SilkS") (width 0.127) (tstamp d204339c-8036-43d2-8aa8-268d985f6138))
(gr_line (start 144.2 105.9) (end 144.7 105.9) (layer "F.Mask") (width 0.1) (tstamp 45263c40-98a9-4f74-a47a-9075d46d8655))
(gr_line (start 150.7363 106.7461) (end 150.7363 110.0961) (layer "Edge.Cuts") (width 0.05) (tstamp 2af795e8-c9a1-416f-b2d3-8be4310d296e))
(gr_arc (start 150.8863 110.2461) (mid 150.780234 110.202166) (end 150.7363 110.0961) (layer "Edge.Cuts") (width 0.05) (tstamp 58502658-0694-45f6-94e7-5aca0f57af62))
(gr_line (start 150.1013 106.1111) (end 145.3515 106.1111) (layer "Edge.Cuts") (width 0.05) (tstamp 5e539d5b-e49f-4f77-9569-2a4261264736))
(gr_line (start 144.7165 105.4761) (end 142.1765 105.4761) (layer "Edge.Cuts") (width 0.05) (tstamp 6ac0bb29-69f1-4b1d-b893-957a8916a1bb))
(gr_arc (start 144.7165 105.4761) (mid 145.165513 105.662087) (end 145.3515 106.1111) (layer "Edge.Cuts") (width 0.05) (tstamp 6b9e5d6b-5222-465f-9b1e-93af00265572))
(gr_arc (start 150.1013 106.1111) (mid 150.550313 106.297087) (end 150.7363 106.7461) (layer "Edge.Cuts") (width 0.05) (tstamp 7f938717-4068-4e5c-92a0-7210bbdd7788))
(gr_arc (start 155.3337 99.7611) (mid 155.603108 99.872692) (end 155.7147 100.1421) (layer "Edge.Cuts") (width 0.05) (tstamp 9b7def2b-3536-42b1-8e65-4b8e423042d7))
(gr_arc (start 142.1765 105.4761) (mid 141.547882 105.215718) (end 141.2875 104.5871) (layer "Edge.Cuts") (width 0.05) (tstamp 9b9870d6-49b4-40a8-b847-cb5468c63035))
(gr_line (start 155.7147 100.1421) (end 155.7147 106.7461) (layer "Edge.Cuts") (width 0.05) (tstamp a6bc6301-abbd-4acf-a77d-1f4e4d107e79))
(gr_line (start 155.5647 110.2461) (end 150.8863 110.2461) (layer "Edge.Cuts") (width 0.05) (tstamp ae418f09-9594-49fa-ba14-c5ebf3097fc7))
(gr_line (start 142.1765 99.7611) (end 155.3337 99.7611) (layer "Edge.Cuts") (width 0.05) (tstamp b5d214ca-8d2c-4892-a145-ebcdf525979d))
(gr_arc (start 141.2875 100.6501) (mid 141.547882 100.021482) (end 142.1765 99.7611) (layer "Edge.Cuts") (width 0.05) (tstamp c4d82428-36d7-43c8-9bfb-b2beed9359df))
(gr_line (start 155.7147 106.7461) (end 155.7147 110.0961) (layer "Edge.Cuts") (width 0.05) (tstamp dc2cbabd-f370-406b-b50e-bb3846cd95ff))
(gr_arc (start 155.7147 110.0961) (mid 155.670766 110.202166) (end 155.5647 110.2461) (layer "Edge.Cuts") (width 0.05) (tstamp e1f2d86b-fcc6-43fe-bbcc-417ac237e0bd))
(gr_line (start 141.2875 104.5871) (end 141.2875 100.6501) (layer "Edge.Cuts") (width 0.05) (tstamp e960ff40-d2dc-4f31-aa56-c3592606d2b4))
(gr_text "TX" (at 144.9 103.3) (layer "B.SilkS") (tstamp 2cd2031e-bdc6-4b09-a5d6-627ebbcee21c)
(effects (font (size 0.4 0.4) (thickness 0.075)) (justify top mirror))
)
(gr_text "RX" (at 146.3 103.9) (layer "B.SilkS") (tstamp 5e112429-2dc1-437d-8792-2c6553eb0f93)
(effects (font (size 0.4 0.4) (thickness 0.075)) (justify top mirror))
)
(gr_text "GND" (at 141.8 104.4 -90) (layer "B.SilkS") (tstamp 72b454f6-3d75-4170-9db1-78a51d4c0e67)
(effects (font (size 0.4 0.4) (thickness 0.075)) (justify top mirror))
)
(gr_text "3V" (at 142.4 105) (layer "B.SilkS") (tstamp f65b8e04-fbde-4466-addc-36be3d61856b)
(effects (font (size 0.4 0.4) (thickness 0.075)) (justify top mirror))
)
(gr_text "I²C: LIS2DW12 (0x19)\nA1/A2: UART RX/TX\nA3/A4: INT2/INT1\n" (at 151.4475 102.8853) (layer "F.SilkS") (tstamp 06718050-7404-4593-8900-5367d4556e53)
(effects (font (size 0.44704 0.44704) (thickness 0.06096)) (justify top))
)
(gr_text "OSO-SWAB-B2-00\nSW Accelerometer:\nDeveloper Preview" (at 151.4475 100.0913) (layer "F.SilkS") (tstamp 1a8b05a9-bccd-4ebd-8312-af5738af914c)
(effects (font (size 0.499872 0.499872) (thickness 0.109728)) (justify top))
)
(segment (start 149.73135 105.23315) (end 149.5933 105.0951) (width 0.2032) (layer "F.Cu") (net 1) (tstamp 0bae9b38-d794-4972-b292-0160f8d78e32))
(segment (start 148.0693 105.0951) (end 149.5933 105.0951) (width 0.2032) (layer "F.Cu") (net 1) (tstamp 46023c51-300f-4e42-afb4-010034d44dac))
(segment (start 151.20785 105.23315) (end 149.73135 105.23315) (width 0.2032) (layer "F.Cu") (net 1) (tstamp 52c0f5dc-54c3-478f-9860-ccb50104bb0b))
(via (at 148.0693 105.0951) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 1) (tstamp e39680a8-e74a-46a6-a545-ac5ad0aa7f34))
(via (at 151.20785 105.23315) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 1) (tstamp fbd986c1-ed36-4026-b812-e3868a5e2ad8))
(segment (start 146.2659 105.0951) (end 148.0693 105.0951) (width 0.2032) (layer "B.Cu") (net 1) (tstamp 3a4f4d1c-4c47-490a-b760-933c1c17288d))
(segment (start 152.7255 106.7508) (end 151.20785 105.23315) (width 0.2032) (layer "B.Cu") (net 1) (tstamp 5a7537b8-356a-483f-afb1-7f541c63a2bb))
(segment (start 152.7255 108.9961) (end 152.7255 106.7508) (width 0.2032) (layer "B.Cu") (net 1) (tstamp 8ff819c8-6284-4bec-859f-4051f056dd5d))
(segment (start 150.77605 104.69975) (end 150.2316 104.1553) (width 0.2032) (layer "F.Cu") (net 2) (tstamp 64f42c98-92a4-4baa-b4b3-05e7803c7f63))
(segment (start 150.2316 104.1553) (end 146.8501 104.1553) (width 0.2032) (layer "F.Cu") (net 2) (tstamp 8306564e-5a9a-4496-9d00-07c1bd5d26b9))
(via (at 150.77605 104.69975) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 2) (tstamp 99809845-4da0-4cf1-bc62-c9244dba4647))
(via (at 146.8501 104.1553) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 2) (tstamp e676c03d-34a8-4263-88a7-40dae634a5e2))
(segment (start 144.8435 104.4601) (end 145.1483 104.1553) (width 0.2032) (layer "B.Cu") (net 2) (tstamp 37789217-9964-4e49-8f73-d44995c5fc7e))
(segment (start 151.51265 104.69975) (end 150.77605 104.69975) (width 0.2032) (layer "B.Cu") (net 2) (tstamp 5857a90c-f5a9-4b24-a98c-479fad8de298))
(segment (start 153.2255 108.9961) (end 153.2255 106.4126) (width 0.2032) (layer "B.Cu") (net 2) (tstamp cae21fe2-e35b-4a44-bcf5-92de0998264c))
(segment (start 146.8501 104.1553) (end 145.1483 104.1553) (width 0.2032) (layer "B.Cu") (net 2) (tstamp f4f1004d-dd60-429f-8283-9f030f526130))
(segment (start 153.2255 106.4126) (end 151.51265 104.69975) (width 0.2032) (layer "B.Cu") (net 2) (tstamp fbcc5301-bbbf-4c9f-b660-fd98838053a6))
(segment (start 154.2255 107.3959) (end 154.0985 107.2689) (width 0.2032) (layer "B.Cu") (net 3) (tstamp 7ebf6bd5-822c-4407-8d1a-08d43c2d0678))
(segment (start 154.0985 106.079475) (end 154.0985 107.2689) (width 0.2032) (layer "B.Cu") (net 3) (tstamp 8a4485c7-f427-446f-af34-1128a47c425d))
(segment (start 145.780813 100.7009) (end 148.719925 100.7009) (width 0.2032) (layer "B.Cu") (net 3) (tstamp b08ebf16-1549-411d-8fab-75c6d1bd76cb))
(segment (start 145.5761 100.905613) (end 145.780813 100.7009) (width 0.2032) (layer "B.Cu") (net 3) (tstamp b21f3bbb-f1c1-4554-ac75-e53c16d27653))
(segment (start 154.0985 106.079475) (end 148.719925 100.7009) (width 0.2032) (layer "B.Cu") (net 3) (tstamp e5d7d599-d647-4e18-96d9-808d318d07c5))
(segment (start 154.2255 108.9961) (end 154.2255 107.3959) (width 0.2032) (layer "B.Cu") (net 3) (tstamp e9b07d7a-e899-4ca0-9369-e0d0ebb1ab10))
(segment (start 145.5761 101.1601) (end 145.5761 100.905613) (width 0.2032) (layer "B.Cu") (net 3) (tstamp febdebfd-50f2-4c7a-baca-c05d26479bd3))
(segment (start 146.8534 103.1139) (end 146.7772 103.1901) (width 0.3048) (layer "F.Cu") (net 4) (tstamp 06fcdb8f-2704-46cd-b30d-dcb7b02e58da))
(segment (start 154.61145 106.83335) (end 150.892 103.1139) (width 0.3048) (layer "F.Cu") (net 4) (tstamp 1fa3df21-bfa8-4c91-9bb0-d56e9306f2bf))
(segment (start 150.892 103.1139) (end 146.8534 103.1139) (width 0.3048) (layer "F.Cu") (net 4) (tstamp 8f443325-1180-471c-a3e1-92e2115c8bf9))
(via (at 154.61145 106.83335) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 4) (tstamp 1b9c6030-7343-4ac8-a6d0-411c1c118821))
(via (at 146.7772 103.1901) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 4) (tstamp 7c1347fe-33ec-4ab3-b26c-77a73b0799f2))
(segment (start 142.4051 102.0979) (end 143.6243 102.0979) (width 0.3048) (layer "B.Cu") (net 4) (tstamp 07ac1533-fe72-4f36-a863-388b14a75fc5))
(segment (start 142.3035 103.3044) (end 142.4051 103.2028) (width 0.3048) (layer "B.Cu") (net 4) (tstamp 0ae5de39-695f-4104-bcec-54b83e33bae2))
(segment (start 144.5661 102.6701) (end 145.0661 102.6701) (width 0.2032) (layer "B.Cu") (net 4) (tstamp 391f44de-b221-459d-83d3-1c670da7efe7))
(segment (start 144.5661 102.1741) (end 144.5661 102.1701) (width 0.2032) (layer "B.Cu") (net 4) (tstamp 3d9119fb-5155-4df7-a94a-e63bdeca035d))
(segment (start 144.5661 102.6701) (end 144.5661 102.1741) (width 0.2032) (layer "B.Cu") (net 4) (tstamp 733bf9c6-aa1d-46f9-b366-35a9f20a2249))
(segment (start 154.7255 108.9961) (end 154.7255 106.9474) (width 0.3048) (layer "B.Cu") (net 4) (tstamp 8c334ef6-ea14-4d64-923e-8c370645175a))
(segment (start 145.28005 103.1901) (end 145.0761 102.98615) (width 0.3048) (layer "B.Cu") (net 4) (tstamp 903215f2-2ab4-494a-8eda-17fc50d3bed0))
(segment (start 145.0661 102.6701) (end 145.0761 102.6801) (width 0.2032) (layer "B.Cu") (net 4) (tstamp a077552a-b221-43cc-9938-5d4743e3399d))
(segment (start 143.6243 102.0979) (end 143.7005 102.1741) (width 0.3048) (layer "B.Cu") (net 4) (tstamp a26ae543-f877-4e55-8489-6ed81f3bfbf5))
(segment (start 145.0761 102.6801) (end 145.0761 102.98615) (width 0.3048) (layer "B.Cu") (net 4) (tstamp b424a39d-8974-4555-8ffe-a4b9f275773a))
(segment (start 142.4051 103.2028) (end 142.4051 102.0979) (width 0.3048) (layer "B.Cu") (net 4) (tstamp c2b57f9a-4cbb-409a-89ca-80ae105c720e))
(segment (start 154.7255 106.9474) (end 154.61145 106.83335) (width 0.3048) (layer "B.Cu") (net 4) (tstamp da906691-c7ce-473f-afa0-e74ab9381761))
(segment (start 145.28005 103.1901) (end 146.7772 103.1901) (width 0.3048) (layer "B.Cu") (net 4) (tstamp fcfeaa1c-0530-4b57-aa65-515779c79adc))
(segment (start 143.7005 102.1741) (end 144.5661 102.1741) (width 0.3048) (layer "B.Cu") (net 4) (tstamp fe08666b-5748-4b31-8ca5-897a10c1698b))
(segment (start 146.3675 101.7677) (end 145.4785 101.7677) (width 0.2032) (layer "F.Cu") (net 5) (tstamp 4b68e877-273f-48ca-a632-c41e8488ccf3))
(segment (start 146.5199 101.9201) (end 146.3675 101.7677) (width 0.2032) (layer "F.Cu") (net 5) (tstamp 918e83c5-b7c2-44c1-b47f-0ab29c1c70b5))
(segment (start 146.5199 101.9201) (end 147.3835 101.9201) (width 0.2032) (layer "F.Cu") (net 5) (tstamp ad51b439-098c-4e18-ae1f-9d44e116b8f7))
(via (at 147.3835 101.9201) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 5) (tstamp 434f1740-e8ea-48aa-819a-e8f0c67929c4))
(via (at 145.4785 101.7677) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 5) (tstamp 6ba8a963-4e52-4da9-b129-37389306d641))
(segment (start 145.4277 101.7677) (end 145.0761 101.4161) (width 0.2032) (layer "B.Cu") (net 5) (tstamp 10257638-748f-4792-830d-716a1c0db7ff))
(segment (start 145.0761 101.1601) (end 145.0761 101.4161) (width 0.2032) (layer "B.Cu") (net 5) (tstamp 365cff8c-a479-4d79-b362-fdfac89711c6))
(segment (start 150.2029 104.1807) (end 147.9423 101.9201) (width 0.2032) (layer "B.Cu") (net 5) (tstamp 90ce1c88-363b-45a2-919d-8827646fa909))
(segment (start 145.4785 101.7677) (end 145.4277 101.7677) (width 0.2032) (layer "B.Cu") (net 5) (tstamp be3923fc-ad03-412b-bb5d-3fdd829c673e))
(segment (start 147.9423 101.9201) (end 147.3835 101.9201) (width 0.2032) (layer "B.Cu") (net 5) (tstamp d182f9f8-e6a8-4202-9825-0d3dc441d54e))
(segment (start 153.7255 106.22845) (end 151.67775 104.1807) (width 0.2032) (layer "B.Cu") (net 5) (tstamp e273d4e7-8cf7-453c-9576-254ffc1b9a69))
(segment (start 151.67775 104.1807) (end 150.2029 104.1807) (width 0.2032) (layer "B.Cu") (net 5) (tstamp f428be95-0b2d-4a60-bceb-9e05112c3631))
(segment (start 153.7255 108.9961) (end 153.7255 106.22845) (width 0.2032) (layer "B.Cu") (net 5) (tstamp f706a32a-34b2-481f-abbc-a90a4713812a))
(segment (start 152.2255 106.978) (end 147.9176 102.6701) (width 0.2032) (layer "B.Cu") (net 6) (tstamp 3eea729f-d81e-4602-924f-df00dc9fa656))
(segment (start 152.2255 108.9961) (end 152.2255 106.978) (width 0.2032) (layer "B.Cu") (net 6) (tstamp 5e249130-5691-4735-95bd-6a35e7230671))
(segment (start 147.9176 102.6701) (end 146.0861 102.6701) (width 0.2032) (layer "B.Cu") (net 6) (tstamp 6a7b5cae-5706-4ae7-90cd-85b744bf9818))
(segment (start 151.71585 107.21435) (end 151.71585 104.90625) (width 0.2032) (layer "F.Cu") (net 7) (tstamp 5cd87d85-df22-4c10-9e4e-723432382705))
(segment (start 151.71585 104.90625) (end 150.4823 103.6727) (width 0.2032) (layer "F.Cu") (net 7) (tstamp 9e5e5b3d-da91-43f7-a8e1-1798b10f31c4))
(via (at 150.4823 103.6727) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 7) (tstamp a9964fed-7444-442b-82cc-b749621619ca))
(via (at 151.71585 107.21435) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 7) (tstamp c2434c2f-d941-4c49-8079-f193e7b68270))
(segment (start 151.7255 108.9961) (end 151.7255 107.224) (width 0.2032) (layer "B.Cu") (net 7) (tstamp 8ae15dfd-83d6-4de0-b635-cf161fade6d8))
(segment (start 147.9797 101.1701) (end 146.0861 101.1701) (width 0.2032) (layer "B.Cu") (net 7) (tstamp 9502ea06-b6dc-4669-9f41-6d0a72043887))
(segment (start 151.7255 107.224) (end 151.71585 107.21435) (width 0.2032) (layer "B.Cu") (net 7) (tstamp a3a7ea90-729d-4167-a73a-5b7df6440f1d))
(segment (start 150.4823 103.6727) (end 147.9797 101.1701) (width 0.2032) (layer "B.Cu") (net 7) (tstamp d8832711-350c-4ec6-a360-bb9e4c599453))
(segment (start 143.0147 101.3423) (end 143.5989 101.9265) (width 0.3048) (layer "F.Cu") (net 8) (tstamp 11b50766-7a82-4010-9094-79ac57ff803a))
(segment (start 143.5989 101.9265) (end 143.5989 103.1901) (width 0.3048) (layer "F.Cu") (net 8) (tstamp a307a9c7-a8ef-452f-a518-570df34d3971))
(via (at 143.0147 101.3423) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 8) (tstamp 4555beef-afd0-4a07-a374-49fd7a56b2b2))
(via (at 143.5989 103.1901) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 8) (tstamp e4527f25-252e-4b65-948d-69c2f9252889))
(segment (start 143.6243 100.5739) (end 144.2593 100.5739) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 0255fcc1-949a-4f3e-9303-3ea178273985))
(segment (start 144.5661 100.86405) (end 144.557775 100.872375) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 0430d002-15bd-4a42-b0f9-df13695fcd41))
(segment (start 146.0861 102.1701) (end 146.0861 101.6701) (width 0.1524) (layer "B.Cu") (net 8) (tstamp 311f6061-4902-4cbc-adea-c404d4acbf4f))
(segment (start 144.2593 100.5739) (end 144.557775 100.872375) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 3cb471ac-4528-43b2-8cc2-c3ed9505edbb))
(segment (start 142.4051 100.5739) (end 142.4051 100.7327) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 4a55c467-28b2-400a-bb25-411d525e0c41))
(segment (start 146.0861 102.1701) (end 145.7586 102.1701) (width 0.1524) (layer "B.Cu") (net 8) (tstamp 57534e6f-4afa-4ff4-8fb8-efd13eca414d))
(segment (start 144.5661 101.1701) (end 144.5661 100.86405) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 5db439c0-d3e7-4734-b78a-7d0e5bb5ff74))
(segment (start 144.5661 101.6701) (end 144.5661 101.1701) (width 0.2032) (layer "B.Cu") (net 8) (tstamp 7ebfbee5-a62a-4d13-aa04-b904378145cd))
(segment (start 142.4051 100.5739) (end 143.6243 100.5739) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 81233f61-eb56-41e1-aff7-bb28c6de0f43))
(segment (start 145.13565 100.2945) (end 144.5661 100.86405) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 88b53bf2-a9d1-436f-9e73-361984ffadfd))
(segment (start 145.6784 102.2503) (end 145.2278 102.2503) (width 0.1524) (layer "B.Cu") (net 8) (tstamp 90b3147c-c625-4f91-99f2-b3e2525c4b58))
(segment (start 155.2255 108.9961) (end 155.2255 106.631737) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 99b20163-86e6-4035-8ae8-2076cd6324d5))
(segment (start 155.2255 106.631737) (end 148.888263 100.2945) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 9a895394-1736-428b-8941-d281f03cb5c1))
(segment (start 144.5661 101.6701) (end 144.764388 101.6701) (width 0.1524) (layer "B.Cu") (net 8) (tstamp a3e3db84-e7c7-4654-839f-76d04cc0c896))
(segment (start 144.9947 102.0172) (end 144.9947 101.900413) (width 0.1524) (layer "B.Cu") (net 8) (tstamp a4d1b77a-1e80-4648-9ae9-519383b53778))
(segment (start 142.4051 100.7327) (end 143.0147 101.3423) (width 0.3048) (layer "B.Cu") (net 8) (tstamp a9338404-2317-4d4a-8561-2fc099b9516a))
(segment (start 143.5989 104.1807) (end 143.5989 103.1901) (width 0.3048) (layer "B.Cu") (net 8) (tstamp bece63a7-3dcb-4c76-846e-10153f6e0bc1))
(segment (start 144.764388 101.6701) (end 144.9947 101.900413) (width 0.1524) (layer "B.Cu") (net 8) (tstamp beeed655-48b9-475b-8276-e75e9ceba0c9))
(segment (start 143.3195 104.4601) (end 143.5989 104.1807) (width 0.3048) (layer "B.Cu") (net 8) (tstamp e5fe01a0-2862-474d-bb27-d55a88f6ecb0))
(segment (start 145.7586 102.1701) (end 145.6784 102.2503) (width 0.1524) (layer "B.Cu") (net 8) (tstamp e87db6bb-555e-4674-ad0d-38786a05b91b))
(segment (start 145.2278 102.2503) (end 144.9947 102.0172) (width 0.1524) (layer "B.Cu") (net 8) (tstamp ec19ba45-9ebe-4ac5-aa32-4f3cb5d1c05c))
(segment (start 148.888263 100.2945) (end 145.13565 100.2945) (width 0.3048) (layer "B.Cu") (net 8) (tstamp efab3462-3997-4e87-83fd-171e8d73a0ec))
)

View File

@ -1,12 +1,14 @@
{ {
"board": { "board": {
"active_layer": 0, "active_layer": 39,
"active_layer_preset": "", "active_layer_preset": "All Layers",
"auto_track_width": true, "auto_track_width": true,
"hidden_netclasses": [],
"hidden_nets": [], "hidden_nets": [],
"high_contrast_mode": 0, "high_contrast_mode": 0,
"net_color_mode": 1, "net_color_mode": 1,
"opacity": { "opacity": {
"images": 0.6,
"pads": 1.0, "pads": 1.0,
"tracks": 1.0, "tracks": 1.0,
"vias": 1.0, "vias": 1.0,
@ -37,6 +39,7 @@
9, 9,
10, 10,
11, 11,
12,
13, 13,
14, 14,
15, 15,
@ -61,11 +64,11 @@
35, 35,
36 36
], ],
"visible_layers": "00290aa_80000001", "visible_layers": "fffffff_ffffffff",
"zone_display_mode": 0 "zone_display_mode": 0
}, },
"meta": { "meta": {
"filename": "OSO-SWAT-A2-00.kicad_prl", "filename": "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_prl",
"version": 3 "version": 3
}, },
"project": { "project": {

View File

@ -1,5 +1,6 @@
{ {
"board": { "board": {
"3dviewports": [],
"design_settings": { "design_settings": {
"defaults": { "defaults": {
"board_outline_line_width": 0.049999999999999996, "board_outline_line_width": 0.049999999999999996,
@ -33,9 +34,9 @@
"other_text_thickness": 0.15, "other_text_thickness": 0.15,
"other_text_upright": false, "other_text_upright": false,
"pads": { "pads": {
"drill": 1.55, "drill": 0.762,
"height": 1.7, "height": 1.524,
"width": 1.7 "width": 1.524
}, },
"silk_line_width": 0.12, "silk_line_width": 0.12,
"silk_text_italic": false, "silk_text_italic": false,
@ -45,7 +46,7 @@
"silk_text_upright": false, "silk_text_upright": false,
"zones": { "zones": {
"45_degree_only": false, "45_degree_only": false,
"min_clearance": 0.0 "min_clearance": 0.508
} }
}, },
"diff_pair_dimensions": [ "diff_pair_dimensions": [
@ -56,8 +57,17 @@
} }
], ],
"drc_exclusions": [ "drc_exclusions": [
"courtyards_overlap|27410001|34298001|4202cb78-a835-47bd-ae6b-30c40cab40be|4663d5d0-a612-4a6e-857e-51a49dee1b18", "copper_edge_clearance|151052000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|6a847b13-3d48-4df7-8dd7-d515f51aacbf",
"courtyards_overlap|30363317|39802086|4202cb78-a835-47bd-ae6b-30c40cab40be|b3d08afa-f296-4e3b-8825-73b6331d35bf" "copper_edge_clearance|151552000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|496964dd-0d25-423f-9576-ddcd7d92b9c0",
"copper_edge_clearance|152052000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|b54a21f9-d0ee-47bd-8a33-6d2ccb2f1964",
"copper_edge_clearance|152552000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|edf03a5b-8be1-48f8-8f16-4719d937182d",
"copper_edge_clearance|153052000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|16a60cfb-4140-483f-9675-22643c201dcd",
"copper_edge_clearance|153552000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|44970b45-f7b0-47cc-a114-209df0456d8f",
"copper_edge_clearance|154052000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|1ad63a96-1ef2-463e-9ea7-81ba46599172",
"copper_edge_clearance|154552000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|4a8a2808-da08-4211-a839-b545ca46843d",
"copper_edge_clearance|155052000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|b2e7f160-81a2-4f3a-9cac-d6cba543336c",
"silk_over_copper|146240500|100142100|b5d214ca-8d2c-4892-a145-ebcdf525979d|a8fc3609-a41b-4706-8233-14786995acaa",
"silk_over_copper|155714700|105095100|a6bc6301-abbd-4acf-a77d-1f4e4d107e79|09b40b31-a75f-48c5-94ff-dac04c6dfaf8"
], ],
"meta": { "meta": {
"filename": "board_design_settings.json", "filename": "board_design_settings.json",
@ -89,8 +99,8 @@
"padstack": "error", "padstack": "error",
"pth_inside_courtyard": "ignore", "pth_inside_courtyard": "ignore",
"shorting_items": "error", "shorting_items": "error",
"silk_over_copper": "ignore", "silk_over_copper": "warning",
"silk_overlap": "ignore", "silk_overlap": "warning",
"skew_out_of_range": "error", "skew_out_of_range": "error",
"through_hole_pad_without_hole": "error", "through_hole_pad_without_hole": "error",
"too_many_vias": "error", "too_many_vias": "error",
@ -107,23 +117,66 @@
"allow_blind_buried_vias": false, "allow_blind_buried_vias": false,
"allow_microvias": false, "allow_microvias": false,
"max_error": 0.005, "max_error": 0.005,
"min_clearance": 0.15239999999999998, "min_clearance": 0.127,
"min_copper_edge_clearance": 0.381, "min_connection": 0.0,
"min_hole_clearance": 0.15239999999999998, "min_copper_edge_clearance": 0.024999999999999998,
"min_hole_to_hole": 0.15239999999999998, "min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.19999999999999998, "min_microvia_diameter": 0.19999999999999998,
"min_microvia_drill": 0.09999999999999999, "min_microvia_drill": 0.09999999999999999,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0, "min_silk_clearance": 0.0,
"min_text_height": 0.7999999999999999,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.254, "min_through_hole_diameter": 0.254,
"min_track_width": 0.15239999999999998, "min_track_width": 0.127,
"min_via_annular_width": 0.127, "min_via_annular_width": 0.049999999999999996,
"min_via_diameter": 0.508, "min_via_diameter": 0.39999999999999997,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true "use_height_for_length_calcs": true
}, },
"teardrop_options": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 5,
"td_on_pad_in_zone": false,
"td_onpadsmd": true,
"td_onroundshapesonly": false,
"td_ontrackend": false,
"td_onviapad": true
}
],
"teardrop_parameters": [
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [ "track_widths": [
0.0, 0.0
0.25,
0.3048
], ],
"via_dimensions": [ "via_dimensions": [
{ {
@ -134,7 +187,8 @@
"zones_allow_external_fillets": false, "zones_allow_external_fillets": false,
"zones_use_no_outline": true "zones_use_no_outline": true
}, },
"layer_presets": [] "layer_presets": [],
"viewports": []
}, },
"boards": [], "boards": [],
"cvpcb": { "cvpcb": {
@ -350,13 +404,13 @@
"pinned_symbol_libs": [] "pinned_symbol_libs": []
}, },
"meta": { "meta": {
"filename": "OSO-SWAT-A2-00.kicad_pro", "filename": "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_pro",
"version": 1 "version": 1
}, },
"net_settings": { "net_settings": {
"classes": [ "classes": [
{ {
"bus_width": 12.0, "bus_width": 12,
"clearance": 0.127, "clearance": 0.127,
"diff_pair_gap": 0.25, "diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25, "diff_pair_via_gap": 0.25,
@ -367,13 +421,13 @@
"name": "Default", "name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)", "pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)", "schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.1524, "track_width": 0.127,
"via_diameter": 0.508, "via_diameter": 0.8,
"via_drill": 0.254, "via_drill": 0.4,
"wire_width": 6.0 "wire_width": 6
}, },
{ {
"bus_width": 12.0, "bus_width": 12,
"clearance": 0.127, "clearance": 0.127,
"diff_pair_gap": 0.25, "diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25, "diff_pair_via_gap": 0.25,
@ -382,18 +436,15 @@
"microvia_diameter": 0.3, "microvia_diameter": 0.3,
"microvia_drill": 0.1, "microvia_drill": 0.1,
"name": "gnd", "name": "gnd",
"nets": [
"GND"
],
"pcb_color": "rgba(0, 0, 0, 0.000)", "pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)", "schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.254, "track_width": 0.2032,
"via_diameter": 0.5588, "via_diameter": 0.8,
"via_drill": 0.3048, "via_drill": 0.4,
"wire_width": 6.0 "wire_width": 6
}, },
{ {
"bus_width": 12.0, "bus_width": 12,
"clearance": 0.127, "clearance": 0.127,
"diff_pair_gap": 0.25, "diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25, "diff_pair_via_gap": 0.25,
@ -402,19 +453,20 @@
"microvia_diameter": 0.3, "microvia_diameter": 0.3,
"microvia_drill": 0.1, "microvia_drill": 0.1,
"name": "power", "name": "power",
"nets": [],
"pcb_color": "rgba(0, 0, 0, 0.000)", "pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)", "schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.254, "track_width": 0.2032,
"via_diameter": 0.5588, "via_diameter": 0.8,
"via_drill": 0.3048, "via_drill": 0.4,
"wire_width": 6.0 "wire_width": 6
} }
], ],
"meta": { "meta": {
"version": 2 "version": 3
}, },
"net_colors": null "net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
}, },
"pcbnew": { "pcbnew": {
"last_paths": { "last_paths": {
@ -422,7 +474,7 @@
"idf": "", "idf": "",
"netlist": "", "netlist": "",
"specctra_dsn": "", "specctra_dsn": "",
"step": "OSO-SWAT-A1-05.step", "step": "",
"vrml": "" "vrml": ""
}, },
"page_layout_descr_file": "" "page_layout_descr_file": ""
@ -467,7 +519,7 @@
}, },
"sheets": [ "sheets": [
[ [
"c58960d9-4cac-4036-ad2e-1aef26946dae", "677683ff-9f49-4367-8af2-04a801740db6",
"" ""
] ]
], ],

View File

@ -4,12 +4,12 @@
(descr "<b>TEST PAD</b>") (descr "<b>TEST PAD</b>")
(fp_text reference "REF**" (at -0.635 -1.016) (layer "F.SilkS") (fp_text reference "REF**" (at -0.635 -1.016) (layer "F.SilkS")
(effects (font (size 1.143 1.143) (thickness 0.127)) (justify left bottom)) (effects (font (size 1.143 1.143) (thickness 0.127)) (justify left bottom))
(tstamp a3fd9ddf-56a3-4003-bf5a-7cfb2bcd0ad1) (tstamp 66611b0e-db6e-4021-9427-c32ecc053115)
) )
(fp_text value ">VALUE" (at -0.635 0.762) (layer "F.Fab") (fp_text value ">VALUE" (at -0.635 0.762) (layer "F.Fab")
(effects (font (size 0.023368 0.023368) (thickness 0.002032)) (justify left bottom)) (effects (font (size 0.023368 0.023368) (thickness 0.002032)) (justify left bottom))
(tstamp ed020d6d-3b1a-4350-98e9-0a18adf6c79e) (tstamp 4ac60ae9-6f70-4bce-8da5-6eac3cd3a3ad)
) )
(pad "TP" smd roundrect (at 0 0) (size 1.27 1.27) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.5) (pad "TP" smd roundrect (at 0 0) (size 1.27 1.27) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.5)
(solder_mask_margin 0.0508) (tstamp 6b12b702-ea5e-4072-9104-c6fd53bf1de5)) (solder_mask_margin 0.0635) (tstamp b8f939e4-9cdb-4994-993d-3ae41bb30177))
) )

View File

@ -0,0 +1,42 @@
(footprint "FH19C9S05SH10-FFC" (version 20211014) (generator pcbnew)
(layer "F.Cu")
(tedit 0)
(descr "<b>FH19C-9S-0.5SH(10)-1</b><br>\n")
(fp_text reference "REF**" (at 0 0) (layer "F.SilkS")
(effects (font (size 1.27 1.27) (thickness 0.15)))
(tstamp 2891e198-646d-4022-ba59-cc504d2b7d16)
)
(fp_text value "" (at 0 0) (layer "F.Fab")
(effects (font (size 1.27 1.27) (thickness 0.15)))
(tstamp cb35e01a-ade6-4e76-8860-9691b680c03d)
)
(fp_poly (pts
(xy 2.56543 3.556)
(xy -2.56537 3.556)
(xy -2.56643 0.898)
(xy 2.56437 0.898)
) (layer "B.Mask") (width 0) (fill solid) (tstamp 2b3c01e4-c750-4f56-8673-86cd61068635))
(fp_line (start -2.4892 0) (end -2.4892 3.35) (layer "Edge.Cuts") (width 0.05) (tstamp 593436ec-2ee2-4f89-a482-ad9d710ea79d))
(fp_line (start 2.4892 0) (end 2.4892 3.35) (layer "Edge.Cuts") (width 0.05) (tstamp 757ab00f-2565-4955-8ca5-247d2ab4a459))
(fp_line (start -2.3392 3.5) (end 2.3392 3.5) (layer "Edge.Cuts") (width 0.05) (tstamp be6a643e-0f3d-406b-82ce-bc5dd821e563))
(fp_arc (start -2.3392 3.5) (mid -2.445266 3.456066) (end -2.4892 3.35) (layer "Edge.Cuts") (width 0.05) (tstamp eeb7dd92-dd48-45ec-b09f-f99710ea3b88))
(fp_arc (start 2.4892 3.35) (mid 2.445266 3.456066) (end 2.3392 3.5) (layer "Edge.Cuts") (width 0.05) (tstamp eecbbc5b-a539-4c7c-8789-2616156ab52b))
(pad "1" smd rect (at 2 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(solder_mask_margin 0.0635) (tstamp 2b902acc-4a08-4047-ad60-bbf1eeaab6ab))
(pad "2" smd rect (at 1.5 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(solder_mask_margin 0.0635) (tstamp d8e62cc7-7124-4f2e-889d-3746b3d86a64))
(pad "3" smd rect (at 1 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(solder_mask_margin 0.0635) (tstamp f999fa66-5f95-4c6d-9b5b-e8836c9dc89d))
(pad "4" smd rect (at 0.5 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(solder_mask_margin 0.0635) (tstamp ab03249d-815c-4b6a-af6f-cad8e8308166))
(pad "5" smd rect (at 0 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(solder_mask_margin 0.0635) (tstamp badef670-3ddf-4b49-83a7-fe6eb4b07cad))
(pad "6" smd rect (at -0.5 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(solder_mask_margin 0.0635) (tstamp 102be87f-c42b-4e09-b634-d2882c35f5ae))
(pad "7" smd rect (at -1 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(solder_mask_margin 0.0635) (tstamp 092cbced-a774-4b39-a3d1-c6d31915fb62))
(pad "8" smd rect (at -1.5 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(solder_mask_margin 0.0635) (tstamp 1b3a5bc0-e9f9-47de-b2f0-4672614e470a))
(pad "9" smd rect (at -2 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
(solder_mask_margin 0.0635) (tstamp b0acd8bd-47e9-4935-a884-665ee78af58f))
)

View File

@ -0,0 +1,54 @@
(footprint "LGA12R50P4X4_200X200X70" (version 20211014) (generator pcbnew)
(layer "F.Cu")
(tedit 0)
(fp_text reference "REF**" (at -1.50225 -1.50225) (layer "F.SilkS")
(effects (font (size 0.561674 0.561674) (thickness 0.048841)) (justify left bottom))
(tstamp a841a941-dbd4-406e-9e83-16f988577ed7)
)
(fp_text value ">VALUE" (at -1.50114 2.001518) (layer "F.Fab")
(effects (font (size 0.561257 0.561257) (thickness 0.048805)) (justify left bottom))
(tstamp 0a9955a0-6068-4d38-b05e-1ba1984749d1)
)
(fp_line (start 0.555 -1.05) (end 1.05 -1.05) (layer "F.SilkS") (width 0.127) (tstamp 1ec22d83-cad4-4dee-9f07-ac20256d34bb))
(fp_line (start 0.555 1.05) (end 1.05 1.05) (layer "F.SilkS") (width 0.127) (tstamp 2ab2f09e-0c2e-40e1-8cad-8618b2964772))
(fp_line (start 1.05 1.05) (end 1.05 0.555) (layer "F.SilkS") (width 0.127) (tstamp 691adb00-c7cf-42cd-b3b3-3cb402f71864))
(fp_line (start -1.05 -0.555) (end -1.05 -1.05) (layer "F.SilkS") (width 0.127) (tstamp 693e0e56-7ca2-4e3c-943f-7d93d816dd88))
(fp_line (start -1.05 -1.05) (end -0.555 -1.05) (layer "F.SilkS") (width 0.127) (tstamp 6dd9b638-7d83-48ad-9c0b-d0a3b14ff194))
(fp_line (start 1.05 -1.05) (end 1.05 -0.555) (layer "F.SilkS") (width 0.127) (tstamp cfdfed39-3585-4f3d-af2c-df735f17f29f))
(fp_line (start -1.05 0.555) (end -1.05 1.05) (layer "F.SilkS") (width 0.127) (tstamp d5677caf-5ab2-407c-a936-e4226c17744c))
(fp_line (start -1.05 1.05) (end -0.555 1.05) (layer "F.SilkS") (width 0.127) (tstamp f1e92131-893d-407c-85ed-04a3d79dc8bc))
(fp_circle (center -1.5 -0.75) (end -1.45 -0.75) (layer "F.SilkS") (width 0.1) (fill none) (tstamp 6e7bb868-6df4-43cc-ae2f-1d2b706e4c2e))
(fp_line (start 1.25 -1.25) (end 1.25 1.25) (layer "F.CrtYd") (width 0.05) (tstamp 47f30fc1-7ed7-4645-8836-972c17bb4fe5))
(fp_line (start -1.25 1.25) (end -1.25 -1.25) (layer "F.CrtYd") (width 0.05) (tstamp 4c1ed0d1-05e7-40bc-b7c8-845b3478b8d5))
(fp_line (start 1.25 1.25) (end -1.25 1.25) (layer "F.CrtYd") (width 0.05) (tstamp 593de62e-58e0-4efc-8ba1-b886cd08985c))
(fp_line (start -1.25 -1.25) (end 1.25 -1.25) (layer "F.CrtYd") (width 0.05) (tstamp 75cee19c-8883-4eb2-bb54-93d3242790c4))
(fp_line (start 1 -1) (end 1 1) (layer "F.Fab") (width 0.127) (tstamp 0e31b15a-0bed-4c02-a998-422f761d6f21))
(fp_line (start 1 1) (end -1 1) (layer "F.Fab") (width 0.127) (tstamp 25e98454-7b51-4256-99ce-d71274a09ddd))
(fp_line (start -1 1) (end -1 -1) (layer "F.Fab") (width 0.127) (tstamp 9455eb49-e46c-4cc1-931f-245a8cf4484a))
(fp_line (start -1 -1) (end 1 -1) (layer "F.Fab") (width 0.127) (tstamp 96a4c6a7-70a8-4dc8-851d-90638be2de9c))
(fp_circle (center -0.75 -0.75) (end -0.7 -0.75) (layer "F.Fab") (width 0.1) (fill none) (tstamp 3ca22245-934d-45a7-84cc-c2d904109998))
(pad "1" smd rect (at -0.76 -0.75) (size 0.4 0.35) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.0635) (tstamp 9b76f23f-a839-4e38-ab2f-47fe312a5451))
(pad "2" smd rect (at -0.76 -0.25) (size 0.4 0.35) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.0635) (tstamp 084df340-c833-4415-b5ea-ddf2da7aeab1))
(pad "3" smd rect (at -0.76 0.25) (size 0.4 0.35) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.0635) (tstamp 56e68fb3-7611-43b1-852f-2d9d710a10d4))
(pad "4" smd rect (at -0.76 0.75) (size 0.4 0.35) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.0635) (tstamp e1e62aad-3a36-476f-b704-a4b4240137d2))
(pad "5" smd rect (at -0.25 0.76) (size 0.35 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.0635) (tstamp cd41e53a-0c76-4c5f-800c-753fe980f311))
(pad "6" smd rect (at 0.25 0.76) (size 0.35 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.0635) (tstamp 8d08899e-801e-464e-a053-80ece5d40773))
(pad "7" smd rect (at 0.76 0.75) (size 0.4 0.35) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.0635) (tstamp 124b0827-61a2-4ca5-9e46-df5984bdff25))
(pad "8" smd rect (at 0.76 0.25) (size 0.4 0.35) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.0635) (tstamp 4a93be6c-d59b-4ab5-b017-af8dd5c58e3a))
(pad "9" smd rect (at 0.76 -0.25) (size 0.4 0.35) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.0635) (tstamp 0baa1d51-a8bc-4483-b400-80a9ff172160))
(pad "10" smd rect (at 0.76 -0.75) (size 0.4 0.35) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.0635) (tstamp 09311f64-fad0-424e-8eae-c2a2bd2cac0a))
(pad "11" smd rect (at 0.25 -0.76) (size 0.35 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.0635) (tstamp 41f01f34-006e-48b6-a52b-6948fb66b57f))
(pad "12" smd rect (at -0.25 -0.76) (size 0.35 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.0635) (tstamp f87a7419-f9cb-4939-a776-f1a6ae037a85))
)

View File

@ -0,0 +1,38 @@
(footprint "_0603MP" (version 20211014) (generator pcbnew)
(layer "F.Cu")
(tedit 0)
(descr "<b>0603 MicroPitch</b>")
(fp_text reference "REF**" (at -0.9525 -0.635) (layer "F.SilkS")
(effects (font (size 0.666496 0.666496) (thickness 0.146304)) (justify left bottom))
(tstamp 08ea7653-fcf2-4de6-bc2d-71c2559866c5)
)
(fp_text value ">VALUE" (at -0.9525 0.9525) (layer "F.Fab")
(effects (font (size 0.36576 0.36576) (thickness 0.04064)) (justify left bottom))
(tstamp c6f30152-8d59-4f78-bba8-2d4dbdc2be46)
)
(fp_poly (pts
(xy -0.1999 0.25)
(xy 0.1999 0.25)
(xy 0.1999 -0.25)
(xy -0.1999 -0.25)
) (layer "F.Adhes") (width 0) (fill solid) (tstamp e4d4e5f7-6687-4207-9525-f44fa6947d43))
(fp_line (start 0 -0.254) (end 0 0.254) (layer "F.SilkS") (width 0.2032) (tstamp 8494f3d6-e422-4ed3-afab-572a517aba7f))
(fp_line (start -0.432 0.306) (end 0.432 0.306) (layer "F.Fab") (width 0.1016) (tstamp 3a69b14b-04ad-4165-ab2f-4ad1c270b812))
(fp_line (start 0.432 -0.306) (end -0.432 -0.306) (layer "F.Fab") (width 0.1016) (tstamp 590cef58-c4cf-4e7a-ac89-6a7a7801e6c8))
(fp_poly (pts
(xy 0.4318 0.4)
(xy 0.8 0.4)
(xy 0.8 -0.4)
(xy 0.4318 -0.4)
) (layer "F.Fab") (width 0) (fill solid) (tstamp 2630aa28-dcfc-4f76-bf4f-eac1115a0083))
(fp_poly (pts
(xy -0.8 0.4)
(xy -0.4318 0.4)
(xy -0.4318 -0.4)
(xy -0.8 -0.4)
) (layer "F.Fab") (width 0) (fill solid) (tstamp 6d4a5dc7-5dd7-4742-b5e4-d512d0913c9b))
(pad "1" smd rect (at -0.762 0) (size 0.8 0.8) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.0635) (tstamp 5ce1ec75-6b24-4360-8dcb-9033548b2be2))
(pad "2" smd rect (at 0.762 0) (size 0.8 0.8) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.0635) (tstamp 77d09e3e-6f43-44cb-8866-ea235200f8dc))
)

View File

@ -0,0 +1,3 @@
(fp_lib_table
(lib (name "OSO-MISC-21-021 Sensor Watch Motion II")(type "KiCad")(uri "$(KIPRJMOD)/OSO-SWAB-B1-00 Sensor Watch Accelerometer.pretty")(options "")(descr ""))
)

View File

@ -0,0 +1,3 @@
(sym_lib_table
(lib (name "OSO-MISC-21-021 Sensor Watch Motion II-eagle-import")(type "KiCad")(uri "${KIPRJMOD}/OSO-MISC-21-021 Sensor Watch Motion II-eagle-import.kicad_sym")(options "")(descr ""))
)

View File

@ -0,0 +1,2 @@
OPT3001DNPT/*

Some files were not shown because too many files have changed in this diff Show More