Skip to content

Commit

Permalink
rough outline
Browse files Browse the repository at this point in the history
  • Loading branch information
Nick K authored and Nick K committed Feb 24, 2024
1 parent 39041d6 commit 90c4ce9
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 12 deletions.
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
# chess-clock

Chess Clock using open source smart knob with haptic feedback.

## Features
* Capacitive touch buttons for each player
* Knob with haptic feedback to select game mode/set time
* Led ring all around clock to indicate turn and look cool

## Includes atopile Packages
* RP2040
* Smart Knob (https://github.com/scottbez1/smartknob)
## Includes atopile Smart Knob Package!
### Smart Knob (https://github.com/scottbez1/smartknob)
This atopile package makes it easy to incorporate the smart knob into any project. The ato package comes with the necessary smart knob circuitry configured and laid out, just add your junk around it!

![CAD GIF](CAD.gif)
3 changes: 2 additions & 1 deletion ato.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ builds:
default:
entry: elec/src/chess-clock.ato:ChessClock
dependencies:
- generics
- generics
- rp2040^v4.0.1
71 changes: 65 additions & 6 deletions elec/layout/base/view_base.kicad_pro
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"board_outline_line_width": 0.049999999999999996,
Expand Down Expand Up @@ -68,20 +69,26 @@
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"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_type_mismatch": "error",
"hole_clearance": "error",
"hole_near_hole": "error",
"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",
Expand All @@ -91,9 +98,14 @@
"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": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_dangling": "warning",
Expand All @@ -102,7 +114,6 @@
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zone_has_empty_net": "error",
"zones_intersect": "error"
},
"rule_severitieslegacy_courtyards_overlap": true,
Expand All @@ -112,18 +123,63 @@
"allow_microvias": false,
"max_error": 0.005,
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.0,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.19999999999999998,
"min_microvia_drill": 0.09999999999999999,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.7999999999999999,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.127,
"min_via_annular_width": 0.049999999999999996,
"min_via_diameter": 0.39999999999999997,
"solder_mask_to_copper_clearance": 0.0,
"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": [
0.0,
0.25,
Expand All @@ -139,7 +195,8 @@
"zones_allow_external_fillets": false,
"zones_use_no_outline": true
},
"layer_presets": []
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
Expand Down Expand Up @@ -361,7 +418,7 @@
"net_settings": {
"classes": [
{
"bus_width": 12.0,
"bus_width": 12,
"clearance": 0.15,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
Expand All @@ -375,13 +432,15 @@
"track_width": 0.15,
"via_diameter": 0.8,
"via_drill": 0.4,
"wire_width": 6.0
"wire_width": 6
}
],
"meta": {
"version": 2
"version": 3
},
"net_colors": null
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
Expand Down
18 changes: 17 additions & 1 deletion elec/src/chess-clock.ato
Original file line number Diff line number Diff line change
@@ -1,2 +1,18 @@
import SK6805EC20 from "sk6805-ec20/elec/src/sk6805-ec20.ato"
import SmartKnob from "smart-knob/elec/src/smart-knob.ato"
import Capacitor from "generics/capacitors.ato"

module ChessClock:
signal gnd
smart_knob = new SmartKnob
capacitive_touch_w = new CapacitiveTouchSensor
capacitive_touch_b = new CapacitiveTouchSensor
batt = new 2170Cell
charger = new BQ24045

capacitive_touch_w.output ~ smart_knob.base.esp32s3.IO69
capacitive_touch_b.output ~ smart_knob.base.esp32s3.IO69

module CapacitiveTouchSensor:
signal touchpoint
signal output
ref_cap = new Capacitor

0 comments on commit 90c4ce9

Please sign in to comment.