Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
67bf3ddadb | ||
|
|
ce5183da38 | ||
|
|
6407131a00 |
@@ -31,4 +31,3 @@ creaturedex.wiki/
|
||||
# KiCad
|
||||
*.zip
|
||||
*.lck
|
||||
schematics/.history/
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
"vias": 1.0,
|
||||
"zones": 0.6
|
||||
},
|
||||
"prototype_zone_fills": false,
|
||||
"selection_filter": {
|
||||
"dimensions": true,
|
||||
"footprints": true,
|
||||
@@ -55,7 +54,6 @@
|
||||
"zone_display_mode": 0
|
||||
},
|
||||
"git": {
|
||||
"integration_disabled": false,
|
||||
"repo_type": "",
|
||||
"repo_username": "",
|
||||
"ssh_key": ""
|
||||
@@ -75,7 +73,6 @@
|
||||
"filter_text": "",
|
||||
"group_by_constraint": false,
|
||||
"group_by_netclass": false,
|
||||
"show_time_domain_details": false,
|
||||
"show_unconnected_nets": false,
|
||||
"show_zero_pad_nets": false,
|
||||
"sort_ascending": true,
|
||||
@@ -86,7 +83,6 @@
|
||||
"files": []
|
||||
},
|
||||
"schematic": {
|
||||
"hierarchy_collapsed": [],
|
||||
"selection_filter": {
|
||||
"graphics": true,
|
||||
"images": true,
|
||||
@@ -94,7 +90,6 @@
|
||||
"lockedItems": false,
|
||||
"otherItems": true,
|
||||
"pins": true,
|
||||
"ruleAreas": true,
|
||||
"symbols": true,
|
||||
"text": true,
|
||||
"wires": true
|
||||
|
||||
@@ -10,28 +10,17 @@
|
||||
"via_dimensions": []
|
||||
},
|
||||
"ipc2581": {
|
||||
"bom_rev": "",
|
||||
"dist": "",
|
||||
"distpn": "",
|
||||
"internal_id": "",
|
||||
"mfg": "",
|
||||
"mpn": "",
|
||||
"sch_revision": ""
|
||||
"mpn": ""
|
||||
},
|
||||
"layer_pairs": [],
|
||||
"layer_presets": [],
|
||||
"viewports": []
|
||||
},
|
||||
"boards": [],
|
||||
"component_class_settings": {
|
||||
"assignments": [],
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"sheet_component_classes": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
"cvpcb": {
|
||||
"equivalence_files": []
|
||||
},
|
||||
@@ -221,14 +210,11 @@
|
||||
"duplicate_sheet_names": "error",
|
||||
"endpoint_off_grid": "warning",
|
||||
"extra_units": "error",
|
||||
"field_name_whitespace": "warning",
|
||||
"footprint_filter": "ignore",
|
||||
"footprint_link_issues": "warning",
|
||||
"four_way_junction": "ignore",
|
||||
"global_label_dangling": "warning",
|
||||
"ground_pin_not_ground": "warning",
|
||||
"hier_label_mismatch": "error",
|
||||
"isolated_pin_label": "warning",
|
||||
"label_dangling": "error",
|
||||
"label_multiple_wires": "warning",
|
||||
"lib_symbol_issues": "warning",
|
||||
@@ -251,7 +237,6 @@
|
||||
"similar_power": "warning",
|
||||
"simulation_model_issue": "ignore",
|
||||
"single_global_label": "ignore",
|
||||
"stacked_pin_name": "warning",
|
||||
"unannotated": "error",
|
||||
"unconnected_wire_endpoint": "warning",
|
||||
"undefined_netclass": "error",
|
||||
@@ -284,14 +269,13 @@
|
||||
"priority": 2147483647,
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.2,
|
||||
"tuning_profile": "",
|
||||
"via_diameter": 0.6,
|
||||
"via_drill": 0.3,
|
||||
"wire_width": 6
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"version": 5
|
||||
"version": 4
|
||||
},
|
||||
"net_colors": null,
|
||||
"netclass_assignments": null,
|
||||
@@ -313,10 +297,6 @@
|
||||
},
|
||||
"schematic": {
|
||||
"annotate_start_num": 0,
|
||||
"annotation": {
|
||||
"method": 0,
|
||||
"sort_order": 0
|
||||
},
|
||||
"bom_export_filename": "${PROJECTNAME}.csv",
|
||||
"bom_fmt_presets": [],
|
||||
"bom_fmt_settings": {
|
||||
@@ -388,7 +368,6 @@
|
||||
"sort_asc": true,
|
||||
"sort_field": "Reference"
|
||||
},
|
||||
"bus_aliases": {},
|
||||
"connection_grid_size": 50.0,
|
||||
"drawing": {
|
||||
"dashed_lines_dash_length_ratio": 12.0,
|
||||
@@ -396,7 +375,6 @@
|
||||
"default_line_thickness": 6.0,
|
||||
"default_text_size": 50.0,
|
||||
"field_names": [],
|
||||
"hop_over_size_choice": 0,
|
||||
"intersheets_ref_own_page": false,
|
||||
"intersheets_ref_prefix": "",
|
||||
"intersheets_ref_short": false,
|
||||
@@ -420,7 +398,6 @@
|
||||
"net_format_name": "",
|
||||
"page_layout_descr_file": "",
|
||||
"plot_directory": "",
|
||||
"reuse_designators": true,
|
||||
"space_save_all_events": true,
|
||||
"spice_current_sheet_as_root": false,
|
||||
"spice_external_command": "spice \"%I\"",
|
||||
@@ -429,28 +406,13 @@
|
||||
"spice_save_all_dissipations": false,
|
||||
"spice_save_all_voltages": false,
|
||||
"subpart_first_id": 65,
|
||||
"subpart_id_separator": 0,
|
||||
"top_level_sheets": [
|
||||
{
|
||||
"filename": "creaturedex.kicad_sch",
|
||||
"name": "creaturedex",
|
||||
"uuid": "f0cf9cac-01dc-4071-b72f-ebf42dbd12d6"
|
||||
}
|
||||
],
|
||||
"used_designators": "",
|
||||
"variants": []
|
||||
"subpart_id_separator": 0
|
||||
},
|
||||
"sheets": [
|
||||
[
|
||||
"f0cf9cac-01dc-4071-b72f-ebf42dbd12d6",
|
||||
"creaturedex"
|
||||
"Root"
|
||||
]
|
||||
],
|
||||
"text_variables": {},
|
||||
"tuning_profiles": {
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"tuning_profiles_impedance_geometric": []
|
||||
}
|
||||
"text_variables": {}
|
||||
}
|
||||
|
||||
+240
-802
File diff suppressed because it is too large
Load Diff
+2
-14
@@ -30,7 +30,7 @@ use embedded_hal_bus::i2c::AtomicDevice;
|
||||
use embedded_hal_bus::util::AtomicCell;
|
||||
use esp_hal::Blocking;
|
||||
use esp_hal::clock::CpuClock;
|
||||
use esp_hal::gpio::{Input, InputConfig, Level, Output, OutputConfig, Pull};
|
||||
use esp_hal::gpio::{Input, InputConfig, Pull};
|
||||
use esp_hal::i2c::master::{Config as I2cConfig, I2c};
|
||||
use esp_hal::timer::timg::TimerGroup;
|
||||
use log::error;
|
||||
@@ -74,22 +74,10 @@ async fn main(spawner: Spawner) {
|
||||
peripherals.GPIO37, // miso
|
||||
peripherals.GPIO11, // primary cs
|
||||
peripherals.GPIO13, // oled cs
|
||||
peripherals.GPIO10, // primary reset
|
||||
peripherals.GPIO47, // secondary reset
|
||||
peripherals.GPIO10, // shared reset
|
||||
peripherals.GPIO12, // shared dc
|
||||
)));
|
||||
|
||||
let _secondary_oled_cs_2 = Output::new(
|
||||
peripherals.GPIO14,
|
||||
Level::High,
|
||||
OutputConfig::default(),
|
||||
);
|
||||
let _secondary_oled_cs_3 = Output::new(
|
||||
peripherals.GPIO21,
|
||||
Level::High,
|
||||
OutputConfig::default(),
|
||||
);
|
||||
|
||||
let config = I2cConfig::default().with_frequency(esp_hal::time::Rate::from_khz(400));
|
||||
let i2c = match I2c::new(peripherals.I2C0, config) {
|
||||
Ok(bus) => bus
|
||||
|
||||
+8
-10
@@ -225,7 +225,7 @@ pub struct Sprite {
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct Card {
|
||||
pub uuid: u32,
|
||||
pub uuid: String,
|
||||
pub event: Events,
|
||||
pub cardtype: CardType,
|
||||
pub name: String,
|
||||
@@ -241,16 +241,14 @@ pub struct Card {
|
||||
impl<'a> TryFrom<RawCard> for Card {
|
||||
type Error = &'static str;
|
||||
|
||||
fn try_from(raw_card: RawCard) -> Result<Self, Self::Error> {
|
||||
let uuid: u32 = (u16::from_ne_bytes(raw_card.event_encoding) as u32) << 16
|
||||
| (u16::from_ne_bytes(raw_card.card_uuid) as u32);
|
||||
|
||||
let event = decode_known_event(&raw_card.event_encoding);
|
||||
let cardtype = CardType::from(raw_card.card_type);
|
||||
let (name, trait1, trait2, trait3) = decode_packed_card_text(&raw_card.packed_card_text);
|
||||
let secret = decode_secret(&raw_card.secret);
|
||||
fn try_from(payload: RawCard) -> Result<Self, Self::Error> {
|
||||
let uuid: String = "empty for now".into(); //str::from_utf8(payload.card_uuid).unwrap().into();
|
||||
let event = decode_known_event(&payload.event_encoding);
|
||||
let cardtype = CardType::from(payload.card_type);
|
||||
let (name, trait1, trait2, trait3) = decode_packed_card_text(&payload.packed_card_text);
|
||||
let secret = decode_secret(&payload.secret);
|
||||
let sprite = Sprite {
|
||||
data: raw_card.sprite.to_vec(),
|
||||
data: payload.sprite.to_vec(),
|
||||
};
|
||||
Ok(Self {
|
||||
uuid,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
use crate::display::primary_lcd::{PrimaryLcdDisplay, init_primary_lcd_on_bus};
|
||||
use alloc::boxed::Box;
|
||||
use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
|
||||
use embedded_hal::digital::ErrorType;
|
||||
@@ -11,7 +12,6 @@ use esp_hal::spi::master::{Config as SpiConfig, Spi};
|
||||
use esp_hal::time::Rate;
|
||||
|
||||
use crate::display::secondary_oled::{SecondaryOledDisplay, init_secondary_oled_on_bus};
|
||||
use crate::display::primary_lcd::{PrimaryLcdDisplay, init_primary_lcd_on_bus};
|
||||
|
||||
use core::cell::RefCell;
|
||||
use embassy_sync::blocking_mutex::Mutex as BlockingMutex;
|
||||
@@ -52,15 +52,14 @@ pub type DualPrimaryDisplay<'a> =
|
||||
pub type DualSecondaryDisplay<'a> =
|
||||
SecondaryOledDisplay<'a, DisplaySpiBus, SharedPin<'a, Output<'a>>, SharedPin<'a, Output<'a>>>;
|
||||
|
||||
pub fn init_dual_displays<SPI, SCK, MOSI, MISO, CS1, CS2, RES1, RES2, DC>(
|
||||
pub fn init_dual_displays<SPI, SCK, MOSI, MISO, CS1, CS2, RES, DC>(
|
||||
spi_peripheral: SPI,
|
||||
sck: SCK,
|
||||
mosi: MOSI,
|
||||
miso: MISO,
|
||||
cs_primary: CS1,
|
||||
cs_secondary: CS2,
|
||||
reset_primary: RES1,
|
||||
reset_secondary: RES2,
|
||||
reset_pin: RES,
|
||||
dc_pin: DC,
|
||||
) -> (DualPrimaryDisplay<'static>, DualSecondaryDisplay<'static>)
|
||||
where
|
||||
@@ -70,8 +69,7 @@ where
|
||||
MISO: PeripheralInput<'static>,
|
||||
CS1: OutputPin + 'static,
|
||||
CS2: OutputPin + 'static,
|
||||
RES1: OutputPin + 'static,
|
||||
RES2: OutputPin + 'static,
|
||||
RES: OutputPin + 'static,
|
||||
DC: OutputPin + 'static,
|
||||
{
|
||||
let spi = Spi::new(
|
||||
@@ -86,17 +84,15 @@ where
|
||||
.with_miso(miso);
|
||||
|
||||
let bus_static: &'static AtomicCell<_> = Box::leak(Box::new(AtomicCell::new(spi)));
|
||||
let reset_primary_static =
|
||||
SharedPin::pre_wrap(Output::new(reset_primary, Level::High, OutputConfig::default()));
|
||||
let reset_secondary_static =
|
||||
SharedPin::pre_wrap(Output::new(reset_secondary, Level::High, OutputConfig::default()));
|
||||
let reset_static =
|
||||
SharedPin::pre_wrap(Output::new(reset_pin, Level::High, OutputConfig::default()));
|
||||
let dc_static = SharedPin::pre_wrap(Output::new(dc_pin, Level::High, OutputConfig::default()));
|
||||
let mut delay = Delay::new();
|
||||
|
||||
let primary = init_primary_lcd_on_bus(
|
||||
bus_static,
|
||||
cs_primary,
|
||||
SharedPin::new(reset_primary_static),
|
||||
SharedPin::new(reset_static),
|
||||
SharedPin::new(dc_static),
|
||||
&mut delay,
|
||||
);
|
||||
@@ -104,7 +100,7 @@ where
|
||||
let secondary = init_secondary_oled_on_bus(
|
||||
bus_static,
|
||||
cs_secondary,
|
||||
SharedPin::new(reset_secondary_static),
|
||||
SharedPin::new(reset_static),
|
||||
SharedPin::new(dc_static),
|
||||
&mut delay,
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user