Merge "Search for timestamps with binary search in To/FromDistributedClock"
diff --git a/aos/events/event_scheduler.cc b/aos/events/event_scheduler.cc
index 97c1e83..2bd7cef 100644
--- a/aos/events/event_scheduler.cc
+++ b/aos/events/event_scheduler.cc
@@ -35,18 +35,29 @@
events_list_.erase(token);
}
-aos::monotonic_clock::time_point EventScheduler::OldestEvent() {
+std::pair<distributed_clock::time_point, monotonic_clock::time_point>
+EventScheduler::OldestEvent() {
// If we haven't started yet, schedule a special event for the epoch to allow
// ourselves to boot.
if (!called_started_) {
- return aos::monotonic_clock::epoch();
+ if (!cached_epoch_) {
+ cached_epoch_ = ToDistributedClock(monotonic_clock::epoch());
+ }
+ return std::make_pair(*cached_epoch_, monotonic_clock::epoch());
}
if (events_list_.empty()) {
- return monotonic_clock::max_time;
+ return std::make_pair(distributed_clock::max_time,
+ monotonic_clock::max_time);
}
- return events_list_.begin()->first;
+ const monotonic_clock::time_point monotonic_time = events_list_.begin()->first;
+ if (cached_event_list_monotonic_time_ != monotonic_time) {
+ cached_event_list_time_ = ToDistributedClock(monotonic_time);
+ cached_event_list_monotonic_time_ = monotonic_time;
+ }
+
+ return std::make_pair(cached_event_list_time_, monotonic_time);
}
void EventScheduler::Shutdown() {
@@ -194,8 +205,8 @@
// We have to nudge our time back to the distributed time
// corresponding to our desired realtime time.
- const aos::monotonic_clock::time_point end_monotonic =
- aos::monotonic_clock::epoch() + end_time.time_since_epoch() -
+ const monotonic_clock::time_point end_monotonic =
+ monotonic_clock::epoch() + end_time.time_since_epoch() -
fn_realtime_offset();
const aos::distributed_clock::time_point end_time_distributed =
scheduler->ToDistributedClock(end_monotonic);
@@ -429,13 +440,11 @@
// TODO(austin): Don't linearly search... But for N=3, it is probably the
// fastest way to do this.
for (EventScheduler *scheduler : schedulers_) {
- const monotonic_clock::time_point monotonic_event_time =
- scheduler->OldestEvent();
- if (monotonic_event_time != monotonic_clock::max_time) {
- const distributed_clock::time_point event_time =
- scheduler->ToDistributedClock(monotonic_event_time);
- if (event_time < min_event_time) {
- min_event_time = event_time;
+ const std::pair<distributed_clock::time_point, monotonic_clock::time_point>
+ event_time = scheduler->OldestEvent();
+ if (event_time.second != monotonic_clock::max_time) {
+ if (event_time.first < min_event_time) {
+ min_event_time = event_time.first;
min_scheduler = scheduler;
}
}
diff --git a/aos/events/event_scheduler.h b/aos/events/event_scheduler.h
index 237a240..c508140 100644
--- a/aos/events/event_scheduler.h
+++ b/aos/events/event_scheduler.h
@@ -158,7 +158,8 @@
inline bool is_running() const;
// Returns the timestamp of the next event to trigger.
- monotonic_clock::time_point OldestEvent();
+ std::pair<distributed_clock::time_point, monotonic_clock::time_point>
+ OldestEvent();
// Handles the next event.
void CallOldestEvent();
@@ -233,6 +234,11 @@
bool is_running_ = false;
// Whether we have called all the startup handlers during this boot.
bool called_started_ = false;
+ std::optional<distributed_clock::time_point> cached_epoch_;
+ monotonic_clock::time_point cached_event_list_monotonic_time_ =
+ monotonic_clock::max_time;
+ distributed_clock::time_point cached_event_list_time_ =
+ distributed_clock::max_time;
std::function<void()> started_;
std::function<void()> stopped_;
diff --git a/motors/RspBuckBoost/RspPiLED_Driver.sch b/circuit_boards/BuckBoost/RspBuckBoost/RspPiLED_Driver.sch
similarity index 100%
rename from motors/RspBuckBoost/RspPiLED_Driver.sch
rename to circuit_boards/BuckBoost/RspBuckBoost/RspPiLED_Driver.sch
diff --git a/motors/RspBuckBoost/RspPiPS.pcb b/circuit_boards/BuckBoost/RspBuckBoost/RspPiPS.pcb
similarity index 100%
rename from motors/RspBuckBoost/RspPiPS.pcb
rename to circuit_boards/BuckBoost/RspBuckBoost/RspPiPS.pcb
diff --git a/motors/RspBuckBoost/RspPiPs.gsch2pcb b/circuit_boards/BuckBoost/RspBuckBoost/RspPiPs.gsch2pcb
similarity index 100%
rename from motors/RspBuckBoost/RspPiPs.gsch2pcb
rename to circuit_boards/BuckBoost/RspBuckBoost/RspPiPs.gsch2pcb
diff --git a/motors/RspBuckBoost/bom/pi4Power.ods b/circuit_boards/BuckBoost/RspBuckBoost/bom/pi4Power.ods
similarity index 100%
rename from motors/RspBuckBoost/bom/pi4Power.ods
rename to circuit_boards/BuckBoost/RspBuckBoost/bom/pi4Power.ods
Binary files differ
diff --git a/motors/RspBuckBoost/gafrc b/circuit_boards/BuckBoost/RspBuckBoost/gafrc
similarity index 100%
rename from motors/RspBuckBoost/gafrc
rename to circuit_boards/BuckBoost/RspBuckBoost/gafrc
diff --git a/motors/RspBuckBoost/packages b/circuit_boards/BuckBoost/RspBuckBoost/packages
similarity index 100%
rename from motors/RspBuckBoost/packages
rename to circuit_boards/BuckBoost/RspBuckBoost/packages
diff --git a/motors/RspBuckBoost/rspBoost.sch b/circuit_boards/BuckBoost/RspBuckBoost/rspBoost.sch
similarity index 100%
rename from motors/RspBuckBoost/rspBoost.sch
rename to circuit_boards/BuckBoost/RspBuckBoost/rspBoost.sch
diff --git a/motors/RspBuckBoost/rspBuck-2.sch b/circuit_boards/BuckBoost/RspBuckBoost/rspBuck-2.sch
similarity index 100%
rename from motors/RspBuckBoost/rspBuck-2.sch
rename to circuit_boards/BuckBoost/RspBuckBoost/rspBuck-2.sch
diff --git a/motors/RspBuckBoost/shipped_files_rev1/RspPiPS.bottom.gbr b/circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.bottom.gbr
similarity index 100%
rename from motors/RspBuckBoost/shipped_files_rev1/RspPiPS.bottom.gbr
rename to circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.bottom.gbr
diff --git a/motors/RspBuckBoost/shipped_files_rev1/RspPiPS.bottommask.gbr b/circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.bottommask.gbr
similarity index 100%
rename from motors/RspBuckBoost/shipped_files_rev1/RspPiPS.bottommask.gbr
rename to circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.bottommask.gbr
diff --git a/motors/RspBuckBoost/shipped_files_rev1/RspPiPS.bottompaste.gbr b/circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.bottompaste.gbr
similarity index 100%
rename from motors/RspBuckBoost/shipped_files_rev1/RspPiPS.bottompaste.gbr
rename to circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.bottompaste.gbr
diff --git a/motors/RspBuckBoost/shipped_files_rev1/RspPiPS.bottomsilk.gbr b/circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.bottomsilk.gbr
similarity index 100%
rename from motors/RspBuckBoost/shipped_files_rev1/RspPiPS.bottomsilk.gbr
rename to circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.bottomsilk.gbr
diff --git a/motors/RspBuckBoost/shipped_files_rev1/RspPiPS.fab.gbr b/circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.fab.gbr
similarity index 100%
rename from motors/RspBuckBoost/shipped_files_rev1/RspPiPS.fab.gbr
rename to circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.fab.gbr
diff --git a/motors/RspBuckBoost/shipped_files_rev1/RspPiPS.mechanical_notes.gbr b/circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.mechanical_notes.gbr
similarity index 100%
rename from motors/RspBuckBoost/shipped_files_rev1/RspPiPS.mechanical_notes.gbr
rename to circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.mechanical_notes.gbr
diff --git a/motors/RspBuckBoost/shipped_files_rev1/RspPiPS.outline.gbr b/circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.outline.gbr
similarity index 100%
rename from motors/RspBuckBoost/shipped_files_rev1/RspPiPS.outline.gbr
rename to circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.outline.gbr
diff --git a/motors/RspBuckBoost/shipped_files_rev1/RspPiPS.plated-drill.cnc b/circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.plated-drill.cnc
similarity index 100%
rename from motors/RspBuckBoost/shipped_files_rev1/RspPiPS.plated-drill.cnc
rename to circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.plated-drill.cnc
diff --git a/motors/RspBuckBoost/shipped_files_rev1/RspPiPS.top.gbr b/circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.top.gbr
similarity index 100%
rename from motors/RspBuckBoost/shipped_files_rev1/RspPiPS.top.gbr
rename to circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.top.gbr
diff --git a/motors/RspBuckBoost/shipped_files_rev1/RspPiPS.topmask.gbr b/circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.topmask.gbr
similarity index 100%
rename from motors/RspBuckBoost/shipped_files_rev1/RspPiPS.topmask.gbr
rename to circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.topmask.gbr
diff --git a/motors/RspBuckBoost/shipped_files_rev1/RspPiPS.toppaste.gbr b/circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.toppaste.gbr
similarity index 100%
rename from motors/RspBuckBoost/shipped_files_rev1/RspPiPS.toppaste.gbr
rename to circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.toppaste.gbr
diff --git a/motors/RspBuckBoost/shipped_files_rev1/RspPiPS.topsilk.gbr b/circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.topsilk.gbr
similarity index 100%
rename from motors/RspBuckBoost/shipped_files_rev1/RspPiPS.topsilk.gbr
rename to circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS.topsilk.gbr
diff --git a/motors/RspBuckBoost/shipped_files_rev1/RspPiPS_Rev1.zip b/circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS_Rev1.zip
similarity index 100%
rename from motors/RspBuckBoost/shipped_files_rev1/RspPiPS_Rev1.zip
rename to circuit_boards/BuckBoost/RspBuckBoost/shipped_files_rev1/RspPiPS_Rev1.zip
Binary files differ
diff --git a/motors/RspBuckBoostv2/RspPiPS.pcb b/circuit_boards/BuckBoost/RspBuckBoostv2/RspPiPS.pcb
similarity index 100%
rename from motors/RspBuckBoostv2/RspPiPS.pcb
rename to circuit_boards/BuckBoost/RspBuckBoostv2/RspPiPS.pcb
diff --git a/motors/RspBuckBoostv2/RspPiPs.gsch2pcb b/circuit_boards/BuckBoost/RspBuckBoostv2/RspPiPs.gsch2pcb
similarity index 100%
rename from motors/RspBuckBoostv2/RspPiPs.gsch2pcb
rename to circuit_boards/BuckBoost/RspBuckBoostv2/RspPiPs.gsch2pcb
diff --git a/motors/RspBuckBoostv2/gafrc b/circuit_boards/BuckBoost/RspBuckBoostv2/gafrc
similarity index 100%
rename from motors/RspBuckBoostv2/gafrc
rename to circuit_boards/BuckBoost/RspBuckBoostv2/gafrc
diff --git a/motors/RspBuckBoostv2/packages b/circuit_boards/BuckBoost/RspBuckBoostv2/packages
similarity index 100%
rename from motors/RspBuckBoostv2/packages
rename to circuit_boards/BuckBoost/RspBuckBoostv2/packages
diff --git a/motors/RspBuckBoostv2/rspBoost.sch b/circuit_boards/BuckBoost/RspBuckBoostv2/rspBoost.sch
similarity index 100%
rename from motors/RspBuckBoostv2/rspBoost.sch
rename to circuit_boards/BuckBoost/RspBuckBoostv2/rspBoost.sch
diff --git a/motors/RspBuckBoostv2/rspBuck-2.sch b/circuit_boards/BuckBoost/RspBuckBoostv2/rspBuck-2.sch
similarity index 100%
rename from motors/RspBuckBoostv2/rspBuck-2.sch
rename to circuit_boards/BuckBoost/RspBuckBoostv2/rspBuck-2.sch
diff --git a/motors/RspBuckBoostv2/rspIMU.sch b/circuit_boards/BuckBoost/RspBuckBoostv2/rspIMU.sch
similarity index 100%
rename from motors/RspBuckBoostv2/rspIMU.sch
rename to circuit_boards/BuckBoost/RspBuckBoostv2/rspIMU.sch
diff --git a/motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.bottom.gbr b/circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.bottom.gbr
similarity index 100%
rename from motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.bottom.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.bottom.gbr
diff --git a/motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.bottommask.gbr b/circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.bottommask.gbr
similarity index 100%
rename from motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.bottommask.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.bottommask.gbr
diff --git a/motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.bottompaste.gbr b/circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.bottompaste.gbr
similarity index 100%
rename from motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.bottompaste.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.bottompaste.gbr
diff --git a/motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.bottomsilk.gbr b/circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.bottomsilk.gbr
similarity index 100%
rename from motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.bottomsilk.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.bottomsilk.gbr
diff --git a/motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.fab.gbr b/circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.fab.gbr
similarity index 100%
rename from motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.fab.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.fab.gbr
diff --git a/motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.group5.gbr b/circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.group5.gbr
similarity index 100%
rename from motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.group5.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.group5.gbr
diff --git a/motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.outline.gbr b/circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.outline.gbr
similarity index 100%
rename from motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.outline.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.outline.gbr
diff --git a/motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.plated-drill.cnc b/circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.plated-drill.cnc
similarity index 100%
rename from motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.plated-drill.cnc
rename to circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.plated-drill.cnc
diff --git a/motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.top.gbr b/circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.top.gbr
similarity index 100%
rename from motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.top.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.top.gbr
diff --git a/motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.topmask.gbr b/circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.topmask.gbr
similarity index 100%
rename from motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.topmask.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.topmask.gbr
diff --git a/motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.toppaste.gbr b/circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.toppaste.gbr
similarity index 100%
rename from motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.toppaste.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.toppaste.gbr
diff --git a/motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.topsilk.gbr b/circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.topsilk.gbr
similarity index 100%
rename from motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.topsilk.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.topsilk.gbr
diff --git a/motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.unplated-drill.cnc b/circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.unplated-drill.cnc
similarity index 100%
rename from motors/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.unplated-drill.cnc
rename to circuit_boards/BuckBoost/RspBuckBoostv2/shipped_files_rev2/RspPiPS_v2.unplated-drill.cnc
diff --git a/motors/RspBuckBoostv3/RspPiPS.pcb b/circuit_boards/BuckBoost/RspBuckBoostv3/RspPiPS.pcb
similarity index 100%
rename from motors/RspBuckBoostv3/RspPiPS.pcb
rename to circuit_boards/BuckBoost/RspBuckBoostv3/RspPiPS.pcb
diff --git a/motors/RspBuckBoostv3/RspPiPs.gsch2pcb b/circuit_boards/BuckBoost/RspBuckBoostv3/RspPiPs.gsch2pcb
similarity index 100%
rename from motors/RspBuckBoostv3/RspPiPs.gsch2pcb
rename to circuit_boards/BuckBoost/RspBuckBoostv3/RspPiPs.gsch2pcb
diff --git a/motors/RspBuckBoostv3/gafrc b/circuit_boards/BuckBoost/RspBuckBoostv3/gafrc
similarity index 100%
rename from motors/RspBuckBoostv3/gafrc
rename to circuit_boards/BuckBoost/RspBuckBoostv3/gafrc
diff --git a/motors/RspBuckBoostv3/rspBoost.sch b/circuit_boards/BuckBoost/RspBuckBoostv3/rspBoost.sch
similarity index 100%
rename from motors/RspBuckBoostv3/rspBoost.sch
rename to circuit_boards/BuckBoost/RspBuckBoostv3/rspBoost.sch
diff --git a/motors/RspBuckBoostv3/rspBuck-2.sch b/circuit_boards/BuckBoost/RspBuckBoostv3/rspBuck-2.sch
similarity index 100%
rename from motors/RspBuckBoostv3/rspBuck-2.sch
rename to circuit_boards/BuckBoost/RspBuckBoostv3/rspBuck-2.sch
diff --git a/motors/RspBuckBoostv3/rspIMU.sch b/circuit_boards/BuckBoost/RspBuckBoostv3/rspIMU.sch
similarity index 100%
rename from motors/RspBuckBoostv3/rspIMU.sch
rename to circuit_boards/BuckBoost/RspBuckBoostv3/rspIMU.sch
diff --git a/motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.bottom.gbr b/circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.bottom.gbr
similarity index 100%
rename from motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.bottom.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.bottom.gbr
diff --git a/motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.bottommask.gbr b/circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.bottommask.gbr
similarity index 100%
rename from motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.bottommask.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.bottommask.gbr
diff --git a/motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.bottompaste.gbr b/circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.bottompaste.gbr
similarity index 100%
rename from motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.bottompaste.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.bottompaste.gbr
diff --git a/motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.bottomsilk.gbr b/circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.bottomsilk.gbr
similarity index 100%
rename from motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.bottomsilk.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.bottomsilk.gbr
diff --git a/motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.fab.gbr b/circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.fab.gbr
similarity index 100%
rename from motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.fab.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.fab.gbr
diff --git a/motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.group5.gbr b/circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.group5.gbr
similarity index 100%
rename from motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.group5.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.group5.gbr
diff --git a/motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.outline.gbr b/circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.outline.gbr
similarity index 100%
rename from motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.outline.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.outline.gbr
diff --git a/motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.plated-drill.cnc b/circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.plated-drill.cnc
similarity index 100%
rename from motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.plated-drill.cnc
rename to circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.plated-drill.cnc
diff --git a/motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.top.gbr b/circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.top.gbr
similarity index 100%
rename from motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.top.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.top.gbr
diff --git a/motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.topmask.gbr b/circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.topmask.gbr
similarity index 100%
rename from motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.topmask.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.topmask.gbr
diff --git a/motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.toppaste.gbr b/circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.toppaste.gbr
similarity index 100%
rename from motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.toppaste.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.toppaste.gbr
diff --git a/motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.topsilk.gbr b/circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.topsilk.gbr
similarity index 100%
rename from motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.topsilk.gbr
rename to circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.topsilk.gbr
diff --git a/motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.unplated-drill.cnc b/circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.unplated-drill.cnc
similarity index 100%
rename from motors/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.unplated-drill.cnc
rename to circuit_boards/BuckBoost/RspBuckBoostv3/shipped_files_rev3/RspPiPSv3.unplated-drill.cnc
diff --git a/motors/RspPiPicoIMU/RspPiPicoIMU-cache.lib b/circuit_boards/RspPiPicoIMU/RspPiPicoIMU-cache.lib
similarity index 100%
rename from motors/RspPiPicoIMU/RspPiPicoIMU-cache.lib
rename to circuit_boards/RspPiPicoIMU/RspPiPicoIMU-cache.lib
diff --git a/motors/RspPiPicoIMU/RspPiPicoIMU.dcm b/circuit_boards/RspPiPicoIMU/RspPiPicoIMU.dcm
similarity index 100%
rename from motors/RspPiPicoIMU/RspPiPicoIMU.dcm
rename to circuit_boards/RspPiPicoIMU/RspPiPicoIMU.dcm
diff --git a/motors/RspPiPicoIMU/RspPiPicoIMU.kicad_pcb b/circuit_boards/RspPiPicoIMU/RspPiPicoIMU.kicad_pcb
similarity index 100%
rename from motors/RspPiPicoIMU/RspPiPicoIMU.kicad_pcb
rename to circuit_boards/RspPiPicoIMU/RspPiPicoIMU.kicad_pcb
diff --git a/motors/RspPiPicoIMU/RspPiPicoIMU.lib b/circuit_boards/RspPiPicoIMU/RspPiPicoIMU.lib
similarity index 100%
rename from motors/RspPiPicoIMU/RspPiPicoIMU.lib
rename to circuit_boards/RspPiPicoIMU/RspPiPicoIMU.lib
diff --git a/motors/RspPiPicoIMU/RspPiPicoIMU.pretty/BGA-100_10x10_15.0x15.0mm.kicad_mod b/circuit_boards/RspPiPicoIMU/RspPiPicoIMU.pretty/BGA-100_10x10_15.0x15.0mm.kicad_mod
similarity index 100%
rename from motors/RspPiPicoIMU/RspPiPicoIMU.pretty/BGA-100_10x10_15.0x15.0mm.kicad_mod
rename to circuit_boards/RspPiPicoIMU/RspPiPicoIMU.pretty/BGA-100_10x10_15.0x15.0mm.kicad_mod
diff --git a/motors/RspPiPicoIMU/RspPiPicoIMU.pretty/Molex430451425.kicad_mod b/circuit_boards/RspPiPicoIMU/RspPiPicoIMU.pretty/Molex430451425.kicad_mod
similarity index 100%
rename from motors/RspPiPicoIMU/RspPiPicoIMU.pretty/Molex430451425.kicad_mod
rename to circuit_boards/RspPiPicoIMU/RspPiPicoIMU.pretty/Molex430451425.kicad_mod
diff --git a/motors/RspPiPicoIMU/RspPiPicoIMU.pretty/PICO.kicad_mod b/circuit_boards/RspPiPicoIMU/RspPiPicoIMU.pretty/PICO.kicad_mod
similarity index 100%
rename from motors/RspPiPicoIMU/RspPiPicoIMU.pretty/PICO.kicad_mod
rename to circuit_boards/RspPiPicoIMU/RspPiPicoIMU.pretty/PICO.kicad_mod
diff --git a/motors/RspPiPicoIMU/RspPiPicoIMU.pretty/SC0915-PI-Pico.kicad_mod b/circuit_boards/RspPiPicoIMU/RspPiPicoIMU.pretty/SC0915-PI-Pico.kicad_mod
similarity index 100%
rename from motors/RspPiPicoIMU/RspPiPicoIMU.pretty/SC0915-PI-Pico.kicad_mod
rename to circuit_boards/RspPiPicoIMU/RspPiPicoIMU.pretty/SC0915-PI-Pico.kicad_mod
diff --git a/motors/RspPiPicoIMU/RspPiPicoIMU.pro b/circuit_boards/RspPiPicoIMU/RspPiPicoIMU.pro
similarity index 100%
rename from motors/RspPiPicoIMU/RspPiPicoIMU.pro
rename to circuit_boards/RspPiPicoIMU/RspPiPicoIMU.pro
diff --git a/motors/RspPiPicoIMU/RspPiPicoIMU.sch b/circuit_boards/RspPiPicoIMU/RspPiPicoIMU.sch
similarity index 100%
rename from motors/RspPiPicoIMU/RspPiPicoIMU.sch
rename to circuit_boards/RspPiPicoIMU/RspPiPicoIMU.sch
diff --git a/motors/RspPiPicoIMU/fp-lib-table b/circuit_boards/RspPiPicoIMU/fp-lib-table
similarity index 100%
rename from motors/RspPiPicoIMU/fp-lib-table
rename to circuit_boards/RspPiPicoIMU/fp-lib-table
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-B_Cu.gbl b/circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-B_Cu.gbl
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-B_Cu.gbl
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-B_Cu.gbl
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-B_Mask.gbs b/circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-B_Mask.gbs
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-B_Mask.gbs
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-B_Mask.gbs
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-B_Paste.gbp b/circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-B_Paste.gbp
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-B_Paste.gbp
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-B_Paste.gbp
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-B_SilkS.gbo b/circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-B_SilkS.gbo
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-B_SilkS.gbo
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-B_SilkS.gbo
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-Edge_Cuts.gm1 b/circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-Edge_Cuts.gm1
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-Edge_Cuts.gm1
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-Edge_Cuts.gm1
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-F_Cu.gtl b/circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-F_Cu.gtl
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-F_Cu.gtl
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-F_Cu.gtl
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-F_Mask.gts b/circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-F_Mask.gts
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-F_Mask.gts
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-F_Mask.gts
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-F_Paste.gtp b/circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-F_Paste.gtp
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-F_Paste.gtp
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-F_Paste.gtp
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-F_SilkS.gto b/circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-F_SilkS.gto
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-F_SilkS.gto
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-F_SilkS.gto
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-In1_Cu.g2 b/circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-In1_Cu.g2
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-In1_Cu.g2
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-In1_Cu.g2
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-In2_Cu.g3 b/circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-In2_Cu.g3
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-In2_Cu.g3
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-In2_Cu.g3
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-NPTH-drl_map.gbr b/circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-NPTH-drl_map.gbr
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-NPTH-drl_map.gbr
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-NPTH-drl_map.gbr
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-NPTH.drl b/circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-NPTH.drl
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-NPTH.drl
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-NPTH.drl
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-PTH-drl_map.gbr b/circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-PTH-drl_map.gbr
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-PTH-drl_map.gbr
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-PTH-drl_map.gbr
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-PTH.drl b/circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-PTH.drl
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-PTH.drl
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-PTH.drl
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-bottom-pos.csv b/circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-bottom-pos.csv
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-bottom-pos.csv
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-bottom-pos.csv
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-top-pos.csv b/circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-top-pos.csv
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-top-pos.csv
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-gerbers/RspPiPicoIMU-top-pos.csv
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-output/RspPiPicoIMU-FAB.pdf b/circuit_boards/RspPiPicoIMU/pi-pico-imu-output/RspPiPicoIMU-FAB.pdf
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-output/RspPiPicoIMU-FAB.pdf
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-output/RspPiPicoIMU-FAB.pdf
Binary files differ
diff --git a/motors/RspPiPicoIMU/pi-pico-imu-output/RspPiPicoIMU-schematic-Rev1.pdf b/circuit_boards/RspPiPicoIMU/pi-pico-imu-output/RspPiPicoIMU-schematic-Rev1.pdf
similarity index 100%
rename from motors/RspPiPicoIMU/pi-pico-imu-output/RspPiPicoIMU-schematic-Rev1.pdf
rename to circuit_boards/RspPiPicoIMU/pi-pico-imu-output/RspPiPicoIMU-schematic-Rev1.pdf
Binary files differ
diff --git a/motors/RspPiPicoIMU/sym-lib-table b/circuit_boards/RspPiPicoIMU/sym-lib-table
similarity index 100%
rename from motors/RspPiPicoIMU/sym-lib-table
rename to circuit_boards/RspPiPicoIMU/sym-lib-table
diff --git a/motors/led-ring-driver/kicad/LED-Current-Regulator.kicad_sch b/circuit_boards/led-ring-driver/kicad/LED-Current-Regulator.kicad_sch
similarity index 100%
rename from motors/led-ring-driver/kicad/LED-Current-Regulator.kicad_sch
rename to circuit_boards/led-ring-driver/kicad/LED-Current-Regulator.kicad_sch
diff --git a/motors/led-ring-driver/kicad/boost.kicad_sch b/circuit_boards/led-ring-driver/kicad/boost.kicad_sch
similarity index 100%
rename from motors/led-ring-driver/kicad/boost.kicad_sch
rename to circuit_boards/led-ring-driver/kicad/boost.kicad_sch
diff --git a/motors/led-ring-driver/kicad/components/3D_Step/10 SIZE CODE G-L.stp b/circuit_boards/led-ring-driver/kicad/components/3D_Step/10 SIZE CODE G-L.stp
similarity index 100%
rename from motors/led-ring-driver/kicad/components/3D_Step/10 SIZE CODE G-L.stp
rename to circuit_boards/led-ring-driver/kicad/components/3D_Step/10 SIZE CODE G-L.stp
diff --git a/motors/led-ring-driver/kicad/components/3D_Step/430450601.stp b/circuit_boards/led-ring-driver/kicad/components/3D_Step/430450601.stp
similarity index 100%
rename from motors/led-ring-driver/kicad/components/3D_Step/430450601.stp
rename to circuit_boards/led-ring-driver/kicad/components/3D_Step/430450601.stp
diff --git a/motors/led-ring-driver/kicad/components/3D_Step/EEHAZF1E271.step b/circuit_boards/led-ring-driver/kicad/components/3D_Step/EEHAZF1E271.step
similarity index 100%
rename from motors/led-ring-driver/kicad/components/3D_Step/EEHAZF1E271.step
rename to circuit_boards/led-ring-driver/kicad/components/3D_Step/EEHAZF1E271.step
diff --git a/motors/led-ring-driver/kicad/components/3D_Step/LUXEON_2835_20160407_STEP.STEP b/circuit_boards/led-ring-driver/kicad/components/3D_Step/LUXEON_2835_20160407_STEP.STEP
similarity index 100%
rename from motors/led-ring-driver/kicad/components/3D_Step/LUXEON_2835_20160407_STEP.STEP
rename to circuit_boards/led-ring-driver/kicad/components/3D_Step/LUXEON_2835_20160407_STEP.STEP
diff --git a/motors/led-ring-driver/kicad/components/3D_Step/SRP3020C-1R0M_BRN.step b/circuit_boards/led-ring-driver/kicad/components/3D_Step/SRP3020C-1R0M_BRN.step
similarity index 100%
rename from motors/led-ring-driver/kicad/components/3D_Step/SRP3020C-1R0M_BRN.step
rename to circuit_boards/led-ring-driver/kicad/components/3D_Step/SRP3020C-1R0M_BRN.step
diff --git a/motors/led-ring-driver/kicad/fp-lib-table b/circuit_boards/led-ring-driver/kicad/fp-lib-table
similarity index 100%
rename from motors/led-ring-driver/kicad/fp-lib-table
rename to circuit_boards/led-ring-driver/kicad/fp-lib-table
diff --git a/motors/led-ring-driver/kicad/led-ring-driver-BOM.xlsx b/circuit_boards/led-ring-driver/kicad/led-ring-driver-BOM.xlsx
similarity index 100%
rename from motors/led-ring-driver/kicad/led-ring-driver-BOM.xlsx
rename to circuit_boards/led-ring-driver/kicad/led-ring-driver-BOM.xlsx
Binary files differ
diff --git a/motors/led-ring-driver/kicad/led-ring-driver-V1.5.pdf b/circuit_boards/led-ring-driver/kicad/led-ring-driver-V1.5.pdf
similarity index 100%
rename from motors/led-ring-driver/kicad/led-ring-driver-V1.5.pdf
rename to circuit_boards/led-ring-driver/kicad/led-ring-driver-V1.5.pdf
Binary files differ
diff --git a/motors/led-ring-driver/kicad/led-ring-driver.kicad_pcb b/circuit_boards/led-ring-driver/kicad/led-ring-driver.kicad_pcb
similarity index 100%
rename from motors/led-ring-driver/kicad/led-ring-driver.kicad_pcb
rename to circuit_boards/led-ring-driver/kicad/led-ring-driver.kicad_pcb
diff --git a/motors/led-ring-driver/kicad/led-ring-driver.kicad_prl b/circuit_boards/led-ring-driver/kicad/led-ring-driver.kicad_prl
similarity index 100%
rename from motors/led-ring-driver/kicad/led-ring-driver.kicad_prl
rename to circuit_boards/led-ring-driver/kicad/led-ring-driver.kicad_prl
diff --git a/motors/led-ring-driver/kicad/led-ring-driver.kicad_pro b/circuit_boards/led-ring-driver/kicad/led-ring-driver.kicad_pro
similarity index 100%
rename from motors/led-ring-driver/kicad/led-ring-driver.kicad_pro
rename to circuit_boards/led-ring-driver/kicad/led-ring-driver.kicad_pro
diff --git a/motors/led-ring-driver/kicad/led-ring-driver.kicad_sch b/circuit_boards/led-ring-driver/kicad/led-ring-driver.kicad_sch
similarity index 100%
rename from motors/led-ring-driver/kicad/led-ring-driver.kicad_sch
rename to circuit_boards/led-ring-driver/kicad/led-ring-driver.kicad_sch
diff --git a/motors/led-ring-driver/kicad/led-ring-driver.kicad_sym b/circuit_boards/led-ring-driver/kicad/led-ring-driver.kicad_sym
similarity index 100%
rename from motors/led-ring-driver/kicad/led-ring-driver.kicad_sym
rename to circuit_boards/led-ring-driver/kicad/led-ring-driver.kicad_sym
diff --git a/motors/led-ring-driver/kicad/led-ring-driver.xml b/circuit_boards/led-ring-driver/kicad/led-ring-driver.xml
similarity index 100%
rename from motors/led-ring-driver/kicad/led-ring-driver.xml
rename to circuit_boards/led-ring-driver/kicad/led-ring-driver.xml
diff --git a/motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-B_Cu.gbr b/circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-B_Cu.gbr
similarity index 100%
rename from motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-B_Cu.gbr
rename to circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-B_Cu.gbr
diff --git a/motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-B_Mask.gbr b/circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-B_Mask.gbr
similarity index 100%
rename from motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-B_Mask.gbr
rename to circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-B_Mask.gbr
diff --git a/motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-B_Paste.gbr b/circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-B_Paste.gbr
similarity index 100%
rename from motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-B_Paste.gbr
rename to circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-B_Paste.gbr
diff --git a/motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-B_Silkscreen.gbr b/circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-B_Silkscreen.gbr
similarity index 100%
rename from motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-B_Silkscreen.gbr
rename to circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-B_Silkscreen.gbr
diff --git a/motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-Edge_Cuts.gbr b/circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-Edge_Cuts.gbr
similarity index 100%
rename from motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-Edge_Cuts.gbr
rename to circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-Edge_Cuts.gbr
diff --git a/motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-F_Cu.gbr b/circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-F_Cu.gbr
similarity index 100%
rename from motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-F_Cu.gbr
rename to circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-F_Cu.gbr
diff --git a/motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-F_Mask.gbr b/circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-F_Mask.gbr
similarity index 100%
rename from motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-F_Mask.gbr
rename to circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-F_Mask.gbr
diff --git a/motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-F_Paste.gbr b/circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-F_Paste.gbr
similarity index 100%
rename from motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-F_Paste.gbr
rename to circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-F_Paste.gbr
diff --git a/motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-F_Silkscreen.gbr b/circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-F_Silkscreen.gbr
similarity index 100%
rename from motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-F_Silkscreen.gbr
rename to circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-F_Silkscreen.gbr
diff --git a/motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-In1_Cu.gbr b/circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-In1_Cu.gbr
similarity index 100%
rename from motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-In1_Cu.gbr
rename to circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-In1_Cu.gbr
diff --git a/motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-In2_Cu.gbr b/circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-In2_Cu.gbr
similarity index 100%
rename from motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-In2_Cu.gbr
rename to circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-In2_Cu.gbr
diff --git a/motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-NPTH-drl_map.ps b/circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-NPTH-drl_map.ps
similarity index 100%
rename from motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-NPTH-drl_map.ps
rename to circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-NPTH-drl_map.ps
diff --git a/motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-NPTH.drl b/circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-NPTH.drl
similarity index 100%
rename from motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-NPTH.drl
rename to circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-NPTH.drl
diff --git a/motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-PTH-drl_map.ps b/circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-PTH-drl_map.ps
similarity index 100%
rename from motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-PTH-drl_map.ps
rename to circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-PTH-drl_map.ps
diff --git a/motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-PTH.drl b/circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-PTH.drl
similarity index 100%
rename from motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-PTH.drl
rename to circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-PTH.drl
diff --git a/motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-job.gbrjob b/circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-job.gbrjob
similarity index 100%
rename from motors/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-job.gbrjob
rename to circuit_boards/led-ring-driver/kicad/shipped-files-rev-1/led-ring-driver-job.gbrjob
diff --git a/motors/led-ring-driver/kicad/sym-lib-table b/circuit_boards/led-ring-driver/kicad/sym-lib-table
similarity index 100%
rename from motors/led-ring-driver/kicad/sym-lib-table
rename to circuit_boards/led-ring-driver/kicad/sym-lib-table
diff --git a/y2022_bot3/BUILD b/y2022_bot3/BUILD
index 8af6882..8ccae67 100644
--- a/y2022_bot3/BUILD
+++ b/y2022_bot3/BUILD
@@ -122,6 +122,8 @@
"//frc971/control_loops:static_zeroing_single_dof_profiled_subsystem",
"//frc971/shooter_interpolation:interpolation",
"//y2022_bot3/control_loops/drivetrain:polydrivetrain_plants",
+ "//y2022_bot3/control_loops/superstructure/climber:climber_plants",
+ "//y2022_bot3/control_loops/superstructure/intake:intake_plants",
"@com_github_google_glog//:glog",
"@com_google_absl//absl/base",
],
diff --git a/y2022_bot3/constants.cc b/y2022_bot3/constants.cc
index 84e6a0d..2ecae68 100644
--- a/y2022_bot3/constants.cc
+++ b/y2022_bot3/constants.cc
@@ -11,6 +11,8 @@
#include "aos/mutex/mutex.h"
#include "aos/network/team_number.h"
#include "glog/logging.h"
+#include "y2022_bot3/control_loops/superstructure/climber/integral_climber_plant.h"
+#include "y2022_bot3/control_loops/superstructure/intake/integral_intake_plant.h"
namespace y2022_bot3 {
namespace constants {
@@ -30,18 +32,104 @@
Values r;
+ auto *const intake = &r.intake;
+ auto *const climber_left = &r.climber_left;
+ auto *const climber_right = &r.climber_right;
+
+ ::frc971::control_loops::StaticZeroingSingleDOFProfiledSubsystemParams<
+ ::frc971::zeroing::PotAndAbsoluteEncoderZeroingEstimator>
+ intake_params;
+
+ intake_params.zeroing_voltage = 3.0;
+ intake_params.operating_voltage = 12.0;
+ intake_params.zeroing_profile_params = {0.5, 3.0};
+ intake_params.default_profile_params = {6.0, 30.0};
+ intake_params.range = Values::kIntakeRange();
+ intake_params.make_integral_loop =
+ control_loops::superstructure::intake::MakeIntegralIntakeLoop;
+ intake_params.zeroing_constants.average_filter_size =
+ Values::kZeroingSampleSize;
+ intake_params.zeroing_constants.one_revolution_distance =
+ M_PI * 2.0 * constants::Values::kIntakeEncoderRatio();
+ intake_params.zeroing_constants.zeroing_threshold = 0.0005;
+ intake_params.zeroing_constants.moving_buffer_size = 20;
+ intake_params.zeroing_constants.allowable_encoder_error = 0.9;
+ intake_params.zeroing_constants.measured_absolute_position = 0.0;
+
+ intake->subsystem_params = intake_params;
+
+ ::frc971::control_loops::StaticZeroingSingleDOFProfiledSubsystemParams<
+ ::frc971::zeroing::PotAndAbsoluteEncoderZeroingEstimator>
+ climber_params;
+
+ climber_params.zeroing_voltage = 3.0;
+ climber_params.operating_voltage = 12.0;
+ climber_params.zeroing_profile_params = {0.5, 0.1};
+ climber_params.default_profile_params = {5.0, 1.0};
+ climber_params.range = Values::kClimberRange();
+ climber_params.make_integral_loop =
+ control_loops::superstructure::climber::MakeIntegralClimberLoop;
+ climber_params.zeroing_constants.average_filter_size =
+ Values::kZeroingSampleSize;
+ climber_params.zeroing_constants.one_revolution_distance =
+ constants::Values::kClimberEncoderRatio() *
+ constants::Values::kClimberEncoderMetersPerRevolution();
+ climber_params.zeroing_constants.zeroing_threshold = 0.0005;
+ climber_params.zeroing_constants.moving_buffer_size = 20;
+ climber_params.zeroing_constants.allowable_encoder_error = 0.9;
+ climber_params.zeroing_constants.measured_absolute_position = 0.0;
+
+ climber_left->subsystem_params = climber_params;
+ climber_right->subsystem_params = climber_params;
+
switch (team) {
// A set of constants for tests.
case 1:
+ intake->potentiometer_offset = 0.0;
+ intake->subsystem_params.zeroing_constants.measured_absolute_position =
+ 0.0;
+ climber_left->potentiometer_offset = 0.0;
+ climber_left->subsystem_params.zeroing_constants
+ .measured_absolute_position = 0.0;
+ climber_right->potentiometer_offset = 0.0;
+ climber_right->subsystem_params.zeroing_constants
+ .measured_absolute_position = 0.0;
break;
case kCompTeamNumber:
+ intake->potentiometer_offset = 0.0;
+ intake->subsystem_params.zeroing_constants.measured_absolute_position =
+ 0.0;
+ climber_left->potentiometer_offset = 0.0;
+ climber_left->subsystem_params.zeroing_constants
+ .measured_absolute_position = 0.0;
+ climber_right->potentiometer_offset = 0.0;
+ climber_right->subsystem_params.zeroing_constants
+ .measured_absolute_position = 0.0;
break;
case kPracticeTeamNumber:
+ intake->potentiometer_offset = 0.0;
+ intake->subsystem_params.zeroing_constants.measured_absolute_position =
+ 0.0;
+ climber_left->potentiometer_offset = 0.0;
+ climber_left->subsystem_params.zeroing_constants
+ .measured_absolute_position = 0.0;
+ climber_right->potentiometer_offset = 0.0;
+ climber_right->subsystem_params.zeroing_constants
+ .measured_absolute_position = 0.0;
break;
case kCodingRobotTeamNumber:
+ intake->potentiometer_offset = 0.0;
+ intake->subsystem_params.zeroing_constants.measured_absolute_position =
+ 0.0;
+ climber_left->potentiometer_offset = 0.0;
+ climber_left->subsystem_params.zeroing_constants
+ .measured_absolute_position = 0.0;
+ climber_right->potentiometer_offset = 0.0;
+ climber_right->subsystem_params.zeroing_constants
+ .measured_absolute_position = 0.0;
break;
default:
diff --git a/y2022_bot3/constants.h b/y2022_bot3/constants.h
index 7f5b623..c1638a2 100644
--- a/y2022_bot3/constants.h
+++ b/y2022_bot3/constants.h
@@ -10,6 +10,8 @@
#include "frc971/control_loops/static_zeroing_single_dof_profiled_subsystem.h"
#include "frc971/shooter_interpolation/interpolation.h"
#include "y2022_bot3/control_loops/drivetrain/drivetrain_dog_motor_plant.h"
+#include "y2022_bot3/control_loops/superstructure/climber/climber_plant.h"
+#include "y2022_bot3/control_loops/superstructure/intake/intake_plant.h"
using ::frc971::shooter_interpolation::InterpolationTable;
@@ -45,10 +47,67 @@
double potentiometer_offset;
};
- // Intake rollers
static constexpr double kIntakeRollerSupplyCurrentLimit() { return 40.0; }
static constexpr double kIntakeRollerStatorCurrentLimit() { return 60.0; }
+ // Intake
+ // TODO (Logan): Constants need to be tuned
+ static constexpr double kIntakeEncoderCountsPerRevolution() { return 4096.0; }
+
+ static constexpr double kIntakeEncoderRatio() {
+ return (16.0 / 64.0) * (18.0 / 62.0);
+ }
+
+ static constexpr double kIntakePotRatio() { return 16.0 / 64.0; }
+
+ static constexpr double kMaxIntakeEncoderPulsesPerSecond() {
+ return control_loops::superstructure::intake::kFreeSpeed / (2.0 * M_PI) *
+ control_loops::superstructure::intake::kOutputRatio /
+ kIntakeEncoderRatio() * kIntakeEncoderCountsPerRevolution();
+ }
+ PotAndAbsEncoderConstants intake;
+
+ static constexpr ::frc971::constants::Range kIntakeRange() {
+ return ::frc971::constants::Range{
+ .lower_hard = -0.85, // Back Hard
+ .upper_hard = 1.85, // Front Hard
+ .lower = -0.400, // Back Soft
+ .upper = 1.57 // Front Soft
+ };
+ }
+
+ // Climber
+ // TODO (Logan): Constants need to be tuned
+ static constexpr double kClimberEncoderCountsPerRevolution() {
+ return 4096.0;
+ }
+
+ static constexpr double kClimberEncoderRatio() {
+ return (16.0 / 64.0) * (18.0 / 62.0);
+ }
+
+ static constexpr double kClimberEncoderMetersPerRevolution() { return 1.0; }
+
+ static constexpr double kClimberPotMetersPerRevolution() { return 0.125; }
+
+ static constexpr double kClimberPotRatio() { return 16.0 / 64.0; }
+
+ static constexpr double kMaxClimberEncoderPulsesPerSecond() {
+ return control_loops::superstructure::climber::kFreeSpeed / (2.0 * M_PI) *
+ control_loops::superstructure::climber::kOutputRatio /
+ kClimberEncoderRatio() * kClimberEncoderCountsPerRevolution();
+ }
+ PotAndAbsEncoderConstants climber_left;
+ PotAndAbsEncoderConstants climber_right;
+
+ static constexpr ::frc971::constants::Range kClimberRange() {
+ return ::frc971::constants::Range{
+ .lower_hard = -0.01, // Back Hard
+ .upper_hard = 0.59, // Front Hard
+ .lower = 0.003, // Back Soft
+ .upper = 0.555 // Front Soft
+ };
+ }
};
// Creates and returns a Values instance for the constants.