├── LICENSE ├── README.md ├── firmware └── hardware_test │ ├── README.md │ ├── hardware_test.ino │ ├── io_abstraction.cpp │ ├── io_abstraction.h │ ├── mcp23008.cpp │ ├── mcp23008.h │ ├── mux_control.cpp │ ├── mux_control.h │ ├── networking.cpp │ ├── networking.h │ ├── supervisor.cpp │ └── supervisor.h ├── hardware ├── dut.sch ├── hardware.kicad_pcb ├── hardware.pro ├── hardware.sch ├── output │ ├── arena-BOM.html │ ├── arena-pcb.pdf │ ├── arena-sch.pdf │ ├── board-bottom.png │ ├── board-top.png │ └── manf_export │ │ ├── hardware-B_Cu.gbr │ │ ├── hardware-B_Mask.gbr │ │ ├── hardware-B_Paste.gbr │ │ ├── hardware-B_SilkS.gbr │ │ ├── hardware-Edge_Cuts.gbr │ │ ├── hardware-F_Cu.gbr │ │ ├── hardware-F_Mask.gbr │ │ ├── hardware-F_Paste.gbr │ │ ├── hardware-F_SilkS.gbr │ │ ├── hardware-In1_Cu.gbr │ │ ├── hardware-In2_Cu.gbr │ │ ├── hardware-NPTH-drl_map.ps │ │ ├── hardware-NPTH.drl │ │ ├── hardware-PTH-drl_map.ps │ │ └── hardware-PTH.drl ├── serial_matrix.bak ├── serial_matrix.sch ├── supervisor.bak ├── supervisor.sch ├── usb_input.sch └── usb_serial.sch ├── images └── pcb-annotated.jpg └── scripts ├── board_provision.sh └── probe_adapters.sh /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Scott Rapson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Electric UI CI Arena 2 | Hardware for continuous integration testing of serial interfaces and microcontrollers. [Background and more detailed discussion outlined in this blog post](https://electricui.com/blog/hardware-testing). 3 | 4 | ![PCB Render with annotations](images/pcb-annotated.jpg) 5 | 6 | The board (KiCAD files in `/hardware`) exposes control to a CI build worker to power up any of the USB-UART adaptors in either loopback mode, or connected to any **one** of the hardware targets for a total test matrix of 72 combinations. 7 | 8 | Intended to run tests for hot-plug detection (by controlling the mux or USB power control), disconnection handling (by re-routing serial to the void) and to validate a wide range of microcontroller architectures and their corresponding toolchains. 9 | 10 | ## USB to UART Validation 11 | 12 | Up to 8 USB ports are provided behind a USB mux from the host. 13 | 14 | Individual power switching is available per-port, with optional routing of the USB-UART adaptor's serial lines to either loop-back, or to one of the target microcontrollers. 15 | 16 | The following adaptors are used as test adaptors: 17 | 18 | - [FT232RQ](https://www.sparkfun.com/products/9717) 19 | - PL2303 20 | - [CP2012](https://www.adafruit.com/product/954) 21 | - CH340G 22 | 23 | In the future, we hope to add Bluetooth/WiFi adaptors for wireless tests against compatible targets. 24 | 25 | ## Microcontroller Validation 26 | 27 | 8 power-switched targets are supported with connections to hardware serial. The [Adafruit Feather specification](https://learn.adafruit.com/adafruit-feather/feather-specification) is used, as a majority of planned targets are available in Feather format. 28 | 29 | The following boards are used as test devices: 30 | 31 | - [ATMEL 328P](https://www.adafruit.com/product/3458) 32 | - [ATMEL SAMD21G](https://www.adafruit.com/product/2772) 33 | - [ST STM32F405](https://www.adafruit.com/product/4382) with CubeHAL 34 | - [Nordic nRF52840](https://www.adafruit.com/product/4516) 35 | - [RISC-V FE310](https://www.sparkfun.com/products/15799) with Zephyr RTOS 36 | - [Ambiq Apollo3 ARM-M4F (Sparkfun Artemis)](https://www.sparkfun.com/products/15574) 37 | - [Espressif ESP32](https://www.sparkfun.com/products/15663) with ESP-IDF 38 | - [Teensy 3.2](https://www.pjrc.com/store/teensy32.html) & [Teensy-Feather adaptor](https://www.adafruit.com/product/3200) with Arduino 39 | 40 | Test hardware will be flashed with a mix of native 'bare metal' images, and at least one target will act as validation of the Arduino framework. 41 | 42 | When populating the test Feather boards with headers, use 'stacking' headers to allow for future sensor/display additions to targets. 43 | 44 | ## Supervisory Control 45 | 46 | An additional Feather is provided to act as the supervisor. This connects to the CI server using a [ethernet featherwing](https://www.adafruit.com/product/3201). 47 | 48 | The supervisor (through I2C expanders) controls power switches to each of the serial adaptors and test devices, and has 2 IO lines to each microcontroller to allow for input/output checks. 49 | 50 | An analog line is shared across all modules, with the intent of using the supervisor's DAC output, allowing additional tests. 51 | 52 | Firmware is in `/firmware` 53 | 54 | # Manufacture 55 | 56 | - I used JLPCB's 4-layer JLC7628 controlled impedance process. 57 | - No stencil was ordered, as 2 units with low SMD part count is easy enough to paste by hand. 58 | - All components were available from Digikey. 59 | - Microcontroller targets were bought from Sparkfun and Adafruit (via Digikey) 60 | - Assembled per board costs just under $100AUD. 61 | - Loaded price (with listed microcontrollers, USB-serial adaptors, supervisor w ethernet) approx $500AUD. 62 | 63 | See `/hardware/output/arena-BOM.html` for PCB BOM. 64 | 65 | -------------------------------------------------------------------------------- /firmware/hardware_test/README.md: -------------------------------------------------------------------------------- 1 | # Arduino Firmware Notes 2 | 3 | Written against a [Adafruit ESP32 Feather](https://www.adafruit.com/product/3405), and [Adafruit Ethernet Featherwing](https://www.adafruit.com/product/3201) with the backplane PCB in this repo. 4 | 5 | A reasonably thin GPIO abstraction layer maps enum named pins to the expander and pin on the board. 6 | 7 | 8 | ## Fimware Deps 9 | 10 | A from-scratch driver for the MCP23008 I2C expanders is included in the sources instead of pulling a 3rd party one. 11 | 12 | All 3rd party dependancies are for networking. 13 | 14 | ### Ethernet 15 | 16 | The ethernet Featherwing uses the [Arduino `Ethernet` library](https://github.com/arduino-libraries/Ethernet) which can be installed through the Arduino IDE board manager. 17 | 18 | Due to an upstream `esp32-arduino-core` [change](https://github.com/arduino-libraries/Ethernet/issues/88), `EthernetServer` fails to build with the following error: 19 | 20 | ``` 21 | error: cannot declare variable 'server' to be of abstract type 'EthernetServer' 22 | ``` 23 | 24 | I applied the changes [outlined in this open PR](https://github.com/arduino-libraries/Ethernet/pull/107/commits/81c2ce0c6922fc984703bf3adeacaf73bcc3f578). 25 | 26 | ### mDNS / Bonjour 27 | 28 | Uses the [EthernetBonjour](https://github.com/TrippyLighting/EthernetBonjour) library. 29 | 30 | ### HTTP/REST 31 | 32 | This [HTTPserver](https://github.com/nickgammon/HTTPserver) library makes handling the REST style API a bit less painful. 33 | 34 | ### Config Storage 35 | 36 | User-configurable settings are maintained on the ESP32 supervisor micro using `Preferences.h` which is provided alongside the rest of the ESP32 hal. 37 | 38 | # API Documentation 39 | 40 | Valid requests will return as `200 OK`, with relevant text in the body, typically echoing the request. 41 | 42 | If an invalid request is made, a `500 Internal Server Error` will be returned with some debug text in the body. 43 | 44 | All data for GET or POST is assumed to be string formatted. 45 | 46 | ## Requests 47 | 48 | Purely used to query the board for information. 49 | 50 | | GET URL | Description | Response | 51 | | --------------------------- | ---------------------------------------------------- | ------------------------------------------------------------ | 52 | | `arena.local/loopback?` | Serial Matrix Loopback enabled | `true`/`false` | 53 | | `arena.local/adapter?` | List the stored human-friendly USB adapters | `a, ftdi`
`b, cp2012`
...
`h, pl232` | 54 | | `arena.local/adapter?b` | Human-friendly name of a specified adapter | `ch340` | 55 | | `arena.local/adapter?ch340` | Board labelled name of a human-readable adapter name | `b` | 56 | | `arena.local/target?` | List the stored human-friendly device names | `1, riscv`
`2, stm32`
...
`8, avr` | 57 | | `arena.local/target?2` | Human-friendly name of a specified target | `stm32` | 58 | | `arena.local/target?stm32` | Board labelled name of a human-readable target name | `2` | 59 | | `arena.local/config?name` | Get the name of the test board | `Arena Testbed` as default, otherwise a string as configured. | 60 | 61 | ## Control 62 | 63 | HTTP POST are used to set the active adapter, target, and loopback mode. The data/payload is assumed to be string formatted. 64 | 65 | When setting a target or adapter, the firmware will automatically setup the relevant side of the USB mux, power control, and serial matrix routing as required. 66 | 67 | | POST URL | Data | Description | Response | 68 | | ---------------------- | ----------- | ----------------------------------------------------------- | ------------------ | 69 | | `arena.local/adapter` | `ft232` | Select the active USB Serial adapter by human-readable name | `ft232` | 70 | | `arena.local/adapter` | `a` | Select the active USB Serial adapter by board-label | `a` | 71 | | `arena.local/adapter` | `a=ft232` | Sets the human-readable name of `a` to `ft232` | `Adapter name set` | 72 | | `arena.local/target` | `stm32` | Select the active test device by human-readable name | `stm32` | 73 | | `arena.local/target` | `3` | Select the active test device by board-label | `3` | 74 | | `arena.local/target` | `1=riscv` | Sets the human-readable name of `1` to `riscv` | `Device name set` | 75 | | `arena.local/loopback` | `true` | Enable the serial loopback switch | `true` | 76 | | `arena.local/loopback` | `false` | Disable the serial loopback switch | `false` | 77 | | `arena.local/config` | `name=Dave` | Sets the board's name to `Dave` | `Board name set` | 78 | 79 | ## Examples 80 | 81 | - Select the 8th target device: `curl -X POST http://arena.local/target -d 8` 82 | 83 | - Select a target called stm32: `curl -X POST http://arena.local/target -d stm32` 84 | 85 | - Configure the human-readable name for the 2nd target to be `teensy`: `curl -X POST http://arena.local/target -d 2=teensy` -------------------------------------------------------------------------------- /firmware/hardware_test/hardware_test.ino: -------------------------------------------------------------------------------- 1 | #include "io_abstraction.h" 2 | #include "mux_control.h" 3 | #include "networking.h" 4 | #include "supervisor.h" 5 | 6 | #define PIN_LED_ONBOARD 13 7 | #define PIN_BUTTON_0 27 8 | #define PIN_BUTTON_1 12 9 | 10 | #define PIN_MCP23008_INT 32 11 | #define PIN_MCP23008_RESET 14 12 | 13 | #define BUTTON_DEBOUNCE_MS 30 14 | 15 | bool button_0_pressed = 0; 16 | bool button_1_pressed = 0; 17 | uint32_t button_0_timestamp = 0; 18 | uint32_t button_1_timestamp = 0; 19 | 20 | void IRAM_ATTR button_0_isr() 21 | { 22 | button_0_pressed = true; 23 | button_0_timestamp = millis(); 24 | } 25 | 26 | void IRAM_ATTR button_1_isr() 27 | { 28 | button_1_pressed = true; 29 | button_1_timestamp = millis(); 30 | } 31 | 32 | void setup_pins( void ) 33 | { 34 | pinMode(PIN_LED_ONBOARD, OUTPUT); 35 | digitalWrite(PIN_LED_ONBOARD, HIGH); 36 | 37 | pinMode(PIN_BUTTON_0, INPUT_PULLUP); 38 | pinMode(PIN_BUTTON_1, INPUT_PULLUP); 39 | 40 | attachInterrupt( digitalPinToInterrupt(PIN_BUTTON_0), button_0_isr, FALLING ); 41 | attachInterrupt( digitalPinToInterrupt(PIN_BUTTON_1), button_1_isr, FALLING ); 42 | 43 | pinMode(PIN_MCP23008_RESET, OUTPUT); 44 | digitalWrite(PIN_MCP23008_RESET, HIGH); // Ensure the IO expanders aren't held in reset 45 | pinMode(PIN_MCP23008_INT, INPUT); 46 | } 47 | 48 | 49 | void setup( void ) 50 | { 51 | Serial.begin(115200); 52 | 53 | setup_pins(); 54 | io_abstraction_setup_pins(); 55 | 56 | supervisor_load_configuration(); 57 | setup_ethernet(); 58 | 59 | } 60 | 61 | void loop( void ) 62 | { 63 | handle_ethernet(); 64 | handle_button(); 65 | } 66 | 67 | 68 | void handle_button( void ) 69 | { 70 | if( button_0_pressed ) 71 | { 72 | if( digitalRead(PIN_BUTTON_0) == LOW ) 73 | { 74 | if( millis() - button_0_timestamp >= BUTTON_DEBOUNCE_MS ) 75 | { 76 | button_0_timestamp = millis(); 77 | button_0_pressed = false; 78 | supervisor_user_change_adapter(); 79 | } 80 | } 81 | else 82 | { 83 | button_0_pressed = false; 84 | } 85 | } 86 | 87 | if( button_1_pressed ) 88 | { 89 | if( digitalRead(PIN_BUTTON_1) == LOW ) 90 | { 91 | if( millis() - button_1_timestamp >= BUTTON_DEBOUNCE_MS ) 92 | { 93 | button_1_timestamp = millis(); 94 | button_1_pressed = false; 95 | 96 | supervisor_user_change_target(); 97 | } 98 | } 99 | else 100 | { 101 | button_1_pressed = false; 102 | } 103 | 104 | } 105 | } -------------------------------------------------------------------------------- /firmware/hardware_test/io_abstraction.cpp: -------------------------------------------------------------------------------- 1 | #include "io_abstraction.h" 2 | #include "mcp23008.h" 3 | 4 | #include "Wire.h" 5 | 6 | /* -------------------------------------------------------------------------- */ 7 | 8 | #define PIN_MCP23008_SDA 23 9 | #define PIN_MCP23008_SCL 22 10 | 11 | /* -------------------------------------------------------------------------- */ 12 | 13 | // MCP23008 I2C Expanders as listed in schematic 14 | typedef enum 15 | { 16 | _EXPANDER_U2 = 0, 17 | _EXPANDER_U3, 18 | _EXPANDER_U5, 19 | _EXPANDER_U6, 20 | _EXPANDER_U7, 21 | _EXPANDER_U8, 22 | _NUM_EXPANDERS, 23 | } MCP23008_NAMES; 24 | 25 | const uint8_t mcp23008_address[ _NUM_EXPANDERS ] = 26 | { 27 | [ _EXPANDER_U2 ] = 0x21, // b0100001 28 | [ _EXPANDER_U3 ] = 0x20, // b0100000 29 | [ _EXPANDER_U5 ] = 0x23, // b0100011 30 | [ _EXPANDER_U6 ] = 0x24, // b0100100 31 | [ _EXPANDER_U7 ] = 0x25, // b0100101 32 | [ _EXPANDER_U8 ] = 0x22, // b0100010 33 | }; 34 | 35 | /* -------------------------------------------------------------------------- */ 36 | 37 | typedef struct { 38 | uint8_t expander; 39 | uint8_t pin; 40 | } ExternalIOPin_t; 41 | 42 | const ExternalIOPin_t pins[ _NUM_IO ] = 43 | { 44 | [ _IO_STATUS_RED ] = { .expander = _EXPANDER_U3, .pin = 0 }, 45 | [ _IO_STATUS_YELLOW ] = { .expander = _EXPANDER_U3, .pin = 1 }, 46 | [ _IO_STATUS_GREEN ] = { .expander = _EXPANDER_U3, .pin = 2 }, 47 | 48 | [ _IO_USB_ENABLE ] = { .expander = _EXPANDER_U3, .pin = 7 }, 49 | [ _IO_USB_C0 ] = { .expander = _EXPANDER_U3, .pin = 6 }, 50 | [ _IO_USB_C1 ] = { .expander = _EXPANDER_U3, .pin = 5 }, 51 | [ _IO_USB_C2 ] = { .expander = _EXPANDER_U3, .pin = 4 }, 52 | 53 | [ _IO_MATRIX_COLLAPSE_ENABLE ] = { .expander = _EXPANDER_U8, .pin = 0 }, 54 | [ _IO_MATRIX_COLLAPSE_A ] = { .expander = _EXPANDER_U8, .pin = 1 }, 55 | [ _IO_MATRIX_COLLAPSE_B ] = { .expander = _EXPANDER_U8, .pin = 2 }, 56 | [ _IO_MATRIX_COLLAPSE_C ] = { .expander = _EXPANDER_U8, .pin = 3 }, 57 | 58 | [ _IO_MATRIX_EXPAND_ENABLE ] = { .expander = _EXPANDER_U8, .pin = 7 }, 59 | [ _IO_MATRIX_EXPAND_A ] = { .expander = _EXPANDER_U8, .pin = 6 }, 60 | [ _IO_MATRIX_EXPAND_B ] = { .expander = _EXPANDER_U8, .pin = 5 }, 61 | [ _IO_MATRIX_EXPAND_C ] = { .expander = _EXPANDER_U8, .pin = 4 }, 62 | 63 | [ _IO_MATRIX_LOOPBACK ] = { .expander = _EXPANDER_U3, .pin = 3 }, 64 | 65 | [ _IO_PWR_USB_A ] = { .expander = _EXPANDER_U2, .pin = 0 }, 66 | [ _IO_PWR_USB_B ] = { .expander = _EXPANDER_U2, .pin = 2 }, 67 | [ _IO_PWR_USB_C ] = { .expander = _EXPANDER_U2, .pin = 4 }, 68 | [ _IO_PWR_USB_D ] = { .expander = _EXPANDER_U2, .pin = 6 }, 69 | [ _IO_PWR_USB_E ] = { .expander = _EXPANDER_U2, .pin = 1 }, 70 | [ _IO_PWR_USB_F ] = { .expander = _EXPANDER_U2, .pin = 3 }, 71 | [ _IO_PWR_USB_G ] = { .expander = _EXPANDER_U2, .pin = 5 }, 72 | [ _IO_PWR_USB_H ] = { .expander = _EXPANDER_U2, .pin = 7 }, 73 | 74 | [ _IO_PWR_DUT_1 ] = { .expander = _EXPANDER_U5, .pin = 7 }, 75 | [ _IO_PWR_DUT_2 ] = { .expander = _EXPANDER_U6, .pin = 7 }, 76 | [ _IO_PWR_DUT_3 ] = { .expander = _EXPANDER_U6, .pin = 3 }, 77 | [ _IO_PWR_DUT_4 ] = { .expander = _EXPANDER_U7, .pin = 5 }, 78 | [ _IO_PWR_DUT_5 ] = { .expander = _EXPANDER_U5, .pin = 2 }, 79 | [ _IO_PWR_DUT_6 ] = { .expander = _EXPANDER_U5, .pin = 4 }, 80 | [ _IO_PWR_DUT_7 ] = { .expander = _EXPANDER_U6, .pin = 2 }, 81 | [ _IO_PWR_DUT_8 ] = { .expander = _EXPANDER_U7, .pin = 2 }, 82 | 83 | [ _IO_STIM_DUT_1_A ] = { .expander = _EXPANDER_U5, .pin = 6 }, 84 | [ _IO_STIM_DUT_1_B ] = { .expander = _EXPANDER_U5, .pin = 5 }, 85 | [ _IO_STIM_DUT_2_A ] = { .expander = _EXPANDER_U6, .pin = 6 }, 86 | [ _IO_STIM_DUT_2_B ] = { .expander = _EXPANDER_U6, .pin = 5 }, 87 | [ _IO_STIM_DUT_3_A ] = { .expander = _EXPANDER_U7, .pin = 7 }, 88 | [ _IO_STIM_DUT_3_B ] = { .expander = _EXPANDER_U7, .pin = 6 }, 89 | [ _IO_STIM_DUT_4_A ] = { .expander = _EXPANDER_U7, .pin = 4 }, 90 | [ _IO_STIM_DUT_4_B ] = { .expander = _EXPANDER_U7, .pin = 3 }, 91 | [ _IO_STIM_DUT_5_A ] = { .expander = _EXPANDER_U5, .pin = 1 }, 92 | [ _IO_STIM_DUT_5_B ] = { .expander = _EXPANDER_U5, .pin = 0 }, 93 | [ _IO_STIM_DUT_6_A ] = { .expander = _EXPANDER_U5, .pin = 3 }, 94 | [ _IO_STIM_DUT_6_B ] = { .expander = _EXPANDER_U6, .pin = 4 }, 95 | [ _IO_STIM_DUT_7_A ] = { .expander = _EXPANDER_U6, .pin = 1 }, 96 | [ _IO_STIM_DUT_7_B ] = { .expander = _EXPANDER_U6, .pin = 0 }, 97 | [ _IO_STIM_DUT_8_A ] = { .expander = _EXPANDER_U7, .pin = 1 }, 98 | [ _IO_STIM_DUT_8_B ] = { .expander = _EXPANDER_U7, .pin = 0 }, 99 | }; 100 | 101 | /* -------------------------------------------------------------------------- */ 102 | 103 | void io_abstraction_setup_pins( void ) 104 | { 105 | Wire.begin( PIN_MCP23008_SDA, PIN_MCP23008_SCL ); // Specify pins for ESP32 106 | Wire.setClock(1700000); // 1.7MHz 107 | // Set the default mode for all of our expansion IO 108 | for( uint8_t i = 0; i < _NUM_IO; i++) 109 | { 110 | mcp23008_init(mcp23008_address[pins[i].expander], pins[i].pin, _MCP23008_MODE_OUTPUT, 0); 111 | } 112 | } 113 | 114 | /* -------------------------------------------------------------------------- */ 115 | 116 | void io_abstraction_write( EXP_IO_NAMES gpio, bool state ) 117 | { 118 | mcp23008_write_pin(mcp23008_address[pins[gpio].expander], pins[gpio].pin, state); 119 | } 120 | 121 | /* -------------------------------------------------------------------------- */ 122 | 123 | bool io_abstraction_read( EXP_IO_NAMES gpio ) 124 | { 125 | return mcp23008_read_pin(mcp23008_address[pins[gpio].expander], pins[gpio].pin); 126 | } 127 | 128 | /* -------------------------------------------------------------------------- */ 129 | 130 | void io_status_red( bool on ) 131 | { 132 | io_abstraction_write(_IO_STATUS_RED, on); 133 | } 134 | 135 | void io_status_yellow( bool on ) 136 | { 137 | io_abstraction_write(_IO_STATUS_YELLOW, on); 138 | } 139 | 140 | void io_status_green( bool on ) 141 | { 142 | io_abstraction_write(_IO_STATUS_GREEN, on); 143 | } 144 | 145 | /* -------------------------------------------------------------------------- */ 146 | -------------------------------------------------------------------------------- /firmware/hardware_test/io_abstraction.h: -------------------------------------------------------------------------------- 1 | // Reference our IO based on their human friendly enum name. 2 | // An array holds structured information about which IO expander and pin 3 | // the relevant item belongs to 4 | typedef enum 5 | { 6 | // Status LEDs 7 | _IO_STATUS_RED, 8 | _IO_STATUS_YELLOW, 9 | _IO_STATUS_GREEN, 10 | 11 | // USB multiplexer control lines 12 | _IO_USB_ENABLE, 13 | _IO_USB_C0, 14 | _IO_USB_C1, 15 | _IO_USB_C2, 16 | 17 | // 8 USB adaptors fan-in to 1 serial bus 18 | _IO_MATRIX_COLLAPSE_ENABLE, // INHIBIT 19 | _IO_MATRIX_COLLAPSE_A, 20 | _IO_MATRIX_COLLAPSE_B, 21 | _IO_MATRIX_COLLAPSE_C, 22 | 23 | // 1 serial bus fans-out to 8 devices 24 | _IO_MATRIX_EXPAND_ENABLE, // INHIBIT 25 | _IO_MATRIX_EXPAND_A, 26 | _IO_MATRIX_EXPAND_B, 27 | _IO_MATRIX_EXPAND_C, 28 | 29 | // Control the loopback switch 30 | _IO_MATRIX_LOOPBACK, 31 | 32 | // Power control over USB adaptors 33 | _IO_PWR_USB_A, 34 | _IO_PWR_USB_B, 35 | _IO_PWR_USB_C, 36 | _IO_PWR_USB_D, 37 | _IO_PWR_USB_E, 38 | _IO_PWR_USB_F, 39 | _IO_PWR_USB_G, 40 | _IO_PWR_USB_H, 41 | 42 | // Power control over devices 43 | _IO_PWR_DUT_1, 44 | _IO_PWR_DUT_2, 45 | _IO_PWR_DUT_3, 46 | _IO_PWR_DUT_4, 47 | _IO_PWR_DUT_5, 48 | _IO_PWR_DUT_6, 49 | _IO_PWR_DUT_7, 50 | _IO_PWR_DUT_8, 51 | 52 | _IO_STIM_DUT_1_A, 53 | _IO_STIM_DUT_1_B, 54 | _IO_STIM_DUT_2_A, 55 | _IO_STIM_DUT_2_B, 56 | _IO_STIM_DUT_3_A, 57 | _IO_STIM_DUT_3_B, 58 | _IO_STIM_DUT_4_A, 59 | _IO_STIM_DUT_4_B, 60 | _IO_STIM_DUT_5_A, 61 | _IO_STIM_DUT_5_B, 62 | _IO_STIM_DUT_6_A, 63 | _IO_STIM_DUT_6_B, 64 | _IO_STIM_DUT_7_A, 65 | _IO_STIM_DUT_7_B, 66 | _IO_STIM_DUT_8_A, 67 | _IO_STIM_DUT_8_B, 68 | 69 | // That's all folks 70 | _NUM_IO, 71 | } EXP_IO_NAMES; 72 | 73 | /* -------------------------------------------------------------------------- */ 74 | 75 | void io_abstraction_setup_pins( void ); 76 | 77 | /* -------------------------------------------------------------------------- */ 78 | 79 | void io_abstraction_write( EXP_IO_NAMES gpio, bool state ); 80 | 81 | /* -------------------------------------------------------------------------- */ 82 | 83 | bool io_abstraction_read( EXP_IO_NAMES gpio ); 84 | 85 | /* -------------------------------------------------------------------------- */ 86 | 87 | void io_status_red( bool on ); 88 | void io_status_yellow( bool on ); 89 | void io_status_green( bool on ); 90 | 91 | /* -------------------------------------------------------------------------- */ 92 | -------------------------------------------------------------------------------- /firmware/hardware_test/mcp23008.cpp: -------------------------------------------------------------------------------- 1 | #include "mcp23008.h" 2 | 3 | #include "Arduino.h" 4 | #include 5 | 6 | /* ----- Defines ------------------------------------------------------------ */ 7 | 8 | /** WARNING **/ 9 | /** The register definitions below assume that the MCP23017 operates in 10 | * BANKED mode. The device needs to be configured for this mode with the 11 | * high bit set in the MCP23_REG_IOCON register. The device appears to 12 | * power up in a non-banked 16-bit mode where IOCON register is located 13 | * at address 0x0A. So a write to 0x0A with 0x80 is needed to get the device 14 | * in banked mode. 15 | */ 16 | 17 | #define MCP230XX_BASE_A (0x00) // MCP23008 & MCP23017 Regs A 18 | #define MCP230XX_BASE_B (0x10) // MCP23017 Regs B 19 | 20 | #define MCP23_REG_IODIR (0x00) 21 | #define MCP23_REG_IPOL (0x01) 22 | #define MCP23_REG_GPINTEN (0x02) 23 | #define MCP23_REG_DEFVAL (0x03) 24 | #define MCP23_REG_INTCON (0x04) 25 | #define MCP23_REG_IOCON (0x05) 26 | #define MCP23_REG_GPPU (0x06) 27 | #define MCP23_REG_INTF (0x07) 28 | #define MCP23_REG_INTCAP (0x08) 29 | #define MCP23_REG_GPIO (0x09) 30 | #define MCP23_REG_OLAT (0x0A) 31 | 32 | 33 | #ifndef _BV 34 | #define _BV(bit) (1UL<<(bit)) 35 | #endif 36 | 37 | /* -------------------------------------------------------------------------- */ 38 | 39 | static uint8_t 40 | mcp23008_register_write( const uint8_t i2c_address, 41 | const uint8_t i2c_register, 42 | const uint8_t i2c_value ); 43 | 44 | static uint8_t 45 | mcp23008_register_read( const uint8_t i2c_address, 46 | const uint8_t i2c_register ); 47 | 48 | static void 49 | mcp23008_init_as_input( const uint8_t addr, const uint8_t pin ); 50 | 51 | static void 52 | mcp23008_init_as_input_with_pullup( const uint8_t addr, const uint8_t pin ); 53 | 54 | static void 55 | mcp23008_init_as_output_pp( const uint8_t addr, const uint8_t pin, const bool initial_state ); 56 | 57 | /* -------------------------------------------------------------------------- */ 58 | 59 | /** Init the pin on a given port. Port must be an I2C device */ 60 | 61 | void 62 | mcp23008_init( const uint8_t addr, 63 | const uint8_t pin, 64 | const MCP23008_IO_MODES mode, 65 | const bool initial_state ) 66 | { 67 | switch( mode ) 68 | { 69 | case _MCP23008_MODE_INPUT: 70 | mcp23008_init_as_input( addr, pin ); 71 | break; 72 | 73 | case _MCP23008_MODE_INPUT_PU: 74 | mcp23008_init_as_input_with_pullup( addr, pin ); 75 | break; 76 | 77 | case _MCP23008_MODE_OUTPUT: 78 | mcp23008_init_as_output_pp( addr, pin, initial_state ); 79 | break; 80 | } 81 | } 82 | 83 | /* -------------------------------------------------------------------------- */ 84 | 85 | /** Return true when input pin is high, false when input is low */ 86 | 87 | bool 88 | mcp23008_read_pin( const uint8_t addr, 89 | const uint8_t pin ) 90 | { 91 | const uint8_t base = (pin <= 7) ? MCP230XX_BASE_A 92 | : MCP230XX_BASE_B; 93 | const uint8_t pin_mask = (pin <= 7) ? (uint8_t)_BV( pin ) 94 | : (uint8_t)_BV(pin - 8 ); 95 | 96 | uint8_t value = 0xFF; // Expect a valid return to change this to non-FF 97 | 98 | value = mcp23008_register_read( addr, (uint8_t)(base + MCP23_REG_GPIO) ); 99 | 100 | return ( value & pin_mask ) > 0; 101 | } 102 | 103 | /* -------------------------------------------------------------------------- */ 104 | 105 | /** Set output pin high when on = true, low when on = false */ 106 | 107 | void 108 | mcp23008_write_pin( const uint8_t addr, 109 | const uint8_t pin, 110 | const bool on ) 111 | { 112 | const uint8_t base = (pin <= 7) ? MCP230XX_BASE_A 113 | : MCP230XX_BASE_B; 114 | const uint8_t pin_mask = (pin <= 7) ? (uint8_t)_BV( pin ) 115 | : (uint8_t)_BV(pin - 8 ); 116 | 117 | uint8_t value = 0; 118 | value = mcp23008_register_read( addr, (uint8_t)(base + MCP23_REG_OLAT) ); 119 | 120 | if( on ) 121 | { 122 | value = (uint8_t)(value | pin_mask); 123 | } 124 | else 125 | { 126 | value = (uint8_t)(value & ~pin_mask); 127 | } 128 | 129 | mcp23008_register_write( addr, (uint8_t)(base + MCP23_REG_GPIO), value ); 130 | } 131 | 132 | /* -------------------------------------------------------------------------- */ 133 | 134 | /** Toggle the current output state */ 135 | 136 | void 137 | mcp23008_toggle_pin( const uint8_t addr, 138 | const uint8_t pin ) 139 | { 140 | bool state = mcp23008_read_pin( addr, pin ); 141 | mcp23008_write_pin( addr, pin, !state ); 142 | } 143 | 144 | 145 | /* -------------------------------------------------------------------------- */ 146 | 147 | 148 | /* -------------------------------------------------------------------------- */ 149 | 150 | /** Abstracts I2C register write operation from rest of driver */ 151 | 152 | static uint8_t 153 | mcp23008_register_write( const uint8_t i2c_address, 154 | const uint8_t i2c_register, 155 | const uint8_t i2c_value ) 156 | { 157 | Wire.beginTransmission( i2c_address ); 158 | Wire.write( i2c_register ); 159 | Wire.write( i2c_value ); 160 | Wire.endTransmission(); 161 | 162 | Wire.requestFrom( i2c_address, 1, true ); 163 | 164 | return Wire.read(); 165 | } 166 | 167 | /* -------------------------------------------------------------------------- */ 168 | 169 | /** Abstracts I2C register read operation from rest of driver */ 170 | 171 | static uint8_t 172 | mcp23008_register_read( const uint8_t i2c_address, 173 | const uint8_t i2c_register ) 174 | { 175 | uint8_t value = 0; 176 | 177 | Wire.beginTransmission( i2c_address ); 178 | Wire.write( i2c_register ); 179 | Wire.endTransmission(); 180 | 181 | Wire.requestFrom( i2c_address, 1, true ); 182 | value = Wire.read(); 183 | 184 | return value; 185 | } 186 | 187 | /* -------------------------------------------------------------------------- */ 188 | 189 | static void 190 | mcp23008_init_as_input( const uint8_t addr, 191 | const uint8_t pin ) 192 | { 193 | const uint8_t base = (pin <= 7) ? MCP230XX_BASE_A 194 | : MCP230XX_BASE_B; 195 | const uint8_t pin_mask = (pin <= 7) ? (uint8_t)_BV( pin ) 196 | : (uint8_t)_BV( pin - 8 ); 197 | 198 | uint8_t iodir = 0; 199 | iodir = mcp23008_register_read( addr, base + MCP23_REG_IODIR ); 200 | iodir |= pin_mask; /* IODIR bits as 1 are input */ 201 | mcp23008_register_write( addr, base + MCP23_REG_IODIR, iodir ); 202 | 203 | uint8_t gppu = 0; 204 | gppu = mcp23008_register_read( addr, (uint8_t)(base + MCP23_REG_GPPU) ); 205 | gppu = (uint8_t)(gppu & ~pin_mask); /* GPPU bits as 0 are without pull up */ 206 | mcp23008_register_write( addr, (uint8_t)(base + MCP23_REG_GPPU), gppu ); 207 | } 208 | 209 | /* -------------------------------------------------------------------------- */ 210 | 211 | static void 212 | mcp23008_init_as_input_with_pullup( const uint8_t addr, 213 | const uint8_t pin ) 214 | { 215 | const uint8_t base = (pin <= 7) ? MCP230XX_BASE_A 216 | : MCP230XX_BASE_B; 217 | const uint8_t pin_mask = (pin <= 7) ? (uint8_t)_BV( pin ) 218 | : (uint8_t)_BV( pin - 8 ); 219 | 220 | uint8_t iodir = 0; 221 | iodir = mcp23008_register_read( addr, base + MCP23_REG_IODIR ); 222 | iodir|= pin_mask; /* IODIR bits as 1 are input */ 223 | mcp23008_register_write( addr, base + MCP23_REG_IODIR, iodir ); 224 | 225 | uint8_t gppu = 0; 226 | gppu = mcp23008_register_read( addr, (uint8_t)(base + MCP23_REG_GPPU) ); 227 | gppu = (uint8_t)(gppu | pin_mask); /* GPPU bits as 1 are with pull up */ 228 | mcp23008_register_write( addr, (uint8_t)(base + MCP23_REG_GPPU), gppu ); 229 | } 230 | 231 | /* -------------------------------------------------------------------------- */ 232 | 233 | static void 234 | mcp23008_init_as_output_pp( const uint8_t addr, 235 | const uint8_t pin, 236 | const bool initial_state ) 237 | { 238 | const uint8_t base = (pin <= 7) ? MCP230XX_BASE_A 239 | : MCP230XX_BASE_B; 240 | const uint8_t pin_mask = (pin <= 7) ? (uint8_t)_BV( pin ) 241 | : (uint8_t)_BV( pin - 8 ); 242 | 243 | uint8_t iodir = 0; 244 | iodir = mcp23008_register_read( addr, (uint8_t)(base + MCP23_REG_IODIR) ); 245 | iodir = (uint8_t)(iodir & ~pin_mask); /* IODIR bits set to 0 are output */ 246 | mcp23008_register_write( addr, (uint8_t)(base + MCP23_REG_IODIR), iodir ); 247 | 248 | /* Set the pin to the specified starting state */ 249 | mcp23008_write_pin( addr, pin, initial_state ); 250 | } 251 | 252 | /* -------------------------------------------------------------------------- */ 253 | -------------------------------------------------------------------------------- /firmware/hardware_test/mcp23008.h: -------------------------------------------------------------------------------- 1 | #include "stdint.h" 2 | 3 | /* -------------------------------------------------------------------------- */ 4 | 5 | typedef enum 6 | { 7 | _MCP23008_MODE_INPUT = 0, 8 | _MCP23008_MODE_INPUT_PU, 9 | _MCP23008_MODE_OUTPUT, 10 | } MCP23008_IO_MODES; 11 | 12 | /* -------------------------------------------------------------------------- */ 13 | 14 | /** Init the pin on a given port. Port must be an I2C device */ 15 | 16 | void 17 | mcp23008_init( const uint8_t addr, 18 | const uint8_t pin, 19 | const MCP23008_IO_MODES mode, 20 | const bool initial_state ); 21 | 22 | /* -------------------------------------------------------------------------- */ 23 | 24 | /** Return true when input pin is high, false when input is low */ 25 | 26 | bool 27 | mcp23008_read_pin( const uint8_t addr, 28 | const uint8_t pin ); 29 | 30 | /* -------------------------------------------------------------------------- */ 31 | 32 | /** Set output pin high when on = true, low when on = false */ 33 | 34 | void 35 | mcp23008_write_pin( const uint8_t addr, 36 | const uint8_t pin, 37 | const bool on ); 38 | 39 | /* -------------------------------------------------------------------------- */ 40 | 41 | /** Toggle the current output state */ 42 | 43 | void 44 | mcp23008_toggle_pin( const uint8_t addr, 45 | const uint8_t pin ); 46 | 47 | /* -------------------------------------------------------------------------- */ 48 | -------------------------------------------------------------------------------- /firmware/hardware_test/mux_control.cpp: -------------------------------------------------------------------------------- 1 | #include "mux_control.h" 2 | #include "io_abstraction.h" 3 | #include "stdint.h" 4 | 5 | // USB Mux ports (order maps the labels against logical channels) 6 | typedef enum 7 | { 8 | _MUX_USB_H = 0, 9 | _MUX_USB_D, 10 | _MUX_USB_G, 11 | _MUX_USB_C, 12 | _MUX_USB_F, 13 | _MUX_USB_B, 14 | _MUX_USB_E, 15 | _MUX_USB_A, 16 | _NUM_MUX_OPTIONS, 17 | } USBPORT_MUX_MAP_NAMES; 18 | 19 | typedef enum 20 | { 21 | _MUX_DUT_1 = 0, 22 | _MUX_DUT_5, 23 | _MUX_DUT_6, 24 | _MUX_DUT_2, 25 | _MUX_DUT_7, 26 | _MUX_DUT_3, 27 | _MUX_DUT_4, 28 | _MUX_DUT_8, 29 | _NUM_MUX_DUT, 30 | } DUT_MUX_NAMES; 31 | 32 | /* -------------------------------------------------------------------------- */ 33 | 34 | USBPORT_MUX_MAP_NAMES 35 | usb_port_mux_mapping( USBPORT_NAMES port ); 36 | 37 | DUT_MUX_NAMES 38 | dut_port_mux_mapping( DUT_NAMES port ); 39 | 40 | /* -------------------------------------------------------------------------- */ 41 | 42 | // Configure the mux for the given USB port 43 | void 44 | select_usb_port( USBPORT_NAMES port ) 45 | { 46 | // the mux enum has the true 'order' of ports as numbered on the MAX4999 47 | USBPORT_MUX_MAP_NAMES mux_val = usb_port_mux_mapping(port); 48 | 49 | // map port to mux 50 | if( port <= _NUM_USB_PORTS) 51 | { 52 | io_abstraction_write( _IO_USB_C0, mux_val & 0x01 ); 53 | io_abstraction_write( _IO_USB_C1, mux_val & 0x02 ); 54 | io_abstraction_write( _IO_USB_C2, mux_val & 0x04 ); 55 | 56 | io_abstraction_write( _IO_USB_ENABLE, 1 ); 57 | } 58 | else 59 | { 60 | io_abstraction_write( _IO_USB_ENABLE, 0 ); 61 | } 62 | 63 | } 64 | 65 | /* -------------------------------------------------------------------------- */ 66 | 67 | // Provide power to a named USB port 68 | void 69 | power_usb_port( USBPORT_NAMES port, bool on ) 70 | { 71 | io_abstraction_write( (EXP_IO_NAMES)(_IO_PWR_USB_A + port), on ); 72 | } 73 | 74 | /* -------------------------------------------------------------------------- */ 75 | 76 | // Configure the UART switching matrix to route from 77 | void 78 | select_serial_source( USBPORT_NAMES port ) 79 | { 80 | //map port to mux 81 | USBPORT_MUX_MAP_NAMES mux_val = usb_port_mux_mapping(port); 82 | 83 | if( port <= _NUM_USB_PORTS) 84 | { 85 | io_abstraction_write( _IO_MATRIX_COLLAPSE_A, mux_val & 0x01 ); 86 | io_abstraction_write( _IO_MATRIX_COLLAPSE_B, mux_val & 0x02 ); 87 | io_abstraction_write( _IO_MATRIX_COLLAPSE_C, mux_val & 0x04 ); 88 | 89 | io_abstraction_write( _IO_MATRIX_COLLAPSE_ENABLE, 0 ); 90 | } 91 | else 92 | { 93 | io_abstraction_write( _IO_MATRIX_COLLAPSE_ENABLE, 1 ); 94 | } 95 | 96 | } 97 | 98 | /* -------------------------------------------------------------------------- */ 99 | 100 | void 101 | enable_serial_loopback( bool on ) 102 | { 103 | io_abstraction_write( _IO_MATRIX_LOOPBACK, on ); 104 | } 105 | 106 | bool 107 | get_serial_loopback( void ) 108 | { 109 | return io_abstraction_read( _IO_MATRIX_LOOPBACK ); 110 | } 111 | 112 | /* -------------------------------------------------------------------------- */ 113 | 114 | // Configure the UART switching matrix to route towards 115 | void 116 | select_serial_dut( DUT_NAMES target ) 117 | { 118 | DUT_MUX_NAMES matrix_val = dut_port_mux_mapping(target); 119 | 120 | // map target to mux 121 | if( target < _NUM_DUT) 122 | { 123 | io_abstraction_write( _IO_MATRIX_EXPAND_A, matrix_val & 0x01 ); 124 | io_abstraction_write( _IO_MATRIX_EXPAND_B, matrix_val & 0x02 ); 125 | io_abstraction_write( _IO_MATRIX_EXPAND_C, matrix_val & 0x04 ); 126 | 127 | io_abstraction_write( _IO_MATRIX_EXPAND_ENABLE, 0 ); 128 | } 129 | else 130 | { 131 | io_abstraction_write( _IO_MATRIX_EXPAND_ENABLE, 1 ); 132 | } 133 | 134 | } 135 | 136 | /* -------------------------------------------------------------------------- */ 137 | 138 | // Provide power to one of the numbered feather device ports 139 | void 140 | power_dut( DUT_NAMES target, bool on ) 141 | { 142 | io_abstraction_write( (EXP_IO_NAMES)(_IO_PWR_DUT_1 + target), on ); 143 | } 144 | 145 | /* -------------------------------------------------------------------------- */ 146 | 147 | void 148 | clear_usb_power( void ) 149 | { 150 | for( uint8_t i = 0; i < _NUM_USB_PORTS; i++) 151 | { 152 | power_usb_port((USBPORT_NAMES)i, false); 153 | } 154 | } 155 | 156 | void 157 | clear_usb_selection( void ) 158 | { 159 | io_abstraction_write( _IO_USB_ENABLE, 0 ); 160 | io_abstraction_write( _IO_MATRIX_COLLAPSE_ENABLE, 1 ); 161 | } 162 | 163 | void 164 | clear_dut_power( void ) 165 | { 166 | for( uint8_t i = 0; i < _NUM_DUT; i++) 167 | { 168 | power_dut((DUT_NAMES)i, false); 169 | } 170 | } 171 | 172 | void 173 | clear_dut_selection( void ) 174 | { 175 | io_abstraction_write( _IO_MATRIX_EXPAND_ENABLE, 1 ); 176 | } 177 | 178 | /* -------------------------------------------------------------------------- */ 179 | 180 | // Returns the remapped mux enum representing the hardware ordering from the mux IC 181 | USBPORT_MUX_MAP_NAMES 182 | usb_port_mux_mapping( USBPORT_NAMES port ) 183 | { 184 | switch( port ) 185 | { 186 | case _PORT_USB_A: 187 | return _MUX_USB_A; 188 | case _PORT_USB_B: 189 | return _MUX_USB_B; 190 | case _PORT_USB_C: 191 | return _MUX_USB_C; 192 | case _PORT_USB_D: 193 | return _MUX_USB_D; 194 | case _PORT_USB_E: 195 | return _MUX_USB_E; 196 | 197 | case _PORT_USB_F: 198 | return _MUX_USB_F; 199 | case _PORT_USB_G: 200 | return _MUX_USB_G; 201 | 202 | case _PORT_USB_H: 203 | return _MUX_USB_H; 204 | default: 205 | return _NUM_MUX_OPTIONS; 206 | } 207 | 208 | return _NUM_MUX_OPTIONS; 209 | } 210 | 211 | DUT_MUX_NAMES 212 | dut_port_mux_mapping( DUT_NAMES port ) 213 | { 214 | switch( port ) 215 | { 216 | case _PORT_DUT_1: 217 | return _MUX_DUT_1; 218 | case _PORT_DUT_2: 219 | return _MUX_DUT_2; 220 | case _PORT_DUT_3: 221 | return _MUX_DUT_3; 222 | case _PORT_DUT_4: 223 | return _MUX_DUT_4; 224 | case _PORT_DUT_5: 225 | return _MUX_DUT_5; 226 | case _PORT_DUT_6: 227 | return _MUX_DUT_6; 228 | case _PORT_DUT_7: 229 | return _MUX_DUT_7; 230 | case _PORT_DUT_8: 231 | return _MUX_DUT_8; 232 | default: 233 | return _NUM_MUX_DUT; 234 | } 235 | 236 | return _NUM_MUX_DUT; 237 | } -------------------------------------------------------------------------------- /firmware/hardware_test/mux_control.h: -------------------------------------------------------------------------------- 1 | 2 | /* -------------------------------------------------------------------------- */ 3 | 4 | typedef enum 5 | { 6 | _PORT_USB_A = 0, 7 | _PORT_USB_B, 8 | _PORT_USB_C, 9 | _PORT_USB_D, 10 | _PORT_USB_E, 11 | _PORT_USB_F, 12 | _PORT_USB_G, 13 | _PORT_USB_H, 14 | _NUM_USB_PORTS, 15 | } USBPORT_NAMES; 16 | 17 | typedef enum 18 | { 19 | _PORT_DUT_1 = 0, 20 | _PORT_DUT_2, 21 | _PORT_DUT_3, 22 | _PORT_DUT_4, 23 | _PORT_DUT_5, 24 | _PORT_DUT_6, 25 | _PORT_DUT_7, 26 | _PORT_DUT_8, 27 | _NUM_DUT, 28 | } DUT_NAMES; 29 | 30 | /* -------------------------------------------------------------------------- */ 31 | 32 | void select_usb_port( USBPORT_NAMES port ); 33 | 34 | /* -------------------------------------------------------------------------- */ 35 | 36 | void power_usb_port( USBPORT_NAMES port, bool on ); 37 | 38 | /* -------------------------------------------------------------------------- */ 39 | 40 | void select_serial_source( USBPORT_NAMES port ); 41 | 42 | /* -------------------------------------------------------------------------- */ 43 | 44 | void enable_serial_loopback( bool on ); 45 | 46 | bool get_serial_loopback( void ); 47 | 48 | /* -------------------------------------------------------------------------- */ 49 | 50 | void select_serial_dut( DUT_NAMES target ); 51 | 52 | /* -------------------------------------------------------------------------- */ 53 | 54 | void power_dut( DUT_NAMES target, bool on ); 55 | 56 | /* -------------------------------------------------------------------------- */ 57 | 58 | void clear_usb_power( void ); 59 | 60 | void clear_usb_selection( void ); 61 | 62 | void clear_dut_power( void ); 63 | 64 | void clear_dut_selection( void ); 65 | -------------------------------------------------------------------------------- /firmware/hardware_test/networking.cpp: -------------------------------------------------------------------------------- 1 | #include "networking.h" 2 | #include "supervisor.h" 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | 11 | /* -------------------------------------------------------------------------- */ 12 | 13 | byte mac[] = { 14 | 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED 15 | }; 16 | 17 | EthernetServer server(80); 18 | 19 | /* -------------------------------------------------------------------------- */ 20 | 21 | // derive from the HTTPserver class with custom handlers 22 | class restHelper : public HTTPserver 23 | { 24 | virtual void processPostType (const char * key, const byte flags); 25 | virtual void processPathname (const char * key, const byte flags); 26 | virtual void processHttpVersion (const char * key, const byte flags); 27 | virtual void processHeaderArgument (const char * key, const char * value, const byte flags); 28 | virtual void processGetArgument (const char * key, const char * value, const byte flags); 29 | virtual void processPostArgument (const char * key, const char * value, const byte flags); 30 | }; 31 | 32 | restHelper restServer; 33 | 34 | /* -------------------------------------------------------------------------- */ 35 | 36 | static void network_send_response( const char * resp ); 37 | 38 | /* -------------------------------------------------------------------------- */ 39 | 40 | void restHelper::processPostType(const char * key, const byte flags) 41 | { 42 | 43 | } 44 | 45 | void restHelper::processPathname(const char * key, const byte flags) 46 | { 47 | if( !supervisor_parse_path(key) ) 48 | { 49 | network_send_response("500 Internal Server Error"); 50 | server.print("Invalid route requested: "); server.println(key); 51 | } 52 | } 53 | 54 | void restHelper::processHttpVersion(const char * key, const byte flags) 55 | { 56 | 57 | } 58 | 59 | void restHelper::processHeaderArgument(const char * key, const char * value, const byte flags) 60 | { 61 | 62 | } 63 | 64 | void restHelper::processGetArgument(const char * key, const char * value, const byte flags) 65 | { 66 | char * response = supervisor_parse_get(key, value); 67 | 68 | if( response != NULL ) 69 | { 70 | network_send_response("200 OK"); 71 | server.println(response); 72 | } 73 | else 74 | { 75 | network_send_response("500 Internal Server Error"); 76 | server.print("GET Parse Error: "); server.println(key); 77 | } 78 | } 79 | 80 | void restHelper::processPostArgument(const char * key, const char * value, const byte flags) 81 | { 82 | const char * response = supervisor_parse_post(key, value); 83 | 84 | if( response != NULL ) 85 | { 86 | network_send_response("200 OK"); 87 | server.println(response); 88 | } 89 | else 90 | { 91 | network_send_response("500 Internal Server Error"); 92 | server.print("POST Parse Error: "); server.println(key); 93 | } 94 | } 95 | 96 | /* -------------------------------------------------------------------------- */ 97 | 98 | static void network_send_response( const char * resp ) 99 | { 100 | server.print("HTTP/1.1 "); 101 | server.println(resp); 102 | 103 | server.println("Content-Type: text/plain\n" 104 | "Connection: close\n" 105 | "Server: HTTPserver/1.0.0 (Arduino)" ); 106 | server.println(); // end of headers 107 | } 108 | 109 | /* -------------------------------------------------------------------------- */ 110 | 111 | void setup_ethernet( void ) 112 | { 113 | Ethernet.init(33); 114 | 115 | Serial.println("Ethernet WebServer Starting"); 116 | 117 | // start the Ethernet connection and the server: 118 | Ethernet.begin(mac); 119 | 120 | // Check for Ethernet hardware present 121 | if(Ethernet.hardwareStatus() == EthernetNoHardware ) 122 | { 123 | Serial.println("Ethernet hardware not found!"); 124 | while (1) 125 | { 126 | supervisor_indicate_critical(); 127 | delay(1); 128 | } 129 | } 130 | 131 | switch( Ethernet.linkStatus() ) 132 | { 133 | case Unknown: 134 | Serial.println("Ethernet link status unknown"); 135 | supervisor_indicate_warning(); 136 | delay(1); 137 | break; 138 | 139 | case LinkOFF: 140 | Serial.println("Ethernet cable is not connected."); 141 | supervisor_indicate_warning(); 142 | delay(1); 143 | break; 144 | 145 | case LinkON: 146 | supervisor_indicate_success(); 147 | break; 148 | } 149 | 150 | // start the server 151 | server.begin(); 152 | 153 | Serial.print("Got IP: "); 154 | Serial.println(Ethernet.localIP()); 155 | 156 | EthernetBonjour.begin("arena"); 157 | EthernetBonjour.addServiceRecord("hardwaretest._http", 80, MDNSServiceTCP); 158 | } 159 | 160 | /* -------------------------------------------------------------------------- */ 161 | 162 | void handle_ethernet( void ) 163 | { 164 | EthernetBonjour.run(); 165 | EthernetClient client = server.available(); // listen for incoming clients 166 | 167 | if (client) 168 | { 169 | restServer.begin(&client); 170 | 171 | while( client.connected() && !restServer.done ) 172 | { 173 | while( client.available() > 0 && !restServer.done ) 174 | { 175 | restServer.processIncomingByte( client.read() ); 176 | } 177 | 178 | // do other stuff here 179 | 180 | } 181 | 182 | restServer.flush(); 183 | delay(1); // give the web browser time to receive the data 184 | client.stop(); // close the connection: 185 | } 186 | } 187 | 188 | /* -------------------------------------------------------------------------- */ 189 | -------------------------------------------------------------------------------- /firmware/hardware_test/networking.h: -------------------------------------------------------------------------------- 1 | 2 | /* -------------------------------------------------------------------------- */ 3 | 4 | void setup_ethernet( void ); 5 | 6 | /* -------------------------------------------------------------------------- */ 7 | 8 | void handle_ethernet( void ); 9 | 10 | /* -------------------------------------------------------------------------- */ 11 | -------------------------------------------------------------------------------- /firmware/hardware_test/supervisor.cpp: -------------------------------------------------------------------------------- 1 | #include "supervisor.h" 2 | 3 | #include "io_abstraction.h" 4 | #include "mux_control.h" 5 | 6 | /* -------------------------------------------------------------------------- */ 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | // Specifically for ESP32 - replace with EEPROM implementation if porting to another platform 13 | #include 14 | 15 | /* -------------------------------------------------------------------------- */ 16 | 17 | #define DESCRIPTION_LENGTH_MAX 16 18 | 19 | typedef enum 20 | { 21 | _REQUEST_ADAPTER, 22 | _REQUEST_TARGET, 23 | _REQUEST_LOOPBACK, 24 | _REQUEST_IO, 25 | _REQUEST_ROOT, 26 | _REQUEST_CONFIG, 27 | 28 | _REQUEST_INVALID, 29 | } RequestedHWGroup; 30 | 31 | RequestedHWGroup pending_request; 32 | 33 | 34 | typedef struct 35 | { 36 | uint8_t index; 37 | char name[2]; 38 | char description[DESCRIPTION_LENGTH_MAX]; 39 | } named_hardware; 40 | 41 | named_hardware adapters[] = 42 | { 43 | { _PORT_USB_A, "a", "" }, 44 | { _PORT_USB_B, "b", "" }, 45 | { _PORT_USB_C, "c", "" }, 46 | { _PORT_USB_D, "d", "" }, 47 | { _PORT_USB_E, "e", "" }, 48 | { _PORT_USB_F, "f", "" }, 49 | { _PORT_USB_G, "g", "" }, 50 | { _PORT_USB_H, "h", "" }, 51 | }; 52 | 53 | named_hardware targets[] = 54 | { 55 | { _PORT_DUT_1, "1", "" }, 56 | { _PORT_DUT_2, "2", "" }, 57 | { _PORT_DUT_3, "3", "" }, 58 | { _PORT_DUT_4, "4", "" }, 59 | { _PORT_DUT_5, "5", "" }, 60 | { _PORT_DUT_6, "6", "" }, 61 | { _PORT_DUT_7, "7", "" }, 62 | { _PORT_DUT_8, "8", "" }, 63 | }; 64 | 65 | char board_name[DESCRIPTION_LENGTH_MAX] = "Arena Testbed"; 66 | 67 | char buf[1024] = ""; 68 | 69 | Preferences prefs; 70 | 71 | /* -------------------------------------------------------------------------- */ 72 | 73 | // Load the human-friendly names for adapters and targets 74 | void 75 | supervisor_load_configuration( void ) 76 | { 77 | prefs.begin("arena_config", false); 78 | 79 | uint32_t valid_data = prefs.getUInt("valid", 0); 80 | 81 | if( !valid_data ) 82 | { 83 | prefs.clear(); 84 | 85 | // Write out the default layout for a fresh device 86 | prefs.putBytes("adapters", adapters, sizeof(adapters)); 87 | prefs.putBytes("targets", targets, sizeof(targets)); 88 | prefs.putBytes("name", board_name, sizeof(board_name)); 89 | 90 | valid_data = 1; 91 | prefs.putUInt("valid", valid_data); 92 | } 93 | else 94 | { 95 | prefs.getBytes("adapters", adapters, sizeof(adapters)); 96 | prefs.getBytes("targets", targets, sizeof(targets)); 97 | prefs.getBytes("name", board_name, sizeof(board_name)); 98 | 99 | } 100 | 101 | prefs.end(); 102 | } 103 | 104 | // Save the current human-friendly <-> board label naming 105 | void 106 | supervisor_save_configuration( void ) 107 | { 108 | prefs.begin("arena_config", false); 109 | 110 | prefs.putBytes("adapters", adapters, sizeof(adapters)); 111 | prefs.putBytes("targets", targets, sizeof(targets)); 112 | prefs.putBytes("name", board_name, sizeof(board_name)); 113 | 114 | prefs.end(); 115 | } 116 | 117 | /* -------------------------------------------------------------------------- */ 118 | 119 | bool 120 | supervisor_parse_path(const char * path) 121 | { 122 | pending_request = _REQUEST_INVALID; 123 | 124 | if(strcmp(path, "/adapter") == 0) 125 | { 126 | pending_request = _REQUEST_ADAPTER; 127 | } 128 | else if(strcmp(path, "/target") == 0) 129 | { 130 | pending_request = _REQUEST_TARGET; 131 | } 132 | else if(strcmp(path, "/loopback") == 0) 133 | { 134 | pending_request = _REQUEST_LOOPBACK; 135 | } 136 | else if(strcmp(path, "/io") == 0) 137 | { 138 | pending_request = _REQUEST_IO; 139 | } 140 | else if(strcmp(path, "/") == 0) 141 | { 142 | pending_request = _REQUEST_ROOT; 143 | } 144 | else if(strcmp(path, "/config") == 0) 145 | { 146 | pending_request = _REQUEST_CONFIG; 147 | } 148 | 149 | return (pending_request != _REQUEST_INVALID); 150 | } 151 | 152 | /* -------------------------------------------------------------------------- */ 153 | 154 | char * 155 | supervisor_parse_post( const char * key, const char * value ) 156 | { 157 | switch(pending_request) 158 | { 159 | case _REQUEST_ADAPTER: // Configure the USB Mux, Serial routing matrix, and power on the USB device 160 | { 161 | clear_usb_power(); 162 | clear_usb_selection(); 163 | 164 | USBPORT_NAMES requested_adapter = _NUM_USB_PORTS; 165 | 166 | for( uint8_t i = 0; i < 8; i++) 167 | { 168 | // Check if the request uses an explicit location on the board (A-H) 169 | if( strcmp(key, (char*)adapters[i].name) == 0 ) 170 | { 171 | requested_adapter = (USBPORT_NAMES)adapters[i].index; 172 | break; 173 | } 174 | 175 | // Check if the request uses a human friendly name for their requested hardware 176 | if( strcmp(key, (char*)adapters[i].description) == 0 ) 177 | { 178 | requested_adapter = (USBPORT_NAMES)adapters[i].index; 179 | break; 180 | } 181 | } 182 | 183 | if( requested_adapter < _NUM_USB_PORTS ) 184 | { 185 | // User is trying to teach a new name 186 | if( strlen(value) ) 187 | { 188 | // Copy up to the description string length from the request 189 | strncpy( adapters[requested_adapter].description, value, DESCRIPTION_LENGTH_MAX ); 190 | supervisor_save_configuration(); 191 | 192 | return "Adapter name set"; 193 | } 194 | else 195 | { 196 | select_usb_port( requested_adapter ); 197 | select_serial_source( requested_adapter); 198 | power_usb_port( requested_adapter, true); 199 | 200 | strncpy(buf, key, sizeof(buf)); 201 | return buf; //echo back their setting as confirmation 202 | } 203 | } 204 | } 205 | break; 206 | 207 | case _REQUEST_TARGET: 208 | { 209 | clear_dut_power(); 210 | clear_dut_selection(); 211 | 212 | // Configure the serial routing matrix, power on the target device 213 | DUT_NAMES requested_device = _NUM_DUT; 214 | 215 | for( uint8_t i = 0; i < 8; i++) 216 | { 217 | // Check if the request uses an explicit location on the board (1-8) 218 | if( strcmp(key, (char*)targets[i].name) == 0 ) 219 | { 220 | requested_device = (DUT_NAMES)targets[i].index; 221 | break; 222 | } 223 | 224 | // Check if the request uses a human friendly name for their requested hardware 225 | if( strcmp(key, (char*)targets[i].description) == 0 ) 226 | { 227 | requested_device = (DUT_NAMES)targets[i].index; 228 | break; 229 | } 230 | } 231 | 232 | if( requested_device < _NUM_DUT ) 233 | { 234 | // User is trying to teach a new name 235 | if( strlen(value) ) 236 | { 237 | // Copy up to the description string length from the request 238 | strncpy( targets[requested_device].description, value, DESCRIPTION_LENGTH_MAX ); 239 | supervisor_save_configuration(); 240 | 241 | return "Device name set"; 242 | } 243 | else 244 | { 245 | select_serial_dut( requested_device ); 246 | power_dut( requested_device, true ); 247 | 248 | strncpy(buf, key, sizeof(buf)); 249 | return buf; 250 | } 251 | } 252 | } 253 | break; 254 | 255 | case _REQUEST_LOOPBACK: 256 | 257 | // Control the loopback switch and disable the device matrix routing 258 | if( strcmp(key, "true") == 0 ) 259 | { 260 | enable_serial_loopback(true); 261 | return "true"; 262 | } 263 | else if( strcmp(key, "false") == 0 ) 264 | { 265 | enable_serial_loopback(false); 266 | return "false"; 267 | } 268 | 269 | break; 270 | 271 | case _REQUEST_IO: 272 | // Manipulate the IO lines for the target 273 | 274 | return "TODO IO Request"; 275 | 276 | case _REQUEST_CONFIG: 277 | // Allow user-configurable stored board-identifier string 278 | if( strcmp(key, "name") == 0 ) 279 | { 280 | if( strlen(value) ) 281 | { 282 | strncpy( board_name, value, DESCRIPTION_LENGTH_MAX ); 283 | supervisor_save_configuration(); 284 | 285 | return "Board name set"; 286 | } 287 | } 288 | break; 289 | } 290 | 291 | return NULL; 292 | } 293 | 294 | /* -------------------------------------------------------------------------- */ 295 | 296 | char * 297 | supervisor_parse_get( const char * key, const char * value ) 298 | { 299 | switch(pending_request) 300 | { 301 | case _REQUEST_ADAPTER: 302 | { 303 | // User is requesting information about a given adaptor port 304 | USBPORT_NAMES requested_adapter = _NUM_USB_PORTS; 305 | 306 | if( strlen(key) == 0) // just requesting general info 307 | { 308 | memset(buf, 0, sizeof(buf)); 309 | for( uint8_t i = 0; i < 8; i++) 310 | { 311 | snprintf( buf+strlen(buf), 312 | sizeof(buf)-strlen(buf), 313 | "%s, %s\n", 314 | (char*)adapters[i].name, 315 | (char*)adapters[i].description ); 316 | } 317 | 318 | return buf; 319 | } 320 | else 321 | { 322 | // Check if the request is by the adapter's board name (A-H) 323 | for( uint8_t i = 0; i < 8; i++) 324 | { 325 | // Asking for a board-labelled name (A-H) 326 | if( strcmp(key, (char*)adapters[i].name) == 0 ) 327 | { 328 | requested_adapter = (USBPORT_NAMES)adapters[i].index; 329 | break; 330 | } 331 | } 332 | 333 | if( requested_adapter < _NUM_USB_PORTS ) 334 | { 335 | // Tell them the human friendly name 336 | return adapters[requested_adapter].description; 337 | } 338 | 339 | // Check if the request is by the adapter's human-readable name (i.e. ft232) 340 | for( uint8_t j = 0; j < 8; j++) 341 | { 342 | // Asking with the human-friendly name 343 | if( strcmp(key, (char*)adapters[j].description) == 0 ) 344 | { 345 | requested_adapter = (USBPORT_NAMES)adapters[j].index; 346 | break; 347 | } 348 | } 349 | 350 | if( requested_adapter < _NUM_USB_PORTS ) 351 | { 352 | // Tell them the board label 353 | return adapters[requested_adapter].name; 354 | } 355 | } 356 | 357 | } 358 | break; 359 | 360 | case _REQUEST_TARGET: 361 | { 362 | // User is requesting info about a target socket 363 | DUT_NAMES requested_device = _NUM_DUT; 364 | 365 | if( strlen(key) == 0) // just requesting general info 366 | { 367 | memset(buf, 0, sizeof(buf)); 368 | for( uint8_t i = 0; i < 8; i++) 369 | { 370 | snprintf( buf+strlen(buf), 371 | sizeof(buf)-strlen(buf), 372 | "%s, %s\n", 373 | (char*)targets[i].name, 374 | (char*)targets[i].description ); 375 | } 376 | 377 | return buf; 378 | } 379 | else 380 | { 381 | // Check if the request is by the target's board name (1-8) 382 | for( uint8_t i = 0; i < 8; i++) 383 | { 384 | // Asking for a board-labelled name (A-H) 385 | if( strcmp(key, (char*)targets[i].name) == 0 ) 386 | { 387 | requested_device = (DUT_NAMES)targets[i].index; 388 | break; 389 | } 390 | } 391 | 392 | if( requested_device < _NUM_DUT ) 393 | { 394 | // Tell them the human friendly name 395 | return targets[requested_device].description; 396 | } 397 | 398 | // Check if the request is by the target's human-readable name (i.e. stm32) 399 | for( uint8_t j = 0; j < 8; j++) 400 | { 401 | // Asking with the human-friendly name 402 | if( strcmp(key, (char*)targets[j].description) == 0 ) 403 | { 404 | requested_device = (DUT_NAMES)targets[j].index; 405 | break; 406 | } 407 | } 408 | 409 | if( requested_device < _NUM_DUT ) 410 | { 411 | // Tell them the board label 412 | return targets[requested_device].name; 413 | } 414 | } 415 | 416 | } 417 | break; 418 | 419 | case _REQUEST_LOOPBACK: 420 | // Return the loopback state 421 | if( get_serial_loopback() ) 422 | { 423 | return "true"; 424 | } 425 | 426 | return "false"; 427 | break; 428 | 429 | case _REQUEST_CONFIG: 430 | if( strcmp(key, "name") == 0 ) 431 | { 432 | return board_name; 433 | } 434 | 435 | break; 436 | 437 | } 438 | 439 | return NULL; 440 | } 441 | 442 | /* -------------------------------------------------------------------------- */ 443 | 444 | uint8_t user_selected_adapter = 0; 445 | uint8_t user_selected_device = 0; 446 | 447 | void 448 | supervisor_user_change_adapter( void ) 449 | { 450 | user_selected_adapter++; 451 | 452 | if( user_selected_adapter >= _NUM_USB_PORTS) 453 | { 454 | user_selected_adapter = 0; 455 | } 456 | 457 | USBPORT_NAMES selected = (USBPORT_NAMES)adapters[user_selected_adapter].index; 458 | 459 | clear_usb_power(); 460 | clear_usb_selection(); 461 | 462 | select_usb_port( selected ); 463 | select_serial_source( selected); 464 | power_usb_port( selected, true); 465 | 466 | } 467 | 468 | void 469 | supervisor_user_change_target( void ) 470 | { 471 | user_selected_device++; 472 | 473 | if( user_selected_device >= _NUM_DUT) 474 | { 475 | user_selected_device = 0; 476 | } 477 | 478 | DUT_NAMES selected = (DUT_NAMES)targets[user_selected_device].index; 479 | 480 | clear_dut_power(); 481 | clear_dut_selection(); 482 | 483 | select_serial_dut( selected ); 484 | power_dut( selected, true ); 485 | 486 | } 487 | /* -------------------------------------------------------------------------- */ 488 | 489 | void 490 | supervisor_indicate_critical( void ) 491 | { 492 | io_status_red( true ); 493 | io_status_yellow( true ); 494 | io_status_green( true ); 495 | 496 | delay(100); 497 | 498 | io_status_red( false ); 499 | io_status_yellow( false ); 500 | io_status_green( false ); 501 | 502 | delay(100); 503 | } 504 | 505 | void 506 | supervisor_indicate_success( void ) 507 | { 508 | io_status_green( true ); 509 | } 510 | 511 | void 512 | supervisor_indicate_warning( void ) 513 | { 514 | io_status_yellow( true ); 515 | } 516 | 517 | /* -------------------------------------------------------------------------- */ 518 | -------------------------------------------------------------------------------- /firmware/hardware_test/supervisor.h: -------------------------------------------------------------------------------- 1 | 2 | /* -------------------------------------------------------------------------- */ 3 | 4 | void 5 | supervisor_load_configuration( void ); 6 | 7 | void 8 | supervisor_save_configuration( void ); 9 | 10 | /* -------------------------------------------------------------------------- */ 11 | 12 | bool 13 | supervisor_parse_path(const char * path); 14 | 15 | /* -------------------------------------------------------------------------- */ 16 | 17 | char * 18 | supervisor_parse_post( const char * key, const char * value ); 19 | 20 | /* -------------------------------------------------------------------------- */ 21 | 22 | char * 23 | supervisor_parse_get( const char * key, const char * value ); 24 | 25 | /* -------------------------------------------------------------------------- */ 26 | 27 | void 28 | supervisor_user_change_adapter( void ); 29 | 30 | void 31 | supervisor_user_change_target( void ); 32 | 33 | /* -------------------------------------------------------------------------- */ 34 | 35 | void 36 | supervisor_indicate_critical( void ); 37 | 38 | void 39 | supervisor_indicate_success( void ); 40 | 41 | void 42 | supervisor_indicate_warning( void ); 43 | 44 | /* -------------------------------------------------------------------------- */ 45 | -------------------------------------------------------------------------------- /hardware/dut.sch: -------------------------------------------------------------------------------- 1 | EESchema Schematic File Version 4 2 | LIBS:hardware-cache 3 | EELAYER 29 0 4 | EELAYER END 5 | $Descr A4 11693 8268 6 | encoding utf-8 7 | Sheet 10 20 8 | Title "Test Device" 9 | Date "2020-05-17" 10 | Rev "1.0.0" 11 | Comp "" 12 | Comment1 "CI/CD Testbed" 13 | Comment2 "ARENA" 14 | Comment3 "" 15 | Comment4 "" 16 | $EndDescr 17 | $Comp 18 | L appli_connector:ADAFRUIT_FEATHER_BREAKOUT U14 19 | U 1 1 5EC0D5AB 20 | P 7950 4450 21 | AR Path="/5EC0D2F7/5EC0D5AB" Ref="U14" Part="1" 22 | AR Path="/5EC61D1E/5EC0D5AB" Ref="U?" Part="1" 23 | AR Path="/5EC628D0/5EC0D5AB" Ref="U?" Part="1" 24 | AR Path="/5EC628D8/5EC0D5AB" Ref="U?" Part="1" 25 | AR Path="/5EC64E5C/5EC0D5AB" Ref="U?" Part="1" 26 | AR Path="/5EC64E64/5EC0D5AB" Ref="U?" Part="1" 27 | AR Path="/5EC64E6C/5EC0D5AB" Ref="U?" Part="1" 28 | AR Path="/5EC64E74/5EC0D5AB" Ref="U?" Part="1" 29 | AR Path="/5EF5AF13/5EC0D5AB" Ref="U16" Part="1" 30 | AR Path="/5EF5EABD/5EC0D5AB" Ref="U18" Part="1" 31 | AR Path="/5EF626C9/5EC0D5AB" Ref="U20" Part="1" 32 | AR Path="/5EF662C0/5EC0D5AB" Ref="U22" Part="1" 33 | AR Path="/5EF69F20/5EC0D5AB" Ref="U24" Part="1" 34 | AR Path="/5EF6DACA/5EC0D5AB" Ref="U26" Part="1" 35 | AR Path="/5EF71689/5EC0D5AB" Ref="U28" Part="1" 36 | F 0 "U28" H 8128 4556 60 0000 L CNN 37 | F 1 "ADAFRUIT_FEATHER_BREAKOUT" H 8128 4450 60 0000 L CNN 38 | F 2 "Applidyne_Connector:ADAFRUIT_FEATHER" H 7950 3550 60 0001 C CNN 39 | F 3 "https://www.adafruit.com/feather" H 8128 4344 60 0000 L CNN 40 | 1 7950 4450 41 | 1 0 0 -1 42 | $EndComp 43 | $Comp 44 | L appli_connector:ADAFRUIT_FEATHER_BREAKOUT U14 45 | U 2 1 5EC0DE65 46 | P 7950 2900 47 | AR Path="/5EC0D2F7/5EC0DE65" Ref="U14" Part="2" 48 | AR Path="/5EC61D1E/5EC0DE65" Ref="U?" Part="2" 49 | AR Path="/5EC628D0/5EC0DE65" Ref="U?" Part="2" 50 | AR Path="/5EC628D8/5EC0DE65" Ref="U?" Part="2" 51 | AR Path="/5EC64E5C/5EC0DE65" Ref="U?" Part="2" 52 | AR Path="/5EC64E64/5EC0DE65" Ref="U?" Part="2" 53 | AR Path="/5EC64E6C/5EC0DE65" Ref="U?" Part="2" 54 | AR Path="/5EC64E74/5EC0DE65" Ref="U?" Part="2" 55 | AR Path="/5EF5AF13/5EC0DE65" Ref="U16" Part="2" 56 | AR Path="/5EF5EABD/5EC0DE65" Ref="U18" Part="2" 57 | AR Path="/5EF626C9/5EC0DE65" Ref="U20" Part="2" 58 | AR Path="/5EF662C0/5EC0DE65" Ref="U22" Part="2" 59 | AR Path="/5EF69F20/5EC0DE65" Ref="U24" Part="2" 60 | AR Path="/5EF6DACA/5EC0DE65" Ref="U26" Part="2" 61 | AR Path="/5EF71689/5EC0DE65" Ref="U28" Part="2" 62 | F 0 "U28" H 8128 3006 60 0000 L CNN 63 | F 1 "ADAFRUIT_FEATHER_BREAKOUT" H 8128 2900 60 0000 L CNN 64 | F 2 "Applidyne_Connector:ADAFRUIT_FEATHER" H 7950 2000 60 0001 C CNN 65 | F 3 "https://www.adafruit.com/feather" H 8128 2794 60 0000 L CNN 66 | 2 7950 2900 67 | 1 0 0 -1 68 | $EndComp 69 | $Comp 70 | L appli_special:AP2553A U13 71 | U 1 1 5EC0F793 72 | P 3000 4200 73 | AR Path="/5EC0D2F7/5EC0F793" Ref="U13" Part="1" 74 | AR Path="/5EC61D1E/5EC0F793" Ref="U?" Part="1" 75 | AR Path="/5EC628D0/5EC0F793" Ref="U?" Part="1" 76 | AR Path="/5EC628D8/5EC0F793" Ref="U?" Part="1" 77 | AR Path="/5EC64E5C/5EC0F793" Ref="U?" Part="1" 78 | AR Path="/5EC64E64/5EC0F793" Ref="U?" Part="1" 79 | AR Path="/5EC64E6C/5EC0F793" Ref="U?" Part="1" 80 | AR Path="/5EC64E74/5EC0F793" Ref="U?" Part="1" 81 | AR Path="/5EF5AF13/5EC0F793" Ref="U15" Part="1" 82 | AR Path="/5EF5EABD/5EC0F793" Ref="U17" Part="1" 83 | AR Path="/5EF626C9/5EC0F793" Ref="U19" Part="1" 84 | AR Path="/5EF662C0/5EC0F793" Ref="U21" Part="1" 85 | AR Path="/5EF69F20/5EC0F793" Ref="U23" Part="1" 86 | AR Path="/5EF6DACA/5EC0F793" Ref="U25" Part="1" 87 | AR Path="/5EF71689/5EC0F793" Ref="U27" Part="1" 88 | F 0 "U27" H 3000 4587 60 0000 C CNN 89 | F 1 "AP2553A" H 3000 4481 60 0000 C CNN 90 | F 2 "Applidyne_SOT:SOT95P280X145-6L50N" H 3000 4200 60 0001 C CNN 91 | F 3 "http://www.diodes.com/_files/datasheets/AP255x.pdf" H 3020 3650 60 0001 C CNN 92 | F 4 "DIODES ZETEX" H 3000 3410 60 0001 C CNN "manf" 93 | F 5 "AP2553AW6-7" H 3000 3310 60 0001 C CNN "manf#" 94 | F 6 "RS Online" H 3010 3200 60 0001 C CNN "Supplier" 95 | F 7 "921-0492" H 3000 3100 60 0001 C CNN "Supplier Part No" 96 | F 8 "http://au.rs-online.com/web/p/products/9210492" H 3000 3010 60 0001 C CNN "Supplier URL" 97 | F 9 "0.9" H 3000 2900 60 0001 C CNN "Supplier Price" 98 | F 10 "10" H 3000 2800 60 0001 C CNN "Supplier Price Break" 99 | 1 3000 4200 100 | 1 0 0 -1 101 | $EndComp 102 | Wire Wire Line 103 | 7700 3550 7500 3550 104 | Wire Wire Line 105 | 7700 3450 7500 3450 106 | Wire Wire Line 107 | 2300 4100 1500 4100 108 | Wire Wire Line 109 | 1500 4100 1500 3900 110 | $Comp 111 | L appli_power:+5V #PWR044 112 | U 1 1 5EC14033 113 | P 1500 3900 114 | AR Path="/5EC0D2F7/5EC14033" Ref="#PWR044" Part="1" 115 | AR Path="/5EC61D1E/5EC14033" Ref="#PWR?" Part="1" 116 | AR Path="/5EC628D0/5EC14033" Ref="#PWR?" Part="1" 117 | AR Path="/5EC628D8/5EC14033" Ref="#PWR?" Part="1" 118 | AR Path="/5EC64E5C/5EC14033" Ref="#PWR?" Part="1" 119 | AR Path="/5EC64E64/5EC14033" Ref="#PWR?" Part="1" 120 | AR Path="/5EC64E6C/5EC14033" Ref="#PWR?" Part="1" 121 | AR Path="/5EC64E74/5EC14033" Ref="#PWR?" Part="1" 122 | AR Path="/5EF5AF13/5EC14033" Ref="#PWR051" Part="1" 123 | AR Path="/5EF5EABD/5EC14033" Ref="#PWR058" Part="1" 124 | AR Path="/5EF626C9/5EC14033" Ref="#PWR065" Part="1" 125 | AR Path="/5EF662C0/5EC14033" Ref="#PWR072" Part="1" 126 | AR Path="/5EF69F20/5EC14033" Ref="#PWR079" Part="1" 127 | AR Path="/5EF6DACA/5EC14033" Ref="#PWR086" Part="1" 128 | AR Path="/5EF71689/5EC14033" Ref="#PWR093" Part="1" 129 | F 0 "#PWR093" H 1500 3750 50 0001 C CNN 130 | F 1 "+5V" H 1515 4073 50 0000 C CNN 131 | F 2 "" H 1500 3900 60 0000 C CNN 132 | F 3 "" H 1500 3900 60 0000 C CNN 133 | 1 1500 3900 134 | 1 0 0 -1 135 | $EndComp 136 | Wire Wire Line 137 | 3000 4650 3000 4950 138 | $Comp 139 | L appli_power:GND #PWR046 140 | U 1 1 5EC145DA 141 | P 3000 4950 142 | AR Path="/5EC0D2F7/5EC145DA" Ref="#PWR046" Part="1" 143 | AR Path="/5EC61D1E/5EC145DA" Ref="#PWR?" Part="1" 144 | AR Path="/5EC628D0/5EC145DA" Ref="#PWR?" Part="1" 145 | AR Path="/5EC628D8/5EC145DA" Ref="#PWR?" Part="1" 146 | AR Path="/5EC64E5C/5EC145DA" Ref="#PWR?" Part="1" 147 | AR Path="/5EC64E64/5EC145DA" Ref="#PWR?" Part="1" 148 | AR Path="/5EC64E6C/5EC145DA" Ref="#PWR?" Part="1" 149 | AR Path="/5EC64E74/5EC145DA" Ref="#PWR?" Part="1" 150 | AR Path="/5EF5AF13/5EC145DA" Ref="#PWR053" Part="1" 151 | AR Path="/5EF5EABD/5EC145DA" Ref="#PWR060" Part="1" 152 | AR Path="/5EF626C9/5EC145DA" Ref="#PWR067" Part="1" 153 | AR Path="/5EF662C0/5EC145DA" Ref="#PWR074" Part="1" 154 | AR Path="/5EF69F20/5EC145DA" Ref="#PWR081" Part="1" 155 | AR Path="/5EF6DACA/5EC145DA" Ref="#PWR088" Part="1" 156 | AR Path="/5EF71689/5EC145DA" Ref="#PWR095" Part="1" 157 | F 0 "#PWR095" H 3000 4700 50 0001 C CNN 158 | F 1 "GND" H 3005 4777 50 0000 C CNN 159 | F 2 "" H 3000 4950 50 0001 C CNN 160 | F 3 "" H 3000 4950 50 0001 C CNN 161 | 1 3000 4950 162 | 1 0 0 -1 163 | $EndComp 164 | Wire Wire Line 165 | 3700 4300 3950 4300 166 | Wire Wire Line 167 | 3950 4300 3950 4350 168 | Wire Wire Line 169 | 3950 4650 3950 4950 170 | $Comp 171 | L appli_power:GND #PWR047 172 | U 1 1 5EC14B16 173 | P 3950 4950 174 | AR Path="/5EC0D2F7/5EC14B16" Ref="#PWR047" Part="1" 175 | AR Path="/5EC61D1E/5EC14B16" Ref="#PWR?" Part="1" 176 | AR Path="/5EC628D0/5EC14B16" Ref="#PWR?" Part="1" 177 | AR Path="/5EC628D8/5EC14B16" Ref="#PWR?" Part="1" 178 | AR Path="/5EC64E5C/5EC14B16" Ref="#PWR?" Part="1" 179 | AR Path="/5EC64E64/5EC14B16" Ref="#PWR?" Part="1" 180 | AR Path="/5EC64E6C/5EC14B16" Ref="#PWR?" Part="1" 181 | AR Path="/5EC64E74/5EC14B16" Ref="#PWR?" Part="1" 182 | AR Path="/5EF5AF13/5EC14B16" Ref="#PWR054" Part="1" 183 | AR Path="/5EF5EABD/5EC14B16" Ref="#PWR061" Part="1" 184 | AR Path="/5EF626C9/5EC14B16" Ref="#PWR068" Part="1" 185 | AR Path="/5EF662C0/5EC14B16" Ref="#PWR075" Part="1" 186 | AR Path="/5EF69F20/5EC14B16" Ref="#PWR082" Part="1" 187 | AR Path="/5EF6DACA/5EC14B16" Ref="#PWR089" Part="1" 188 | AR Path="/5EF71689/5EC14B16" Ref="#PWR096" Part="1" 189 | F 0 "#PWR096" H 3950 4700 50 0001 C CNN 190 | F 1 "GND" H 3955 4777 50 0000 C CNN 191 | F 2 "" H 3950 4950 50 0001 C CNN 192 | F 3 "" H 3950 4950 50 0001 C CNN 193 | 1 3950 4950 194 | 1 0 0 -1 195 | $EndComp 196 | NoConn ~ 7700 3900 197 | NoConn ~ 7700 4000 198 | Wire Wire Line 199 | 7700 2450 7500 2450 200 | $Comp 201 | L appli_power:GND #PWR050 202 | U 1 1 5EC28CF9 203 | P 7500 2450 204 | AR Path="/5EC0D2F7/5EC28CF9" Ref="#PWR050" Part="1" 205 | AR Path="/5EC61D1E/5EC28CF9" Ref="#PWR?" Part="1" 206 | AR Path="/5EC628D0/5EC28CF9" Ref="#PWR?" Part="1" 207 | AR Path="/5EC628D8/5EC28CF9" Ref="#PWR?" Part="1" 208 | AR Path="/5EC64E5C/5EC28CF9" Ref="#PWR?" Part="1" 209 | AR Path="/5EC64E64/5EC28CF9" Ref="#PWR?" Part="1" 210 | AR Path="/5EC64E6C/5EC28CF9" Ref="#PWR?" Part="1" 211 | AR Path="/5EC64E74/5EC28CF9" Ref="#PWR?" Part="1" 212 | AR Path="/5EF5AF13/5EC28CF9" Ref="#PWR057" Part="1" 213 | AR Path="/5EF5EABD/5EC28CF9" Ref="#PWR064" Part="1" 214 | AR Path="/5EF626C9/5EC28CF9" Ref="#PWR071" Part="1" 215 | AR Path="/5EF662C0/5EC28CF9" Ref="#PWR078" Part="1" 216 | AR Path="/5EF69F20/5EC28CF9" Ref="#PWR085" Part="1" 217 | AR Path="/5EF6DACA/5EC28CF9" Ref="#PWR092" Part="1" 218 | AR Path="/5EF71689/5EC28CF9" Ref="#PWR099" Part="1" 219 | F 0 "#PWR099" H 7500 2200 50 0001 C CNN 220 | F 1 "GND" V 7505 2322 50 0000 R CNN 221 | F 2 "" H 7500 2450 50 0001 C CNN 222 | F 3 "" H 7500 2450 50 0001 C CNN 223 | 1 7500 2450 224 | 0 1 1 0 225 | $EndComp 226 | NoConn ~ 7700 2150 227 | NoConn ~ 7700 2250 228 | Text HLabel 7500 3550 0 50 Output ~ 0 229 | DUT_TX 230 | Text HLabel 2100 4350 0 50 Input ~ 0 231 | DUT_POWER 232 | Wire Wire Line 233 | 2100 4350 2200 4350 234 | NoConn ~ 2300 4250 235 | $Comp 236 | L appli_capacitor:100n_X7R_1608M C15 237 | U 1 1 5EC2B730 238 | P 1500 4600 239 | AR Path="/5EC0D2F7/5EC2B730" Ref="C15" Part="1" 240 | AR Path="/5EC61D1E/5EC2B730" Ref="C?" Part="1" 241 | AR Path="/5EC628D0/5EC2B730" Ref="C?" Part="1" 242 | AR Path="/5EC628D8/5EC2B730" Ref="C?" Part="1" 243 | AR Path="/5EC64E5C/5EC2B730" Ref="C?" Part="1" 244 | AR Path="/5EC64E64/5EC2B730" Ref="C?" Part="1" 245 | AR Path="/5EC64E6C/5EC2B730" Ref="C?" Part="1" 246 | AR Path="/5EC64E74/5EC2B730" Ref="C?" Part="1" 247 | AR Path="/5EF5AF13/5EC2B730" Ref="C17" Part="1" 248 | AR Path="/5EF5EABD/5EC2B730" Ref="C19" Part="1" 249 | AR Path="/5EF626C9/5EC2B730" Ref="C21" Part="1" 250 | AR Path="/5EF662C0/5EC2B730" Ref="C23" Part="1" 251 | AR Path="/5EF69F20/5EC2B730" Ref="C25" Part="1" 252 | AR Path="/5EF6DACA/5EC2B730" Ref="C27" Part="1" 253 | AR Path="/5EF71689/5EC2B730" Ref="C29" Part="1" 254 | F 0 "C29" H 1422 4465 50 0000 R CNN 255 | F 1 "100n_X7R_1608M" H 1422 4545 35 0000 R CNN 256 | F 2 "Applidyne_Capacitor:CAPC1608X90N" V 1615 4500 20 0001 C CNN 257 | F 3 "http://www.farnell.com/datasheets/1732728.pdf" V 1640 4500 20 0001 C CNN 258 | F 4 "KEMET" V 1690 4500 20 0001 C CNN "manf" 259 | F 5 "C0603C104K5RACAUTO" V 1715 4500 20 0001 C CNN "manf#" 260 | F 6 "Element14" V 1740 4500 20 0001 C CNN "Supplier" 261 | F 7 "2070398" V 1765 4500 20 0001 C CNN "Supplier Part No" 262 | F 8 "http://au.element14.com/kemet/c0603c104k5racauto/cap-mlcc-x7r-100nf-50v-0603/dp/2070398" V 1790 4500 20 0001 C CNN "Supplier URL" 263 | F 9 "0.011" V 1815 4500 20 0001 C CNN "Supplier Price" 264 | F 10 "1" V 1840 4500 20 0001 C CNN "Supplier Price Break" 265 | 1 1500 4600 266 | 1 0 0 1 267 | $EndComp 268 | Wire Wire Line 269 | 1500 4600 1500 4950 270 | $Comp 271 | L appli_power:GND #PWR045 272 | U 1 1 5EC2CF91 273 | P 1500 4950 274 | AR Path="/5EC0D2F7/5EC2CF91" Ref="#PWR045" Part="1" 275 | AR Path="/5EC61D1E/5EC2CF91" Ref="#PWR?" Part="1" 276 | AR Path="/5EC628D0/5EC2CF91" Ref="#PWR?" Part="1" 277 | AR Path="/5EC628D8/5EC2CF91" Ref="#PWR?" Part="1" 278 | AR Path="/5EC64E5C/5EC2CF91" Ref="#PWR?" Part="1" 279 | AR Path="/5EC64E64/5EC2CF91" Ref="#PWR?" Part="1" 280 | AR Path="/5EC64E6C/5EC2CF91" Ref="#PWR?" Part="1" 281 | AR Path="/5EC64E74/5EC2CF91" Ref="#PWR?" Part="1" 282 | AR Path="/5EF5AF13/5EC2CF91" Ref="#PWR052" Part="1" 283 | AR Path="/5EF5EABD/5EC2CF91" Ref="#PWR059" Part="1" 284 | AR Path="/5EF626C9/5EC2CF91" Ref="#PWR066" Part="1" 285 | AR Path="/5EF662C0/5EC2CF91" Ref="#PWR073" Part="1" 286 | AR Path="/5EF69F20/5EC2CF91" Ref="#PWR080" Part="1" 287 | AR Path="/5EF6DACA/5EC2CF91" Ref="#PWR087" Part="1" 288 | AR Path="/5EF71689/5EC2CF91" Ref="#PWR094" Part="1" 289 | F 0 "#PWR094" H 1500 4700 50 0001 C CNN 290 | F 1 "GND" H 1505 4777 50 0000 C CNN 291 | F 2 "" H 1500 4950 50 0001 C CNN 292 | F 3 "" H 1500 4950 50 0001 C CNN 293 | 1 1500 4950 294 | 1 0 0 -1 295 | $EndComp 296 | Wire Wire Line 297 | 1500 4400 1500 4100 298 | Connection ~ 1500 4100 299 | $Comp 300 | L appli_capacitor:4u7_X7R_2012M C16 301 | U 1 1 5EC3DBC3 302 | P 5850 4400 303 | AR Path="/5EC0D2F7/5EC3DBC3" Ref="C16" Part="1" 304 | AR Path="/5EC61D1E/5EC3DBC3" Ref="C?" Part="1" 305 | AR Path="/5EC628D0/5EC3DBC3" Ref="C?" Part="1" 306 | AR Path="/5EC628D8/5EC3DBC3" Ref="C?" Part="1" 307 | AR Path="/5EC64E5C/5EC3DBC3" Ref="C?" Part="1" 308 | AR Path="/5EC64E64/5EC3DBC3" Ref="C?" Part="1" 309 | AR Path="/5EC64E6C/5EC3DBC3" Ref="C?" Part="1" 310 | AR Path="/5EC64E74/5EC3DBC3" Ref="C?" Part="1" 311 | AR Path="/5EF5AF13/5EC3DBC3" Ref="C18" Part="1" 312 | AR Path="/5EF5EABD/5EC3DBC3" Ref="C20" Part="1" 313 | AR Path="/5EF626C9/5EC3DBC3" Ref="C22" Part="1" 314 | AR Path="/5EF662C0/5EC3DBC3" Ref="C24" Part="1" 315 | AR Path="/5EF69F20/5EC3DBC3" Ref="C26" Part="1" 316 | AR Path="/5EF6DACA/5EC3DBC3" Ref="C28" Part="1" 317 | AR Path="/5EF71689/5EC3DBC3" Ref="C30" Part="1" 318 | F 0 "C30" H 5928 4335 50 0000 L CNN 319 | F 1 "4u7_X7R_2012M" H 5928 4255 35 0000 L CNN 320 | F 2 "Applidyne_Capacitor:CAPC2012X110N" V 5965 4300 20 0001 C CNN 321 | F 3 "http://www.farnell.com/datasheets/1870456.pdf" V 5990 4300 20 0001 C CNN 322 | F 4 "MULTICOMP" V 6040 4300 20 0001 C CNN "manf" 323 | F 5 "MC0805B475K160CT" V 6065 4300 20 0001 C CNN "manf#" 324 | F 6 "Element14" V 6090 4300 20 0001 C CNN "Supplier" 325 | F 7 "2320854" V 6115 4300 20 0001 C CNN "Supplier Part No" 326 | F 8 "http://au.element14.com/multicomp/mc0805b475k160ct/cap-mlcc-x7r-4-7uf-16v-0805/dp/2320854" V 6140 4300 20 0001 C CNN "Supplier URL" 327 | F 9 "0.252" V 6165 4300 20 0001 C CNN "Supplier Price" 328 | F 10 "10" V 6190 4300 20 0001 C CNN "Supplier Price Break" 329 | 1 5850 4400 330 | 1 0 0 -1 331 | $EndComp 332 | Wire Wire Line 333 | 5850 4400 5850 4100 334 | Wire Wire Line 335 | 5850 4600 5850 4950 336 | $Comp 337 | L appli_power:GND #PWR048 338 | U 1 1 5EC3F323 339 | P 5850 4950 340 | AR Path="/5EC0D2F7/5EC3F323" Ref="#PWR048" Part="1" 341 | AR Path="/5EC61D1E/5EC3F323" Ref="#PWR?" Part="1" 342 | AR Path="/5EC628D0/5EC3F323" Ref="#PWR?" Part="1" 343 | AR Path="/5EC628D8/5EC3F323" Ref="#PWR?" Part="1" 344 | AR Path="/5EC64E5C/5EC3F323" Ref="#PWR?" Part="1" 345 | AR Path="/5EC64E64/5EC3F323" Ref="#PWR?" Part="1" 346 | AR Path="/5EC64E6C/5EC3F323" Ref="#PWR?" Part="1" 347 | AR Path="/5EC64E74/5EC3F323" Ref="#PWR?" Part="1" 348 | AR Path="/5EF5AF13/5EC3F323" Ref="#PWR055" Part="1" 349 | AR Path="/5EF5EABD/5EC3F323" Ref="#PWR062" Part="1" 350 | AR Path="/5EF626C9/5EC3F323" Ref="#PWR069" Part="1" 351 | AR Path="/5EF662C0/5EC3F323" Ref="#PWR076" Part="1" 352 | AR Path="/5EF69F20/5EC3F323" Ref="#PWR083" Part="1" 353 | AR Path="/5EF6DACA/5EC3F323" Ref="#PWR090" Part="1" 354 | AR Path="/5EF71689/5EC3F323" Ref="#PWR097" Part="1" 355 | F 0 "#PWR097" H 5850 4700 50 0001 C CNN 356 | F 1 "GND" H 5855 4777 50 0000 C CNN 357 | F 2 "" H 5850 4950 50 0001 C CNN 358 | F 3 "" H 5850 4950 50 0001 C CNN 359 | 1 5850 4950 360 | 1 0 0 -1 361 | $EndComp 362 | NoConn ~ 7700 2350 363 | NoConn ~ 7700 3650 364 | NoConn ~ 7700 3350 365 | NoConn ~ 7700 3250 366 | NoConn ~ 7700 3150 367 | Text HLabel 7500 3450 0 50 Input ~ 0 368 | DUT_RX 369 | Text HLabel 7500 4300 0 50 Output ~ 0 370 | DUT_STATE_B 371 | $Comp 372 | L appli_device:LED_YELLOW_1608M D1 373 | U 1 1 5EC4F024 374 | P 6450 4700 375 | AR Path="/5EC0D2F7/5EC4F024" Ref="D1" Part="1" 376 | AR Path="/5EC61D1E/5EC4F024" Ref="D?" Part="1" 377 | AR Path="/5EC628D0/5EC4F024" Ref="D?" Part="1" 378 | AR Path="/5EC628D8/5EC4F024" Ref="D?" Part="1" 379 | AR Path="/5EC64E5C/5EC4F024" Ref="D?" Part="1" 380 | AR Path="/5EC64E64/5EC4F024" Ref="D?" Part="1" 381 | AR Path="/5EC64E6C/5EC4F024" Ref="D?" Part="1" 382 | AR Path="/5EC64E74/5EC4F024" Ref="D?" Part="1" 383 | AR Path="/5EF5AF13/5EC4F024" Ref="D2" Part="1" 384 | AR Path="/5EF5EABD/5EC4F024" Ref="D3" Part="1" 385 | AR Path="/5EF626C9/5EC4F024" Ref="D4" Part="1" 386 | AR Path="/5EF662C0/5EC4F024" Ref="D5" Part="1" 387 | AR Path="/5EF69F20/5EC4F024" Ref="D6" Part="1" 388 | AR Path="/5EF6DACA/5EC4F024" Ref="D7" Part="1" 389 | AR Path="/5EF71689/5EC4F024" Ref="D8" Part="1" 390 | F 0 "D8" V 6496 4592 50 0000 R CNN 391 | F 1 "LED_YELLOW_1608M" V 6405 4592 50 0000 R CNN 392 | F 2 "Applidyne_LED:LEDC1608X80L40N" H 6450 4900 50 0001 C CNN 393 | F 3 "http://www.farnell.com/datasheets/1720200.pdf" H 6450 4490 50 0001 C CNN 394 | F 4 "DIALIGHT" H 6450 4280 60 0001 C CNN "manf" 395 | F 5 "5988040107F" H 6450 4190 60 0001 C CNN "manf#" 396 | F 6 "Element 14" H 6450 4090 60 0001 C CNN "Supplier" 397 | F 7 "1465989" H 6450 3990 60 0001 C CNN "Supplier Part No" 398 | F 8 "http://au.element14.com/dialight/5988040107f/led-yellow-0-8mm-x-1-1mm-130mcd/dp/1465989" H 6460 3910 60 0001 C CNN "Supplier URL" 399 | F 9 "0.29" H 6450 3810 60 0001 C CNN "Supplier Price" 400 | F 10 "10" H 6450 3710 60 0001 C CNN "Supplier Price Break" 401 | 1 6450 4700 402 | 0 -1 -1 0 403 | $EndComp 404 | $Comp 405 | L appli_resistor:1K00_1608M R6 406 | U 1 1 5EC50A22 407 | P 6450 4150 408 | AR Path="/5EC0D2F7/5EC50A22" Ref="R6" Part="1" 409 | AR Path="/5EC61D1E/5EC50A22" Ref="R?" Part="1" 410 | AR Path="/5EC628D0/5EC50A22" Ref="R?" Part="1" 411 | AR Path="/5EC628D8/5EC50A22" Ref="R?" Part="1" 412 | AR Path="/5EC64E5C/5EC50A22" Ref="R?" Part="1" 413 | AR Path="/5EC64E64/5EC50A22" Ref="R?" Part="1" 414 | AR Path="/5EC64E6C/5EC50A22" Ref="R?" Part="1" 415 | AR Path="/5EC64E74/5EC50A22" Ref="R?" Part="1" 416 | AR Path="/5EF5AF13/5EC50A22" Ref="R8" Part="1" 417 | AR Path="/5EF5EABD/5EC50A22" Ref="R10" Part="1" 418 | AR Path="/5EF626C9/5EC50A22" Ref="R12" Part="1" 419 | AR Path="/5EF662C0/5EC50A22" Ref="R14" Part="1" 420 | AR Path="/5EF69F20/5EC50A22" Ref="R16" Part="1" 421 | AR Path="/5EF6DACA/5EC50A22" Ref="R18" Part="1" 422 | AR Path="/5EF71689/5EC50A22" Ref="R20" Part="1" 423 | F 0 "R20" H 6523 4035 50 0000 L CNN 424 | F 1 "1K00_1608M" H 6523 3955 35 0000 L CNN 425 | F 2 "Applidyne_Resistor:RESC1608X50N" V 6560 4000 20 0001 C CNN 426 | F 3 "" V 6585 4000 20 0001 C CNN 427 | F 4 "MULTICOMP" V 6635 4000 20 0001 C CNN "manf" 428 | F 5 "MCHP03W8F1001T5E" V 6660 4000 20 0001 C CNN "manf#" 429 | F 6 "Element14" V 6685 4000 20 0001 C CNN "Supplier" 430 | F 7 "1576283" V 6710 4000 20 0001 C CNN "Supplier Part No" 431 | F 8 "http://au.element14.com/multicomp/mchp03w8f1001t5e/resistor-thick-film-1k-0-125w/dp/1576283" V 6735 4000 20 0001 C CNN "Supplier URL" 432 | F 9 "0.011" V 6760 4000 20 0001 C CNN "Supplier Price" 433 | F 10 "50+" V 6785 4000 20 0001 C CNN "Supplier Price Break" 434 | 1 6450 4150 435 | 1 0 0 -1 436 | $EndComp 437 | $Comp 438 | L appli_resistor:43K_1608M R5 439 | U 1 1 5EC5593C 440 | P 3950 4350 441 | AR Path="/5EC0D2F7/5EC5593C" Ref="R5" Part="1" 442 | AR Path="/5EC61D1E/5EC5593C" Ref="R?" Part="1" 443 | AR Path="/5EC628D0/5EC5593C" Ref="R?" Part="1" 444 | AR Path="/5EC628D8/5EC5593C" Ref="R?" Part="1" 445 | AR Path="/5EC64E5C/5EC5593C" Ref="R?" Part="1" 446 | AR Path="/5EC64E64/5EC5593C" Ref="R?" Part="1" 447 | AR Path="/5EC64E6C/5EC5593C" Ref="R?" Part="1" 448 | AR Path="/5EC64E74/5EC5593C" Ref="R?" Part="1" 449 | AR Path="/5EF5AF13/5EC5593C" Ref="R7" Part="1" 450 | AR Path="/5EF5EABD/5EC5593C" Ref="R9" Part="1" 451 | AR Path="/5EF626C9/5EC5593C" Ref="R11" Part="1" 452 | AR Path="/5EF662C0/5EC5593C" Ref="R13" Part="1" 453 | AR Path="/5EF69F20/5EC5593C" Ref="R15" Part="1" 454 | AR Path="/5EF6DACA/5EC5593C" Ref="R17" Part="1" 455 | AR Path="/5EF71689/5EC5593C" Ref="R19" Part="1" 456 | F 0 "R19" H 4023 4235 50 0000 L CNN 457 | F 1 "43K_1608M" H 4023 4155 35 0000 L CNN 458 | F 2 "Applidyne_Resistor:RESC1608X50N" V 4060 4200 20 0001 C CNN 459 | F 3 "http://www.farnell.com/datasheets/1716711.pdf" V 4085 4200 20 0001 C CNN 460 | F 4 "MULTICOMP" V 4135 4200 20 0001 C CNN "manf" 461 | F 5 "MCMR06X4302FTL" V 4160 4200 20 0001 C CNN "manf#" 462 | F 6 "Element14" V 4185 4200 20 0001 C CNN "Supplier" 463 | F 7 "2073501" V 4210 4200 20 0001 C CNN "Supplier Part No" 464 | F 8 "http://au.element14.com/multicomp/mcmr06x4302ftl/resistor-0603-43k-1-anti-sulfur/dp/2073501" V 4235 4200 20 0001 C CNN "Supplier URL" 465 | F 9 "0.0011" V 4260 4200 20 0001 C CNN "Supplier Price" 466 | F 10 "1" V 4285 4200 20 0001 C CNN "Supplier Price Break" 467 | 1 3950 4350 468 | 1 0 0 -1 469 | $EndComp 470 | Text Notes 3500 4700 0 50 ~ 0 471 | eFuse\n@500mA\n 472 | Wire Wire Line 473 | 6450 4900 6450 4950 474 | $Comp 475 | L appli_power:GND #PWR049 476 | U 1 1 5EC5FD1D 477 | P 6450 4950 478 | AR Path="/5EC0D2F7/5EC5FD1D" Ref="#PWR049" Part="1" 479 | AR Path="/5EC61D1E/5EC5FD1D" Ref="#PWR?" Part="1" 480 | AR Path="/5EC628D0/5EC5FD1D" Ref="#PWR?" Part="1" 481 | AR Path="/5EC628D8/5EC5FD1D" Ref="#PWR?" Part="1" 482 | AR Path="/5EC64E5C/5EC5FD1D" Ref="#PWR?" Part="1" 483 | AR Path="/5EC64E64/5EC5FD1D" Ref="#PWR?" Part="1" 484 | AR Path="/5EC64E6C/5EC5FD1D" Ref="#PWR?" Part="1" 485 | AR Path="/5EC64E74/5EC5FD1D" Ref="#PWR?" Part="1" 486 | AR Path="/5EF5AF13/5EC5FD1D" Ref="#PWR056" Part="1" 487 | AR Path="/5EF5EABD/5EC5FD1D" Ref="#PWR063" Part="1" 488 | AR Path="/5EF626C9/5EC5FD1D" Ref="#PWR070" Part="1" 489 | AR Path="/5EF662C0/5EC5FD1D" Ref="#PWR077" Part="1" 490 | AR Path="/5EF69F20/5EC5FD1D" Ref="#PWR084" Part="1" 491 | AR Path="/5EF6DACA/5EC5FD1D" Ref="#PWR091" Part="1" 492 | AR Path="/5EF71689/5EC5FD1D" Ref="#PWR098" Part="1" 493 | F 0 "#PWR098" H 6450 4700 50 0001 C CNN 494 | F 1 "GND" H 6455 4777 50 0000 C CNN 495 | F 2 "" H 6450 4950 50 0001 C CNN 496 | F 3 "" H 6450 4950 50 0001 C CNN 497 | 1 6450 4950 498 | 1 0 0 -1 499 | $EndComp 500 | Wire Wire Line 501 | 6450 4500 6450 4450 502 | Wire Wire Line 503 | 6450 4150 6450 4100 504 | Text HLabel 7500 2750 0 50 Input ~ 0 505 | DUT_ADC 506 | Wire Wire Line 507 | 7500 4300 7700 4300 508 | Text HLabel 7500 4400 0 50 Output ~ 0 509 | DUT_STATE_A 510 | Wire Wire Line 511 | 7500 4400 7700 4400 512 | Text Notes 2600 3300 0 79 ~ 16 513 | POWER SWITCH 514 | Text Notes 7100 1900 0 79 ~ 16 515 | FEATHER FOOTPRINT 516 | Text Notes 6250 4000 0 50 ~ 0 517 | POWER LED 518 | NoConn ~ 7700 4500 519 | NoConn ~ 7700 4600 520 | NoConn ~ 7700 4700 521 | NoConn ~ 7700 4800 522 | NoConn ~ 7700 4900 523 | NoConn ~ 7700 5000 524 | NoConn ~ 7700 2550 525 | NoConn ~ 7700 2650 526 | NoConn ~ 7700 2850 527 | NoConn ~ 7700 2950 528 | NoConn ~ 7700 3050 529 | Wire Wire Line 530 | 7500 2750 7700 2750 531 | $Comp 532 | L appli_inductor:220R_2012M FB1 533 | U 1 1 5ED1A7A7 534 | P 4300 4100 535 | AR Path="/5EC0D2F7/5ED1A7A7" Ref="FB1" Part="1" 536 | AR Path="/5EF5AF13/5ED1A7A7" Ref="FB2" Part="1" 537 | AR Path="/5EF5EABD/5ED1A7A7" Ref="FB3" Part="1" 538 | AR Path="/5EF626C9/5ED1A7A7" Ref="FB4" Part="1" 539 | AR Path="/5EF662C0/5ED1A7A7" Ref="FB5" Part="1" 540 | AR Path="/5EF69F20/5ED1A7A7" Ref="FB6" Part="1" 541 | AR Path="/5EF6DACA/5ED1A7A7" Ref="FB7" Part="1" 542 | AR Path="/5EF71689/5ED1A7A7" Ref="FB8" Part="1" 543 | F 0 "FB8" V 4113 3950 55 0000 C CNN 544 | F 1 "220R_2012M" V 4197 3950 35 0000 C CNN 545 | F 2 "Applidyne_Inductor:INDC2012X145N" V 4415 3950 20 0001 C CNN 546 | F 3 "http://www.farnell.com/datasheets/84904.pdf" V 4440 3950 20 0001 C CNN 547 | F 4 "TDK" V 4490 3950 20 0001 C CNN "manf" 548 | F 5 "MPZ2012S221A" V 4515 3950 20 0001 C CNN "manf#" 549 | F 6 "Element14" V 4540 3950 20 0001 C CNN "Supplier" 550 | F 7 "1669752" V 4565 3950 20 0001 C CNN "Supplier Part No" 551 | F 8 "http://au.element14.com/tdk/mpz2012s221a/ferrite-bead-0-04ohm-3a-0805/dp/1669752" V 4590 3950 20 0001 C CNN "Supplier URL" 552 | F 9 "0.094" V 4615 3950 20 0001 C CNN "Supplier Price" 553 | F 10 "5+" V 4640 3950 20 0001 C CNN "Supplier Price Break" 554 | 1 4300 4100 555 | 0 1 1 0 556 | $EndComp 557 | $Comp 558 | L appli_resistor:10R_1608M R60 559 | U 1 1 5ED1B21E 560 | P 4550 4200 561 | AR Path="/5EC0D2F7/5ED1B21E" Ref="R60" Part="1" 562 | AR Path="/5EF5AF13/5ED1B21E" Ref="R62" Part="1" 563 | AR Path="/5EF5EABD/5ED1B21E" Ref="R64" Part="1" 564 | AR Path="/5EF626C9/5ED1B21E" Ref="R66" Part="1" 565 | AR Path="/5EF662C0/5ED1B21E" Ref="R68" Part="1" 566 | AR Path="/5EF69F20/5ED1B21E" Ref="R70" Part="1" 567 | AR Path="/5EF6DACA/5ED1B21E" Ref="R72" Part="1" 568 | AR Path="/5EF71689/5ED1B21E" Ref="R74" Part="1" 569 | F 0 "R74" H 4623 4085 50 0000 L CNN 570 | F 1 "10R_1608M" H 4623 4005 35 0000 L CNN 571 | F 2 "Applidyne_Resistor:RESC1608X50N" V 4660 4050 20 0001 C CNN 572 | F 3 "http://www.farnell.com/datasheets/1723233.pdf" V 4685 4050 20 0001 C CNN 573 | F 4 "MULTICOMP" V 4735 4050 20 0001 C CNN "manf" 574 | F 5 "MCHP03W8F100JT5E" V 4760 4050 20 0001 C CNN "manf#" 575 | F 6 "Element14" V 4785 4050 20 0001 C CNN "Supplier" 576 | F 7 "1576250" V 4810 4050 20 0001 C CNN "Supplier Part No" 577 | F 8 "http://au.element14.com/multicomp/mchp03w8f100jt5e/res-thick-film-10r-1-0-125w-0603/dp/1576250" V 4835 4050 20 0001 C CNN "Supplier URL" 578 | F 9 "0.025" V 4860 4050 20 0001 C CNN "Supplier Price" 579 | F 10 "1" V 4885 4050 20 0001 C CNN "Supplier Price Break" 580 | 1 4550 4200 581 | 1 0 0 -1 582 | $EndComp 583 | $Comp 584 | L appli_capacitor:470n_X7R_1608M C64 585 | U 1 1 5ED1BDC5 586 | P 4550 4600 587 | AR Path="/5EC0D2F7/5ED1BDC5" Ref="C64" Part="1" 588 | AR Path="/5EF5AF13/5ED1BDC5" Ref="C66" Part="1" 589 | AR Path="/5EF5EABD/5ED1BDC5" Ref="C68" Part="1" 590 | AR Path="/5EF626C9/5ED1BDC5" Ref="C70" Part="1" 591 | AR Path="/5EF662C0/5ED1BDC5" Ref="C72" Part="1" 592 | AR Path="/5EF69F20/5ED1BDC5" Ref="C74" Part="1" 593 | AR Path="/5EF6DACA/5ED1BDC5" Ref="C76" Part="1" 594 | AR Path="/5EF71689/5ED1BDC5" Ref="C78" Part="1" 595 | F 0 "C78" H 4628 4535 50 0000 L CNN 596 | F 1 "470n_X7R_1608M" H 4628 4455 35 0000 L CNN 597 | F 2 "Applidyne_Capacitor:CAPC1608X90N" V 4665 4500 20 0001 C CNN 598 | F 3 "http://www.farnell.com/datasheets/1825494.pdf" V 4690 4500 20 0001 C CNN 599 | F 4 "MULTICOMP" V 4740 4500 20 0001 C CNN "manf" 600 | F 5 "MCSH18B474K250CT" V 4765 4500 20 0001 C CNN "manf#" 601 | F 6 "Element14" V 4790 4500 20 0001 C CNN "Supplier" 602 | F 7 "1856365" V 4815 4500 20 0001 C CNN "Supplier Part No" 603 | F 8 "http://au.element14.com/multicomp/mcsh18b474k250ct/cap-mlcc-x7r-470nf-25v-0603/dp/1856365" V 4840 4500 20 0001 C CNN "Supplier URL" 604 | F 9 "0.019" V 4865 4500 20 0001 C CNN "Supplier Price" 605 | F 10 "1" V 4890 4500 20 0001 C CNN "Supplier Price Break" 606 | 1 4550 4600 607 | 1 0 0 -1 608 | $EndComp 609 | $Comp 610 | L appli_capacitor:4n7_X7R_1608M C65 611 | U 1 1 5ED1CABA 612 | P 5200 4450 613 | AR Path="/5EC0D2F7/5ED1CABA" Ref="C65" Part="1" 614 | AR Path="/5EF5AF13/5ED1CABA" Ref="C67" Part="1" 615 | AR Path="/5EF5EABD/5ED1CABA" Ref="C69" Part="1" 616 | AR Path="/5EF626C9/5ED1CABA" Ref="C71" Part="1" 617 | AR Path="/5EF662C0/5ED1CABA" Ref="C73" Part="1" 618 | AR Path="/5EF69F20/5ED1CABA" Ref="C75" Part="1" 619 | AR Path="/5EF6DACA/5ED1CABA" Ref="C77" Part="1" 620 | AR Path="/5EF71689/5ED1CABA" Ref="C79" Part="1" 621 | F 0 "C79" H 5278 4385 50 0000 L CNN 622 | F 1 "4n7_X7R_1608M" H 5278 4305 35 0000 L CNN 623 | F 2 "Applidyne_Capacitor:CAPC1608X90N" V 5315 4350 20 0001 C CNN 624 | F 3 "http://www.farnell.com/datasheets/1958513.pdf" V 5340 4350 20 0001 C CNN 625 | F 4 "WALSIN" V 5390 4350 20 0001 C CNN "manf" 626 | F 5 "0603B473K500CT" V 5415 4350 20 0001 C CNN "manf#" 627 | F 6 "Element14" V 5440 4350 20 0001 C CNN "Supplier" 628 | F 7 "2496867" V 5465 4350 20 0001 C CNN "Supplier Part No" 629 | F 8 "http://au.element14.com/walsin/0603b473k500ct/capacitor-mlcc-x7r-0-047uf-50v/dp/2496867" V 5490 4350 20 0001 C CNN "Supplier URL" 630 | F 9 "0.029" V 5515 4350 20 0001 C CNN "Supplier Price" 631 | F 10 "10" V 5540 4350 20 0001 C CNN "Supplier Price Break" 632 | 1 5200 4450 633 | 1 0 0 -1 634 | $EndComp 635 | Wire Wire Line 636 | 4550 4600 4550 4500 637 | Wire Wire Line 638 | 4550 4200 4550 4100 639 | Wire Wire Line 640 | 5200 4450 5200 4100 641 | Wire Wire Line 642 | 5200 4100 4550 4100 643 | Connection ~ 4550 4100 644 | Wire Wire Line 645 | 4550 4100 4300 4100 646 | Wire Wire Line 647 | 4000 4100 3700 4100 648 | Wire Wire Line 649 | 4550 4800 4550 4950 650 | Wire Wire Line 651 | 5200 4650 5200 4950 652 | Wire Wire Line 653 | 7700 4100 6450 4100 654 | Connection ~ 5200 4100 655 | Connection ~ 5850 4100 656 | Wire Wire Line 657 | 5850 4100 5200 4100 658 | Connection ~ 6450 4100 659 | Wire Wire Line 660 | 6450 4100 5850 4100 661 | $Comp 662 | L appli_power:GND #PWR0124 663 | U 1 1 5ED327EE 664 | P 5200 4950 665 | AR Path="/5EC0D2F7/5ED327EE" Ref="#PWR0124" Part="1" 666 | AR Path="/5EC61D1E/5ED327EE" Ref="#PWR?" Part="1" 667 | AR Path="/5EC628D0/5ED327EE" Ref="#PWR?" Part="1" 668 | AR Path="/5EC628D8/5ED327EE" Ref="#PWR?" Part="1" 669 | AR Path="/5EC64E5C/5ED327EE" Ref="#PWR?" Part="1" 670 | AR Path="/5EC64E64/5ED327EE" Ref="#PWR?" Part="1" 671 | AR Path="/5EC64E6C/5ED327EE" Ref="#PWR?" Part="1" 672 | AR Path="/5EC64E74/5ED327EE" Ref="#PWR?" Part="1" 673 | AR Path="/5EF5AF13/5ED327EE" Ref="#PWR0148" Part="1" 674 | AR Path="/5EF5EABD/5ED327EE" Ref="#PWR0224" Part="1" 675 | AR Path="/5EF626C9/5ED327EE" Ref="#PWR0227" Part="1" 676 | AR Path="/5EF662C0/5ED327EE" Ref="#PWR0230" Part="1" 677 | AR Path="/5EF69F20/5ED327EE" Ref="#PWR0233" Part="1" 678 | AR Path="/5EF6DACA/5ED327EE" Ref="#PWR0236" Part="1" 679 | AR Path="/5EF71689/5ED327EE" Ref="#PWR0239" Part="1" 680 | F 0 "#PWR0239" H 5200 4700 50 0001 C CNN 681 | F 1 "GND" H 5205 4777 50 0000 C CNN 682 | F 2 "" H 5200 4950 50 0001 C CNN 683 | F 3 "" H 5200 4950 50 0001 C CNN 684 | 1 5200 4950 685 | 1 0 0 -1 686 | $EndComp 687 | $Comp 688 | L appli_power:GND #PWR0116 689 | U 1 1 5ED32A8F 690 | P 4550 4950 691 | AR Path="/5EC0D2F7/5ED32A8F" Ref="#PWR0116" Part="1" 692 | AR Path="/5EC61D1E/5ED32A8F" Ref="#PWR?" Part="1" 693 | AR Path="/5EC628D0/5ED32A8F" Ref="#PWR?" Part="1" 694 | AR Path="/5EC628D8/5ED32A8F" Ref="#PWR?" Part="1" 695 | AR Path="/5EC64E5C/5ED32A8F" Ref="#PWR?" Part="1" 696 | AR Path="/5EC64E64/5ED32A8F" Ref="#PWR?" Part="1" 697 | AR Path="/5EC64E6C/5ED32A8F" Ref="#PWR?" Part="1" 698 | AR Path="/5EC64E74/5ED32A8F" Ref="#PWR?" Part="1" 699 | AR Path="/5EF5AF13/5ED32A8F" Ref="#PWR0140" Part="1" 700 | AR Path="/5EF5EABD/5ED32A8F" Ref="#PWR0164" Part="1" 701 | AR Path="/5EF626C9/5ED32A8F" Ref="#PWR0226" Part="1" 702 | AR Path="/5EF662C0/5ED32A8F" Ref="#PWR0229" Part="1" 703 | AR Path="/5EF69F20/5ED32A8F" Ref="#PWR0232" Part="1" 704 | AR Path="/5EF6DACA/5ED32A8F" Ref="#PWR0235" Part="1" 705 | AR Path="/5EF71689/5ED32A8F" Ref="#PWR0238" Part="1" 706 | F 0 "#PWR0238" H 4550 4700 50 0001 C CNN 707 | F 1 "GND" H 4555 4777 50 0000 C CNN 708 | F 2 "" H 4550 4950 50 0001 C CNN 709 | F 3 "" H 4550 4950 50 0001 C CNN 710 | 1 4550 4950 711 | 1 0 0 -1 712 | $EndComp 713 | Text Notes 4450 4000 0 50 ~ 0 714 | OUTPUT FILTER 715 | $Comp 716 | L appli_resistor:10K0_1608M R57 717 | U 1 1 5ED335D7 718 | P 2200 4550 719 | AR Path="/5EC0D2F7/5ED335D7" Ref="R57" Part="1" 720 | AR Path="/5EF5AF13/5ED335D7" Ref="R61" Part="1" 721 | AR Path="/5EF5EABD/5ED335D7" Ref="R63" Part="1" 722 | AR Path="/5EF626C9/5ED335D7" Ref="R65" Part="1" 723 | AR Path="/5EF662C0/5ED335D7" Ref="R67" Part="1" 724 | AR Path="/5EF69F20/5ED335D7" Ref="R69" Part="1" 725 | AR Path="/5EF6DACA/5ED335D7" Ref="R71" Part="1" 726 | AR Path="/5EF71689/5ED335D7" Ref="R73" Part="1" 727 | F 0 "R73" H 2273 4435 50 0000 L CNN 728 | F 1 "10K0_1608M" H 2273 4355 35 0000 L CNN 729 | F 2 "Applidyne_Resistor:RESC1608X50N" V 2310 4400 20 0001 C CNN 730 | F 3 "http://www.farnell.com/datasheets/1723233.pdf" V 2335 4400 20 0001 C CNN 731 | F 4 "TE CONNECTIVITY" V 2385 4400 20 0001 C CNN "manf" 732 | F 5 "CRGH0603F10K" V 2410 4400 20 0001 C CNN "manf#" 733 | F 6 "Element14" V 2435 4400 20 0001 C CNN "Supplier" 734 | F 7 "2332016" V 2460 4400 20 0001 C CNN "Supplier Part No" 735 | F 8 "http://au.element14.com/te-connectivity/crgh0603f10k/resistor-power-10k-0-2w-1-0603/dp/2332016" V 2485 4400 20 0001 C CNN "Supplier URL" 736 | F 9 "0.02" V 2510 4400 20 0001 C CNN "Supplier Price" 737 | F 10 "10" V 2535 4400 20 0001 C CNN "Supplier Price Break" 738 | 1 2200 4550 739 | 1 0 0 -1 740 | $EndComp 741 | Wire Wire Line 742 | 2200 4850 2200 4950 743 | $Comp 744 | L appli_power:GND #PWR0108 745 | U 1 1 5ED34D97 746 | P 2200 4950 747 | AR Path="/5EC0D2F7/5ED34D97" Ref="#PWR0108" Part="1" 748 | AR Path="/5EF5AF13/5ED34D97" Ref="#PWR0132" Part="1" 749 | AR Path="/5EF5EABD/5ED34D97" Ref="#PWR0156" Part="1" 750 | AR Path="/5EF626C9/5ED34D97" Ref="#PWR0225" Part="1" 751 | AR Path="/5EF662C0/5ED34D97" Ref="#PWR0228" Part="1" 752 | AR Path="/5EF69F20/5ED34D97" Ref="#PWR0231" Part="1" 753 | AR Path="/5EF6DACA/5ED34D97" Ref="#PWR0234" Part="1" 754 | AR Path="/5EF71689/5ED34D97" Ref="#PWR0237" Part="1" 755 | F 0 "#PWR0237" H 2200 4700 50 0001 C CNN 756 | F 1 "GND" H 2205 4777 50 0000 C CNN 757 | F 2 "" H 2200 4950 50 0001 C CNN 758 | F 3 "" H 2200 4950 50 0001 C CNN 759 | 1 2200 4950 760 | 1 0 0 -1 761 | $EndComp 762 | Wire Wire Line 763 | 2200 4550 2200 4350 764 | Connection ~ 2200 4350 765 | Wire Wire Line 766 | 2200 4350 2300 4350 767 | Wire Notes Line 768 | 3900 3800 3900 4200 769 | Wire Notes Line 770 | 3900 4200 4400 4200 771 | Wire Notes Line 772 | 4400 4200 4400 4850 773 | Wire Notes Line 774 | 4400 4850 5750 4850 775 | Wire Notes Line 776 | 5750 4850 5750 3800 777 | Wire Notes Line 778 | 5750 3800 3900 3800 779 | NoConn ~ 7700 4200 780 | $EndSCHEMATC 781 | -------------------------------------------------------------------------------- /hardware/hardware.pro: -------------------------------------------------------------------------------- 1 | update=Thu 11 Jun 2020 23:33:39 2 | version=1 3 | last_client=kicad 4 | [general] 5 | version=1 6 | RootSch= 7 | BoardNm= 8 | [cvpcb] 9 | version=1 10 | NetIExt=net 11 | [eeschema] 12 | version=1 13 | LibDir= 14 | [eeschema/libraries] 15 | [schematic_editor] 16 | version=1 17 | PageLayoutDescrFile=/home/scott/projects/electricui/company/templates/kicad/electricui_schematic.kicad_wks 18 | PlotDirectoryName=output/ 19 | SubpartIdSeparator=0 20 | SubpartFirstId=65 21 | NetFmtName= 22 | SpiceAjustPassiveValues=0 23 | LabSize=50 24 | ERC_TestSimilarLabels=1 25 | [pcbnew] 26 | version=1 27 | PageLayoutDescrFile=/home/scott/projects/electricui/company/templates/kicad/electricui_pcb.kicad_wks 28 | LastNetListRead= 29 | CopperLayerCount=4 30 | BoardThickness=2 31 | AllowMicroVias=0 32 | AllowBlindVias=0 33 | RequireCourtyardDefinitions=0 34 | ProhibitOverlappingCourtyards=1 35 | MinTrackWidth=0.2 36 | MinViaDiameter=0.4 37 | MinViaDrill=0.3 38 | MinMicroViaDiameter=0.2 39 | MinMicroViaDrill=0.09999999999999999 40 | MinHoleToHole=0.25 41 | TrackWidth1=0.25 42 | TrackWidth2=0.25 43 | TrackWidth3=0.4 44 | ViaDiameter1=0.8 45 | ViaDrill1=0.4 46 | ViaDiameter2=0.6 47 | ViaDrill2=0.3 48 | ViaDiameter3=0.7 49 | ViaDrill3=0.4 50 | dPairWidth1=0.2 51 | dPairGap1=0.25 52 | dPairViaGap1=0.25 53 | dPairWidth2=0.261 54 | dPairGap2=0.203 55 | dPairViaGap2=0.7 56 | SilkLineWidth=0.12 57 | SilkTextSizeV=1 58 | SilkTextSizeH=1 59 | SilkTextSizeThickness=0.15 60 | SilkTextItalic=0 61 | SilkTextUpright=1 62 | CopperLineWidth=0.2 63 | CopperTextSizeV=1.5 64 | CopperTextSizeH=1.5 65 | CopperTextThickness=0.3 66 | CopperTextItalic=0 67 | CopperTextUpright=1 68 | EdgeCutLineWidth=0.05 69 | CourtyardLineWidth=0.05 70 | OthersLineWidth=0.15 71 | OthersTextSizeV=1 72 | OthersTextSizeH=1 73 | OthersTextSizeThickness=0.15 74 | OthersTextItalic=0 75 | OthersTextUpright=1 76 | SolderMaskClearance=0.051 77 | SolderMaskMinWidth=0.25 78 | SolderPasteClearance=0 79 | SolderPasteRatio=-0.1 80 | [pcbnew/Layer.F.Cu] 81 | Name=F.Cu 82 | Type=0 83 | Enabled=1 84 | [pcbnew/Layer.In1.Cu] 85 | Name=In1.Cu 86 | Type=0 87 | Enabled=1 88 | [pcbnew/Layer.In2.Cu] 89 | Name=In2.Cu 90 | Type=0 91 | Enabled=1 92 | [pcbnew/Layer.In3.Cu] 93 | Name=In3.Cu 94 | Type=0 95 | Enabled=0 96 | [pcbnew/Layer.In4.Cu] 97 | Name=In4.Cu 98 | Type=0 99 | Enabled=0 100 | [pcbnew/Layer.In5.Cu] 101 | Name=In5.Cu 102 | Type=0 103 | Enabled=0 104 | [pcbnew/Layer.In6.Cu] 105 | Name=In6.Cu 106 | Type=0 107 | Enabled=0 108 | [pcbnew/Layer.In7.Cu] 109 | Name=In7.Cu 110 | Type=0 111 | Enabled=0 112 | [pcbnew/Layer.In8.Cu] 113 | Name=In8.Cu 114 | Type=0 115 | Enabled=0 116 | [pcbnew/Layer.In9.Cu] 117 | Name=In9.Cu 118 | Type=0 119 | Enabled=0 120 | [pcbnew/Layer.In10.Cu] 121 | Name=In10.Cu 122 | Type=0 123 | Enabled=0 124 | [pcbnew/Layer.In11.Cu] 125 | Name=In11.Cu 126 | Type=0 127 | Enabled=0 128 | [pcbnew/Layer.In12.Cu] 129 | Name=In12.Cu 130 | Type=0 131 | Enabled=0 132 | [pcbnew/Layer.In13.Cu] 133 | Name=In13.Cu 134 | Type=0 135 | Enabled=0 136 | [pcbnew/Layer.In14.Cu] 137 | Name=In14.Cu 138 | Type=0 139 | Enabled=0 140 | [pcbnew/Layer.In15.Cu] 141 | Name=In15.Cu 142 | Type=0 143 | Enabled=0 144 | [pcbnew/Layer.In16.Cu] 145 | Name=In16.Cu 146 | Type=0 147 | Enabled=0 148 | [pcbnew/Layer.In17.Cu] 149 | Name=In17.Cu 150 | Type=0 151 | Enabled=0 152 | [pcbnew/Layer.In18.Cu] 153 | Name=In18.Cu 154 | Type=0 155 | Enabled=0 156 | [pcbnew/Layer.In19.Cu] 157 | Name=In19.Cu 158 | Type=0 159 | Enabled=0 160 | [pcbnew/Layer.In20.Cu] 161 | Name=In20.Cu 162 | Type=0 163 | Enabled=0 164 | [pcbnew/Layer.In21.Cu] 165 | Name=In21.Cu 166 | Type=0 167 | Enabled=0 168 | [pcbnew/Layer.In22.Cu] 169 | Name=In22.Cu 170 | Type=0 171 | Enabled=0 172 | [pcbnew/Layer.In23.Cu] 173 | Name=In23.Cu 174 | Type=0 175 | Enabled=0 176 | [pcbnew/Layer.In24.Cu] 177 | Name=In24.Cu 178 | Type=0 179 | Enabled=0 180 | [pcbnew/Layer.In25.Cu] 181 | Name=In25.Cu 182 | Type=0 183 | Enabled=0 184 | [pcbnew/Layer.In26.Cu] 185 | Name=In26.Cu 186 | Type=0 187 | Enabled=0 188 | [pcbnew/Layer.In27.Cu] 189 | Name=In27.Cu 190 | Type=0 191 | Enabled=0 192 | [pcbnew/Layer.In28.Cu] 193 | Name=In28.Cu 194 | Type=0 195 | Enabled=0 196 | [pcbnew/Layer.In29.Cu] 197 | Name=In29.Cu 198 | Type=0 199 | Enabled=0 200 | [pcbnew/Layer.In30.Cu] 201 | Name=In30.Cu 202 | Type=0 203 | Enabled=0 204 | [pcbnew/Layer.B.Cu] 205 | Name=B.Cu 206 | Type=0 207 | Enabled=1 208 | [pcbnew/Layer.B.Adhes] 209 | Enabled=0 210 | [pcbnew/Layer.F.Adhes] 211 | Enabled=0 212 | [pcbnew/Layer.B.Paste] 213 | Enabled=1 214 | [pcbnew/Layer.F.Paste] 215 | Enabled=1 216 | [pcbnew/Layer.B.SilkS] 217 | Enabled=1 218 | [pcbnew/Layer.F.SilkS] 219 | Enabled=1 220 | [pcbnew/Layer.B.Mask] 221 | Enabled=1 222 | [pcbnew/Layer.F.Mask] 223 | Enabled=1 224 | [pcbnew/Layer.Dwgs.User] 225 | Enabled=1 226 | [pcbnew/Layer.Cmts.User] 227 | Enabled=1 228 | [pcbnew/Layer.Eco1.User] 229 | Enabled=1 230 | [pcbnew/Layer.Eco2.User] 231 | Enabled=1 232 | [pcbnew/Layer.Edge.Cuts] 233 | Enabled=1 234 | [pcbnew/Layer.Margin] 235 | Enabled=1 236 | [pcbnew/Layer.B.CrtYd] 237 | Enabled=1 238 | [pcbnew/Layer.F.CrtYd] 239 | Enabled=1 240 | [pcbnew/Layer.B.Fab] 241 | Enabled=1 242 | [pcbnew/Layer.F.Fab] 243 | Enabled=1 244 | [pcbnew/Layer.Rescue] 245 | Enabled=0 246 | [pcbnew/Netclasses] 247 | [pcbnew/Netclasses/Default] 248 | Name=Default 249 | Clearance=0.2 250 | TrackWidth=0.25 251 | ViaDiameter=0.8 252 | ViaDrill=0.4 253 | uViaDiameter=0.3 254 | uViaDrill=0.1 255 | dPairWidth=0.2 256 | dPairGap=0.25 257 | dPairViaGap=0.25 258 | -------------------------------------------------------------------------------- /hardware/output/arena-BOM.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BOM Report - Grouped by Value for /home/scott/projects/electricui/electricui-arena/hardware/hardware.sch 6 | 7 | 8 | 9 | 12 | 13 | 14 |
15 |
16 |
17 |

- Issue:

18 |

BOM Report - Grouped By Value

19 |

20 | Source: /home/scott/projects/electricui/electricui-arena/hardware/hardware.sch 21 |

22 |

23 | Number of components: 253 24 |

25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 |
RefQtyValueDescriptionManf
Manf #
Supp
Supp #
Unit
Price
Extended
Price
InstalledFootprint
C1, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C17, C19, C21, C23, C25, C27, C29, C31, C33, C35, C37, C39, C41, C43, C45, C50, C5131100n_X7R_1608MCAP, MLCC, X7R, 100NF, 50V, 0603KEMET
C0603C104K5RACAUTO
Element14
2070398
$0.011$0.341YesCAPC1608X90N
C2, C16, C18, C20, C22, C24, C26, C28, C30, C32, C34, C36, C38, C40, C42, C44, C46, C47, C48, C49204u7_X7R_2012MCAP, MLCC, X7R, 4.7UF, 16V, 10%, 0805, 2012MMULTICOMP
MC0805B475K160CT
Element14
2320854
$0.252$5.040YesCAPC2012X110N
C62, C632100u_ELEC_35V_660X580MCAP, ALU ELEC, 100UF, 35V, SMDPANASONIC
EEEFT1V101AP
Element14
1868417
$1.02$2.040YesCAPAE660X580DD180L260N
C64, C66, C68, C70, C72, C74, C76, C78, C80, C82, C84, C86, C88, C90, C92, C9416470n_X7R_1608MCAP, MLCC, X7R, 470NF, 25V, 0603, 1608MMULTICOMP
MCSH18B474K250CT
Element14
1856365
$0.019$0.304YesCAPC1608X90N
C65, C67, C69, C71, C73, C75, C77, C79, C81, C83, C85, C87, C89, C91, C93, C95164n7_X7R_1608MCAP, MLCC, X7R, 4.7NF, 50V, 0603WALSIN
0603B473K500CT
Element14
2496867
$0.029$0.464YesCAPC1608X90N
D1, D2, D3, D4, D5, D6, D7, D8, D10, D12, D13, D14, D15, D16, D17, D18, D19, D2018LED_YELLOW_1608MDIALIGHT ChipLED Yellow, 0603, 1608MDIALIGHT
5988040107F
Element 14
1465989
$0.29$5.220YesLEDC1608X80L40N
D111LED_GREEN_1608MDIALIGHT ChipLED Green, 0603, 1608MDIALIGHT
5988070107F
Element 14
1465991
$0.4$0.400YesLEDC1608X80L40N
D91LED_RED_1608MDIALIGHT ChipLED Red, 0603, 1608MDIALIGHT
5988010107F
Element 14
1465988
$0.18$0.180YesLEDC1608X80L40N
FB1, FB2, FB3, FB4, FB5, FB6, FB7, FB8, FB9, FB10, FB11, FB12, FB13, FB14, FB15, FB1616220R_2012MFERRITE BEAD, 220R at 100Mhz, 0.04OHM DC, 3A, 0805, 2012MTDK
MPZ2012S221A
Element14
1669752
$0.094$1.504YesINDC2012X145N
J1, J2, J3, J4, J5, J6, J7, J88USB_A_FEMALE_VERTICALUSB B, 2.0 TYPE A, TE, VERTICAL, PTH, SMTTE
1734366-1
Mouser
571-1734366-1
$0.996$7.968YesTE_1734366-1
J91USB_C_SOCKET_RA_PTH_SIMPLEUSB Type C Recep, USB2 ONLY, Female, R/A, TOPMNT, PTH,GCT
USB4085-GF-A
Digikey
2073-USB4085-GF-ACT-ND
$1.40$1.400YesUSB_C_PTH_GCT_USB4085
P1, P2, P3, P4, P5, P6, P7, P88CONN_01X06Pin Header, 2.54mm, Vertical, PTH, 6 Way, 1 Row, 01x06WURTH ELECTRONIK
61300611121
Element 14
2356158
$0.17$1.360Yes61300611121
P91CONN_01X03Pin Header, 2.54mm, Vertical, PTH, 3 Way, 1 Row, 01x03WURTH ELECTRONIK
61300311121
Element 14
2356154
$0.12$0.120Yes61300311121
R1, R2, R3, R4, R6, R8, R10, R12, R14, R16, R18, R20, R28, R30, R32, R34, R36, R38, R40, R42201K00_1608MRESISTOR, THICK FILM, 1K, 125mW, 1%, 0603, 1608MMULTICOMP
MCHP03W8F1001T5E
Element14
1576283
$0.011$0.220YesRESC1608X50N
R21, R2224K7_1608MRESISTOR, THICK FILM, 100K, 125mW, 1%, 0603, 1608MMULTICOMP
MC0063W060354K7
Element14
9332154
$0.024$0.048YesRESC1608X50N
R23, R57, R61, R63, R65, R67, R69, R71, R73, R75, R77, R79, R81, R83, R85, R87, R891710K0_1608MRESISTOR, THICK FILM, 10K, 125mW, 1%, 0603, 1608MTE CONNECTIVITY
CRGH0603F10K
Element14
2332016
$0.02$0.340YesRESC1608X50N
R27, R29, R31, R33, R35, R37, R39, R418100K_1608MRESISTOR, THICK FILM, 100K, 125mW, 1%, 0603, 1608MMULTICOMP
MC0063W06035100K
Element14
9331719
$0.001$0.008YesRESC1608X50N
R43, R4425K76_1608MRESISTOR, THICK FILM, 5.76K, 100mW, 1%, 0603, 1608MPANASONIC
ERJ3EKF5761V
Element14
2059385
$0.014$0.028YesRESC1608X50N
R5, R7, R9, R11, R13, R15, R17, R19843K_1608MRESISTOR, THICK FILM, 43K, 100mW, 1%, 0603, 1608MMULTICOMP
MCMR06X4302FTL
Element14
2073501
$0.0011$0.009YesRESC1608X50N
R60, R62, R64, R66, R68, R70, R72, R74, R76, R78, R80, R82, R84, R86, R88, R901610R_1608MRESISTOR, THICK FILM, 10R, 125mW, 0603, 1608MMULTICOMP
MCHP03W8F100JT5E
Element14
1576250
$0.025$0.400YesRESC1608X50N
SW1, SW22B3U-1000P_SPST-NO_SMDB3U-1000P - Tactile Switch, SPST-NO, Non Illuminated, 12 V, 50 mA, 1.5 N, Solder, B3U SeriesOMRON
B3U-1000P
Element 14
1333652
$0.546$1.092YesB3U-1000P
U11AP2112K-3.3AP2112K-3.3, LDO Voltage Regulator, 600mA, 3.3 V 2%, 6.5 Vin max, SOT23-5DIODES INCORPORATED
AP2112K-3.3TRG1
Mouser
621-AP2112K-3.3TRG1
$0.207$0.207YesSOT95P280X145-5L30N
U13, U15, U17, U19, U21, U23, U25, U27, U30, U31, U32, U33, U34, U35, U36, U3716AP2553AAP255** Adjustable Current-Limit Power Switch, 2.1A cont, Active High Latch-Off, SOT23-6DIODES ZETEX
AP2553AW6-7
RS Online
921-0492
$0.9$14.400YesSOT95P280X145-6L50N
U14, U16, U18, U20, U22, U24, U26, U28, U299ADAFRUIT_FEATHER_BREAKOUTAdafruit Microcontroller - Feather footprint standard, see adafruit website for compatible micro boards and expansionsNo 'manf' field
No 'manf#' field
No 'Supplier' field
$0$0.000YesADAFRUIT_FEATHER
U2, U3, U5, U6, U7, U86MCP23008-E_SSMicrochip MCP23008-E/SS, 8-channel I/O Expander 1.7MHz, I2C, 20-Pin SSOPMicrochip
MCP23008-E/SS
RS Online
770-9707
$1.566$9.396YesSOP20P65_720X780X200L75X30N
U381USBLC6USBLC6-2 Low capacitance ESD Protection ICST
USBLC6-2SC6
RS Online
624-7693
$0.59$0.590YesSOT95P280X145-6L50N
U391SN74LVC1G66Switch, Analog/Bilateral, SPDT, 1-ch switch, 1.65V-5.5V, SOT-23-5TEXAS INSTRUMENTS
SN74LVC1G66DBVR
Mouser
595-SN74LVC1G66DBVR
$0.43$0.430YesSOT95P240X110-5L16N
U41MAX4999ETJUSB 2.0 Multiplexer, 8-channel, 480Mbps, QFN32MAXIM INTEGRATED
MAX4999ETJ+
Mouser
700-MAX4999ETJ
$10.78$0.780YesQFN33P50_500X500X100L40X24T345N
U9, U10, U11, U124SN74LV4051APWAnalog Multiplexer, 8-channel, 8:1, 75Ohm, 35MHz, 2V-5.5V, TSSOP16TI
SN74LV4051APWR
Mouser
$0.654$2.616YesSOP16P65_500X640X120L62X24N
$56.905
67 |
68 |
69 |
70 |
71 |

72 | Generated: Mon 08 Jun 2020 17:54:34
73 | Script: /home/scott/projects/ECAD/appli-scripts/BOM/bom/BOM-GroupedByValue.py
74 | Version: Eeschema 5.1.2 75 |

76 |
77 |
78 |
79 | 80 | 81 | -------------------------------------------------------------------------------- /hardware/output/arena-pcb.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/electricui/electricui-arena/4615f1ceb347eb59eabb07f236982c38428f131a/hardware/output/arena-pcb.pdf -------------------------------------------------------------------------------- /hardware/output/arena-sch.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/electricui/electricui-arena/4615f1ceb347eb59eabb07f236982c38428f131a/hardware/output/arena-sch.pdf -------------------------------------------------------------------------------- /hardware/output/board-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/electricui/electricui-arena/4615f1ceb347eb59eabb07f236982c38428f131a/hardware/output/board-bottom.png -------------------------------------------------------------------------------- /hardware/output/board-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/electricui/electricui-arena/4615f1ceb347eb59eabb07f236982c38428f131a/hardware/output/board-top.png -------------------------------------------------------------------------------- /hardware/output/manf_export/hardware-B_Paste.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,5.1.2* 2 | G04 #@! TF.CreationDate,2020-06-11T23:37:28+09:30* 3 | G04 #@! TF.ProjectId,hardware,68617264-7761-4726-952e-6b696361645f,1.0.0* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Paste,Bot* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW 5.1.2) date 2020-06-11 23:37:28* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | G04 APERTURE END LIST* 14 | M02* 15 | -------------------------------------------------------------------------------- /hardware/output/manf_export/hardware-B_SilkS.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,5.1.2* 2 | G04 #@! TF.CreationDate,2020-06-11T23:37:28+09:30* 3 | G04 #@! TF.ProjectId,hardware,68617264-7761-4726-952e-6b696361645f,1.0.0* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Legend,Bot* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW 5.1.2) date 2020-06-11 23:37:28* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | G04 APERTURE END LIST* 14 | M02* 15 | -------------------------------------------------------------------------------- /hardware/output/manf_export/hardware-Edge_Cuts.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,5.1.2* 2 | G04 #@! TF.CreationDate,2020-06-11T23:37:28+09:30* 3 | G04 #@! TF.ProjectId,hardware,68617264-7761-4726-952e-6b696361645f,1.0.0* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Profile,NP* 6 | %FSLAX46Y46*% 7 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 8 | G04 Created by KiCad (PCBNEW 5.1.2) date 2020-06-11 23:37:28* 9 | %MOMM*% 10 | %LPD*% 11 | G04 APERTURE LIST* 12 | %ADD10C,0.100000*% 13 | G04 APERTURE END LIST* 14 | D10* 15 | X260000000Y-145000000D02* 16 | X260000000Y-35000000D01* 17 | X255000000Y-150000000D02* 18 | G75* 19 | G03X260000000Y-145000000I0J5000000D01* 20 | G01* 21 | X255000000Y-150000000D02* 22 | X45000000Y-150000000D01* 23 | X255000000Y-30000000D02* 24 | X45000000Y-30000000D01* 25 | X260000000Y-35000000D02* 26 | G75* 27 | G03X255000000Y-30000000I-5000000J0D01* 28 | G01* 29 | X45000000Y-30000000D02* 30 | G75* 31 | G03X40000000Y-35000000I0J-5000000D01* 32 | G01* 33 | X40000000Y-145000000D02* 34 | G75* 35 | G03X45000000Y-150000000I5000000J0D01* 36 | G01* 37 | X40000000Y-145000000D02* 38 | X40000000Y-35000000D01* 39 | M02* 40 | -------------------------------------------------------------------------------- /hardware/output/manf_export/hardware-NPTH-drl_map.ps: -------------------------------------------------------------------------------- 1 | %!PS-Adobe-3.0 2 | %%Creator: PCBNEW 3 | %%CreationDate: Thu Jun 11 23:37:09 2020 4 | %%Title: /home/scott/projects/electricui/electricui-arena/hardware/output/hardware-NPTH-drl_map.ps 5 | %%Pages: 1 6 | %%PageOrder: Ascend 7 | %%BoundingBox: 0 0 596 842 8 | %%DocumentMedia: A4 595 842 0 () () 9 | %%Orientation: Landscape 10 | %%EndComments 11 | %%BeginProlog 12 | /line { newpath moveto lineto stroke } bind def 13 | /cir0 { newpath 0 360 arc stroke } bind def 14 | /cir1 { newpath 0 360 arc gsave fill grestore stroke } bind def 15 | /cir2 { newpath 0 360 arc gsave fill grestore stroke } bind def 16 | /arc0 { newpath arc stroke } bind def 17 | /arc1 { newpath 4 index 4 index moveto arc closepath gsave fill 18 | grestore stroke } bind def 19 | /arc2 { newpath 4 index 4 index moveto arc closepath gsave fill 20 | grestore stroke } bind def 21 | /poly0 { stroke } bind def 22 | /poly1 { closepath gsave fill grestore stroke } bind def 23 | /poly2 { closepath gsave fill grestore stroke } bind def 24 | /rect0 { rectstroke } bind def 25 | /rect1 { rectfill } bind def 26 | /rect2 { rectfill } bind def 27 | /linemode0 { 0 setlinecap 0 setlinejoin 0 setlinewidth } bind def 28 | /linemode1 { 1 setlinecap 1 setlinejoin } bind def 29 | /dashedline { [200] 100 setdash } bind def 30 | /solidline { [] 0 setdash } bind def 31 | /phantomshow { moveto 32 | /KicadFont findfont 0.000001 scalefont setfont 33 | show } bind def 34 | /textshow { gsave 35 | findfont exch scalefont setfont concat 1 scale 0 0 moveto show 36 | } bind def 37 | /reencodefont { 38 | findfont dup length dict begin 39 | { 1 index /FID ne 40 | { def } 41 | { pop pop } ifelse 42 | } forall 43 | /Encoding ISOLatin1Encoding def 44 | currentdict 45 | end } bind def 46 | /KicadFont /Helvetica reencodefont definefont pop 47 | /KicadFont-Bold /Helvetica-Bold reencodefont definefont pop 48 | /KicadFont-Oblique /Helvetica-Oblique reencodefont definefont pop 49 | /KicadFont-BoldOblique /Helvetica-BoldOblique reencodefont definefont pop 50 | %%EndProlog 51 | %%Page: 1 1 52 | %%BeginPageSetup 53 | gsave 54 | 0.0072 0.0072 scale 55 | linemode1 56 | 82680 0 translate 90 rotate 57 | 44.1317 setlinewidth 58 | %%EndPageSetup 59 | 0 0 0 setrgbcolor 60 | 34.7494 setlinewidth 61 | newpath 62 | 96689.3 38763.9 moveto 63 | 96689.3 76988.1 lineto 64 | stroke 65 | 0 0 0 setrgbcolor 66 | 94951.8 38763.9 1737.47 -90 -0 arc0 67 | 0 0 0 setrgbcolor 68 | newpath 69 | 94951.8 37026.4 moveto 70 | 21978.2 37026.4 lineto 71 | stroke 72 | 0 0 0 setrgbcolor 73 | newpath 74 | 94951.8 78725.6 moveto 75 | 21978.2 78725.6 lineto 76 | stroke 77 | 0 0 0 setrgbcolor 78 | 94951.8 76988.1 1737.47 -0 90 arc0 79 | 0 0 0 setrgbcolor 80 | 21978.2 76988.1 1737.47 90 180 arc0 81 | 0 0 0 setrgbcolor 82 | 21978.2 38763.9 1737.47 -180 -90 arc0 83 | 0 0 0 setrgbcolor 84 | newpath 85 | 20240.7 38763.9 moveto 86 | 20240.7 76988.1 lineto 87 | stroke 88 | 78.74 setlinewidth 89 | 118.11 setlinewidth 90 | 0 0 0 setrgbcolor 91 | 0 0 0 setrgbcolor 92 | newpath 93 | 21351 35175.5 moveto 94 | 21351 36356.6 lineto 95 | 21632.2 36356.6 lineto 96 | 21800.9 36300.3 lineto 97 | 21913.4 36187.9 lineto 98 | 21969.7 36075.4 lineto 99 | 22025.9 35850.4 lineto 100 | 22025.9 35681.7 lineto 101 | 21969.7 35456.7 lineto 102 | 21913.4 35344.2 lineto 103 | 21800.9 35231.7 lineto 104 | 21632.2 35175.5 lineto 105 | 21351 35175.5 lineto 106 | stroke 107 | newpath 108 | 22532.1 35175.5 moveto 109 | 22532.1 35962.9 lineto 110 | stroke 111 | newpath 112 | 22532.1 35737.9 moveto 113 | 22588.3 35850.4 lineto 114 | 22644.6 35906.6 lineto 115 | 22757.1 35962.9 lineto 116 | 22869.6 35962.9 lineto 117 | stroke 118 | newpath 119 | 23263.3 35175.5 moveto 120 | 23263.3 35962.9 lineto 121 | stroke 122 | newpath 123 | 23263.3 36356.6 moveto 124 | 23207 36300.3 lineto 125 | 23263.3 36244.1 lineto 126 | 23319.5 36300.3 lineto 127 | 23263.3 36356.6 lineto 128 | 23263.3 36244.1 lineto 129 | stroke 130 | newpath 131 | 23994.4 35175.5 moveto 132 | 23881.9 35231.7 lineto 133 | 23825.7 35344.2 lineto 134 | 23825.7 36356.6 lineto 135 | stroke 136 | newpath 137 | 24613.1 35175.5 moveto 138 | 24500.6 35231.7 lineto 139 | 24444.4 35344.2 lineto 140 | 24444.4 36356.6 lineto 141 | stroke 142 | newpath 143 | 25962.9 35175.5 moveto 144 | 25962.9 36356.6 lineto 145 | 26356.6 35512.9 lineto 146 | 26750.3 36356.6 lineto 147 | 26750.3 35175.5 lineto 148 | stroke 149 | newpath 150 | 27818.9 35175.5 moveto 151 | 27818.9 35794.2 lineto 152 | 27762.7 35906.6 lineto 153 | 27650.2 35962.9 lineto 154 | 27425.2 35962.9 lineto 155 | 27312.8 35906.6 lineto 156 | stroke 157 | newpath 158 | 27818.9 35231.7 moveto 159 | 27706.5 35175.5 lineto 160 | 27425.2 35175.5 lineto 161 | 27312.8 35231.7 lineto 162 | 27256.5 35344.2 lineto 163 | 27256.5 35456.7 lineto 164 | 27312.8 35569.2 lineto 165 | 27425.2 35625.4 lineto 166 | 27706.5 35625.4 lineto 167 | 27818.9 35681.7 lineto 168 | stroke 169 | newpath 170 | 28381.4 35962.9 moveto 171 | 28381.4 34781.8 lineto 172 | stroke 173 | newpath 174 | 28381.4 35906.6 moveto 175 | 28493.9 35962.9 lineto 176 | 28718.8 35962.9 lineto 177 | 28831.3 35906.6 lineto 178 | 28887.6 35850.4 lineto 179 | 28943.8 35737.9 lineto 180 | 28943.8 35400.5 lineto 181 | 28887.6 35288 lineto 182 | 28831.3 35231.7 lineto 183 | 28718.8 35175.5 lineto 184 | 28493.9 35175.5 lineto 185 | 28381.4 35231.7 lineto 186 | stroke 187 | newpath 188 | 29450 35288 moveto 189 | 29506.2 35231.7 lineto 190 | 29450 35175.5 lineto 191 | 29393.7 35231.7 lineto 192 | 29450 35288 lineto 193 | 29450 35175.5 lineto 194 | stroke 195 | newpath 196 | 29450 35906.6 moveto 197 | 29506.2 35850.4 lineto 198 | 29450 35794.2 lineto 199 | 29393.7 35850.4 lineto 200 | 29450 35906.6 lineto 201 | 29450 35794.2 lineto 202 | stroke 203 | showpage 204 | grestore 205 | %%EOF 206 | -------------------------------------------------------------------------------- /hardware/output/manf_export/hardware-NPTH.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad 5.1.2} date Thu 11 Jun 2020 23:37:08 3 | ; FORMAT={-:-/ absolute / metric / decimal} 4 | ; #@! TF.CreationDate,2020-06-11T23:37:08+09:30 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,5.1.2 6 | ; #@! TF.FileFunction,NonPlated,1,4,NPTH 7 | FMAT,2 8 | METRIC 9 | % 10 | G90 11 | G05 12 | T0 13 | M30 14 | -------------------------------------------------------------------------------- /hardware/output/manf_export/hardware-PTH.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad 5.1.2} date Thu 11 Jun 2020 23:37:08 3 | ; FORMAT={-:-/ absolute / metric / decimal} 4 | ; #@! TF.CreationDate,2020-06-11T23:37:08+09:30 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,5.1.2 6 | ; #@! TF.FileFunction,Plated,1,4,PTH 7 | FMAT,2 8 | METRIC 9 | T1C0.400 10 | T2C0.600 11 | T3C0.991 12 | T4C1.000 13 | T5C1.016 14 | T6C2.300 15 | T7C3.200 16 | % 17 | G90 18 | G05 19 | T1 20 | X41.8Y-88.6 21 | X44.4Y-74.8 22 | X45.75Y-120.5 23 | X45.75Y-121.75 24 | X45.75Y-123.0 25 | X45.75Y-134.5 26 | X48.25Y-135.25 27 | X49.4Y-87.2 28 | X49.9Y-111.5 29 | X52.0Y-113.0 30 | X54.0Y-113.0 31 | X55.0Y-103.0 32 | X55.0Y-105.0 33 | X55.8Y-111.5 34 | X56.5Y-59.25 35 | X56.5Y-73.5 36 | X56.5Y-75.75 37 | X56.5Y-85.75 38 | X56.6Y-49.7 39 | X56.7Y-47.0 40 | X57.0Y-145.0 41 | X61.25Y-120.5 42 | X61.25Y-121.75 43 | X61.25Y-123.0 44 | X61.25Y-125.5 45 | X61.25Y-126.75 46 | X61.25Y-128.0 47 | X61.25Y-130.5 48 | X61.25Y-132.75 49 | X62.0Y-41.25 50 | X62.0Y-42.75 51 | X62.0Y-67.75 52 | X62.0Y-69.25 53 | X62.25Y-130.5 54 | X65.0Y-145.0 55 | X65.4Y-61.8 56 | X65.8Y-92.0 57 | X65.8Y-94.2 58 | X66.25Y-120.0 59 | X67.25Y-104.75 60 | X68.4Y-105.6 61 | X68.75Y-120.0 62 | X69.5Y-95.6 63 | X69.8Y-75.0 64 | X70.75Y-106.5 65 | X71.5Y-86.5 66 | X71.5Y-91.5 67 | X71.8Y-98.5 68 | X72.5Y-132.25 69 | X73.28Y-100.0 70 | X73.4Y-98.7 71 | X73.75Y-91.5 72 | X74.0Y-127.5 73 | X74.0Y-129.0 74 | X76.2Y-92.0 75 | X76.2Y-95.8 76 | X77.25Y-133.75 77 | X78.25Y-134.5 78 | X78.9Y-111.0 79 | X79.5Y-138.0 80 | X80.25Y-120.75 81 | X81.0Y-47.1 82 | X81.0Y-49.7 83 | X81.0Y-59.25 84 | X81.0Y-73.5 85 | X81.0Y-76.0 86 | X81.0Y-85.75 87 | X81.0Y-138.25 88 | X81.2Y-92.0 89 | X81.25Y-137.0 90 | X81.25Y-145.75 91 | X81.75Y-135.25 92 | X82.75Y-136.0 93 | X82.8Y-137.6 94 | X86.5Y-41.25 95 | X86.5Y-42.75 96 | X86.75Y-67.75 97 | X86.75Y-69.25 98 | X89.6Y-95.8 99 | X90.0Y-61.8 100 | X90.6Y-116.8 101 | X92.75Y-137.25 102 | X94.0Y-76.8 103 | X94.6Y-97.0 104 | X96.4Y-92.0 105 | X97.75Y-119.0 106 | X99.5Y-127.75 107 | X101.0Y-127.75 108 | X101.6Y-97.0 109 | X101.6Y-103.0 110 | X101.6Y-110.6 111 | X102.25Y-140.0 112 | X102.75Y-119.75 113 | X103.0Y-122.5 114 | X103.0Y-138.0 115 | X103.5Y-121.5 116 | X103.75Y-139.0 117 | X104.25Y-112.0 118 | X104.5Y-122.0 119 | X104.75Y-124.5 120 | X105.25Y-141.0 121 | X105.5Y-47.0 122 | X105.5Y-49.75 123 | X105.5Y-59.25 124 | X105.5Y-73.5 125 | X105.5Y-75.75 126 | X105.5Y-85.75 127 | X106.475Y-109.5 128 | X107.0Y-110.75 129 | X108.75Y-123.5 130 | X109.0Y-113.5 131 | X109.0Y-130.75 132 | X109.5Y-109.0 133 | X110.5Y-113.5 134 | X110.5Y-130.75 135 | X111.0Y-41.75 136 | X111.0Y-43.25 137 | X111.0Y-125.75 138 | X111.25Y-67.75 139 | X111.25Y-69.25 140 | X113.8Y-96.2 141 | X113.8Y-103.0 142 | X114.0Y-144.25 143 | X114.5Y-125.0 144 | X114.5Y-145.25 145 | X114.6Y-61.8 146 | X114.6Y-88.0 147 | X115.0Y-111.75 148 | X115.25Y-125.8 149 | X115.75Y-107.25 150 | X115.75Y-146.0 151 | X116.0Y-127.5 152 | X116.25Y-112.5 153 | X116.5Y-119.75 154 | X116.75Y-143.5 155 | X117.0Y-140.5 156 | X117.25Y-109.5 157 | X117.75Y-114.881 158 | X117.9Y-138.25 159 | X118.0Y-121.475 160 | X118.0Y-139.75 161 | X118.2Y-76.2 162 | X118.25Y-142.75 163 | X118.25Y-111.0 164 | X118.5Y-113.75 165 | X119.0Y-122.0 166 | X119.25Y-110.25 167 | X120.4Y-88.0 168 | X120.7Y-98.1 169 | X122.5Y-121.0 170 | X123.0Y-113.5 171 | X123.0Y-130.75 172 | X124.5Y-113.5 173 | X124.5Y-130.75 174 | X124.75Y-126.25 175 | X128.25Y-147.25 176 | X128.5Y-125.0 177 | X129.25Y-108.0 178 | X129.737Y-124.987 179 | X130.0Y-47.0 180 | X130.0Y-49.75 181 | X130.0Y-59.25 182 | X130.0Y-73.5 183 | X130.0Y-76.0 184 | X130.0Y-85.75 185 | X130.0Y-110.5 186 | X130.25Y-120.0 187 | X130.25Y-126.25 188 | X130.5Y-145.0 189 | X130.75Y-111.5 190 | X131.0Y-108.5 191 | X131.0Y-146.0 192 | X131.1Y-106.9 193 | X131.5Y-95.5 194 | X131.5Y-97.5 195 | X131.75Y-127.0 196 | X131.75Y-128.5 197 | X131.75Y-148.75 198 | X133.0Y-143.5 199 | X135.5Y-41.75 200 | X135.5Y-43.25 201 | X135.75Y-67.75 202 | X135.75Y-69.25 203 | X135.75Y-130.75 204 | X136.5Y-102.25 205 | X136.75Y-136.5 206 | X137.0Y-131.0 207 | X137.2Y-85.4 208 | X137.5Y-103.0 209 | X138.25Y-136.5 210 | X138.75Y-102.25 211 | X139.0Y-61.8 212 | X139.0Y-130.25 213 | X140.0Y-136.25 214 | X140.5Y-130.0 215 | X140.75Y-102.5 216 | X141.5Y-136.25 217 | X143.184Y-95.0 218 | X144.0Y-96.0 219 | X144.5Y-127.7 220 | X144.5Y-134.0 221 | X145.0Y-97.0 222 | X146.0Y-98.0 223 | X146.25Y-136.75 224 | X147.25Y-137.75 225 | X149.0Y-137.75 226 | X149.0Y-87.0 227 | X150.0Y-87.75 228 | X150.0Y-96.0 229 | X151.0Y-88.75 230 | X151.0Y-90.25 231 | X151.0Y-91.75 232 | X152.0Y-93.0 233 | X152.0Y-127.25 234 | X152.25Y-90.25 235 | X153.0Y-80.0 236 | X153.5Y-93.0 237 | X156.5Y-127.25 238 | X156.6Y-116.0 239 | X156.6Y-121.8 240 | X156.75Y-68.25 241 | X156.75Y-69.75 242 | X156.75Y-110.25 243 | X158.4Y-82.4 244 | X158.5Y-52.75 245 | X158.75Y-138.0 246 | X160.25Y-36.0 247 | X160.4Y-82.4 248 | X160.5Y-127.25 249 | X162.2Y-111.75 250 | X162.25Y-69.75 251 | X162.25Y-110.25 252 | X162.3Y-64.0 253 | X162.4Y-58.2 254 | X162.5Y-52.75 255 | X165.2Y-131.3 256 | X166.0Y-80.0 257 | X166.6Y-138.8 258 | X167.0Y-52.75 259 | X167.6Y-139.7 260 | X169.0Y-96.0 261 | X172.0Y-116.2 262 | X172.0Y-119.9 263 | X172.3Y-60.0 264 | X172.5Y-112.25 265 | X173.8Y-140.3 266 | X174.9Y-140.9 267 | X176.5Y-141.0 268 | X178.0Y-96.0 269 | X178.0Y-89.5 270 | X179.25Y-88.0 271 | X179.25Y-90.0 272 | X179.75Y-86.75 273 | X180.0Y-127.25 274 | X180.25Y-91.0 275 | X181.0Y-80.0 276 | X181.0Y-86.0 277 | X181.25Y-92.0 278 | X181.75Y-93.0 279 | X184.5Y-110.25 280 | X184.5Y-127.25 281 | X184.6Y-111.8 282 | X184.6Y-121.8 283 | X184.75Y-68.25 284 | X184.75Y-69.75 285 | X186.5Y-52.75 286 | X186.75Y-82.5 287 | X186.75Y-138.0 288 | X188.25Y-36.0 289 | X188.25Y-82.5 290 | X188.5Y-127.25 291 | X190.4Y-58.2 292 | X190.4Y-64.0 293 | X190.5Y-52.75 294 | X190.5Y-69.75 295 | X190.5Y-110.25 296 | X190.5Y-111.75 297 | X193.4Y-131.4 298 | X194.0Y-80.0 299 | X194.4Y-141.8 300 | X195.0Y-52.75 301 | X195.4Y-142.5 302 | X197.0Y-96.0 303 | X197.0Y-142.5 304 | X200.0Y-117.75 305 | X201.0Y-116.0 306 | X201.5Y-112.5 307 | X202.0Y-143.3 308 | X202.6Y-71.5 309 | X203.1Y-144.0 310 | X204.75Y-144.0 311 | X205.75Y-89.0 312 | X206.0Y-96.0 313 | X207.25Y-88.0 314 | X207.25Y-90.0 315 | X208.0Y-86.75 316 | X208.0Y-127.25 317 | X208.25Y-91.0 318 | X208.75Y-92.0 319 | X209.0Y-86.0 320 | X209.0Y-80.0 321 | X209.5Y-93.0 322 | X212.25Y-110.25 323 | X212.25Y-111.75 324 | X212.5Y-127.25 325 | X212.6Y-121.8 326 | X212.75Y-68.25 327 | X212.75Y-69.75 328 | X214.5Y-52.75 329 | X214.75Y-82.5 330 | X214.75Y-138.0 331 | X216.0Y-36.0 332 | X216.25Y-82.5 333 | X216.5Y-127.25 334 | X218.25Y-110.25 335 | X218.25Y-111.75 336 | X218.4Y-58.2 337 | X218.5Y-52.75 338 | X218.75Y-69.75 339 | X221.3Y-131.4 340 | X222.0Y-80.0 341 | X222.4Y-144.8 342 | X223.0Y-52.75 343 | X223.5Y-145.6 344 | X225.0Y-96.0 345 | X225.25Y-145.5 346 | X229.0Y-116.25 347 | X229.0Y-118.75 348 | X229.0Y-120.9 349 | X229.7Y-67.1 350 | X229.75Y-112.25 351 | X229.75Y-146.0 352 | X231.0Y-146.75 353 | X232.75Y-147.0 354 | X234.0Y-84.0 355 | X234.0Y-96.0 356 | X236.0Y-127.25 357 | X240.4Y-121.8 358 | X240.5Y-68.25 359 | X240.5Y-69.75 360 | X240.5Y-111.75 361 | X240.5Y-127.25 362 | X242.5Y-52.75 363 | X242.75Y-138.0 364 | X244.25Y-36.0 365 | X244.5Y-127.25 366 | X246.2Y-110.2 367 | X246.2Y-111.8 368 | X246.4Y-58.2 369 | X246.5Y-52.75 370 | X247.1Y-131.4 371 | X247.5Y-68.25 372 | X248.25Y-147.25 373 | X249.25Y-148.0 374 | X251.0Y-52.75 375 | X251.4Y-111.8 376 | X253.0Y-84.0 377 | X253.0Y-96.0 378 | X46.025Y-105.275 379 | X46.025Y-106.13 380 | X46.025Y-106.98 381 | X46.025Y-107.83 382 | X46.025Y-108.68 383 | X46.025Y-109.53 384 | X46.025Y-110.38 385 | X46.025Y-111.23 386 | X47.35Y-105.275 387 | X47.35Y-106.125 388 | X47.35Y-106.975 389 | X47.35Y-107.825 390 | X47.35Y-108.675 391 | X47.35Y-109.525 392 | X47.35Y-110.375 393 | X47.35Y-111.225 394 | T3 395 | X149.24Y-40.93 396 | X149.24Y-43.47 397 | X149.24Y-46.01 398 | X149.24Y-48.55 399 | X149.24Y-51.09 400 | X149.24Y-53.63 401 | X149.24Y-56.17 402 | X149.24Y-58.71 403 | X149.24Y-61.25 404 | X149.24Y-63.79 405 | X149.24Y-66.33 406 | X149.24Y-68.87 407 | X149.24Y-71.41 408 | X149.24Y-73.95 409 | X149.24Y-76.49 410 | X149.24Y-79.03 411 | X169.56Y-51.09 412 | X169.56Y-53.63 413 | X169.56Y-56.17 414 | X169.56Y-58.71 415 | X169.56Y-61.25 416 | X169.56Y-63.79 417 | X169.56Y-66.33 418 | X169.56Y-68.87 419 | X169.56Y-71.41 420 | X169.56Y-73.95 421 | X169.56Y-76.49 422 | X169.56Y-79.03 423 | X149.24Y-100.93 424 | X149.24Y-103.47 425 | X149.24Y-106.01 426 | X149.24Y-108.55 427 | X149.24Y-111.09 428 | X149.24Y-113.63 429 | X149.24Y-116.17 430 | X149.24Y-118.71 431 | X149.24Y-121.25 432 | X149.24Y-123.79 433 | X149.24Y-126.33 434 | X149.24Y-128.87 435 | X169.56Y-100.93 436 | X169.56Y-103.47 437 | X169.56Y-106.01 438 | X169.56Y-108.55 439 | X169.56Y-111.09 440 | X169.56Y-113.63 441 | X169.56Y-116.17 442 | X169.56Y-118.71 443 | X169.56Y-121.25 444 | X169.56Y-123.79 445 | X169.56Y-126.33 446 | X169.56Y-128.87 447 | X169.56Y-131.41 448 | X169.56Y-133.95 449 | X169.56Y-136.49 450 | X169.56Y-139.03 451 | X49.7Y-118.07 452 | X49.7Y-138.39 453 | X52.24Y-118.07 454 | X52.24Y-138.39 455 | X54.78Y-118.07 456 | X54.78Y-138.39 457 | X57.32Y-118.07 458 | X57.32Y-138.39 459 | X59.86Y-118.07 460 | X59.86Y-138.39 461 | X62.4Y-118.07 462 | X62.4Y-138.39 463 | X64.94Y-118.07 464 | X64.94Y-138.39 465 | X67.48Y-118.07 466 | X67.48Y-138.39 467 | X70.02Y-118.07 468 | X70.02Y-138.39 469 | X72.56Y-118.07 470 | X72.56Y-138.39 471 | X75.1Y-118.07 472 | X75.1Y-138.39 473 | X77.64Y-118.07 474 | X77.64Y-138.39 475 | X80.18Y-118.07 476 | X82.72Y-118.07 477 | X85.26Y-118.07 478 | X87.8Y-118.07 479 | X177.24Y-40.93 480 | X177.24Y-43.47 481 | X177.24Y-46.01 482 | X177.24Y-48.55 483 | X177.24Y-51.09 484 | X177.24Y-53.63 485 | X177.24Y-56.17 486 | X177.24Y-58.71 487 | X177.24Y-61.25 488 | X177.24Y-63.79 489 | X177.24Y-66.33 490 | X177.24Y-68.87 491 | X177.24Y-71.41 492 | X177.24Y-73.95 493 | X177.24Y-76.49 494 | X177.24Y-79.03 495 | X197.56Y-51.09 496 | X197.56Y-53.63 497 | X197.56Y-56.17 498 | X197.56Y-58.71 499 | X197.56Y-61.25 500 | X197.56Y-63.79 501 | X197.56Y-66.33 502 | X197.56Y-68.87 503 | X197.56Y-71.41 504 | X197.56Y-73.95 505 | X197.56Y-76.49 506 | X197.56Y-79.03 507 | X205.24Y-100.93 508 | X205.24Y-103.47 509 | X205.24Y-106.01 510 | X205.24Y-108.55 511 | X205.24Y-111.09 512 | X205.24Y-113.63 513 | X205.24Y-116.17 514 | X205.24Y-118.71 515 | X205.24Y-121.25 516 | X205.24Y-123.79 517 | X205.24Y-126.33 518 | X205.24Y-128.87 519 | X225.56Y-100.93 520 | X225.56Y-103.47 521 | X225.56Y-106.01 522 | X225.56Y-108.55 523 | X225.56Y-111.09 524 | X225.56Y-113.63 525 | X225.56Y-116.17 526 | X225.56Y-118.71 527 | X225.56Y-121.25 528 | X225.56Y-123.79 529 | X225.56Y-126.33 530 | X225.56Y-128.87 531 | X225.56Y-131.41 532 | X225.56Y-133.95 533 | X225.56Y-136.49 534 | X225.56Y-139.03 535 | X177.24Y-100.93 536 | X177.24Y-103.47 537 | X177.24Y-106.01 538 | X177.24Y-108.55 539 | X177.24Y-111.09 540 | X177.24Y-113.63 541 | X177.24Y-116.17 542 | X177.24Y-118.71 543 | X177.24Y-121.25 544 | X177.24Y-123.79 545 | X177.24Y-126.33 546 | X177.24Y-128.87 547 | X197.56Y-100.93 548 | X197.56Y-103.47 549 | X197.56Y-106.01 550 | X197.56Y-108.55 551 | X197.56Y-111.09 552 | X197.56Y-113.63 553 | X197.56Y-116.17 554 | X197.56Y-118.71 555 | X197.56Y-121.25 556 | X197.56Y-123.79 557 | X197.56Y-126.33 558 | X197.56Y-128.87 559 | X197.56Y-131.41 560 | X197.56Y-133.95 561 | X197.56Y-136.49 562 | X197.56Y-139.03 563 | X233.24Y-100.93 564 | X233.24Y-103.47 565 | X233.24Y-106.01 566 | X233.24Y-108.55 567 | X233.24Y-111.09 568 | X233.24Y-113.63 569 | X233.24Y-116.17 570 | X233.24Y-118.71 571 | X233.24Y-121.25 572 | X233.24Y-123.79 573 | X233.24Y-126.33 574 | X233.24Y-128.87 575 | X253.56Y-100.93 576 | X253.56Y-103.47 577 | X253.56Y-106.01 578 | X253.56Y-108.55 579 | X253.56Y-111.09 580 | X253.56Y-113.63 581 | X253.56Y-116.17 582 | X253.56Y-118.71 583 | X253.56Y-121.25 584 | X253.56Y-123.79 585 | X253.56Y-126.33 586 | X253.56Y-128.87 587 | X253.56Y-131.41 588 | X253.56Y-133.95 589 | X253.56Y-136.49 590 | X253.56Y-139.03 591 | X205.24Y-40.93 592 | X205.24Y-43.47 593 | X205.24Y-46.01 594 | X205.24Y-48.55 595 | X205.24Y-51.09 596 | X205.24Y-53.63 597 | X205.24Y-56.17 598 | X205.24Y-58.71 599 | X205.24Y-61.25 600 | X205.24Y-63.79 601 | X205.24Y-66.33 602 | X205.24Y-68.87 603 | X205.24Y-71.41 604 | X205.24Y-73.95 605 | X205.24Y-76.49 606 | X205.24Y-79.03 607 | X225.56Y-51.09 608 | X225.56Y-53.63 609 | X225.56Y-56.17 610 | X225.56Y-58.71 611 | X225.56Y-61.25 612 | X225.56Y-63.79 613 | X225.56Y-66.33 614 | X225.56Y-68.87 615 | X225.56Y-71.41 616 | X225.56Y-73.95 617 | X225.56Y-76.49 618 | X225.56Y-79.03 619 | X233.24Y-40.93 620 | X233.24Y-43.47 621 | X233.24Y-46.01 622 | X233.24Y-48.55 623 | X233.24Y-51.09 624 | X233.24Y-53.63 625 | X233.24Y-56.17 626 | X233.24Y-58.71 627 | X233.24Y-61.25 628 | X233.24Y-63.79 629 | X233.24Y-66.33 630 | X233.24Y-68.87 631 | X233.24Y-71.41 632 | X233.24Y-73.95 633 | X233.24Y-76.49 634 | X233.24Y-79.03 635 | X253.56Y-51.09 636 | X253.56Y-53.63 637 | X253.56Y-56.17 638 | X253.56Y-58.71 639 | X253.56Y-61.25 640 | X253.56Y-63.79 641 | X253.56Y-66.33 642 | X253.56Y-68.87 643 | X253.56Y-71.41 644 | X253.56Y-73.95 645 | X253.56Y-76.49 646 | X253.56Y-79.03 647 | T4 648 | X73.0Y-46.0 649 | X73.0Y-48.5 650 | X73.0Y-50.5 651 | X73.0Y-53.0 652 | X48.5Y-72.5 653 | X48.5Y-75.0 654 | X48.5Y-77.0 655 | X48.5Y-79.5 656 | X73.0Y-72.5 657 | X73.0Y-75.0 658 | X73.0Y-77.0 659 | X73.0Y-79.5 660 | X48.5Y-46.0 661 | X48.5Y-48.5 662 | X48.5Y-50.5 663 | X48.5Y-53.0 664 | X125.0Y-46.0 665 | X125.0Y-48.5 666 | X125.0Y-50.5 667 | X125.0Y-53.0 668 | X125.0Y-72.5 669 | X125.0Y-75.0 670 | X125.0Y-77.0 671 | X125.0Y-79.5 672 | X100.5Y-72.5 673 | X100.5Y-75.0 674 | X100.5Y-77.0 675 | X100.5Y-79.5 676 | X100.5Y-46.0 677 | X100.5Y-48.5 678 | X100.5Y-50.5 679 | X100.5Y-53.0 680 | T5 681 | X114.5Y-69.5 682 | X114.5Y-72.04 683 | X114.5Y-74.58 684 | X114.5Y-77.12 685 | X114.5Y-79.66 686 | X114.5Y-82.2 687 | X107.21Y-145.75 688 | X109.75Y-145.75 689 | X112.29Y-145.75 690 | X139.0Y-43.0 691 | X139.0Y-45.54 692 | X139.0Y-48.08 693 | X139.0Y-50.62 694 | X139.0Y-53.16 695 | X139.0Y-55.7 696 | X65.5Y-43.0 697 | X65.5Y-45.54 698 | X65.5Y-48.08 699 | X65.5Y-50.62 700 | X65.5Y-53.16 701 | X65.5Y-55.7 702 | X114.5Y-43.0 703 | X114.5Y-45.54 704 | X114.5Y-48.08 705 | X114.5Y-50.62 706 | X114.5Y-53.16 707 | X114.5Y-55.7 708 | X90.0Y-43.0 709 | X90.0Y-45.54 710 | X90.0Y-48.08 711 | X90.0Y-50.62 712 | X90.0Y-53.16 713 | X90.0Y-55.7 714 | X90.0Y-69.5 715 | X90.0Y-72.04 716 | X90.0Y-74.58 717 | X90.0Y-77.12 718 | X90.0Y-79.66 719 | X90.0Y-82.2 720 | X139.0Y-69.5 721 | X139.0Y-72.04 722 | X139.0Y-74.58 723 | X139.0Y-77.12 724 | X139.0Y-79.66 725 | X139.0Y-82.2 726 | X65.5Y-69.5 727 | X65.5Y-72.04 728 | X65.5Y-74.58 729 | X65.5Y-77.12 730 | X65.5Y-79.66 731 | X65.5Y-82.2 732 | T6 733 | X51.21Y-69.43 734 | X51.21Y-82.57 735 | X75.71Y-69.43 736 | X75.71Y-82.57 737 | X51.21Y-42.93 738 | X51.21Y-56.07 739 | X122.29Y-42.93 740 | X122.29Y-56.07 741 | X122.29Y-69.43 742 | X122.29Y-82.57 743 | X97.79Y-69.43 744 | X97.79Y-82.57 745 | X97.79Y-42.93 746 | X97.79Y-56.07 747 | X75.71Y-42.93 748 | X75.71Y-56.07 749 | T7 750 | X255.0Y-35.0 751 | X255.0Y-145.0 752 | X44.9Y-34.98 753 | X45.0Y-145.0 754 | T2 755 | G00X43.39Y-103.925 756 | M15 757 | G01X42.59Y-103.925 758 | M16 759 | G05 760 | G00X43.39Y-112.575 761 | M15 762 | G01X42.59Y-112.575 763 | M16 764 | G05 765 | G00X47.12Y-103.925 766 | M15 767 | G01X45.62Y-103.925 768 | M16 769 | G05 770 | G00X47.12Y-112.575 771 | M15 772 | G01X45.62Y-112.575 773 | M16 774 | G05 775 | T0 776 | M30 777 | -------------------------------------------------------------------------------- /hardware/serial_matrix.bak: -------------------------------------------------------------------------------- 1 | EESchema Schematic File Version 4 2 | LIBS:hardware-cache 3 | EELAYER 29 0 4 | EELAYER END 5 | $Descr A4 11693 8268 6 | encoding utf-8 7 | Sheet 2 11 8 | Title "" 9 | Date "" 10 | Rev "" 11 | Comp "" 12 | Comment1 "" 13 | Comment2 "" 14 | Comment3 "" 15 | Comment4 "" 16 | $EndDescr 17 | $Comp 18 | L appli_analog_devices:SN74LV4051APW U? 19 | U 1 1 5EC86931 20 | P 4500 2600 21 | F 0 "U?" H 4350 3200 50 0000 C CNN 22 | F 1 "SN74LV4051APW" H 4100 3100 50 0000 C CNN 23 | F 2 "Applidyne_SOP:SOP16P65_500X640X120L62X24N" H 4500 1400 50 0001 C CNN 24 | F 3 "http://www.ti.com/lit/ds/symlink/sn74lv4051a.pdf?HQS=TI-null-null-mousermode-df-pf-null-wwe&ts=1589698827244" H 4500 1400 50 0001 C CNN 25 | F 4 "TI" H 4500 1600 50 0001 C CNN "manf" 26 | F 5 "SN74LV4051APWR" H 4500 1500 50 0001 C CNN "manf#" 27 | F 6 "Mouser" H 4500 1300 50 0001 C CNN "Supplier" 28 | F 7 "595-SN74LV4051APWR" H 4500 1200 50 0001 C CNN "Suppler Part No" 29 | F 8 "https://au.mouser.com/ProductDetail/Texas-Instruments/SN74LV4051APWR?qs=j%2FZo4ajzVJI89x2tgWsgsA%3D%3D" H 4500 1100 50 0001 C CNN "Supplier URL" 30 | F 9 "0.654" H 4500 1000 50 0001 C CNN "Supplier Price" 31 | F 10 "10" H 4500 900 50 0001 C CNN "Supplier Price Break" 32 | 1 4500 2600 33 | -1 0 0 -1 34 | $EndComp 35 | $Comp 36 | L appli_analog_devices:SN74LV4051APW U? 37 | U 1 1 5EC87092 38 | P 7050 2600 39 | F 0 "U?" H 7200 3200 50 0000 C CNN 40 | F 1 "SN74LV4051APW" H 7450 3100 50 0000 C CNN 41 | F 2 "Applidyne_SOP:SOP16P65_500X640X120L62X24N" H 7050 1400 50 0001 C CNN 42 | F 3 "http://www.ti.com/lit/ds/symlink/sn74lv4051a.pdf?HQS=TI-null-null-mousermode-df-pf-null-wwe&ts=1589698827244" H 7050 1400 50 0001 C CNN 43 | F 4 "TI" H 7050 1600 50 0001 C CNN "manf" 44 | F 5 "SN74LV4051APWR" H 7050 1500 50 0001 C CNN "manf#" 45 | F 6 "Mouser" H 7050 1300 50 0001 C CNN "Supplier" 46 | F 7 "595-SN74LV4051APWR" H 7050 1200 50 0001 C CNN "Suppler Part No" 47 | F 8 "https://au.mouser.com/ProductDetail/Texas-Instruments/SN74LV4051APWR?qs=j%2FZo4ajzVJI89x2tgWsgsA%3D%3D" H 7050 1100 50 0001 C CNN "Supplier URL" 48 | F 9 "0.654" H 7050 1000 50 0001 C CNN "Supplier Price" 49 | F 10 "10" H 7050 900 50 0001 C CNN "Supplier Price Break" 50 | 1 7050 2600 51 | 1 0 0 -1 52 | $EndComp 53 | Wire Wire Line 54 | 4500 2100 4500 1600 55 | Wire Wire Line 56 | 7050 2100 7050 1600 57 | Wire Wire Line 58 | 4400 3200 4400 3250 59 | Wire Wire Line 60 | 4400 3250 4450 3250 61 | Wire Wire Line 62 | 4500 3250 4500 3200 63 | Wire Wire Line 64 | 7050 3200 7050 3250 65 | Wire Wire Line 66 | 7050 3250 7100 3250 67 | Wire Wire Line 68 | 7150 3250 7150 3200 69 | Wire Wire Line 70 | 4450 3250 4450 3300 71 | Connection ~ 4450 3250 72 | Wire Wire Line 73 | 4450 3250 4500 3250 74 | $Comp 75 | L appli_power:GND #PWR? 76 | U 1 1 5EC8B188 77 | P 4450 3300 78 | F 0 "#PWR?" H 4450 3050 50 0001 C CNN 79 | F 1 "GND" H 4455 3127 50 0000 C CNN 80 | F 2 "" H 4450 3300 50 0001 C CNN 81 | F 3 "" H 4450 3300 50 0001 C CNN 82 | 1 4450 3300 83 | 1 0 0 -1 84 | $EndComp 85 | Wire Wire Line 86 | 7100 3250 7100 3300 87 | Connection ~ 7100 3250 88 | Wire Wire Line 89 | 7100 3250 7150 3250 90 | $Comp 91 | L appli_power:GND #PWR? 92 | U 1 1 5EC8B497 93 | P 7100 3300 94 | F 0 "#PWR?" H 7100 3050 50 0001 C CNN 95 | F 1 "GND" H 7105 3127 50 0000 C CNN 96 | F 2 "" H 7100 3300 50 0001 C CNN 97 | F 3 "" H 7100 3300 50 0001 C CNN 98 | 1 7100 3300 99 | 1 0 0 -1 100 | $EndComp 101 | $Comp 102 | L appli_power:+3.3V #PWR? 103 | U 1 1 5EC8B8B1 104 | P 4500 1550 105 | F 0 "#PWR?" H 4500 1400 50 0001 C CNN 106 | F 1 "+3.3V" H 4515 1723 50 0000 C CNN 107 | F 2 "" H 4500 1550 50 0001 C CNN 108 | F 3 "" H 4500 1550 50 0001 C CNN 109 | 1 4500 1550 110 | 1 0 0 -1 111 | $EndComp 112 | $Comp 113 | L appli_power:+3.3V #PWR? 114 | U 1 1 5EC8BE25 115 | P 7050 1550 116 | F 0 "#PWR?" H 7050 1400 50 0001 C CNN 117 | F 1 "+3.3V" H 7065 1723 50 0000 C CNN 118 | F 2 "" H 7050 1550 50 0001 C CNN 119 | F 3 "" H 7050 1550 50 0001 C CNN 120 | 1 7050 1550 121 | 1 0 0 -1 122 | $EndComp 123 | $Comp 124 | L appli_capacitor:100n_X7R_1608M C? 125 | U 1 1 5EC8D6AB 126 | P 6850 1850 127 | F 0 "C?" H 6772 1715 50 0000 R CNN 128 | F 1 "100n_X7R_1608M" H 6772 1795 35 0000 R CNN 129 | F 2 "CAPC1608*" V 6965 1750 20 0001 C CNN 130 | F 3 "http://www.farnell.com/datasheets/1732728.pdf" V 6990 1750 20 0001 C CNN 131 | F 4 "KEMET" V 7040 1750 20 0001 C CNN "manf" 132 | F 5 "C0603C104K5RACAUTO" V 7065 1750 20 0001 C CNN "manf#" 133 | F 6 "Element14" V 7090 1750 20 0001 C CNN "Supplier" 134 | F 7 "2070398" V 7115 1750 20 0001 C CNN "Supplier Part No" 135 | F 8 "http://au.element14.com/kemet/c0603c104k5racauto/cap-mlcc-x7r-100nf-50v-0603/dp/2070398" V 7140 1750 20 0001 C CNN "Supplier URL" 136 | F 9 "0.011" V 7165 1750 20 0001 C CNN "Supplier Price" 137 | F 10 "1" V 7190 1750 20 0001 C CNN "Supplier Price Break" 138 | 1 6850 1850 139 | 1 0 0 1 140 | $EndComp 141 | $Comp 142 | L appli_power:GND #PWR? 143 | U 1 1 5EC8EDE7 144 | P 6850 1900 145 | F 0 "#PWR?" H 6850 1650 50 0001 C CNN 146 | F 1 "GND" H 6855 1727 50 0000 C CNN 147 | F 2 "" H 6850 1900 50 0001 C CNN 148 | F 3 "" H 6850 1900 50 0001 C CNN 149 | 1 6850 1900 150 | 1 0 0 -1 151 | $EndComp 152 | Wire Wire Line 153 | 6850 1900 6850 1850 154 | Wire Wire Line 155 | 6850 1650 6850 1600 156 | Wire Wire Line 157 | 6850 1600 7050 1600 158 | Connection ~ 7050 1600 159 | Wire Wire Line 160 | 7050 1600 7050 1550 161 | $Comp 162 | L appli_capacitor:100n_X7R_1608M C? 163 | U 1 1 5EC925E1 164 | P 4300 1850 165 | F 0 "C?" H 4222 1715 50 0000 R CNN 166 | F 1 "100n_X7R_1608M" H 4222 1795 35 0000 R CNN 167 | F 2 "CAPC1608*" V 4415 1750 20 0001 C CNN 168 | F 3 "http://www.farnell.com/datasheets/1732728.pdf" V 4440 1750 20 0001 C CNN 169 | F 4 "KEMET" V 4490 1750 20 0001 C CNN "manf" 170 | F 5 "C0603C104K5RACAUTO" V 4515 1750 20 0001 C CNN "manf#" 171 | F 6 "Element14" V 4540 1750 20 0001 C CNN "Supplier" 172 | F 7 "2070398" V 4565 1750 20 0001 C CNN "Supplier Part No" 173 | F 8 "http://au.element14.com/kemet/c0603c104k5racauto/cap-mlcc-x7r-100nf-50v-0603/dp/2070398" V 4590 1750 20 0001 C CNN "Supplier URL" 174 | F 9 "0.011" V 4615 1750 20 0001 C CNN "Supplier Price" 175 | F 10 "1" V 4640 1750 20 0001 C CNN "Supplier Price Break" 176 | 1 4300 1850 177 | 1 0 0 1 178 | $EndComp 179 | $Comp 180 | L appli_power:GND #PWR? 181 | U 1 1 5EC925E7 182 | P 4300 1900 183 | F 0 "#PWR?" H 4300 1650 50 0001 C CNN 184 | F 1 "GND" H 4305 1727 50 0000 C CNN 185 | F 2 "" H 4300 1900 50 0001 C CNN 186 | F 3 "" H 4300 1900 50 0001 C CNN 187 | 1 4300 1900 188 | 1 0 0 -1 189 | $EndComp 190 | Wire Wire Line 191 | 4300 1900 4300 1850 192 | Wire Wire Line 193 | 4300 1650 4300 1600 194 | Wire Wire Line 195 | 4500 1600 4300 1600 196 | Connection ~ 4500 1600 197 | Wire Wire Line 198 | 4500 1600 4500 1550 199 | Wire Wire Line 200 | 4050 2300 3700 2300 201 | Wire Wire Line 202 | 4050 2400 3700 2400 203 | Wire Wire Line 204 | 4050 2500 3700 2500 205 | Wire Wire Line 206 | 4050 2600 3700 2600 207 | Wire Wire Line 208 | 4050 2700 3700 2700 209 | Wire Wire Line 210 | 4050 2800 3700 2800 211 | Wire Wire Line 212 | 4050 2900 3700 2900 213 | Wire Wire Line 214 | 4050 3000 3700 3000 215 | Wire Wire Line 216 | 7850 2300 7500 2300 217 | Wire Wire Line 218 | 7850 2400 7500 2400 219 | Wire Wire Line 220 | 7850 2500 7500 2500 221 | Wire Wire Line 222 | 7850 2600 7500 2600 223 | Wire Wire Line 224 | 7850 2700 7500 2700 225 | Wire Wire Line 226 | 7850 2800 7500 2800 227 | Wire Wire Line 228 | 7850 2900 7500 2900 229 | Wire Wire Line 230 | 7850 3000 7500 3000 231 | Wire Wire Line 232 | 4950 2600 5250 2600 233 | Wire Wire Line 234 | 4950 2700 5250 2700 235 | Wire Wire Line 236 | 4950 2800 5250 2800 237 | Wire Wire Line 238 | 4950 2900 5250 2900 239 | $Comp 240 | L appli_analog_devices:SN74LV4051APW U? 241 | U 1 1 5ECB9ED0 242 | P 4500 5000 243 | F 0 "U?" H 4350 5600 50 0000 C CNN 244 | F 1 "SN74LV4051APW" H 4100 5500 50 0000 C CNN 245 | F 2 "Applidyne_SOP:SOP16P65_500X640X120L62X24N" H 4500 3800 50 0001 C CNN 246 | F 3 "http://www.ti.com/lit/ds/symlink/sn74lv4051a.pdf?HQS=TI-null-null-mousermode-df-pf-null-wwe&ts=1589698827244" H 4500 3800 50 0001 C CNN 247 | F 4 "TI" H 4500 4000 50 0001 C CNN "manf" 248 | F 5 "SN74LV4051APWR" H 4500 3900 50 0001 C CNN "manf#" 249 | F 6 "Mouser" H 4500 3700 50 0001 C CNN "Supplier" 250 | F 7 "595-SN74LV4051APWR" H 4500 3600 50 0001 C CNN "Suppler Part No" 251 | F 8 "https://au.mouser.com/ProductDetail/Texas-Instruments/SN74LV4051APWR?qs=j%2FZo4ajzVJI89x2tgWsgsA%3D%3D" H 4500 3500 50 0001 C CNN "Supplier URL" 252 | F 9 "0.654" H 4500 3400 50 0001 C CNN "Supplier Price" 253 | F 10 "10" H 4500 3300 50 0001 C CNN "Supplier Price Break" 254 | 1 4500 5000 255 | -1 0 0 -1 256 | $EndComp 257 | $Comp 258 | L appli_analog_devices:SN74LV4051APW U? 259 | U 1 1 5ECB9EDD 260 | P 7050 5000 261 | F 0 "U?" H 7200 5600 50 0000 C CNN 262 | F 1 "SN74LV4051APW" H 7450 5500 50 0000 C CNN 263 | F 2 "Applidyne_SOP:SOP16P65_500X640X120L62X24N" H 7050 3800 50 0001 C CNN 264 | F 3 "http://www.ti.com/lit/ds/symlink/sn74lv4051a.pdf?HQS=TI-null-null-mousermode-df-pf-null-wwe&ts=1589698827244" H 7050 3800 50 0001 C CNN 265 | F 4 "TI" H 7050 4000 50 0001 C CNN "manf" 266 | F 5 "SN74LV4051APWR" H 7050 3900 50 0001 C CNN "manf#" 267 | F 6 "Mouser" H 7050 3700 50 0001 C CNN "Supplier" 268 | F 7 "595-SN74LV4051APWR" H 7050 3600 50 0001 C CNN "Suppler Part No" 269 | F 8 "https://au.mouser.com/ProductDetail/Texas-Instruments/SN74LV4051APWR?qs=j%2FZo4ajzVJI89x2tgWsgsA%3D%3D" H 7050 3500 50 0001 C CNN "Supplier URL" 270 | F 9 "0.654" H 7050 3400 50 0001 C CNN "Supplier Price" 271 | F 10 "10" H 7050 3300 50 0001 C CNN "Supplier Price Break" 272 | 1 7050 5000 273 | 1 0 0 -1 274 | $EndComp 275 | Wire Wire Line 276 | 4500 4500 4500 4000 277 | Wire Wire Line 278 | 7050 4500 7050 4000 279 | Wire Wire Line 280 | 4400 5600 4400 5650 281 | Wire Wire Line 282 | 4400 5650 4450 5650 283 | Wire Wire Line 284 | 4500 5650 4500 5600 285 | Wire Wire Line 286 | 7050 5600 7050 5650 287 | Wire Wire Line 288 | 7050 5650 7100 5650 289 | Wire Wire Line 290 | 7150 5650 7150 5600 291 | Wire Wire Line 292 | 4450 5650 4450 5700 293 | Connection ~ 4450 5650 294 | Wire Wire Line 295 | 4450 5650 4500 5650 296 | $Comp 297 | L appli_power:GND #PWR? 298 | U 1 1 5ECB9EEE 299 | P 4450 5700 300 | F 0 "#PWR?" H 4450 5450 50 0001 C CNN 301 | F 1 "GND" H 4455 5527 50 0000 C CNN 302 | F 2 "" H 4450 5700 50 0001 C CNN 303 | F 3 "" H 4450 5700 50 0001 C CNN 304 | 1 4450 5700 305 | 1 0 0 -1 306 | $EndComp 307 | Wire Wire Line 308 | 7100 5650 7100 5700 309 | Connection ~ 7100 5650 310 | Wire Wire Line 311 | 7100 5650 7150 5650 312 | $Comp 313 | L appli_power:GND #PWR? 314 | U 1 1 5ECB9EF7 315 | P 7100 5700 316 | F 0 "#PWR?" H 7100 5450 50 0001 C CNN 317 | F 1 "GND" H 7105 5527 50 0000 C CNN 318 | F 2 "" H 7100 5700 50 0001 C CNN 319 | F 3 "" H 7100 5700 50 0001 C CNN 320 | 1 7100 5700 321 | 1 0 0 -1 322 | $EndComp 323 | $Comp 324 | L appli_power:+3.3V #PWR? 325 | U 1 1 5ECB9EFD 326 | P 4500 3950 327 | F 0 "#PWR?" H 4500 3800 50 0001 C CNN 328 | F 1 "+3.3V" H 4515 4123 50 0000 C CNN 329 | F 2 "" H 4500 3950 50 0001 C CNN 330 | F 3 "" H 4500 3950 50 0001 C CNN 331 | 1 4500 3950 332 | 1 0 0 -1 333 | $EndComp 334 | $Comp 335 | L appli_power:+3.3V #PWR? 336 | U 1 1 5ECB9F03 337 | P 7050 3950 338 | F 0 "#PWR?" H 7050 3800 50 0001 C CNN 339 | F 1 "+3.3V" H 7065 4123 50 0000 C CNN 340 | F 2 "" H 7050 3950 50 0001 C CNN 341 | F 3 "" H 7050 3950 50 0001 C CNN 342 | 1 7050 3950 343 | 1 0 0 -1 344 | $EndComp 345 | $Comp 346 | L appli_capacitor:100n_X7R_1608M C? 347 | U 1 1 5ECB9F10 348 | P 6850 4250 349 | F 0 "C?" H 6772 4115 50 0000 R CNN 350 | F 1 "100n_X7R_1608M" H 6772 4195 35 0000 R CNN 351 | F 2 "CAPC1608*" V 6965 4150 20 0001 C CNN 352 | F 3 "http://www.farnell.com/datasheets/1732728.pdf" V 6990 4150 20 0001 C CNN 353 | F 4 "KEMET" V 7040 4150 20 0001 C CNN "manf" 354 | F 5 "C0603C104K5RACAUTO" V 7065 4150 20 0001 C CNN "manf#" 355 | F 6 "Element14" V 7090 4150 20 0001 C CNN "Supplier" 356 | F 7 "2070398" V 7115 4150 20 0001 C CNN "Supplier Part No" 357 | F 8 "http://au.element14.com/kemet/c0603c104k5racauto/cap-mlcc-x7r-100nf-50v-0603/dp/2070398" V 7140 4150 20 0001 C CNN "Supplier URL" 358 | F 9 "0.011" V 7165 4150 20 0001 C CNN "Supplier Price" 359 | F 10 "1" V 7190 4150 20 0001 C CNN "Supplier Price Break" 360 | 1 6850 4250 361 | 1 0 0 1 362 | $EndComp 363 | $Comp 364 | L appli_power:GND #PWR? 365 | U 1 1 5ECB9F16 366 | P 6850 4300 367 | F 0 "#PWR?" H 6850 4050 50 0001 C CNN 368 | F 1 "GND" H 6855 4127 50 0000 C CNN 369 | F 2 "" H 6850 4300 50 0001 C CNN 370 | F 3 "" H 6850 4300 50 0001 C CNN 371 | 1 6850 4300 372 | 1 0 0 -1 373 | $EndComp 374 | Wire Wire Line 375 | 6850 4300 6850 4250 376 | Wire Wire Line 377 | 6850 4050 6850 4000 378 | Wire Wire Line 379 | 6850 4000 7050 4000 380 | Connection ~ 7050 4000 381 | Wire Wire Line 382 | 7050 4000 7050 3950 383 | $Comp 384 | L appli_capacitor:100n_X7R_1608M C? 385 | U 1 1 5ECB9F28 386 | P 4300 4250 387 | F 0 "C?" H 4222 4115 50 0000 R CNN 388 | F 1 "100n_X7R_1608M" H 4222 4195 35 0000 R CNN 389 | F 2 "CAPC1608*" V 4415 4150 20 0001 C CNN 390 | F 3 "http://www.farnell.com/datasheets/1732728.pdf" V 4440 4150 20 0001 C CNN 391 | F 4 "KEMET" V 4490 4150 20 0001 C CNN "manf" 392 | F 5 "C0603C104K5RACAUTO" V 4515 4150 20 0001 C CNN "manf#" 393 | F 6 "Element14" V 4540 4150 20 0001 C CNN "Supplier" 394 | F 7 "2070398" V 4565 4150 20 0001 C CNN "Supplier Part No" 395 | F 8 "http://au.element14.com/kemet/c0603c104k5racauto/cap-mlcc-x7r-100nf-50v-0603/dp/2070398" V 4590 4150 20 0001 C CNN "Supplier URL" 396 | F 9 "0.011" V 4615 4150 20 0001 C CNN "Supplier Price" 397 | F 10 "1" V 4640 4150 20 0001 C CNN "Supplier Price Break" 398 | 1 4300 4250 399 | 1 0 0 1 400 | $EndComp 401 | $Comp 402 | L appli_power:GND #PWR? 403 | U 1 1 5ECB9F2E 404 | P 4300 4300 405 | F 0 "#PWR?" H 4300 4050 50 0001 C CNN 406 | F 1 "GND" H 4305 4127 50 0000 C CNN 407 | F 2 "" H 4300 4300 50 0001 C CNN 408 | F 3 "" H 4300 4300 50 0001 C CNN 409 | 1 4300 4300 410 | 1 0 0 -1 411 | $EndComp 412 | Wire Wire Line 413 | 4300 4300 4300 4250 414 | Wire Wire Line 415 | 4300 4050 4300 4000 416 | Wire Wire Line 417 | 4500 4000 4300 4000 418 | Connection ~ 4500 4000 419 | Wire Wire Line 420 | 4500 4000 4500 3950 421 | Wire Wire Line 422 | 4050 4700 3700 4700 423 | Wire Wire Line 424 | 4050 4800 3700 4800 425 | Wire Wire Line 426 | 4050 4900 3700 4900 427 | Wire Wire Line 428 | 4050 5000 3700 5000 429 | Wire Wire Line 430 | 4050 5100 3700 5100 431 | Wire Wire Line 432 | 4050 5200 3700 5200 433 | Wire Wire Line 434 | 4050 5300 3700 5300 435 | Wire Wire Line 436 | 4050 5400 3700 5400 437 | Wire Wire Line 438 | 7850 4700 7500 4700 439 | Wire Wire Line 440 | 7850 4800 7500 4800 441 | Wire Wire Line 442 | 7850 4900 7500 4900 443 | Wire Wire Line 444 | 7850 5000 7500 5000 445 | Wire Wire Line 446 | 7850 5100 7500 5100 447 | Wire Wire Line 448 | 7850 5200 7500 5200 449 | Wire Wire Line 450 | 7850 5300 7500 5300 451 | Wire Wire Line 452 | 7850 5400 7500 5400 453 | Wire Wire Line 454 | 6300 5000 6600 5000 455 | Wire Wire Line 456 | 6300 5100 6600 5100 457 | Wire Wire Line 458 | 6300 5200 6600 5200 459 | Wire Wire Line 460 | 6300 5300 6600 5300 461 | Text Notes 5500 1800 0 79 ~ 16 462 | TRANSMIT 463 | Text Notes 5550 4200 0 79 ~ 16 464 | RECEIVE 465 | Text Label 6300 5000 0 50 ~ 0 466 | EXP_A 467 | Text Label 6300 5100 0 50 ~ 0 468 | EXP_B 469 | Text Label 6300 5200 0 50 ~ 0 470 | EXP_C 471 | Text Label 6300 5300 0 50 ~ 0 472 | EXP_I 473 | Wire Wire Line 474 | 6300 2600 6600 2600 475 | Wire Wire Line 476 | 6300 2700 6600 2700 477 | Wire Wire Line 478 | 6300 2800 6600 2800 479 | Wire Wire Line 480 | 6300 2900 6600 2900 481 | Text Label 6300 2600 0 50 ~ 0 482 | EXP_A 483 | Text Label 6300 2700 0 50 ~ 0 484 | EXP_B 485 | Text Label 6300 2800 0 50 ~ 0 486 | EXP_C 487 | Text Label 6300 2900 0 50 ~ 0 488 | EXP_I 489 | Text Label 5000 2600 0 50 ~ 0 490 | COL_A 491 | Text Label 5000 2700 0 50 ~ 0 492 | COL_B 493 | Text Label 5000 2800 0 50 ~ 0 494 | COL_C 495 | Text Label 5000 2900 0 50 ~ 0 496 | COL_I 497 | Wire Wire Line 498 | 4950 5000 5250 5000 499 | Wire Wire Line 500 | 4950 5100 5250 5100 501 | Wire Wire Line 502 | 4950 5200 5250 5200 503 | Wire Wire Line 504 | 4950 5300 5250 5300 505 | Text Label 5000 5000 0 50 ~ 0 506 | COL_A 507 | Text Label 5000 5100 0 50 ~ 0 508 | COL_B 509 | Text Label 5000 5200 0 50 ~ 0 510 | COL_C 511 | Text Label 5000 5300 0 50 ~ 0 512 | COL_I 513 | Entry Wire Line 514 | 5250 5300 5350 5400 515 | Entry Wire Line 516 | 5250 5200 5350 5300 517 | Entry Wire Line 518 | 5250 5100 5350 5200 519 | Entry Wire Line 520 | 5250 5000 5350 5100 521 | Entry Wire Line 522 | 5250 2900 5350 3000 523 | Entry Wire Line 524 | 5250 2800 5350 2900 525 | Entry Wire Line 526 | 5250 2700 5350 2800 527 | Entry Wire Line 528 | 5250 2600 5350 2700 529 | Entry Wire Line 530 | 6300 5000 6200 5100 531 | Entry Wire Line 532 | 6300 5100 6200 5200 533 | Entry Wire Line 534 | 6300 5200 6200 5300 535 | Entry Wire Line 536 | 6300 5300 6200 5400 537 | Entry Wire Line 538 | 6300 2600 6200 2700 539 | Entry Wire Line 540 | 6300 2700 6200 2800 541 | Entry Wire Line 542 | 6300 2800 6200 2900 543 | Entry Wire Line 544 | 6300 2900 6200 3000 545 | Wire Wire Line 546 | 3650 6100 4050 6100 547 | Wire Wire Line 548 | 3650 6200 4050 6200 549 | Wire Wire Line 550 | 3650 6300 4050 6300 551 | Wire Wire Line 552 | 3650 6400 4050 6400 553 | Text Label 3750 6100 0 50 ~ 0 554 | COL_A 555 | Text Label 3750 6200 0 50 ~ 0 556 | COL_B 557 | Text Label 3750 6300 0 50 ~ 0 558 | COL_C 559 | Text Label 3750 6400 0 50 ~ 0 560 | COL_I 561 | Text Label 3750 6500 0 50 ~ 0 562 | EXP_A 563 | Text Label 3750 6600 0 50 ~ 0 564 | EXP_B 565 | Text Label 3750 6700 0 50 ~ 0 566 | EXP_C 567 | Text Label 3750 6800 0 50 ~ 0 568 | EXP_I 569 | Wire Wire Line 570 | 3650 6500 4050 6500 571 | Wire Wire Line 572 | 3650 6600 4050 6600 573 | Wire Wire Line 574 | 3650 6700 4050 6700 575 | Wire Wire Line 576 | 3650 6800 4050 6800 577 | Wire Wire Line 578 | 4950 4800 6600 4800 579 | Wire Wire Line 580 | 4950 2400 6600 2400 581 | Text Notes 5000 950 0 50 ~ 0 582 | "Collapse" the input array, then\n"Expand" it back out to devices to build the \n8:8 path selection functionality 583 | Text HLabel 7850 4700 2 50 Input ~ 0 584 | OUT_RX_0 585 | Text HLabel 7850 2300 2 50 Output ~ 0 586 | OUT_TX_0 587 | Text HLabel 3700 2300 0 50 Input ~ 0 588 | IN_TX_0 589 | Text HLabel 3700 4700 0 50 Output ~ 0 590 | IN_RX_0 591 | Text Notes 5650 2000 0 197 ~ 0 592 | → 593 | Text Notes 5650 4450 0 197 ~ 0 594 | ← 595 | Text HLabel 7850 4800 2 50 Input ~ 0 596 | OUT_RX_1 597 | Text HLabel 7850 4900 2 50 Input ~ 0 598 | OUT_RX_2 599 | Text HLabel 7850 5000 2 50 Input ~ 0 600 | OUT_RX_3 601 | Text HLabel 7850 5100 2 50 Input ~ 0 602 | OUT_RX_4 603 | Text HLabel 7850 5200 2 50 Input ~ 0 604 | OUT_RX_5 605 | Text HLabel 7850 5300 2 50 Input ~ 0 606 | OUT_RX_6 607 | Text HLabel 7850 5400 2 50 Input ~ 0 608 | OUT_RX_7 609 | Text HLabel 7850 2400 2 50 Output ~ 0 610 | OUT_TX_1 611 | Text HLabel 7850 2500 2 50 Output ~ 0 612 | OUT_TX_2 613 | Text HLabel 7850 2600 2 50 Output ~ 0 614 | OUT_TX_3 615 | Text HLabel 7850 2700 2 50 Output ~ 0 616 | OUT_TX_4 617 | Text HLabel 7850 2800 2 50 Output ~ 0 618 | OUT_TX_5 619 | Text HLabel 7850 2900 2 50 Output ~ 0 620 | OUT_TX_6 621 | Text HLabel 7850 3000 2 50 Output ~ 0 622 | OUT_TX_7 623 | Text HLabel 3700 2400 0 50 Input ~ 0 624 | IN_TX_1 625 | Text HLabel 3700 2500 0 50 Input ~ 0 626 | IN_TX_2 627 | Text HLabel 3700 2600 0 50 Input ~ 0 628 | IN_TX_3 629 | Text HLabel 3700 2700 0 50 Input ~ 0 630 | IN_TX_4 631 | Text HLabel 3700 2800 0 50 Input ~ 0 632 | IN_TX_5 633 | Text HLabel 3700 2900 0 50 Input ~ 0 634 | IN_TX_6 635 | Text HLabel 3700 3000 0 50 Input ~ 0 636 | IN_TX_7 637 | Text HLabel 3700 4800 0 50 Output ~ 0 638 | IN_RX_1 639 | Text HLabel 3700 4900 0 50 Output ~ 0 640 | IN_RX_2 641 | Text HLabel 3700 5000 0 50 Output ~ 0 642 | IN_RX_3 643 | Text HLabel 3700 5100 0 50 Output ~ 0 644 | IN_RX_4 645 | Text HLabel 3700 5200 0 50 Output ~ 0 646 | IN_RX_5 647 | Text HLabel 3700 5300 0 50 Output ~ 0 648 | IN_RX_6 649 | Text HLabel 3700 5400 0 50 Output ~ 0 650 | IN_RX_7 651 | $Comp 652 | L appli_special:MCP23008-E_SS U? 653 | U 1 1 5EEDD91C 654 | P 2800 6600 655 | AR Path="/5EEDD91C" Ref="U?" Part="1" 656 | AR Path="/5EC860AC/5EEDD91C" Ref="U?" Part="1" 657 | F 0 "U?" H 2800 7537 60 0000 C CNN 658 | F 1 "MCP23008-E_SS" H 2800 7431 60 0000 C CNN 659 | F 2 "" H 2700 6500 60 0000 C CNN 660 | F 3 "http://ww1.microchip.com/downloads/en/DeviceDoc/MCP23008-MCP23S08-Data-Sheet-20001919F.pdf" H 2800 5775 60 0001 C CNN 661 | F 4 "Microchip" H 2800 5535 60 0001 C CNN "manf" 662 | F 5 "MCP23008-E/SS" H 2810 5425 60 0001 C CNN "manf#" 663 | F 6 "RS Online" H 2800 5315 60 0001 C CNN "Supplier" 664 | F 7 "770-9707" H 2800 5205 60 0001 C CNN "Supplier Part No" 665 | F 8 "http://au.rs-online.com/web/p/i-o-expanders/7709707/" H 2800 5105 60 0001 C CNN "Supplier URL" 666 | F 9 "1.566" H 2800 4985 60 0001 C CNN "Supplier Price" 667 | F 10 "5" H 2810 4875 60 0001 C CNN "Supplier Price Break" 668 | 1 2800 6600 669 | 1 0 0 -1 670 | $EndComp 671 | Entry Wire Line 672 | 4050 6100 4150 6200 673 | Entry Wire Line 674 | 4050 6200 4150 6300 675 | Entry Wire Line 676 | 4050 6300 4150 6400 677 | Entry Wire Line 678 | 4050 6400 4150 6500 679 | Entry Wire Line 680 | 4050 6500 4150 6600 681 | Entry Wire Line 682 | 4050 6600 4150 6700 683 | Entry Wire Line 684 | 4050 6700 4150 6800 685 | Entry Wire Line 686 | 4050 6800 4150 6900 687 | Wire Wire Line 688 | 1950 7200 1850 7200 689 | Wire Wire Line 690 | 1850 7200 1850 7300 691 | $Comp 692 | L appli_power:GND #PWR? 693 | U 1 1 5EF0A91C 694 | P 1850 7300 695 | F 0 "#PWR?" H 1850 7050 50 0001 C CNN 696 | F 1 "GND" H 1855 7127 50 0000 C CNN 697 | F 2 "" H 1850 7300 50 0001 C CNN 698 | F 3 "" H 1850 7300 50 0001 C CNN 699 | 1 1850 7300 700 | 1 0 0 -1 701 | $EndComp 702 | Wire Wire Line 703 | 1950 6000 1850 6000 704 | Wire Wire Line 705 | 1850 6000 1850 5550 706 | $Comp 707 | L appli_power:+3.3V #PWR? 708 | U 1 1 5EF0E901 709 | P 1850 5550 710 | F 0 "#PWR?" H 1850 5400 50 0001 C CNN 711 | F 1 "+3.3V" H 1865 5723 50 0000 C CNN 712 | F 2 "" H 1850 5550 50 0001 C CNN 713 | F 3 "" H 1850 5550 50 0001 C CNN 714 | 1 1850 5550 715 | 1 0 0 -1 716 | $EndComp 717 | $Comp 718 | L appli_capacitor:100n_X7R_1608M C? 719 | U 1 1 5EF0F64F 720 | P 1550 5800 721 | F 0 "C?" H 1472 5665 50 0000 R CNN 722 | F 1 "100n_X7R_1608M" H 1472 5745 35 0000 R CNN 723 | F 2 "CAPC1608*" V 1665 5700 20 0001 C CNN 724 | F 3 "http://www.farnell.com/datasheets/1732728.pdf" V 1690 5700 20 0001 C CNN 725 | F 4 "KEMET" V 1740 5700 20 0001 C CNN "manf" 726 | F 5 "C0603C104K5RACAUTO" V 1765 5700 20 0001 C CNN "manf#" 727 | F 6 "Element14" V 1790 5700 20 0001 C CNN "Supplier" 728 | F 7 "2070398" V 1815 5700 20 0001 C CNN "Supplier Part No" 729 | F 8 "http://au.element14.com/kemet/c0603c104k5racauto/cap-mlcc-x7r-100nf-50v-0603/dp/2070398" V 1840 5700 20 0001 C CNN "Supplier URL" 730 | F 9 "0.011" V 1865 5700 20 0001 C CNN "Supplier Price" 731 | F 10 "1" V 1890 5700 20 0001 C CNN "Supplier Price Break" 732 | 1 1550 5800 733 | 1 0 0 1 734 | $EndComp 735 | $Comp 736 | L appli_power:GND #PWR? 737 | U 1 1 5EF10AE2 738 | P 1550 5850 739 | F 0 "#PWR?" H 1550 5600 50 0001 C CNN 740 | F 1 "GND" H 1555 5677 50 0000 C CNN 741 | F 2 "" H 1550 5850 50 0001 C CNN 742 | F 3 "" H 1550 5850 50 0001 C CNN 743 | 1 1550 5850 744 | 1 0 0 -1 745 | $EndComp 746 | $Comp 747 | L appli_power:+3.3V #PWR? 748 | U 1 1 5EF1594B 749 | P 1550 5550 750 | F 0 "#PWR?" H 1550 5400 50 0001 C CNN 751 | F 1 "+3.3V" H 1565 5723 50 0000 C CNN 752 | F 2 "" H 1550 5550 50 0001 C CNN 753 | F 3 "" H 1550 5550 50 0001 C CNN 754 | 1 1550 5550 755 | 1 0 0 -1 756 | $EndComp 757 | Wire Wire Line 758 | 1550 5550 1550 5600 759 | Wire Wire Line 760 | 1550 5800 1550 5850 761 | Wire Wire Line 762 | 1950 6600 1800 6600 763 | Wire Wire Line 764 | 1800 6500 1950 6500 765 | Wire Wire Line 766 | 1950 6400 1800 6400 767 | Wire Wire Line 768 | 1800 6200 1950 6200 769 | Wire Wire Line 770 | 1800 6300 1950 6300 771 | Text Notes 2500 7500 0 50 ~ 0 772 | Address: 773 | Text HLabel 1800 6200 0 50 Input ~ 0 774 | SCL 775 | Text HLabel 1800 6300 0 50 BiDi ~ 0 776 | SDA 777 | Text HLabel 1800 6900 0 50 Input ~ 0 778 | ~RESET 779 | Text HLabel 1800 7000 0 50 Input ~ 0 780 | INT 781 | Wire Wire Line 782 | 1800 7000 1950 7000 783 | Wire Wire Line 784 | 1800 6900 1950 6900 785 | Wire Bus Line 786 | 4150 6500 5350 6500 787 | Wire Bus Line 788 | 4150 6900 6200 6900 789 | Wire Bus Line 790 | 4150 6200 4150 6500 791 | Wire Bus Line 792 | 4150 6600 4150 6900 793 | Wire Bus Line 794 | 6200 2700 6200 6900 795 | Wire Bus Line 796 | 5350 2700 5350 6500 797 | $EndSCHEMATC 798 | -------------------------------------------------------------------------------- /hardware/supervisor.bak: -------------------------------------------------------------------------------- 1 | EESchema Schematic File Version 4 2 | LIBS:hardware-cache 3 | EELAYER 29 0 4 | EELAYER END 5 | $Descr A4 11693 8268 6 | encoding utf-8 7 | Sheet 11 11 8 | Title "" 9 | Date "" 10 | Rev "" 11 | Comp "" 12 | Comment1 "" 13 | Comment2 "" 14 | Comment3 "" 15 | Comment4 "" 16 | $EndDescr 17 | $Comp 18 | L appli_connector:ADAFRUIT_FEATHER_BREAKOUT U? 19 | U 1 1 5EDD4FC6 20 | P 4400 2750 21 | F 0 "U?" H 4578 2856 60 0000 L CNN 22 | F 1 "ADAFRUIT_FEATHER_BREAKOUT" H 4578 2750 60 0000 L CNN 23 | F 2 "Applidyne_Connector:ADAFRUIT_FEATHER" H 4400 1850 60 0001 C CNN 24 | F 3 "https://www.adafruit.com/feather" H 4578 2644 60 0000 L CNN 25 | 1 4400 2750 26 | 1 0 0 -1 27 | $EndComp 28 | $Comp 29 | L appli_connector:ADAFRUIT_FEATHER_BREAKOUT U? 30 | U 2 1 5EDD55A5 31 | P 4400 4350 32 | F 0 "U?" H 4578 4456 60 0000 L CNN 33 | F 1 "ADAFRUIT_FEATHER_BREAKOUT" H 4578 4350 60 0000 L CNN 34 | F 2 "Applidyne_Connector:ADAFRUIT_FEATHER" H 4400 3450 60 0001 C CNN 35 | F 3 "https://www.adafruit.com/feather" H 4578 4244 60 0000 L CNN 36 | 2 4400 4350 37 | 1 0 0 -1 38 | $EndComp 39 | Text HLabel 2700 3950 0 50 Output ~ 0 40 | SCL 41 | Text HLabel 2700 4050 0 50 BiDi ~ 0 42 | SDA 43 | Text HLabel 2700 4200 0 50 Output ~ 0 44 | ~RESET 45 | Text HLabel 2700 4300 0 50 Input ~ 0 46 | INT 47 | $EndSCHEMATC 48 | -------------------------------------------------------------------------------- /hardware/usb_input.sch: -------------------------------------------------------------------------------- 1 | EESchema Schematic File Version 4 2 | LIBS:hardware-cache 3 | EELAYER 29 0 4 | EELAYER END 5 | $Descr A4 11693 8268 6 | encoding utf-8 7 | Sheet 17 20 8 | Title "Input Connection" 9 | Date "" 10 | Rev "1.0.0" 11 | Comp "" 12 | Comment1 "CI/CD Testbed" 13 | Comment2 "ARENA" 14 | Comment3 "" 15 | Comment4 "" 16 | $EndDescr 17 | $Comp 18 | L appli_usb:USB_C_SOCKET_RA_PTH_SIMPLE J? 19 | U 1 1 6093699A 20 | P 4400 2700 21 | AR Path="/6093699A" Ref="J?" Part="1" 22 | AR Path="/608FAF92/6093699A" Ref="J9" Part="1" 23 | F 0 "J9" H 4400 3587 60 0000 C CNN 24 | F 1 "USB_C_SOCKET_RA_PTH_SIMPLE" H 4400 3481 60 0000 C CNN 25 | F 2 "Applidyne_USB:USB_C_PTH_GCT_USB4085" H 4400 1900 60 0001 C CNN 26 | F 3 "https://gct.co/connector/digi-key/usb4085" H 4400 1800 60 0001 C CNN 27 | F 4 "GCT" H 4400 1600 60 0001 C CNN "manf" 28 | F 5 "USB4085-GF-A" H 4400 1490 60 0001 C CNN "manf#" 29 | F 6 "Digikey" H 4400 1380 60 0001 C CNN "Supplier" 30 | F 7 "2073-USB4085-GF-ACT-ND" H 4410 1290 60 0001 C CNN "Supplier Part No" 31 | F 8 "https://www.digikey.com/product-detail/en/gct/USB4085-GF-A/2073-USB4085-GF-ACT-ND/9859733" H 4400 1190 60 0001 C CNN "Supplier URL" 32 | F 9 "1.40" H 4400 1080 60 0001 C CNN "Supplier Price" 33 | F 10 "10" H 4400 960 60 0001 C CNN "Supplier Price Break" 34 | 1 4400 2700 35 | 1 0 0 -1 36 | $EndComp 37 | $Comp 38 | L appli_device:USBLC6 U? 39 | U 1 1 609369A7 40 | P 7000 2450 41 | AR Path="/609369A7" Ref="U?" Part="1" 42 | AR Path="/608FAF92/609369A7" Ref="U38" Part="1" 43 | F 0 "U38" H 7000 2887 60 0000 C CNN 44 | F 1 "USBLC6" H 7000 2781 60 0000 C CNN 45 | F 2 "Applidyne_SOT:SOT95P280X145-6L50N" H 7000 2450 60 0001 C CNN 46 | F 3 "http://docs-asia.electrocomponents.com/webdocs/07bd/0900766b807bd47e.pdf" H 7020 2100 60 0001 C CNN 47 | F 4 "ST" H 7000 1860 60 0001 C CNN "manf" 48 | F 5 "USBLC6-2SC6" H 7000 1760 60 0001 C CNN "manf#" 49 | F 6 "RS Online" H 7010 1650 60 0001 C CNN "Supplier" 50 | F 7 " 624-7693" H 7000 1550 60 0001 C CNN "Supplier Part No" 51 | F 8 "http://au.rs-online.com/web/p/tvs-diodes/6247693/" H 7000 1460 60 0001 C CNN "Supplier URL" 52 | F 9 "0.59" H 7000 1350 60 0001 C CNN "Supplier Price" 53 | F 10 "10" H 7000 1250 60 0001 C CNN "Supplier Price Break" 54 | 1 7000 2450 55 | 1 0 0 -1 56 | $EndComp 57 | Wire Wire Line 58 | 4900 2200 5200 2200 59 | Wire Wire Line 60 | 5200 2200 5200 2100 61 | Wire Wire Line 62 | 5200 2100 4900 2100 63 | Wire Wire Line 64 | 3900 2200 3600 2200 65 | Wire Wire Line 66 | 3600 2200 3600 2100 67 | Wire Wire Line 68 | 3600 2100 3900 2100 69 | Wire Wire Line 70 | 4900 3000 5200 3000 71 | Wire Wire Line 72 | 5200 3000 5200 2900 73 | Wire Wire Line 74 | 5200 2900 4900 2900 75 | Wire Wire Line 76 | 3900 3000 3600 3000 77 | Wire Wire Line 78 | 3600 3000 3600 2900 79 | Wire Wire Line 80 | 3600 2900 3900 2900 81 | Text Label 3600 2100 0 50 ~ 0 82 | 5V_USB 83 | Text Label 4900 2100 0 50 ~ 0 84 | 5V_USB 85 | Wire Wire Line 86 | 5200 3000 5200 3100 87 | Connection ~ 5200 3000 88 | $Comp 89 | L appli_power:GND #PWR? 90 | U 1 1 609369C6 91 | P 5200 3300 92 | AR Path="/609369C6" Ref="#PWR?" Part="1" 93 | AR Path="/608FAF92/609369C6" Ref="#PWR0176" Part="1" 94 | F 0 "#PWR0176" H 5200 3050 50 0001 C CNN 95 | F 1 "GND" H 5205 3127 50 0000 C CNN 96 | F 2 "" H 5200 3300 50 0001 C CNN 97 | F 3 "" H 5200 3300 50 0001 C CNN 98 | 1 5200 3300 99 | 1 0 0 -1 100 | $EndComp 101 | $Comp 102 | L appli_power:GND #PWR? 103 | U 1 1 609369CC 104 | P 3600 3300 105 | AR Path="/609369CC" Ref="#PWR?" Part="1" 106 | AR Path="/608FAF92/609369CC" Ref="#PWR0169" Part="1" 107 | F 0 "#PWR0169" H 3600 3050 50 0001 C CNN 108 | F 1 "GND" H 3605 3127 50 0000 C CNN 109 | F 2 "" H 3600 3300 50 0001 C CNN 110 | F 3 "" H 3600 3300 50 0001 C CNN 111 | 1 3600 3300 112 | 1 0 0 -1 113 | $EndComp 114 | Connection ~ 3600 3000 115 | Wire Wire Line 116 | 3600 3000 3600 3100 117 | Wire Wire Line 118 | 3900 2400 3600 2400 119 | Wire Wire Line 120 | 3900 2500 3600 2500 121 | NoConn ~ 3900 2700 122 | NoConn ~ 4900 2700 123 | Wire Wire Line 124 | 4900 2600 5450 2600 125 | Wire Wire Line 126 | 5450 2600 5450 2950 127 | Wire Wire Line 128 | 5450 3300 5450 3250 129 | $Comp 130 | L appli_power:GND #PWR? 131 | U 1 1 609369DB 132 | P 5450 3300 133 | AR Path="/609369DB" Ref="#PWR?" Part="1" 134 | AR Path="/608FAF92/609369DB" Ref="#PWR0178" Part="1" 135 | F 0 "#PWR0178" H 5450 3050 50 0001 C CNN 136 | F 1 "GND" H 5455 3127 50 0000 C CNN 137 | F 2 "" H 5450 3300 50 0001 C CNN 138 | F 3 "" H 5450 3300 50 0001 C CNN 139 | 1 5450 3300 140 | 1 0 0 -1 141 | $EndComp 142 | Wire Wire Line 143 | 3900 2600 3350 2600 144 | Wire Wire Line 145 | 3350 2600 3350 2950 146 | Wire Wire Line 147 | 3350 3300 3350 3250 148 | $Comp 149 | L appli_power:GND #PWR? 150 | U 1 1 609369E4 151 | P 3350 3300 152 | AR Path="/609369E4" Ref="#PWR?" Part="1" 153 | AR Path="/608FAF92/609369E4" Ref="#PWR0168" Part="1" 154 | F 0 "#PWR0168" H 3350 3050 50 0001 C CNN 155 | F 1 "GND" H 3355 3127 50 0000 C CNN 156 | F 2 "" H 3350 3300 50 0001 C CNN 157 | F 3 "" H 3350 3300 50 0001 C CNN 158 | 1 3350 3300 159 | 1 0 0 -1 160 | $EndComp 161 | Text Label 3600 2400 0 50 ~ 0 162 | USB_D+ 163 | Text Label 3600 2500 0 50 ~ 0 164 | USB_D- 165 | Wire Wire Line 166 | 6450 2300 6400 2300 167 | $Comp 168 | L appli_resistor:5K76_1608M R? 169 | U 1 1 609369F6 170 | P 5450 2950 171 | AR Path="/609369F6" Ref="R?" Part="1" 172 | AR Path="/608FAF92/609369F6" Ref="R44" Part="1" 173 | F 0 "R44" H 5523 2835 50 0000 L CNN 174 | F 1 "5K76_1608M" H 5523 2755 35 0000 L CNN 175 | F 2 "Applidyne_Resistor:RESC1608X50N" V 5560 2800 20 0001 C CNN 176 | F 3 "http://www.farnell.com/datasheets/1911175.pdf" V 5585 2800 20 0001 C CNN 177 | F 4 "PANASONIC" V 5635 2800 20 0001 C CNN "manf" 178 | F 5 "ERJ3EKF5761V" V 5660 2800 20 0001 C CNN "manf#" 179 | F 6 "Element14" V 5685 2800 20 0001 C CNN "Supplier" 180 | F 7 "2059385" V 5710 2800 20 0001 C CNN "Supplier Part No" 181 | F 8 "http://au.element14.com/panasonic-electronic-components/erj3ekf5761v/res-thick-film-5k76-1-0-1w-0603/dp/2059385?CMP=GRHB-OCTOPART" V 5735 2800 20 0001 C CNN "Supplier URL" 182 | F 9 "0.014" V 5760 2800 20 0001 C CNN "Supplier Price" 183 | F 10 "50" V 5785 2800 20 0001 C CNN "Supplier Price Break" 184 | 1 5450 2950 185 | 1 0 0 -1 186 | $EndComp 187 | $Comp 188 | L appli_resistor:5K76_1608M R? 189 | U 1 1 60936A03 190 | P 3350 3250 191 | AR Path="/60936A03" Ref="R?" Part="1" 192 | AR Path="/608FAF92/60936A03" Ref="R43" Part="1" 193 | F 0 "R43" H 3278 3065 50 0000 R CNN 194 | F 1 "5K76_1608M" H 3278 3145 35 0000 R CNN 195 | F 2 "Applidyne_Resistor:RESC1608X50N" V 3460 3100 20 0001 C CNN 196 | F 3 "http://www.farnell.com/datasheets/1911175.pdf" V 3485 3100 20 0001 C CNN 197 | F 4 "PANASONIC" V 3535 3100 20 0001 C CNN "manf" 198 | F 5 "ERJ3EKF5761V" V 3560 3100 20 0001 C CNN "manf#" 199 | F 6 "Element14" V 3585 3100 20 0001 C CNN "Supplier" 200 | F 7 "2059385" V 3610 3100 20 0001 C CNN "Supplier Part No" 201 | F 8 "http://au.element14.com/panasonic-electronic-components/erj3ekf5761v/res-thick-film-5k76-1-0-1w-0603/dp/2059385?CMP=GRHB-OCTOPART" V 3635 3100 20 0001 C CNN "Supplier URL" 202 | F 9 "0.014" V 3660 3100 20 0001 C CNN "Supplier Price" 203 | F 10 "50" V 3685 3100 20 0001 C CNN "Supplier Price Break" 204 | 1 3350 3250 205 | 1 0 0 1 206 | $EndComp 207 | Wire Wire Line 208 | 3900 3100 3600 3100 209 | Connection ~ 3600 3100 210 | Wire Wire Line 211 | 3600 3100 3600 3200 212 | Wire Wire Line 213 | 3900 3200 3600 3200 214 | Connection ~ 3600 3200 215 | Wire Wire Line 216 | 3600 3200 3600 3300 217 | Wire Wire Line 218 | 4900 3200 5200 3200 219 | Connection ~ 5200 3200 220 | Wire Wire Line 221 | 5200 3200 5200 3300 222 | Wire Wire Line 223 | 4900 3100 5200 3100 224 | Connection ~ 5200 3100 225 | Wire Wire Line 226 | 5200 3100 5200 3200 227 | Text Notes 2650 3350 0 50 ~ 0 228 | 5k1 is also OK 229 | Text Label 5300 2500 2 50 ~ 0 230 | USB_D- 231 | Text Label 5300 2400 2 50 ~ 0 232 | USB_D+ 233 | Wire Wire Line 234 | 6400 2100 6400 2300 235 | $Comp 236 | L appli_power:GND #PWR? 237 | U 1 1 609369BB 238 | P 6400 2750 239 | AR Path="/609369BB" Ref="#PWR?" Part="1" 240 | AR Path="/608FAF92/609369BB" Ref="#PWR0181" Part="1" 241 | F 0 "#PWR0181" H 6400 2500 50 0001 C CNN 242 | F 1 "GND" H 6405 2577 50 0000 C CNN 243 | F 2 "" H 6400 2750 50 0001 C CNN 244 | F 3 "" H 6400 2750 50 0001 C CNN 245 | 1 6400 2750 246 | 1 0 0 -1 247 | $EndComp 248 | Wire Wire Line 249 | 6450 2600 6400 2600 250 | Wire Wire Line 251 | 6400 2600 6400 2750 252 | Wire Wire Line 253 | 5200 2100 5450 2100 254 | Wire Wire Line 255 | 5450 2100 5450 1950 256 | Connection ~ 5200 2100 257 | $Comp 258 | L appli_power:PWR_FLAG #FLG02 259 | U 1 1 6093C158 260 | P 5800 1950 261 | F 0 "#FLG02" H 5800 2000 30 0001 C CNN 262 | F 1 "PWR_FLAG" H 5800 2083 30 0000 C CNN 263 | F 2 "" H 5800 1950 60 0000 C CNN 264 | F 3 "" H 5800 1950 60 0000 C CNN 265 | 1 5800 1950 266 | 1 0 0 -1 267 | $EndComp 268 | $Comp 269 | L appli_power:+5V #PWR0177 270 | U 1 1 6093C9EF 271 | P 5450 1950 272 | F 0 "#PWR0177" H 5450 1800 50 0001 C CNN 273 | F 1 "+5V" H 5465 2123 50 0000 C CNN 274 | F 2 "" H 5450 1950 60 0000 C CNN 275 | F 3 "" H 5450 1950 60 0000 C CNN 276 | 1 5450 1950 277 | 1 0 0 -1 278 | $EndComp 279 | Wire Wire Line 280 | 5450 2100 5800 2100 281 | Wire Wire Line 282 | 5800 2100 5800 1950 283 | Connection ~ 5450 2100 284 | Text Notes 3750 1400 0 79 ~ 16 285 | USB HOST CONNECTOR 286 | Text Notes 6550 1400 0 79 ~ 16 287 | ESD PROTECTION 288 | $Comp 289 | L appli_power:+5V #PWR0180 290 | U 1 1 5EC4092A 291 | P 6400 2100 292 | F 0 "#PWR0180" H 6400 1950 50 0001 C CNN 293 | F 1 "+5V" H 6415 2273 50 0000 C CNN 294 | F 2 "" H 6400 2100 60 0000 C CNN 295 | F 3 "" H 6400 2100 60 0000 C CNN 296 | 1 6400 2100 297 | 1 0 0 -1 298 | $EndComp 299 | $Comp 300 | L appli_power:+5V #PWR0170 301 | U 1 1 5FA14AC9 302 | P 3100 5600 303 | F 0 "#PWR0170" H 3100 5450 50 0001 C CNN 304 | F 1 "+5V" H 3115 5773 50 0000 C CNN 305 | F 2 "" H 3100 5600 60 0000 C CNN 306 | F 3 "" H 3100 5600 60 0000 C CNN 307 | 1 3100 5600 308 | 1 0 0 -1 309 | $EndComp 310 | $Comp 311 | L appli_power:+3.3V #PWR0173 312 | U 1 1 5FA151DE 313 | P 6250 5600 314 | F 0 "#PWR0173" H 6250 5450 50 0001 C CNN 315 | F 1 "+3.3V" H 6265 5773 50 0000 C CNN 316 | F 2 "" H 6250 5600 50 0001 C CNN 317 | F 3 "" H 6250 5600 50 0001 C CNN 318 | 1 6250 5600 319 | 1 0 0 -1 320 | $EndComp 321 | $Comp 322 | L appli_power:PWR_FLAG #FLG01 323 | U 1 1 5FA15A34 324 | P 6600 5600 325 | F 0 "#FLG01" H 6600 5650 30 0001 C CNN 326 | F 1 "PWR_FLAG" H 6600 5733 30 0000 C CNN 327 | F 2 "" H 6600 5600 60 0000 C CNN 328 | F 3 "" H 6600 5600 60 0000 C CNN 329 | 1 6600 5600 330 | 1 0 0 -1 331 | $EndComp 332 | Text Notes 3600 1650 0 50 ~ 0 333 | USBC makes it slightly easier to interop with\nmacOS based CI/CD instances without USBA 334 | Wire Wire Line 335 | 2350 1850 2350 1750 336 | Wire Wire Line 337 | 2350 1750 2550 1750 338 | Wire Wire Line 339 | 2750 1750 2750 1850 340 | Wire Wire Line 341 | 2750 2050 2750 2150 342 | Wire Wire Line 343 | 2750 2150 2550 2150 344 | Wire Wire Line 345 | 2350 2150 2350 2050 346 | $Comp 347 | L appli_power:GND #PWR0222 348 | U 1 1 5ECD5032 349 | P 2550 2200 350 | F 0 "#PWR0222" H 2550 1950 50 0001 C CNN 351 | F 1 "GND" H 2555 2027 50 0000 C CNN 352 | F 2 "" H 2550 2200 50 0001 C CNN 353 | F 3 "" H 2550 2200 50 0001 C CNN 354 | 1 2550 2200 355 | 1 0 0 -1 356 | $EndComp 357 | Wire Wire Line 358 | 2550 2200 2550 2150 359 | Connection ~ 2550 2150 360 | Wire Wire Line 361 | 2550 2150 2350 2150 362 | Wire Wire Line 363 | 2550 1750 2550 1700 364 | Connection ~ 2550 1750 365 | Wire Wire Line 366 | 2550 1750 2750 1750 367 | $Comp 368 | L appli_power:+5V #PWR0223 369 | U 1 1 5ED01B99 370 | P 2550 1700 371 | F 0 "#PWR0223" H 2550 1550 50 0001 C CNN 372 | F 1 "+5V" H 2565 1873 50 0000 C CNN 373 | F 2 "" H 2550 1700 60 0000 C CNN 374 | F 3 "" H 2550 1700 60 0000 C CNN 375 | 1 2550 1700 376 | 1 0 0 -1 377 | $EndComp 378 | Wire Wire Line 379 | 7550 2400 8250 2400 380 | Wire Wire Line 381 | 7550 2500 8250 2500 382 | Text HLabel 8250 2500 2 50 BiDi ~ 0 383 | D- 384 | Text HLabel 8250 2400 2 50 BiDi ~ 0 385 | D+ 386 | $Comp 387 | L appli_capacitor:100n_X7R_1608M C1 388 | U 1 1 5F0E1A89 389 | P 6950 3200 390 | F 0 "C1" H 7028 3135 50 0000 L CNN 391 | F 1 "100n_X7R_1608M" H 7028 3055 35 0000 L CNN 392 | F 2 "Applidyne_Capacitor:CAPC1608X90N" V 7065 3100 20 0001 C CNN 393 | F 3 "http://www.farnell.com/datasheets/1732728.pdf" V 7090 3100 20 0001 C CNN 394 | F 4 "KEMET" V 7140 3100 20 0001 C CNN "manf" 395 | F 5 "C0603C104K5RACAUTO" V 7165 3100 20 0001 C CNN "manf#" 396 | F 6 "Element14" V 7190 3100 20 0001 C CNN "Supplier" 397 | F 7 "2070398" V 7215 3100 20 0001 C CNN "Supplier Part No" 398 | F 8 "http://au.element14.com/kemet/c0603c104k5racauto/cap-mlcc-x7r-100nf-50v-0603/dp/2070398" V 7240 3100 20 0001 C CNN "Supplier URL" 399 | F 9 "0.011" V 7265 3100 20 0001 C CNN "Supplier Price" 400 | F 10 "1" V 7290 3100 20 0001 C CNN "Supplier Price Break" 401 | 1 6950 3200 402 | 1 0 0 -1 403 | $EndComp 404 | $Comp 405 | L appli_power:+5V #PWR0171 406 | U 1 1 5F0E1DF7 407 | P 6950 3100 408 | F 0 "#PWR0171" H 6950 2950 50 0001 C CNN 409 | F 1 "+5V" H 6965 3273 50 0000 C CNN 410 | F 2 "" H 6950 3100 60 0000 C CNN 411 | F 3 "" H 6950 3100 60 0000 C CNN 412 | 1 6950 3100 413 | 1 0 0 -1 414 | $EndComp 415 | $Comp 416 | L appli_power:GND #PWR? 417 | U 1 1 5F0E20B1 418 | P 6950 3500 419 | AR Path="/5F0E20B1" Ref="#PWR?" Part="1" 420 | AR Path="/608FAF92/5F0E20B1" Ref="#PWR0172" Part="1" 421 | F 0 "#PWR0172" H 6950 3250 50 0001 C CNN 422 | F 1 "GND" H 6955 3327 50 0000 C CNN 423 | F 2 "" H 6950 3500 50 0001 C CNN 424 | F 3 "" H 6950 3500 50 0001 C CNN 425 | 1 6950 3500 426 | 1 0 0 -1 427 | $EndComp 428 | Wire Wire Line 429 | 6950 3500 6950 3400 430 | Wire Wire Line 431 | 6950 3200 6950 3100 432 | Wire Wire Line 433 | 4900 2500 6450 2500 434 | Wire Wire Line 435 | 4900 2400 6450 2400 436 | Wire Wire Line 437 | 6600 5600 6600 5700 438 | Wire Wire Line 439 | 6600 5700 6250 5700 440 | Wire Wire Line 441 | 6250 5700 6250 5600 442 | $Comp 443 | L appli_power:PWR_FLAG #FLG03 444 | U 1 1 5EDCB4A7 445 | P 6050 3200 446 | F 0 "#FLG03" H 6050 3250 30 0001 C CNN 447 | F 1 "PWR_FLAG" H 6050 3333 30 0000 C CNN 448 | F 2 "" H 6050 3200 60 0000 C CNN 449 | F 3 "" H 6050 3200 60 0000 C CNN 450 | 1 6050 3200 451 | 1 0 0 -1 452 | $EndComp 453 | $Comp 454 | L appli_power:GND #PWR0175 455 | U 1 1 5EDCC662 456 | P 6050 3300 457 | F 0 "#PWR0175" H 6050 3050 50 0001 C CNN 458 | F 1 "GND" H 6055 3127 50 0000 C CNN 459 | F 2 "" H 6050 3300 50 0001 C CNN 460 | F 3 "" H 6050 3300 50 0001 C CNN 461 | 1 6050 3300 462 | 1 0 0 -1 463 | $EndComp 464 | Wire Wire Line 465 | 6050 3300 6050 3200 466 | Wire Wire Line 467 | 3100 5600 3100 5700 468 | Text Notes 4150 5000 0 79 ~ 16 469 | 3.3V REGULATOR 470 | $Comp 471 | L appli_regulator:AP2112K-3.3 U1 472 | U 1 1 5EDC76C2 473 | P 4550 5750 474 | F 0 "U1" H 4550 6044 40 0000 C CNN 475 | F 1 "AP2112K-3.3" H 4550 5968 40 0000 C CNN 476 | F 2 "Applidyne_SOT:SOT95P280X145-5L30N" H 4250 5950 35 0001 L CIN 477 | F 3 "https://au.mouser.com/datasheet/2/115/AP2112-271550.pdf" H 4550 4600 60 0001 C CNN 478 | F 4 "DIODES INCORPORATED" H 4550 5100 60 0001 C CNN "manf" 479 | F 5 "AP2112K-3.3TRG1" H 4550 5000 60 0001 C CNN "manf#" 480 | F 6 "Mouser" H 4550 4900 60 0001 C CNN "Supplier" 481 | F 7 "621-AP2112K-3.3TRG1" H 4550 4800 60 0001 C CNN "Supplier Part No" 482 | F 8 "https://au.mouser.com/ProductDetail/Diodes-Incorporated/AP2112K-33TRG1" H 4550 4700 60 0001 C CNN "Supplier URL" 483 | F 9 "0.207" H 4550 4500 60 0001 C CNN "Supplier Price" 484 | F 10 "100" H 4550 4400 60 0001 C CNN "Supplier Price Break" 485 | 1 4550 5750 486 | 1 0 0 -1 487 | $EndComp 488 | Wire Wire Line 489 | 4100 5800 4000 5800 490 | Wire Wire Line 491 | 4000 5800 4000 5700 492 | Wire Wire Line 493 | 4000 5700 4100 5700 494 | Wire Wire Line 495 | 3100 5700 3700 5700 496 | Connection ~ 4000 5700 497 | Wire Wire Line 498 | 5000 5700 5150 5700 499 | Connection ~ 6250 5700 500 | Wire Wire Line 501 | 4550 6050 4550 6300 502 | $Comp 503 | L appli_power:GND #PWR05 504 | U 1 1 5EDCF9DF 505 | P 4550 6300 506 | F 0 "#PWR05" H 4550 6050 50 0001 C CNN 507 | F 1 "GND" H 4555 6127 50 0000 C CNN 508 | F 2 "" H 4550 6300 50 0001 C CNN 509 | F 3 "" H 4550 6300 50 0001 C CNN 510 | 1 4550 6300 511 | 1 0 0 -1 512 | $EndComp 513 | $Comp 514 | L appli_capacitor:4u7_X7R_2012M C? 515 | U 1 1 5EDD3872 516 | P 5150 5950 517 | AR Path="/5EC0D2F7/5EDD3872" Ref="C?" Part="1" 518 | AR Path="/5EC61D1E/5EDD3872" Ref="C?" Part="1" 519 | AR Path="/5EC628D0/5EDD3872" Ref="C?" Part="1" 520 | AR Path="/5EC628D8/5EDD3872" Ref="C?" Part="1" 521 | AR Path="/5EC64E5C/5EDD3872" Ref="C?" Part="1" 522 | AR Path="/5EC64E64/5EDD3872" Ref="C?" Part="1" 523 | AR Path="/5EC64E6C/5EDD3872" Ref="C?" Part="1" 524 | AR Path="/5EC64E74/5EDD3872" Ref="C?" Part="1" 525 | AR Path="/5EF5AF13/5EDD3872" Ref="C?" Part="1" 526 | AR Path="/5EF5EABD/5EDD3872" Ref="C?" Part="1" 527 | AR Path="/5EF626C9/5EDD3872" Ref="C?" Part="1" 528 | AR Path="/5EF662C0/5EDD3872" Ref="C?" Part="1" 529 | AR Path="/5EF69F20/5EDD3872" Ref="C?" Part="1" 530 | AR Path="/5EF6DACA/5EDD3872" Ref="C?" Part="1" 531 | AR Path="/5EF71689/5EDD3872" Ref="C?" Part="1" 532 | AR Path="/608FAF92/5EDD3872" Ref="C48" Part="1" 533 | F 0 "C48" H 5228 5885 50 0000 L CNN 534 | F 1 "4u7_X7R_2012M" H 5228 5805 35 0000 L CNN 535 | F 2 "Applidyne_Capacitor:CAPC2012X110N" V 5265 5850 20 0001 C CNN 536 | F 3 "http://www.farnell.com/datasheets/1870456.pdf" V 5290 5850 20 0001 C CNN 537 | F 4 "MULTICOMP" V 5340 5850 20 0001 C CNN "manf" 538 | F 5 "MC0805B475K160CT" V 5365 5850 20 0001 C CNN "manf#" 539 | F 6 "Element14" V 5390 5850 20 0001 C CNN "Supplier" 540 | F 7 "2320854" V 5415 5850 20 0001 C CNN "Supplier Part No" 541 | F 8 "http://au.element14.com/multicomp/mc0805b475k160ct/cap-mlcc-x7r-4-7uf-16v-0805/dp/2320854" V 5440 5850 20 0001 C CNN "Supplier URL" 542 | F 9 "0.252" V 5465 5850 20 0001 C CNN "Supplier Price" 543 | F 10 "10" V 5490 5850 20 0001 C CNN "Supplier Price Break" 544 | 1 5150 5950 545 | 1 0 0 -1 546 | $EndComp 547 | $Comp 548 | L appli_capacitor:4u7_X7R_2012M C? 549 | U 1 1 5EDD4B56 550 | P 5750 5950 551 | AR Path="/5EC0D2F7/5EDD4B56" Ref="C?" Part="1" 552 | AR Path="/5EC61D1E/5EDD4B56" Ref="C?" Part="1" 553 | AR Path="/5EC628D0/5EDD4B56" Ref="C?" Part="1" 554 | AR Path="/5EC628D8/5EDD4B56" Ref="C?" Part="1" 555 | AR Path="/5EC64E5C/5EDD4B56" Ref="C?" Part="1" 556 | AR Path="/5EC64E64/5EDD4B56" Ref="C?" Part="1" 557 | AR Path="/5EC64E6C/5EDD4B56" Ref="C?" Part="1" 558 | AR Path="/5EC64E74/5EDD4B56" Ref="C?" Part="1" 559 | AR Path="/5EF5AF13/5EDD4B56" Ref="C?" Part="1" 560 | AR Path="/5EF5EABD/5EDD4B56" Ref="C?" Part="1" 561 | AR Path="/5EF626C9/5EDD4B56" Ref="C?" Part="1" 562 | AR Path="/5EF662C0/5EDD4B56" Ref="C?" Part="1" 563 | AR Path="/5EF69F20/5EDD4B56" Ref="C?" Part="1" 564 | AR Path="/5EF6DACA/5EDD4B56" Ref="C?" Part="1" 565 | AR Path="/5EF71689/5EDD4B56" Ref="C?" Part="1" 566 | AR Path="/608FAF92/5EDD4B56" Ref="C49" Part="1" 567 | F 0 "C49" H 5828 5885 50 0000 L CNN 568 | F 1 "4u7_X7R_2012M" H 5828 5805 35 0000 L CNN 569 | F 2 "Applidyne_Capacitor:CAPC2012X110N" V 5865 5850 20 0001 C CNN 570 | F 3 "http://www.farnell.com/datasheets/1870456.pdf" V 5890 5850 20 0001 C CNN 571 | F 4 "MULTICOMP" V 5940 5850 20 0001 C CNN "manf" 572 | F 5 "MC0805B475K160CT" V 5965 5850 20 0001 C CNN "manf#" 573 | F 6 "Element14" V 5990 5850 20 0001 C CNN "Supplier" 574 | F 7 "2320854" V 6015 5850 20 0001 C CNN "Supplier Part No" 575 | F 8 "http://au.element14.com/multicomp/mc0805b475k160ct/cap-mlcc-x7r-4-7uf-16v-0805/dp/2320854" V 6040 5850 20 0001 C CNN "Supplier URL" 576 | F 9 "0.252" V 6065 5850 20 0001 C CNN "Supplier Price" 577 | F 10 "10" V 6090 5850 20 0001 C CNN "Supplier Price Break" 578 | 1 5750 5950 579 | 1 0 0 -1 580 | $EndComp 581 | $Comp 582 | L appli_capacitor:4u7_X7R_2012M C? 583 | U 1 1 5EDD635B 584 | P 3100 5950 585 | AR Path="/5EC0D2F7/5EDD635B" Ref="C?" Part="1" 586 | AR Path="/5EC61D1E/5EDD635B" Ref="C?" Part="1" 587 | AR Path="/5EC628D0/5EDD635B" Ref="C?" Part="1" 588 | AR Path="/5EC628D8/5EDD635B" Ref="C?" Part="1" 589 | AR Path="/5EC64E5C/5EDD635B" Ref="C?" Part="1" 590 | AR Path="/5EC64E64/5EDD635B" Ref="C?" Part="1" 591 | AR Path="/5EC64E6C/5EDD635B" Ref="C?" Part="1" 592 | AR Path="/5EC64E74/5EDD635B" Ref="C?" Part="1" 593 | AR Path="/5EF5AF13/5EDD635B" Ref="C?" Part="1" 594 | AR Path="/5EF5EABD/5EDD635B" Ref="C?" Part="1" 595 | AR Path="/5EF626C9/5EDD635B" Ref="C?" Part="1" 596 | AR Path="/5EF662C0/5EDD635B" Ref="C?" Part="1" 597 | AR Path="/5EF69F20/5EDD635B" Ref="C?" Part="1" 598 | AR Path="/5EF6DACA/5EDD635B" Ref="C?" Part="1" 599 | AR Path="/5EF71689/5EDD635B" Ref="C?" Part="1" 600 | AR Path="/608FAF92/5EDD635B" Ref="C2" Part="1" 601 | F 0 "C2" H 3178 5885 50 0000 L CNN 602 | F 1 "4u7_X7R_2012M" H 3178 5805 35 0000 L CNN 603 | F 2 "Applidyne_Capacitor:CAPC2012X110N" V 3215 5850 20 0001 C CNN 604 | F 3 "http://www.farnell.com/datasheets/1870456.pdf" V 3240 5850 20 0001 C CNN 605 | F 4 "MULTICOMP" V 3290 5850 20 0001 C CNN "manf" 606 | F 5 "MC0805B475K160CT" V 3315 5850 20 0001 C CNN "manf#" 607 | F 6 "Element14" V 3340 5850 20 0001 C CNN "Supplier" 608 | F 7 "2320854" V 3365 5850 20 0001 C CNN "Supplier Part No" 609 | F 8 "http://au.element14.com/multicomp/mc0805b475k160ct/cap-mlcc-x7r-4-7uf-16v-0805/dp/2320854" V 3390 5850 20 0001 C CNN "Supplier URL" 610 | F 9 "0.252" V 3415 5850 20 0001 C CNN "Supplier Price" 611 | F 10 "10" V 3440 5850 20 0001 C CNN "Supplier Price Break" 612 | 1 3100 5950 613 | 1 0 0 -1 614 | $EndComp 615 | $Comp 616 | L appli_capacitor:4u7_X7R_2012M C? 617 | U 1 1 5EDD6368 618 | P 3700 5950 619 | AR Path="/5EC0D2F7/5EDD6368" Ref="C?" Part="1" 620 | AR Path="/5EC61D1E/5EDD6368" Ref="C?" Part="1" 621 | AR Path="/5EC628D0/5EDD6368" Ref="C?" Part="1" 622 | AR Path="/5EC628D8/5EDD6368" Ref="C?" Part="1" 623 | AR Path="/5EC64E5C/5EDD6368" Ref="C?" Part="1" 624 | AR Path="/5EC64E64/5EDD6368" Ref="C?" Part="1" 625 | AR Path="/5EC64E6C/5EDD6368" Ref="C?" Part="1" 626 | AR Path="/5EC64E74/5EDD6368" Ref="C?" Part="1" 627 | AR Path="/5EF5AF13/5EDD6368" Ref="C?" Part="1" 628 | AR Path="/5EF5EABD/5EDD6368" Ref="C?" Part="1" 629 | AR Path="/5EF626C9/5EDD6368" Ref="C?" Part="1" 630 | AR Path="/5EF662C0/5EDD6368" Ref="C?" Part="1" 631 | AR Path="/5EF69F20/5EDD6368" Ref="C?" Part="1" 632 | AR Path="/5EF6DACA/5EDD6368" Ref="C?" Part="1" 633 | AR Path="/5EF71689/5EDD6368" Ref="C?" Part="1" 634 | AR Path="/608FAF92/5EDD6368" Ref="C47" Part="1" 635 | F 0 "C47" H 3778 5885 50 0000 L CNN 636 | F 1 "4u7_X7R_2012M" H 3778 5805 35 0000 L CNN 637 | F 2 "Applidyne_Capacitor:CAPC2012X110N" V 3815 5850 20 0001 C CNN 638 | F 3 "http://www.farnell.com/datasheets/1870456.pdf" V 3840 5850 20 0001 C CNN 639 | F 4 "MULTICOMP" V 3890 5850 20 0001 C CNN "manf" 640 | F 5 "MC0805B475K160CT" V 3915 5850 20 0001 C CNN "manf#" 641 | F 6 "Element14" V 3940 5850 20 0001 C CNN "Supplier" 642 | F 7 "2320854" V 3965 5850 20 0001 C CNN "Supplier Part No" 643 | F 8 "http://au.element14.com/multicomp/mc0805b475k160ct/cap-mlcc-x7r-4-7uf-16v-0805/dp/2320854" V 3990 5850 20 0001 C CNN "Supplier URL" 644 | F 9 "0.252" V 4015 5850 20 0001 C CNN "Supplier Price" 645 | F 10 "10" V 4040 5850 20 0001 C CNN "Supplier Price Break" 646 | 1 3700 5950 647 | 1 0 0 -1 648 | $EndComp 649 | $Comp 650 | L appli_power:GND #PWR02 651 | U 1 1 5EDDEC7D 652 | P 3700 6300 653 | F 0 "#PWR02" H 3700 6050 50 0001 C CNN 654 | F 1 "GND" H 3705 6127 50 0000 C CNN 655 | F 2 "" H 3700 6300 50 0001 C CNN 656 | F 3 "" H 3700 6300 50 0001 C CNN 657 | 1 3700 6300 658 | 1 0 0 -1 659 | $EndComp 660 | $Comp 661 | L appli_power:GND #PWR01 662 | U 1 1 5EDDECBD 663 | P 3100 6300 664 | F 0 "#PWR01" H 3100 6050 50 0001 C CNN 665 | F 1 "GND" H 3105 6127 50 0000 C CNN 666 | F 2 "" H 3100 6300 50 0001 C CNN 667 | F 3 "" H 3100 6300 50 0001 C CNN 668 | 1 3100 6300 669 | 1 0 0 -1 670 | $EndComp 671 | $Comp 672 | L appli_power:GND #PWR08 673 | U 1 1 5EDDEFD1 674 | P 5150 6300 675 | F 0 "#PWR08" H 5150 6050 50 0001 C CNN 676 | F 1 "GND" H 5155 6127 50 0000 C CNN 677 | F 2 "" H 5150 6300 50 0001 C CNN 678 | F 3 "" H 5150 6300 50 0001 C CNN 679 | 1 5150 6300 680 | 1 0 0 -1 681 | $EndComp 682 | $Comp 683 | L appli_power:GND #PWR0174 684 | U 1 1 5EDDF35C 685 | P 5750 6300 686 | F 0 "#PWR0174" H 5750 6050 50 0001 C CNN 687 | F 1 "GND" H 5755 6127 50 0000 C CNN 688 | F 2 "" H 5750 6300 50 0001 C CNN 689 | F 3 "" H 5750 6300 50 0001 C CNN 690 | 1 5750 6300 691 | 1 0 0 -1 692 | $EndComp 693 | Wire Wire Line 694 | 5750 6300 5750 6150 695 | Wire Wire Line 696 | 5150 6150 5150 6300 697 | Wire Wire Line 698 | 3700 6300 3700 6150 699 | Wire Wire Line 700 | 3100 6150 3100 6300 701 | Wire Wire Line 702 | 3100 5950 3100 5700 703 | Connection ~ 3100 5700 704 | Wire Wire Line 705 | 3700 5950 3700 5700 706 | Connection ~ 3700 5700 707 | Wire Wire Line 708 | 3700 5700 4000 5700 709 | Wire Wire Line 710 | 5150 5950 5150 5700 711 | Connection ~ 5150 5700 712 | Wire Wire Line 713 | 5150 5700 5750 5700 714 | Wire Wire Line 715 | 5750 5950 5750 5700 716 | Connection ~ 5750 5700 717 | Wire Wire Line 718 | 5750 5700 6250 5700 719 | Text Notes 3900 5200 0 50 ~ 0 720 | Powers the USB mux, I2C IO expanders 721 | $Comp 722 | L appli_capacitor:100u_ELEC_35V_660X580M C63 723 | U 1 1 5F1CD07C 724 | P 2750 1850 725 | F 0 "C63" H 2828 1785 50 0000 L CNN 726 | F 1 "100u_ELEC_35V_660X580M" H 2828 1705 35 0000 L CNN 727 | F 2 "Applidyne_Capacitor:CAPAE660X580DD180L260N" V 2865 1750 20 0001 C CNN 728 | F 3 "http://www.farnell.com/datasheets/1790597.pdf" V 2890 1750 20 0001 C CNN 729 | F 4 "PANASONIC" V 2940 1750 20 0001 C CNN "manf" 730 | F 5 "EEEFT1V101AP" V 2965 1750 20 0001 C CNN "manf#" 731 | F 6 "Element14" V 2990 1750 20 0001 C CNN "Supplier" 732 | F 7 "1868417" V 3015 1750 20 0001 C CNN "Supplier Part No" 733 | F 8 "http://au.element14.com/panasonic-electronic-components/eeeft1v101ap/cap-alu-elec-100uf-35v-smd/dp/1868417" V 3040 1750 20 0001 C CNN "Supplier URL" 734 | F 9 "1.02" V 3065 1750 20 0001 C CNN "Supplier Price" 735 | F 10 "1" V 3090 1750 20 0001 C CNN "Supplier Price Break" 736 | 1 2750 1850 737 | 1 0 0 -1 738 | $EndComp 739 | $Comp 740 | L appli_capacitor:100u_ELEC_35V_660X580M C62 741 | U 1 1 5F1CEF22 742 | P 2350 1850 743 | F 0 "C62" H 2428 1750 50 0000 L CNN 744 | F 1 "100u_ELEC_35V_660X580M" H 2428 1705 35 0001 L CNN 745 | F 2 "Applidyne_Capacitor:CAPAE660X580DD180L260N" V 2465 1750 20 0001 C CNN 746 | F 3 "http://www.farnell.com/datasheets/1790597.pdf" V 2490 1750 20 0001 C CNN 747 | F 4 "PANASONIC" V 2540 1750 20 0001 C CNN "manf" 748 | F 5 "EEEFT1V101AP" V 2565 1750 20 0001 C CNN "manf#" 749 | F 6 "Element14" V 2590 1750 20 0001 C CNN "Supplier" 750 | F 7 "1868417" V 2615 1750 20 0001 C CNN "Supplier Part No" 751 | F 8 "http://au.element14.com/panasonic-electronic-components/eeeft1v101ap/cap-alu-elec-100uf-35v-smd/dp/1868417" V 2640 1750 20 0001 C CNN "Supplier URL" 752 | F 9 "1.02" V 2665 1750 20 0001 C CNN "Supplier Price" 753 | F 10 "1" V 2690 1750 20 0001 C CNN "Supplier Price Break" 754 | 1 2350 1850 755 | 1 0 0 -1 756 | $EndComp 757 | $EndSCHEMATC 758 | -------------------------------------------------------------------------------- /images/pcb-annotated.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/electricui/electricui-arena/4615f1ceb347eb59eabb07f236982c38428f131a/images/pcb-annotated.jpg -------------------------------------------------------------------------------- /scripts/board_provision.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | BOARD_URL="http://arena.local" 4 | 5 | echo "Configuring board name..." 6 | curl -X POST -d name=Epoch $BOARD_URL/config 7 | 8 | echo "Configuring adaptor names..." 9 | curl -X POST -d a=ft232 $BOARD_URL/adapter 10 | curl -X POST -d b=cp2012 $BOARD_URL/adapter 11 | # curl -X POST -d c=aaa $BOARD_URL/adapter 12 | # curl -X POST -d d=aaa $BOARD_URL/adapter 13 | curl -X POST -d e=hl340 $BOARD_URL/adapter 14 | curl -X POST -d f=pl2303 $BOARD_URL/adapter 15 | # curl -X POST -d g=aaa $BOARD_URL/adapter 16 | # curl -X POST -d h=aaa $BOARD_URL/adapter 17 | 18 | echo "Configuring target device names..." 19 | curl -X POST -d 1=riscv $BOARD_URL/target 20 | curl -X POST -d 2=apollo3 $BOARD_URL/target 21 | curl -X POST -d 3=esp32 $BOARD_URL/target 22 | curl -X POST -d 4=teensy $BOARD_URL/target 23 | curl -X POST -d 5=stm32 $BOARD_URL/target 24 | curl -X POST -d 6=nrf52 $BOARD_URL/target 25 | curl -X POST -d 7=samd21 $BOARD_URL/target 26 | curl -X POST -d 8=avr $BOARD_URL/target 27 | 28 | echo "Done. Reboot hardware to ensure changes successfully saved!" 29 | 30 | exit -------------------------------------------------------------------------------- /scripts/probe_adapters.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | BOARD_URL="http://arena.local" 4 | 5 | diff_port () { 6 | echo "Checking adapter: " 7 | curl -X POST $BOARD_URL/adapter -d $1 8 | sleep 0.5 9 | adapter=$(lsusb) 10 | diff <(echo "$reference" ) <(echo "$adapter") | grep -v "^---" | grep -v "^[0-9c0-9]" 11 | } 12 | 13 | 14 | echo "Baseline USB scan..." 15 | curl -X POST $BOARD_URL/adapter -d h 16 | sleep 0.5 17 | reference=$(lsusb) 18 | 19 | # Test each port for a different lsusb result 20 | diff_port "a" 21 | diff_port "b" 22 | diff_port "c" 23 | diff_port "d" 24 | diff_port "e" 25 | diff_port "f" 26 | diff_port "g" 27 | diff_port "h" 28 | 29 | echo "Finished!" 30 | 31 | exit --------------------------------------------------------------------------------