├── Production ├── boot_app0.bin ├── esp32_blank.ino.bin ├── Receiver │ ├── boot_app0.bin │ ├── bootloader_qio_80m.bin │ ├── ESP32_Lora_Receiver_sketch.ino.bin │ ├── ESP32_Lora_Receiver_sketch.ino.partitions.bin │ ├── esp32_lora_receiver.bat │ └── ESP32_Lora_Receiver_sketch │ │ └── ESP32_Lora_Receiver_sketch.ino ├── bootloader_qio_80m.bin ├── ESP32_Lora_Send_sketch.ino.bin ├── esp32_blank.ino.partitions.bin ├── ESP32_Lora_Send_sketch.ino.partitions.bin ├── esp32_lora_test.bat └── ESP32_Lora_Send_sketch │ └── ESP32_Lora_Send_sketch.ino ├── Documentation ├── RFM95_96_97_98W.pdf └── esp32-wroom-32_datasheet_en.pdf ├── Hardware ├── esp32_lora_gateway-x01.pdf ├── Production │ └── ordering_instructions.txt └── esp32_lora_gateway.lbr ├── Firmware ├── README.md ├── arduino-esp32 │ ├── variants │ │ └── sparkx_esp32_lora │ │ │ └── pins_arduino.h │ └── boards.txt └── ESP-1CH-TTN-Device-ABP │ └── ESP-1CH-TTN-Device-ABP.ino ├── .gitignore └── README.md /Production/boot_app0.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfunX/ESP32_LoRa_1CH_Gateway/HEAD/Production/boot_app0.bin -------------------------------------------------------------------------------- /Production/esp32_blank.ino.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfunX/ESP32_LoRa_1CH_Gateway/HEAD/Production/esp32_blank.ino.bin -------------------------------------------------------------------------------- /Documentation/RFM95_96_97_98W.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfunX/ESP32_LoRa_1CH_Gateway/HEAD/Documentation/RFM95_96_97_98W.pdf -------------------------------------------------------------------------------- /Hardware/esp32_lora_gateway-x01.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfunX/ESP32_LoRa_1CH_Gateway/HEAD/Hardware/esp32_lora_gateway-x01.pdf -------------------------------------------------------------------------------- /Production/Receiver/boot_app0.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfunX/ESP32_LoRa_1CH_Gateway/HEAD/Production/Receiver/boot_app0.bin -------------------------------------------------------------------------------- /Production/bootloader_qio_80m.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfunX/ESP32_LoRa_1CH_Gateway/HEAD/Production/bootloader_qio_80m.bin -------------------------------------------------------------------------------- /Production/ESP32_Lora_Send_sketch.ino.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfunX/ESP32_LoRa_1CH_Gateway/HEAD/Production/ESP32_Lora_Send_sketch.ino.bin -------------------------------------------------------------------------------- /Production/Receiver/bootloader_qio_80m.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfunX/ESP32_LoRa_1CH_Gateway/HEAD/Production/Receiver/bootloader_qio_80m.bin -------------------------------------------------------------------------------- /Production/esp32_blank.ino.partitions.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfunX/ESP32_LoRa_1CH_Gateway/HEAD/Production/esp32_blank.ino.partitions.bin -------------------------------------------------------------------------------- /Documentation/esp32-wroom-32_datasheet_en.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfunX/ESP32_LoRa_1CH_Gateway/HEAD/Documentation/esp32-wroom-32_datasheet_en.pdf -------------------------------------------------------------------------------- /Production/ESP32_Lora_Send_sketch.ino.partitions.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfunX/ESP32_LoRa_1CH_Gateway/HEAD/Production/ESP32_Lora_Send_sketch.ino.partitions.bin -------------------------------------------------------------------------------- /Production/Receiver/ESP32_Lora_Receiver_sketch.ino.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfunX/ESP32_LoRa_1CH_Gateway/HEAD/Production/Receiver/ESP32_Lora_Receiver_sketch.ino.bin -------------------------------------------------------------------------------- /Production/Receiver/ESP32_Lora_Receiver_sketch.ino.partitions.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfunX/ESP32_LoRa_1CH_Gateway/HEAD/Production/Receiver/ESP32_Lora_Receiver_sketch.ino.partitions.bin -------------------------------------------------------------------------------- /Hardware/Production/ordering_instructions.txt: -------------------------------------------------------------------------------- 1 | panel size, 91x115mm 2 | PCB thickness, 1.6mm 3 | number of layers, 2 4 | soldermask color, Black 5 | silkscreen color, White 6 | oz copper, 1oz 7 | finish, HASL lead free 8 | stencils, top+bottom 9 | pcs per panel, 6 10 | -------------------------------------------------------------------------------- /Firmware/README.md: -------------------------------------------------------------------------------- 1 | Software directory contents 2 | =========================== 3 | 4 | * **ESP-1CH-TTN-Device-ABP** -- Arduino example sketch implementing a single-channel LoRaWAN device with ABP activation. 5 | * Depends on the [Arduino-LMIC library](https://github.com/mcci-catena/arduino-lmic). 6 | * **arduino-esp32** -- board.txt and pin-variant files to add the SparkX ESP32 LoRa 1-CH Gateway to the ESP32 Arduino core 7 | * Depends on the [Arduino Core for ESP32 WiFi chip](https://github.com/espressif/arduino-esp32) 8 | -------------------------------------------------------------------------------- /Production/Receiver/esp32_lora_receiver.bat: -------------------------------------------------------------------------------- 1 | @set ARDUINO_SKETCHBOOK=C:\Users\jim.lindblom\Dropbox\SparkFun\Arduino 2 | @set ESPTOOL=%ARDUINO_SKETCHBOOK%\hardware\espressif\esp32/tools/esptool.exe 3 | @set COM_PORT=COM3 4 | 5 | %ESPTOOL% --chip esp32 --port %COM_PORT% --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xe000 boot_app0.bin 0x1000 bootloader_qio_80m.bin 0x10000 ESP32_Lora_Receiver_sketch.ino.bin 0x8000 ESP32_Lora_Receiver_sketch.ino.partitions.bin 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore list for Eagle, a PCB layout tool 2 | 3 | # Backup files 4 | *.s#? 5 | *.b#? 6 | *.l#? 7 | *.b$? 8 | *.s$? 9 | *.l$? 10 | 11 | # Eagle project file 12 | # It contains a serial number and references to the file structure 13 | # on your computer. 14 | # comment the following line if you want to have your project file included. 15 | eagle.epf 16 | 17 | # Autorouter files 18 | *.pro 19 | *.job 20 | 21 | # CAM files 22 | *.$$$ 23 | *.cmp 24 | *.ly2 25 | *.l15 26 | *.sol 27 | *.plc 28 | *.stc 29 | *.sts 30 | *.crc 31 | *.crs 32 | 33 | *.dri 34 | *.drl 35 | *.gpi 36 | *.pls 37 | *.ger 38 | *.gpi 39 | *.xln 40 | 41 | *.drd 42 | *.drd.* 43 | 44 | *.s#* 45 | *.b#* 46 | 47 | *.info 48 | 49 | *.eps 50 | 51 | # file locks introduced since 7.x 52 | *.lck 53 | -------------------------------------------------------------------------------- /Production/esp32_lora_test.bat: -------------------------------------------------------------------------------- 1 | @set ARDUINO_SKETCHBOOK=C:\Users\jim.lindblom\Dropbox\SparkFun\Arduino 2 | @set ESPTOOL=%ARDUINO_SKETCHBOOK%\hardware\espressif\esp32/tools/esptool.exe 3 | @set COM_PORT=COM18 4 | 5 | :flash_begin 6 | 7 | @set /p DUMMY=Press ENTER to flash LoRa Test 8 | 9 | %ESPTOOL% --chip esp32 --port %COM_PORT% --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xe000 boot_app0.bin 0x1000 bootloader_qio_80m.bin 0x10000 ESP32_Lora_Send_sketch.ino.bin 0x8000 ESP32_Lora_Send_sketch.ino.partitions.bin 10 | 11 | @set /p DUMMY=Press ENTER to flash BLANK 12 | 13 | %ESPTOOL% --chip esp32 --port %COM_PORT% --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xe000 boot_app0.bin 0x1000 bootloader_qio_80m.bin 0x10000 esp32_blank.ino.bin 0x8000 esp32_blank.ino.partitions.bin 14 | 15 | goto flash_begin -------------------------------------------------------------------------------- /Firmware/arduino-esp32/variants/sparkx_esp32_lora/pins_arduino.h: -------------------------------------------------------------------------------- 1 | #ifndef Pins_Arduino_h 2 | #define Pins_Arduino_h 3 | 4 | #include 5 | 6 | #define EXTERNAL_NUM_INTERRUPTS 16 7 | #define NUM_DIGITAL_PINS 40 8 | #define NUM_ANALOG_INPUTS 16 9 | 10 | #define analogInputToDigitalPin(p) (((p)<20)?(esp32_adc2gpio[(p)]):-1) 11 | #define digitalPinToInterrupt(p) (((p)<40)?(p):-1) 12 | #define digitalPinHasPWM(p) (p < 34) 13 | 14 | static const int LED_BUILTIN = 17; 15 | 16 | static const uint8_t TX = 1; 17 | static const uint8_t RX = 3; 18 | 19 | static const uint8_t SDA = 21; 20 | static const uint8_t SCL = 22; 21 | 22 | static const uint8_t SS = 16; 23 | static const uint8_t MOSI = 13; 24 | static const uint8_t MISO = 12; 25 | static const uint8_t SCK = 14; 26 | 27 | static const uint8_t A0 = 36; 28 | static const uint8_t A3 = 39; 29 | static const uint8_t A4 = 32; 30 | static const uint8_t A5 = 33; 31 | static const uint8_t A6 = 34; 32 | static const uint8_t A7 = 35; 33 | static const uint8_t A10 = 4; 34 | static const uint8_t A11 = 0; 35 | static const uint8_t A12 = 2; 36 | static const uint8_t A13 = 15; 37 | static const uint8_t A14 = 13; 38 | static const uint8_t A15 = 12; 39 | static const uint8_t A16 = 14; 40 | static const uint8_t A17 = 27; 41 | static const uint8_t A18 = 25; 42 | static const uint8_t A19 = 26; 43 | 44 | static const uint8_t T0 = 4; 45 | static const uint8_t T1 = 0; 46 | static const uint8_t T2 = 2; 47 | static const uint8_t T3 = 15; 48 | static const uint8_t T4 = 13; 49 | static const uint8_t T5 = 12; 50 | static const uint8_t T6 = 14; 51 | static const uint8_t T7 = 27; 52 | static const uint8_t T8 = 33; 53 | static const uint8_t T9 = 32; 54 | 55 | static const uint8_t DAC1 = 25; 56 | static const uint8_t DAC2 = 26; 57 | 58 | #endif /* Pins_Arduino_h */ 59 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | SparkX ESP32 LoRa Single-Channel Gateway 2 | ======================================== 3 | 4 | This repo is the original SparkX version. Please see the [SparkFun repo](https://github.com/sparkfun/ESP32_LoRa_1Ch_Gateway/) for the latest and greatest. 5 | 6 | [![SparkX ESP32 LoRa Single-Channel Gateway](https://cdn.sparkfun.com//assets/parts/1/3/1/7/6/14893-ESP32_LoRa_1-Channel_Gateway-01.jpg)](https://www.sparkfun.com/products/14893) 7 | 8 | [*SparkX ESP32 LoRa Single-Channel Gateway (SPX-14893)*](https://www.sparkfun.com/products/14893) 9 | 10 | The SparkX ESP32 LoRa Single-Channel Gateway combines an ESP32 -- a programmable microcontroller featuring both WiFi and Bluetooth radios -- with an RFM95W LoRa transceiver to create a single-channel LoRa gateway. It's a perfect, low-cost tool for monitoring a dozen-or-so LoRa devices, and relaying their messages up to the cloud. 11 | 12 | Complete with a [Qwiic connector](https://www.sparkfun.com/qwiic) and a breadboard-compatible array of ESP32 pin-breakouts, this board can can also serve as a general-purpose ESP32/RFM95W development platform. So, instead of using it as a LoRaWAN gateway, you can turn it into a **LoRa device**, and use the powerful ESP32 microcontroller to monitor sensors, host a web server, run a display or more. 13 | 14 | These boards are a great way to begin dipping your toes into the world of LoRa and LoRaWAN. Not only can they be programmed as versatile single-channel gateway, but they can also be used as a LoRa device, or a general ESP32/RFM95W development board. 15 | 16 | For more information, check out our [ESP32 LoRa 1-CH Gateway, LoRaWAN, and the Things Network](https://learn.sparkfun.com/tutorials/esp32-lora-1-ch-gateway-lorawan-and-the-things-network) tutorial, which explains how to set the board up, and get it connected to The Things Network. 17 | 18 | SparkFun labored with love to create this code. Feel like supporting open source hardware? 19 | Buy a [breakout board](https://www.sparkfun.com/products/14893) from SparkFun! 20 | 21 | Repository Contents 22 | ------------------- 23 | 24 | * **/Documents** - Datasheets 25 | * **/Hardware** - Eagle design files (.brd, .sch) 26 | * **/Firmware** - Example code and esp32-Arduino board files 27 | 28 | License Information 29 | ------------------- 30 | 31 | This product is _**open source**_! 32 | 33 | If you have any questions or concerns on licensing, please contact techsupport@sparkfun.com. 34 | 35 | Please use, reuse, and modify these files as you see fit. Please maintain attribution to SparkFun Electronics and release any derivative under the same license. 36 | 37 | Distributed as-is; no warranty is given. 38 | 39 | - Your friends at SparkFun. -------------------------------------------------------------------------------- /Firmware/arduino-esp32/boards.txt: -------------------------------------------------------------------------------- 1 | # This should be added to the bottom of your hardware/espressif/esp32/boards.txt file 2 | ############################################################## 3 | 4 | sparkx_esp32_lora.name=SparkX ESP32 LoRa Gateway 5 | 6 | sparkx_esp32_lora.upload.tool=esptool 7 | sparkx_esp32_lora.upload.maximum_size=1310720 8 | sparkx_esp32_lora.upload.maximum_data_size=294912 9 | sparkx_esp32_lora.upload.wait_for_upload_port=true 10 | 11 | sparkx_esp32_lora.serial.disableDTR=true 12 | sparkx_esp32_lora.serial.disableRTS=true 13 | 14 | sparkx_esp32_lora.build.mcu=esp32 15 | sparkx_esp32_lora.build.core=esp32 16 | sparkx_esp32_lora.build.variant=sparkx_esp32_lora 17 | sparkx_esp32_lora.build.board=ESP32_DEV 18 | 19 | sparkx_esp32_lora.build.f_cpu=240000000L 20 | sparkx_esp32_lora.build.flash_size=4MB 21 | sparkx_esp32_lora.build.flash_freq=40m 22 | sparkx_esp32_lora.build.flash_mode=dio 23 | sparkx_esp32_lora.build.boot=dio 24 | sparkx_esp32_lora.build.partitions=default 25 | 26 | sparkx_esp32_lora.menu.PartitionScheme.default=Default 27 | sparkx_esp32_lora.menu.PartitionScheme.default.build.partitions=default 28 | sparkx_esp32_lora.menu.PartitionScheme.minimal=Minimal (2MB FLASH) 29 | sparkx_esp32_lora.menu.PartitionScheme.minimal.build.partitions=minimal 30 | sparkx_esp32_lora.menu.PartitionScheme.no_ota=No OTA (Large APP) 31 | sparkx_esp32_lora.menu.PartitionScheme.no_ota.build.partitions=no_ota 32 | sparkx_esp32_lora.menu.PartitionScheme.no_ota.upload.maximum_size=2097152 33 | sparkx_esp32_lora.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA) 34 | sparkx_esp32_lora.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs 35 | sparkx_esp32_lora.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 36 | 37 | sparkx_esp32_lora.menu.FlashMode.qio=QIO 38 | sparkx_esp32_lora.menu.FlashMode.qio.build.flash_mode=dio 39 | sparkx_esp32_lora.menu.FlashMode.qio.build.boot=qio 40 | sparkx_esp32_lora.menu.FlashMode.dio=DIO 41 | sparkx_esp32_lora.menu.FlashMode.dio.build.flash_mode=dio 42 | sparkx_esp32_lora.menu.FlashMode.dio.build.boot=dio 43 | sparkx_esp32_lora.menu.FlashMode.qout=QOUT 44 | sparkx_esp32_lora.menu.FlashMode.qout.build.flash_mode=dout 45 | sparkx_esp32_lora.menu.FlashMode.qout.build.boot=qout 46 | sparkx_esp32_lora.menu.FlashMode.dout=DOUT 47 | sparkx_esp32_lora.menu.FlashMode.dout.build.flash_mode=dout 48 | sparkx_esp32_lora.menu.FlashMode.dout.build.boot=dout 49 | 50 | sparkx_esp32_lora.menu.FlashFreq.80=80MHz 51 | sparkx_esp32_lora.menu.FlashFreq.80.build.flash_freq=80m 52 | sparkx_esp32_lora.menu.FlashFreq.40=40MHz 53 | sparkx_esp32_lora.menu.FlashFreq.40.build.flash_freq=40m 54 | 55 | sparkx_esp32_lora.menu.FlashSize.4M=4MB (32Mb) 56 | sparkx_esp32_lora.menu.FlashSize.4M.build.flash_size=4MB 57 | 58 | sparkx_esp32_lora.menu.UploadSpeed.921600=921600 59 | sparkx_esp32_lora.menu.UploadSpeed.921600.upload.speed=921600 60 | sparkx_esp32_lora.menu.UploadSpeed.115200=115200 61 | sparkx_esp32_lora.menu.UploadSpeed.115200.upload.speed=115200 62 | sparkx_esp32_lora.menu.UploadSpeed.256000.windows=256000 63 | sparkx_esp32_lora.menu.UploadSpeed.256000.upload.speed=256000 64 | sparkx_esp32_lora.menu.UploadSpeed.230400.windows.upload.speed=256000 65 | sparkx_esp32_lora.menu.UploadSpeed.230400=230400 66 | sparkx_esp32_lora.menu.UploadSpeed.230400.upload.speed=230400 67 | sparkx_esp32_lora.menu.UploadSpeed.460800.linux=460800 68 | sparkx_esp32_lora.menu.UploadSpeed.460800.macosx=460800 69 | sparkx_esp32_lora.menu.UploadSpeed.460800.upload.speed=460800 70 | sparkx_esp32_lora.menu.UploadSpeed.512000.windows=512000 71 | sparkx_esp32_lora.menu.UploadSpeed.512000.upload.speed=512000 72 | 73 | sparkx_esp32_lora.menu.DebugLevel.none=None 74 | sparkx_esp32_lora.menu.DebugLevel.none.build.code_debug=0 75 | sparkx_esp32_lora.menu.DebugLevel.error=Error 76 | sparkx_esp32_lora.menu.DebugLevel.error.build.code_debug=1 77 | sparkx_esp32_lora.menu.DebugLevel.warn=Warn 78 | sparkx_esp32_lora.menu.DebugLevel.warn.build.code_debug=2 79 | sparkx_esp32_lora.menu.DebugLevel.info=Info 80 | sparkx_esp32_lora.menu.DebugLevel.info.build.code_debug=3 81 | sparkx_esp32_lora.menu.DebugLevel.debug=Debug 82 | sparkx_esp32_lora.menu.DebugLevel.debug.build.code_debug=4 83 | sparkx_esp32_lora.menu.DebugLevel.verbose=Verbose 84 | sparkx_esp32_lora.menu.DebugLevel.verbose.build.code_debug=5 85 | -------------------------------------------------------------------------------- /Production/Receiver/ESP32_Lora_Receiver_sketch/ESP32_Lora_Receiver_sketch.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2015 Matthijs Kooijman 3 | * 4 | * Permission is hereby granted, free of charge, to anyone 5 | * obtaining a copy of this document and accompanying files, 6 | * to do whatever they want with them without any restriction, 7 | * including, but not limited to, copying, modification and redistribution. 8 | * NO WARRANTY OF ANY KIND IS PROVIDED. 9 | * 10 | * This example transmits data on hardcoded channel and receives data 11 | * when not transmitting. Running this sketch on two nodes should allow 12 | * them to communicate. 13 | *******************************************************************************/ 14 | 15 | #include 16 | #include 17 | #include 18 | 19 | #if !defined(DISABLE_INVERT_IQ_ON_RX) 20 | #error This example requires DISABLE_INVERT_IQ_ON_RX to be set. Update \ 21 | config.h in the lmic library to set it. 22 | #endif 23 | 24 | // How often to send a packet. Note that this sketch bypasses the normal 25 | // LMIC duty cycle limiting, so when you change anything in this sketch 26 | // (payload length, frequency, spreading factor), be sure to check if 27 | // this interval should not also be increased. 28 | // See this spreadsheet for an easy airtime and duty cycle calculator: 29 | // https://docs.google.com/spreadsheets/d/1voGAtQAjC1qBmaVuP1ApNKs1ekgUjavHuVQIXyYSvNc 30 | #define TX_INTERVAL 2000 31 | 32 | // Pin mapping 33 | const lmic_pinmap lmic_pins = { 34 | .nss = 16, 35 | .rxtx = LMIC_UNUSED_PIN, 36 | .rst = 27, 37 | .dio = {26, 33, 32}, 38 | }; 39 | 40 | 41 | // These callbacks are only used in over-the-air activation, so they are 42 | // left empty here (we cannot leave them out completely unless 43 | // DISABLE_JOIN is set in config.h, otherwise the linker will complain). 44 | void os_getArtEui (u1_t* buf) { } 45 | void os_getDevEui (u1_t* buf) { } 46 | void os_getDevKey (u1_t* buf) { } 47 | 48 | void onEvent (ev_t ev) { 49 | } 50 | 51 | osjob_t txjob; 52 | osjob_t timeoutjob; 53 | static void tx_func (osjob_t* job); 54 | 55 | // Transmit the given string and call the given function afterwards 56 | void tx(const char *str, osjobcb_t func) { 57 | os_radio(RADIO_RST); // Stop RX first 58 | delay(1); // Wait a bit, without this os_radio below asserts, apparently because the state hasn't changed yet 59 | LMIC.dataLen = 0; 60 | while (*str) 61 | LMIC.frame[LMIC.dataLen++] = *str++; 62 | LMIC.osjob.func = func; 63 | os_radio(RADIO_TX); 64 | Serial.println("TX"); 65 | } 66 | 67 | // Enable rx mode and call func when a packet is received 68 | void rx(osjobcb_t func) { 69 | LMIC.osjob.func = func; 70 | LMIC.rxtime = os_getTime(); // RX _now_ 71 | // Enable "continuous" RX (e.g. without a timeout, still stops after 72 | // receiving a packet) 73 | os_radio(RADIO_RXON); 74 | Serial.println("RX"); 75 | } 76 | 77 | static void rxtimeout_func(osjob_t *job) { 78 | digitalWrite(LED_BUILTIN, LOW); // off 79 | } 80 | 81 | static void rx_func (osjob_t* job) { 82 | // Blink once to confirm reception and then keep the led on 83 | digitalWrite(LED_BUILTIN, LOW); // off 84 | delay(10); 85 | digitalWrite(LED_BUILTIN, HIGH); // on 86 | 87 | // Timeout RX (i.e. update led status) after 3 periods without RX 88 | os_setTimedCallback(&timeoutjob, os_getTime() + ms2osticks(3*TX_INTERVAL), rxtimeout_func); 89 | 90 | // Reschedule TX so that it should not collide with the other side's 91 | // next TX 92 | //os_setTimedCallback(&txjob, os_getTime() + ms2osticks(TX_INTERVAL/2), tx_func); 93 | 94 | Serial.print("Got "); 95 | Serial.print(LMIC.dataLen); 96 | Serial.println(" bytes"); 97 | Serial.write(LMIC.frame, LMIC.dataLen); 98 | Serial.println(); 99 | 100 | // Restart RX 101 | rx(rx_func); 102 | } 103 | 104 | static void txdone_func (osjob_t* job) { 105 | rx(rx_func); 106 | } 107 | 108 | // log text to USART and toggle LED 109 | static void tx_func (osjob_t* job) { 110 | // say hello 111 | tx("Hello, world!", txdone_func); 112 | // reschedule job every TX_INTERVAL (plus a bit of random to prevent 113 | // systematic collisions), unless packets are received, then rx_func 114 | // will reschedule at half this time. 115 | os_setTimedCallback(job, os_getTime() + ms2osticks(TX_INTERVAL + random(500)), tx_func); 116 | } 117 | 118 | // application entry point 119 | void setup() { 120 | Serial.begin(115200); 121 | Serial.println("Starting"); 122 | #ifdef VCC_ENABLE 123 | // For Pinoccio Scout boards 124 | pinMode(VCC_ENABLE, OUTPUT); 125 | digitalWrite(VCC_ENABLE, HIGH); 126 | delay(1000); 127 | #endif 128 | 129 | pinMode(LED_BUILTIN, OUTPUT); 130 | 131 | // initialize runtime env 132 | os_init(); 133 | 134 | // Set up these settings once, and use them for both TX and RX 135 | 136 | #if defined(CFG_eu868) 137 | // Use a frequency in the g3 which allows 10% duty cycling. 138 | LMIC.freq = 869525000; 139 | #elif defined(CFG_us915) 140 | LMIC.freq = 902300000; 141 | #endif 142 | 143 | // Maximum TX power 144 | LMIC.txpow = 27; 145 | // Use a medium spread factor. This can be increased up to SF12 for 146 | // better range, but then the interval should be (significantly) 147 | // lowered to comply with duty cycle limits as well. 148 | LMIC.datarate = DR_SF9; 149 | // This sets CR 4/5, BW125 (except for DR_SF7B, which uses BW250) 150 | LMIC.rps = updr2rps(LMIC.datarate); 151 | 152 | Serial.println("Started"); 153 | Serial.flush(); 154 | 155 | // setup initial job 156 | //os_setCallback(&txjob, tx_func); 157 | rx(rx_func); 158 | } 159 | 160 | void loop() { 161 | // execute scheduled jobs and events 162 | os_runloop_once(); 163 | } 164 | -------------------------------------------------------------------------------- /Production/ESP32_Lora_Send_sketch/ESP32_Lora_Send_sketch.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2015 Matthijs Kooijman 3 | * 4 | * Permission is hereby granted, free of charge, to anyone 5 | * obtaining a copy of this document and accompanying files, 6 | * to do whatever they want with them without any restriction, 7 | * including, but not limited to, copying, modification and redistribution. 8 | * NO WARRANTY OF ANY KIND IS PROVIDED. 9 | * 10 | * This example transmits data on hardcoded channel and receives data 11 | * when not transmitting. Running this sketch on two nodes should allow 12 | * them to communicate. 13 | *******************************************************************************/ 14 | 15 | #include 16 | #include 17 | #include 18 | 19 | #if !defined(DISABLE_INVERT_IQ_ON_RX) 20 | #error This example requires DISABLE_INVERT_IQ_ON_RX to be set. Update \ 21 | config.h in the lmic library to set it. 22 | #endif 23 | 24 | // How often to send a packet. Note that this sketch bypasses the normal 25 | // LMIC duty cycle limiting, so when you change anything in this sketch 26 | // (payload length, frequency, spreading factor), be sure to check if 27 | // this interval should not also be increased. 28 | // See this spreadsheet for an easy airtime and duty cycle calculator: 29 | // https://docs.google.com/spreadsheets/d/1voGAtQAjC1qBmaVuP1ApNKs1ekgUjavHuVQIXyYSvNc 30 | #define TX_INTERVAL 2000 31 | 32 | // Pin mapping 33 | const lmic_pinmap lmic_pins = { 34 | .nss = 16, 35 | .rxtx = LMIC_UNUSED_PIN, 36 | .rst = 27, 37 | .dio = {26, 33, 32}, 38 | }; 39 | 40 | 41 | // These callbacks are only used in over-the-air activation, so they are 42 | // left empty here (we cannot leave them out completely unless 43 | // DISABLE_JOIN is set in config.h, otherwise the linker will complain). 44 | void os_getArtEui (u1_t* buf) { } 45 | void os_getDevEui (u1_t* buf) { } 46 | void os_getDevKey (u1_t* buf) { } 47 | 48 | void onEvent (ev_t ev) { 49 | } 50 | 51 | osjob_t txjob; 52 | osjob_t timeoutjob; 53 | static void tx_func (osjob_t* job); 54 | 55 | // Transmit the given string and call the given function afterwards 56 | void tx(const char *str, osjobcb_t func) { 57 | os_radio(RADIO_RST); // Stop RX first 58 | delay(1); // Wait a bit, without this os_radio below asserts, apparently because the state hasn't changed yet 59 | LMIC.dataLen = 0; 60 | while (*str) 61 | LMIC.frame[LMIC.dataLen++] = *str++; 62 | LMIC.osjob.func = func; 63 | os_radio(RADIO_TX); 64 | Serial.println("TX"); 65 | } 66 | 67 | // Enable rx mode and call func when a packet is received 68 | void rx(osjobcb_t func) { 69 | LMIC.osjob.func = func; 70 | LMIC.rxtime = os_getTime(); // RX _now_ 71 | // Enable "continuous" RX (e.g. without a timeout, still stops after 72 | // receiving a packet) 73 | os_radio(RADIO_RXON); 74 | Serial.println("RX"); 75 | } 76 | 77 | static void rxtimeout_func(osjob_t *job) { 78 | digitalWrite(LED_BUILTIN, LOW); // off 79 | } 80 | 81 | static void rx_func (osjob_t* job) { 82 | // Blink once to confirm reception and then keep the led on 83 | digitalWrite(LED_BUILTIN, LOW); // off 84 | delay(10); 85 | digitalWrite(LED_BUILTIN, HIGH); // on 86 | 87 | // Timeout RX (i.e. update led status) after 3 periods without RX 88 | os_setTimedCallback(&timeoutjob, os_getTime() + ms2osticks(3*TX_INTERVAL), rxtimeout_func); 89 | 90 | // Reschedule TX so that it should not collide with the other side's 91 | // next TX 92 | os_setTimedCallback(&txjob, os_getTime() + ms2osticks(TX_INTERVAL/2), tx_func); 93 | 94 | Serial.print("Got "); 95 | Serial.print(LMIC.dataLen); 96 | Serial.println(" bytes"); 97 | Serial.write(LMIC.frame, LMIC.dataLen); 98 | Serial.println(); 99 | 100 | // Restart RX 101 | rx(rx_func); 102 | } 103 | 104 | static void txdone_func (osjob_t* job) { 105 | //rx(rx_func); 106 | } 107 | 108 | // log text to USART and toggle LED 109 | static void tx_func (osjob_t* job) { 110 | // say hello 111 | tx("Hello, world!", txdone_func); 112 | // reschedule job every TX_INTERVAL (plus a bit of random to prevent 113 | // systematic collisions), unless packets are received, then rx_func 114 | // will reschedule at half this time. 115 | os_setTimedCallback(job, os_getTime() + ms2osticks(TX_INTERVAL + random(500)), tx_func); 116 | } 117 | 118 | // application entry point 119 | void setup() { 120 | Serial.begin(115200); 121 | Serial.println("Starting"); 122 | #ifdef VCC_ENABLE 123 | // For Pinoccio Scout boards 124 | pinMode(VCC_ENABLE, OUTPUT); 125 | digitalWrite(VCC_ENABLE, HIGH); 126 | delay(1000); 127 | #endif 128 | 129 | pinMode(LED_BUILTIN, OUTPUT); 130 | 131 | // initialize runtime env 132 | os_init(); 133 | 134 | // Set up these settings once, and use them for both TX and RX 135 | 136 | #if defined(CFG_eu868) 137 | // Use a frequency in the g3 which allows 10% duty cycling. 138 | LMIC.freq = 869525000; 139 | #elif defined(CFG_us915) 140 | LMIC.freq = 902300000; 141 | #endif 142 | 143 | // Maximum TX power 144 | LMIC.txpow = 27; 145 | // Use a medium spread factor. This can be increased up to SF12 for 146 | // better range, but then the interval should be (significantly) 147 | // lowered to comply with duty cycle limits as well. 148 | LMIC.datarate = DR_SF9; 149 | // This sets CR 4/5, BW125 (except for DR_SF7B, which uses BW250) 150 | LMIC.rps = updr2rps(LMIC.datarate); 151 | 152 | Serial.println("Started"); 153 | Serial.flush(); 154 | 155 | // setup initial job 156 | //os_setCallback(&txjob, tx_func); 157 | pinMode(0, INPUT_PULLUP); 158 | } 159 | 160 | void loop() { 161 | // execute scheduled jobs and events 162 | os_runloop_once(); 163 | if (digitalRead(0) == LOW) { 164 | while(digitalRead(0) == LOW) ; 165 | tx("Hello, world!", txdone_func); 166 | } 167 | } 168 | -------------------------------------------------------------------------------- /Firmware/ESP-1CH-TTN-Device-ABP/ESP-1CH-TTN-Device-ABP.ino: -------------------------------------------------------------------------------- 1 | /* 2 | Single-Channel TTN ABP Device 3 | By: Jim Lindblom 4 | SparkFun Electronics 5 | Date: July 31, 2018 6 | License: This code is public domain but you buy me a beer if you use this and we meet someday (Beerware license). 7 | Feel like supporting our work? Buy a board from SparkFun! 8 | 9 | https://sparkle.sparkfun.com/sparkle/storefront_products/14893 10 | 11 | This example demonstrates how to use the SparkX ESP32 LoRa 1-CH Gateway as a LoRaWAN device. 12 | It is configured to transmit on a single channel -- making it compatible with the same board 13 | set up as a gateway. 14 | 15 | Library Dependencies: 16 | arduino-lmic: https://github.com/mcci-catena/arduino-lmic 17 | 18 | To use the example, ensure that you've first configured the arduino-lmic library as required. 19 | Then create an application and device on the Things Network. Configure it for ABP activation. 20 | Then copy the NETWORK SESSION KEY, APP SESSION KEY, and DEVICE ADDRESS into the global variables 21 | towards the top of this sketch. 22 | 23 | Once uploaded, press the "0" button to trigger a LoRa send. The device will send "Hello, World" 24 | on the set frequency, hoping your gateway hears it. 25 | 26 | This example is based on ttn-abp by: Thomas Telkamp and Matthijs Kooijman 27 | */ 28 | 29 | // Include the arduino-lmic library: 30 | #include 31 | #include 32 | #include 33 | 34 | // Below sets the trigger for sending a new message to a gateway. 35 | // Either or both can be enabled (in which case pressing the button will restart the timer) 36 | #define SEND_BY_BUTTON 1 // Send a message when button "0" is pressed 37 | #define SEND_BY_TIMER 1 // Send a message every TX_INTERVAL seconds 38 | 39 | // LoRaWAN NwkSKey, network session key 40 | // This is the default Semtech key, which is used by the early prototype TTN 41 | // network. 42 | static const PROGMEM u1_t NWKSKEY[16] = { PASTE_NWKSKEY_KEY_HERE }; 43 | 44 | // LoRaWAN AppSKey, application session key 45 | // This is the default Semtech key, which is used by the early prototype TTN 46 | // network. 47 | static const u1_t PROGMEM APPSKEY[16] = { PASTE_APPSKEY_KEY_HERE }; 48 | 49 | // LoRaWAN end-device address (DevAddr) 50 | static const u4_t DEVADDR = 0xPASTE_DEV_ADDR_HERE; 51 | 52 | // These callbacks are only used in over-the-air activation, so they are 53 | // left empty here (we cannot leave them out completely unless 54 | // DISABLE_JOIN is set in config.h, otherwise the linker will complain). 55 | void os_getArtEui (u1_t* buf) { } 56 | void os_getDevEui (u1_t* buf) { } 57 | void os_getDevKey (u1_t* buf) { } 58 | 59 | static uint8_t mydata[] = "Hello, world!"; 60 | static osjob_t sendjob; 61 | 62 | // Pin mapping for the SparkX ESP32 LoRa 1-CH Gateway 63 | const lmic_pinmap lmic_pins = { 64 | .nss = 16, 65 | .rxtx = LMIC_UNUSED_PIN, 66 | .rst = 5, 67 | .dio = {26, 33, 32}, 68 | }; 69 | 70 | // If send-by-timer is enabled, define a tx interval 71 | #ifdef SEND_BY_TIMER 72 | #define TX_INTERVAL 60 // Message send interval in seconds 73 | #endif 74 | 75 | // State machine event handler 76 | void onEvent (ev_t ev) { 77 | Serial.print(os_getTime()); 78 | Serial.print(": "); 79 | switch (ev) { 80 | case EV_SCAN_TIMEOUT: 81 | Serial.println(F("EV_SCAN_TIMEOUT")); 82 | break; 83 | case EV_BEACON_FOUND: 84 | Serial.println(F("EV_BEACON_FOUND")); 85 | break; 86 | case EV_BEACON_MISSED: 87 | Serial.println(F("EV_BEACON_MISSED")); 88 | break; 89 | case EV_BEACON_TRACKED: 90 | Serial.println(F("EV_BEACON_TRACKED")); 91 | break; 92 | case EV_JOINING: 93 | Serial.println(F("EV_JOINING")); 94 | break; 95 | case EV_JOINED: 96 | Serial.println(F("EV_JOINED")); 97 | break; 98 | case EV_RFU1: 99 | Serial.println(F("EV_RFU1")); 100 | break; 101 | case EV_JOIN_FAILED: 102 | Serial.println(F("EV_JOIN_FAILED")); 103 | break; 104 | case EV_REJOIN_FAILED: 105 | Serial.println(F("EV_REJOIN_FAILED")); 106 | break; 107 | case EV_TXCOMPLETE: 108 | digitalWrite(LED_BUILTIN, LOW); // Turn off LED after send is complete 109 | Serial.println(F("EV_TXCOMPLETE (includes waiting for RX windows)")); 110 | if (LMIC.txrxFlags & TXRX_ACK) 111 | Serial.println(F("Received ack")); 112 | if (LMIC.dataLen) { 113 | Serial.println(F("Received ")); 114 | Serial.println(LMIC.dataLen); 115 | Serial.println(F(" bytes of payload")); 116 | } 117 | #ifdef SEND_BY_TIMER 118 | // Schedule the next transmission 119 | os_setTimedCallback(&sendjob, os_getTime() + sec2osticks(TX_INTERVAL), do_send); 120 | #endif 121 | break; 122 | case EV_LOST_TSYNC: 123 | Serial.println(F("EV_LOST_TSYNC")); 124 | break; 125 | case EV_RESET: 126 | Serial.println(F("EV_RESET")); 127 | break; 128 | case EV_RXCOMPLETE: 129 | // data received in ping slot 130 | Serial.println(F("EV_RXCOMPLETE")); 131 | break; 132 | case EV_LINK_DEAD: 133 | Serial.println(F("EV_LINK_DEAD")); 134 | break; 135 | case EV_LINK_ALIVE: 136 | Serial.println(F("EV_LINK_ALIVE")); 137 | break; 138 | default: 139 | Serial.println(F("Unknown event")); 140 | break; 141 | } 142 | } 143 | 144 | // Transmit data from mydata 145 | void do_send(osjob_t* j) { 146 | // Check if there is not a current TX/RX job running 147 | if (LMIC.opmode & OP_TXRXPEND) { 148 | Serial.println(F("OP_TXRXPEND, not sending")); 149 | } else { 150 | digitalWrite(LED_BUILTIN, HIGH); // Turn on LED while sending 151 | // Prepare upstream data transmission at the next possible time. 152 | LMIC_setTxData2(1, mydata, sizeof(mydata) - 1, 0); 153 | Serial.println(F("Packet queued")); 154 | } 155 | } 156 | 157 | void setup() { 158 | Serial.begin(115200); 159 | 160 | // Set button pin as input 161 | #ifdef SEND_BY_BUTTON 162 | pinMode(0, INPUT); 163 | #endif 164 | // Configure built-in LED -- will illuminate when sending 165 | pinMode(LED_BUILTIN, OUTPUT); 166 | digitalWrite(LED_BUILTIN, LOW); 167 | 168 | // LMIC init 169 | os_init(); 170 | // Reset the MAC state. Session and pending data transfers will be discarded. 171 | LMIC_reset(); 172 | 173 | // Set static session parameters. Instead of dynamically establishing a session 174 | // by joining the network, precomputed session parameters are be provided. 175 | uint8_t appskey[sizeof(APPSKEY)]; 176 | uint8_t nwkskey[sizeof(NWKSKEY)]; 177 | memcpy_P(appskey, APPSKEY, sizeof(APPSKEY)); 178 | memcpy_P(nwkskey, NWKSKEY, sizeof(NWKSKEY)); 179 | LMIC_setSession (0x1, DEVADDR, nwkskey, appskey); 180 | 181 | #if defined(CFG_eu868) // EU channel setup 182 | // Set up the channel used by the Things Network and compatible with 183 | // our gateway. 184 | // Setting up channels should happen after LMIC_setSession, as that 185 | // configures the minimal channel set. 186 | LMIC_setupChannel(0, 868100000, DR_RANGE_MAP(DR_SF12, DR_SF7), BAND_CENTI); // g-band 187 | #elif defined(CFG_us915) // US channel setup 188 | // Instead of using selectSubBand, which will cycle through a sub-band of 8 189 | // channels. We'll configure the device to only use one frequency. 190 | // First disable all sub-bands 191 | for (int b = 0; b < 8; ++b) { 192 | LMIC_disableSubBand(b); 193 | } 194 | // Then enable the channel(s) you want to use 195 | //LMIC_enableChannel(8); // 903.9 MHz 196 | LMIC_enableChannel(17); 197 | #endif 198 | 199 | // Disable link check validation 200 | LMIC_setLinkCheckMode(0); 201 | 202 | // TTN uses SF9 for its RX2 window. 203 | LMIC.dn2Dr = DR_SF9; 204 | 205 | // Set data rate and transmit power for uplink (note: txpow seems to be ignored by the library) 206 | LMIC_setDrTxpow(DR_SF7, 14); 207 | 208 | // Start job -- Transmit a message on begin 209 | do_send(&sendjob); 210 | } 211 | 212 | void loop() { 213 | os_runloop_once(); 214 | #ifdef SEND_BY_BUTTON 215 | if (digitalRead(0) == LOW) { 216 | while (digitalRead(0) == LOW) ; 217 | do_send(&sendjob); 218 | } 219 | #endif 220 | } 221 | -------------------------------------------------------------------------------- /Hardware/esp32_lora_gateway.lbr: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 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 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | Generated from <b>esp32_lora_gateway.sch</b><p> 149 | by exp-lbrs.ulp 150 | 151 | 152 | <h3>Creative Commons License Template</h3> 153 | <p>CC BY-SA 4.0 License with <a href="https://creativecommons.org/licenses/by-sa/4.0/">link to license</a> and placeholder for designer name.</p> 154 | <p>Devices using: 155 | <ul><li>FRAME_LEDGER</li> 156 | <li>FRAME_LETTER</li></ul></p> 157 | Released under the Creative Commons Attribution Share-Alike 4.0 License 158 | https://creativecommons.org/licenses/by-sa/4.0/ 159 | Designed by: 160 | 161 | 162 | <h3>Dummy Footprint</h3> 163 | <p>NOTHING HERE!!! For when you want a symbol with no package as an option against symbols with a package.</p> 164 | 165 | <p>Devices using: 166 | <ul><li>BADGERHACK_LOGO</li> 167 | <li>FRAME-LETTER</li></ul></p> 168 | 169 | 170 | <p><b>Generic 1005 (0402) package</b></p> 171 | <p>0.2mm courtyard excess rounded to nearest 0.05mm.</p> 172 | 173 | 174 | 175 | 176 | 177 | >NAME 178 | >VALUE 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | >NAME 189 | >VALUE 190 | 191 | 192 | <p><b>Generic 1608 (0603) package</b></p> 193 | <p>0.2mm courtyard excess rounded to nearest 0.05mm.</p> 194 | 195 | 196 | 197 | 198 | 199 | >NAME 200 | >VALUE 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | >NAME 211 | >VALUE 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | >NAME 227 | >VALUE 228 | 229 | 230 | <p><b>Generic 2012 (0805) package</b></p> 231 | <p>0.2mm courtyard excess rounded to nearest 0.05mm.</p> 232 | 233 | 234 | >NAME 235 | >VALUE 236 | 237 | 238 | 239 | 240 | >NAME 241 | >VALUE 242 | 243 | 244 | <p><b>Generic 3216 (1206) package</b></p> 245 | <p>0.2mm courtyard excess rounded to nearest 0.05mm.</p> 246 | 247 | 248 | 249 | 250 | 251 | >NAME 252 | >VALUE 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | >NAME 263 | >VALUE 264 | 265 | 266 | <h3>SMD- 4 Pin Right Angle </h3> 267 | <p>Specifications: 268 | <ul><li>Pin count:4</li> 269 | <li>Pin pitch:0.1"</li> 270 | </ul></p> 271 | <p>Example device(s): 272 | <ul><li>CONN_04</li> 273 | </ul></p> 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | >NAME 287 | >VALUE 288 | 289 | 290 | Qwiic connector with milled cutout. Sliding the cable into this slot prevents the cable from coming unplugged. 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | >NAME 311 | >VALUE 312 | 313 | 314 | <h3>U.FL SMD Antenna Connector</h3> 315 | <p>Specifications: 316 | <li>Area: 3.0mm x 2.5mm</li> 317 | </ul></p> 318 | <p><a href=”http://cdn.sparkfun.com/datasheets/Wireless/Antennas/RF-001001.pdf”>Datasheet referenced for footprint</a></p> 319 | <p>Example device(s): 320 | <ul><li>U.FL</li> 321 | </ul></p> 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | >NAME 341 | >VALUE 342 | 343 | 344 | <h3>USB - microB SMD</h3> 345 | <p>Specifications: 346 | <ul><li>Pin count:5</li> 347 | </ul></p> 348 | <p><a href=”https://www.sparkfun.com/datasheets/Prototyping/Micro-USB.pdf”>Datasheet referenced for footprint</a></p> 349 | <p>Example device(s): 350 | <ul><li>USB_MICRO-B</li> 351 | </ul></p> 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | PCB Front 382 | >NAME 383 | >VALUE 384 | 385 | 386 | 387 | 388 | <h3>USB - microB SMD Reduced Paste</h3> 389 | 70% paste area under D+ D- USBID pins for applications where those pins aren't required, to reduce the likelihood of bridges. 390 | <p>Specifications: 391 | <ul><li>Pin count:5</li> 392 | </ul></p> 393 | <p><a href=”https://www.sparkfun.com/datasheets/Prototyping/Micro-USB.pdf”>Datasheet referenced for footprint</a></p> 394 | <p>Example device(s): 395 | <ul><li>USB_MICRO-B</li> 396 | </ul></p> 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | PCB Front 430 | >NAME 431 | >VALUE 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | >NAME 462 | >VALUE 463 | 464 | 465 | <h3>USB Type microUSB Connector-No Bossed Pins</h3> 466 | <p>Specifications: 467 | <ul><li>Pin count:5 pins, 4 shield connections</li> 468 | </ul></p> 469 | <p>Example device(s): 470 | <ul><li>USB_Micro-B</li> 471 | </ul></p> 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | >NAME 509 | >VALUE 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | >NAME 559 | >VALUE 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | <h3>USB Micro-B Plug Connector</h3> 655 | Manufacturer part #: ZX80-B-5SA<br> 656 | Manufacturer: Hirose<br> 657 | <p>Specifications: 658 | <ul><li>Pin count: 5 main, 4 shield</li> 659 | <p><a href=”https://www.hirose.com/product/en/download_file/key_name/ZX/category/Catalog/doc_file_id/31704/?file_category_id=4&item_id=13&is_series=1”>Datasheet referenced for footprint</a></p> 660 | </ul></p> 661 | <p>Example device(s): 662 | <ul><li>USB_Micro-B</li> 663 | </ul></p> 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | >Name 698 | >Value 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | >NAME 746 | >VALUE 747 | 748 | 749 | <b>Small Outline Transistor</b> 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | >NAME 769 | >VALUE 770 | 771 | 772 | <B>LED 0603 SMT</B><p> 773 | 0603, surface mount. 774 | <p>Specifications: 775 | <ul><li>Pin count: 2</li> 776 | <li>Pin pitch:0.075inch </li> 777 | <li>Area: 0.06" x 0.03"</li> 778 | </ul></p> 779 | <p>Example device(s): 780 | <ul><li>LED - BLUE</li> 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | >NAME 789 | >VALUE 790 | 791 | 792 | <h3>LED 1206 SMT</h3> 793 | 794 | 1206, surface mount. 795 | 796 | <p>Specifications: 797 | <ul><li>Pin count: 2</li> 798 | <li>Pin pitch: </li> 799 | <li>Area: 0.125" x 0.06"</li> 800 | </ul></p> 801 | <p>Example device(s): 802 | <ul><li>LED</li></ul> 803 | 804 | 805 | 806 | 807 | 808 | 809 | >NAME 810 | >VALUE 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | >NAME 820 | >VALUE 821 | 822 | 823 | <h3>AXIAL-0.1</h3> 824 | <p>Commonly used for 1/4W through-hole resistors. 0.1" pitch between holes.</p> 825 | 826 | 827 | 828 | 829 | 830 | 831 | >Name 832 | >Value 833 | 834 | 835 | <h3>AXIAL-0.1-KIT</h3> 836 | <p>Commonly used for 1/4W through-hole resistors. 0.1" pitch between holes.</p> 837 | <p><b>Warning:</b> This is the KIT version of the AXIAL-0.1 package. This package has a smaller diameter top stop mask, which doesn't cover the diameter of the pad. This means only the bottom side of the pads' copper will be exposed. You'll only be able to solder to the bottom side.</p> 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | 847 | 848 | 849 | >Name 850 | >Value 851 | 852 | 853 | <h3>AXIAL-0.3</h3> 854 | <p>Commonly used for 1/4W through-hole resistors. 0.3" pitch between holes.</p> 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 864 | 865 | >Name 866 | >Value 867 | 868 | 869 | <h3>AXIAL-0.3-KIT</h3> 870 | <p>Commonly used for 1/4W through-hole resistors. 0.3" pitch between holes.</p> 871 | <p><b>Warning:</b> This is the KIT version of the AXIAL-0.3 package. This package has a smaller diameter top stop mask, which doesn't cover the diameter of the pad. This means only the bottom side of the pads' copper will be exposed. You'll only be able to solder to the bottom side.</p> 872 | 873 | 874 | 875 | 876 | 877 | 878 | 879 | 880 | 881 | 882 | >NAME 883 | >VALUE 884 | 885 | 886 | 887 | 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | 896 | 897 | 898 | 899 | 900 | 901 | 902 | 903 | 904 | 905 | 906 | 907 | 908 | 909 | 910 | <h3>Momentary Switch (Pushbutton) - SPST - SMD, 4.6 x 2.8mm</h3> 911 | <p>Normally-open (NO) SPST momentary switches (buttons, pushbuttons).</p> 912 | <p><a href="http://www.ck-components.com/media/1479/kmr2.pdf">Datasheet</a></p> 913 | 914 | 915 | 916 | 917 | 918 | 919 | 920 | 921 | 922 | 923 | 924 | 925 | 926 | 927 | 928 | 929 | 930 | >Name 931 | >Value 932 | 933 | 934 | <h3>Momentary Switch (Pushbutton) - SPST - SMD, 5.2mm Square</h3> 935 | <p>Normally-open (NO) SPST momentary switches (buttons, pushbuttons).</p> 936 | <p><a href="https://www.sparkfun.com/datasheets/Components/Buttons/SMD-Button.pdf">Dimensional Drawing</a></p> 937 | 938 | 939 | 940 | 941 | 942 | 943 | 944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | 953 | >Name 954 | >Value 955 | 956 | 957 | 958 | 959 | 960 | 961 | 962 | 963 | 964 | 965 | 966 | 967 | 968 | 969 | 970 | 971 | 972 | 973 | 974 | 975 | 976 | 977 | NO COPPER BEYOND THIS LINE 978 | FROM TI DESIGN NOTE DN023 979 | BOARD EDGE 980 | 868/915MHZ 981 | 982 | 983 | 984 | 985 | 986 | 987 | 988 | 989 | 990 | 991 | 992 | 993 | 994 | 995 | 996 | 997 | 998 | 999 | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | 1011 | 1012 | 1013 | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | 1024 | 1025 | 1026 | 1027 | 1028 | 1029 | >Name 1030 | >Value 1031 | 1032 | 1033 | 1034 | 1035 | 1036 | 1037 | 1038 | 1039 | 1040 | 1041 | >NAME 1042 | >VALUE 1043 | 1044 | 1045 | <h3>SC-88/SC70-6/SOT-363 6-pin Package</h3> 1046 | <p><a href="http://www.onsemi.com/pub_link/Collateral/MBT3904DW1T1-D.PDF">Example Datasheet</a></p> 1047 | 1048 | 1049 | 1050 | 1051 | 1052 | 1053 | 1054 | 1055 | 1056 | 1057 | 1058 | 1059 | 1060 | 1061 | 1062 | 1063 | 1064 | 1065 | 1066 | 1067 | 1068 | 1069 | 1070 | >NAME 1071 | >VALUE 1072 | 1073 | 1074 | 1075 | 1076 | 1077 | 1078 | 1079 | 1080 | 1081 | 1082 | 1083 | 1084 | 1085 | 1086 | 1087 | 1088 | 1089 | 1090 | 1091 | 1092 | 1093 | 1094 | 1095 | 1096 | 1097 | 1098 | 1099 | 1100 | 1101 | 1102 | 1103 | 1104 | 1105 | 1106 | 1107 | 1108 | 1109 | 1110 | 1111 | 1112 | 1113 | 1114 | 1115 | 1116 | 1117 | 1118 | 1119 | 1120 | 1121 | 1122 | 1123 | 1124 | 1125 | 1126 | 1127 | Keepout Zone 1128 | >Name 1129 | >Value 1130 | 1131 | 1132 | 1133 | 1134 | 1135 | 1136 | 1137 | 1138 | 1139 | 1140 | 1141 | 1142 | 1143 | 1144 | 1145 | 1146 | 1147 | 1148 | 1149 | 1150 | 1151 | 1152 | 1153 | 1154 | 1155 | 1156 | 1157 | 1158 | 1159 | 1160 | 1161 | 1162 | 1163 | 1164 | 1165 | 1166 | 1167 | 1168 | 1169 | 1170 | 1171 | 1172 | 1173 | 1174 | 1175 | 1176 | 1177 | 1178 | 1179 | 1180 | 1181 | 1182 | 1183 | 1184 | 1185 | 1186 | 1187 | 1188 | 1189 | 1190 | 1191 | 1192 | 1193 | 1194 | 1195 | 1196 | 1197 | 1198 | 1199 | 1200 | 1201 | 1202 | 1203 | 1204 | 1205 | 1206 | 1207 | 1208 | 1209 | 1210 | 1211 | 1212 | 1213 | 1214 | 1215 | 1216 | 1217 | 1218 | 1219 | 1220 | 1221 | 1222 | 1223 | 1224 | 1225 | 1226 | 1227 | 1228 | 1229 | 1230 | 1231 | 1232 | 1233 | 1234 | 1235 | 1236 | 1237 | 1238 | 1239 | 1240 | 1241 | 1242 | 1243 | 1244 | 1245 | 1246 | 1247 | 1248 | 1249 | 1250 | 1251 | 1252 | 1253 | 1254 | 1255 | 1256 | 1257 | 1258 | 1259 | 1260 | 1261 | 1262 | 1263 | 1264 | 1265 | 1266 | 1267 | 1268 | 1269 | 1270 | 1271 | 1272 | 1273 | 1274 | 1275 | 1276 | 1277 | 1278 | 1279 | 1280 | 1281 | 1282 | 1283 | 1284 | 1285 | 1286 | 1287 | 1288 | 1289 | 1290 | 1291 | 1292 | 1293 | 1294 | 1295 | 1296 | 1297 | 1298 | 1299 | 1300 | 1301 | 1302 | 1303 | 1304 | 1305 | 1306 | 1307 | 1308 | 1309 | 1310 | 1311 | 1312 | 1313 | 1314 | 1315 | 1316 | 1317 | 1318 | 1319 | 1320 | 1321 | 1322 | 1323 | 1324 | 1325 | 1326 | 1327 | 1328 | 1329 | 1330 | 1331 | 1332 | 1333 | 1334 | 1335 | 1336 | 1337 | 1338 | 1339 | 1340 | 1341 | 1342 | 1343 | 1344 | 1345 | 1346 | 1347 | 1348 | 1349 | 1350 | 1351 | 1352 | 1353 | 1354 | 1355 | 1356 | 1357 | 1358 | 1359 | 1360 | 1361 | 1362 | 1363 | 1364 | 1365 | 1366 | 1367 | 1368 | 1369 | 1370 | 1371 | 1372 | 1373 | 1374 | 1375 | 1376 | 1377 | 1378 | 1379 | 1380 | 1381 | 1382 | 1383 | 1384 | 1385 | 1386 | 1387 | 1388 | 1389 | 1390 | 1391 | 1392 | 1393 | 1394 | 1395 | 1396 | 1397 | 1398 | 1399 | 1400 | 1401 | 1402 | 1403 | 1404 | 1405 | 1406 | 1407 | 1408 | 1409 | 1410 | 1411 | 1412 | 1413 | 1414 | 1415 | 1416 | 1417 | 1418 | 1419 | 1420 | 1421 | 1422 | 1423 | 1424 | 1425 | 1426 | 1427 | 1428 | 1429 | 1430 | 1431 | 1432 | 1433 | 1434 | 1435 | 1436 | 1437 | 1438 | 1439 | 1440 | 1441 | 1442 | 1443 | 1444 | 1445 | 1446 | 1447 | 1448 | 1449 | 1450 | 1451 | 1452 | 1453 | 1454 | 1455 | 1456 | 1457 | 1458 | 1459 | 1460 | 1461 | 1462 | 1463 | 1464 | 1465 | 1466 | 1467 | 1468 | 1469 | 1470 | 1471 | 1472 | 1473 | 1474 | 1475 | 1476 | 1477 | 1478 | 1479 | 1480 | 1481 | 1482 | 1483 | 1484 | 1485 | 1486 | 1487 | 1488 | 1489 | 1490 | 1491 | 1492 | 1493 | 1494 | 1495 | 1496 | 1497 | 1498 | 1499 | 1500 | 1501 | 1502 | 1503 | 1504 | 1505 | 1506 | 1507 | 1508 | 1509 | 1510 | 1511 | 1512 | 1513 | 1514 | 1515 | 1516 | 1517 | 1518 | 1519 | 1520 | 1521 | 1522 | 1523 | 1524 | 1525 | 1526 | 1527 | 1528 | 1529 | 1530 | 1531 | 1532 | 1533 | 1534 | 1535 | 1536 | 1537 | 1538 | 1539 | 1540 | 1541 | 1542 | 1543 | 1544 | 1545 | 1546 | 1547 | 1548 | 1549 | 1550 | 1551 | 1552 | 1553 | 1554 | 1555 | 1556 | 1557 | 1558 | 1559 | 1560 | 1561 | 1562 | 1563 | 1564 | 1565 | Keepout Zone 1566 | >Name 1567 | >Value 1568 | 1569 | 1570 | 1571 | 1572 | 1573 | 1574 | 1575 | 1576 | 1577 | 1578 | 1579 | 1580 | 1581 | 1582 | 1583 | 1584 | 1585 | 1586 | 1587 | 1588 | 1589 | 1590 | 1591 | 1592 | 1593 | 1594 | 1595 | 1596 | 1597 | 1598 | 1599 | 1600 | 1601 | 1602 | 1603 | 1604 | 1605 | 1606 | 1607 | 1608 | 1609 | 1610 | 1611 | 1612 | 1613 | 1614 | 1615 | 1616 | 1617 | 1618 | 1619 | 1620 | 1621 | 1622 | 1623 | 1624 | 1625 | 1626 | 1627 | 1628 | 1629 | 1630 | 1631 | 1632 | 1633 | 1634 | 1635 | 1636 | 1637 | 1638 | 1639 | 1640 | 1641 | 1642 | 1643 | 1644 | 1645 | 1646 | 1647 | 1648 | 1649 | 1650 | 1651 | 1652 | 1653 | 1654 | 1655 | 1656 | 1657 | 1658 | 1659 | 1660 | 1661 | 1662 | 1663 | 1664 | 1665 | 1666 | 1667 | 1668 | 1669 | 1670 | 1671 | 1672 | 1673 | 1674 | 1675 | 1676 | 1677 | 1678 | 1679 | 1680 | 1681 | 1682 | 1683 | 1684 | 1685 | 1686 | 1687 | 1688 | 1689 | 1690 | 1691 | 1692 | 1693 | 1694 | 1695 | 1696 | 1697 | 1698 | 1699 | 1700 | 1701 | 1702 | 1703 | 1704 | 1705 | 1706 | 1707 | 1708 | 1709 | 1710 | 1711 | 1712 | 1713 | 1714 | 1715 | 1716 | 1717 | 1718 | 1719 | 1720 | 1721 | 1722 | 1723 | 1724 | 1725 | 1726 | 1727 | 1728 | 1729 | 1730 | 1731 | 1732 | 1733 | 1734 | 1735 | 1736 | 1737 | 1738 | 1739 | 1740 | 1741 | 1742 | 1743 | 1744 | 1745 | 1746 | 1747 | 1748 | 1749 | 1750 | 1751 | 1752 | 1753 | 1754 | 1755 | 1756 | 1757 | 1758 | 1759 | 1760 | 1761 | 1762 | 1763 | 1764 | 1765 | 1766 | 1767 | 1768 | 1769 | 1770 | 1771 | 1772 | 1773 | 1774 | 1775 | 1776 | 1777 | 1778 | 1779 | 1780 | 1781 | 1782 | 1783 | 1784 | 1785 | 1786 | 1787 | 1788 | 1789 | 1790 | 1791 | 1792 | 1793 | 1794 | 1795 | 1796 | 1797 | 1798 | 1799 | 1800 | 1801 | 1802 | 1803 | 1804 | 1805 | 1806 | 1807 | 1808 | 1809 | 1810 | 1811 | 1812 | 1813 | 1814 | 1815 | 1816 | 1817 | 1818 | 1819 | 1820 | 1821 | 1822 | 1823 | 1824 | 1825 | 1826 | 1827 | 1828 | 1829 | 1830 | 1831 | 1832 | 1833 | 1834 | 1835 | 1836 | 1837 | 1838 | 1839 | 1840 | 1841 | 1842 | 1843 | 1844 | 1845 | 1846 | 1847 | 1848 | 1849 | 1850 | 1851 | 1852 | 1853 | 1854 | 1855 | 1856 | 1857 | 1858 | 1859 | 1860 | 1861 | 1862 | 1863 | 1864 | 1865 | 1866 | 1867 | 1868 | 1869 | 1870 | 1871 | 1872 | 1873 | 1874 | 1875 | 1876 | 1877 | 1878 | 1879 | 1880 | 1881 | 1882 | 1883 | 1884 | 1885 | 1886 | 1887 | 1888 | 1889 | 1890 | 1891 | 1892 | 1893 | 1894 | 1895 | 1896 | 1897 | 1898 | 1899 | 1900 | 1901 | 1902 | 1903 | 1904 | 1905 | 1906 | 1907 | 1908 | 1909 | 1910 | 1911 | 1912 | 1913 | 1914 | 1915 | 1916 | 1917 | 1918 | 1919 | 1920 | 1921 | 1922 | 1923 | 1924 | 1925 | 1926 | 1927 | 1928 | 1929 | 1930 | 1931 | 1932 | 1933 | 1934 | 1935 | 1936 | 1937 | 1938 | 1939 | 1940 | 1941 | 1942 | 1943 | 1944 | 1945 | 1946 | 1947 | 1948 | 1949 | 1950 | 1951 | 1952 | 1953 | 1954 | 1955 | >VALUE 1956 | 1957 | 1958 | <h3>3.3V Voltage Supply</h3> 1959 | 1960 | >VALUE 1961 | 1962 | 1963 | >VALUE 1964 | 1965 | 1966 | <h3>Digital Ground Supply</h3> 1967 | 1968 | >VALUE 1969 | 1970 | >VALUE 1971 | 1972 | 1973 | <h3>Schematic Documentation Field</h3> 1974 | <p>Autofilling schematic symbol-layer info including board name, designer, revision, and save date.</p> 1975 | <p>Devices using: 1976 | <ul><li>FRAME-LEDGER</li> 1977 | <li>FRAME-LETTER</li></ul></p> 1978 | 1979 | 1980 | 1981 | 1982 | 1983 | 1984 | 1985 | 1986 | 1987 | 1988 | 1989 | 1990 | 1991 | 1992 | 1993 | 1994 | 1995 | 1996 | 1997 | Date: 1998 | >LAST_DATE_TIME 1999 | Sheet: 2000 | >SHEET 2001 | REV: 2002 | TITLE: 2003 | >DRAWING_NAME 2004 | Released under the Creative Commons 2005 | Attribution Share-Alike 4.0 License 2006 | https://creativecommons.org/licenses/by-sa/4.0/ 2007 | Design by: 2008 | 2009 | 2010 | <h3>Schematic Frame - Letter</h3> 2011 | <p>Standard 8.5x11 US Ledger frame</p> 2012 | <p>Devices using<ul><li>FRAME-LETTER</li></ul></p> 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | >NAME 2026 | >VALUE 2027 | 2028 | 2029 | 2030 | 2031 | 2032 | 2033 | 2034 | 2035 | >NAME 2036 | >VALUE 2037 | 2038 | 2039 | 2040 | 2041 | 2042 | 2043 | 2044 | 2045 | >NAME 2046 | >VALUE 2047 | 2048 | 2049 | <h3>SparkFun I<sup>2</sup>C Standard Pinout Header</h3> 2050 | <p>SparkFun has standardized on a pinout for all I<sup>2</sup>C based sensor breakouts.<br> 2051 | 2052 | 2053 | 2054 | 2055 | 2056 | 2057 | 2058 | 2059 | 2060 | 2061 | 2062 | 2063 | >VALUE 2064 | >NAME 2065 | SDA 2066 | VCC 2067 | GND 2068 | SCL 2069 | 2070 | 2071 | 2072 | 2073 | 2074 | 2075 | 2076 | 2077 | >NAME 2078 | 2079 | 2080 | <h3>USB - 5 pin</h3> 2081 | <p>5 pin USB connector: VBUS, GND, D+, D-, ID </p> 2082 | <p>Includes 4 pins for shield connections </p> 2083 | 2084 | 2085 | 2086 | 2087 | 2088 | 2089 | 2090 | 2091 | 2092 | 2093 | USB 2094 | >VALUE 2095 | >NAME 2096 | 2097 | 2098 | 2099 | 2100 | 2101 | 2102 | 2103 | 2104 | 2105 | 2106 | 2107 | 2108 | 2109 | 2110 | 2111 | 2112 | 2113 | 2114 | 2115 | 2116 | 2117 | 2118 | >NAME 2119 | >VALUE 2120 | 2121 | 2122 | <h3> Voltage Regulator - No bypass</h3> 2123 | 5 pin, with Enable function. 2124 | 2125 | 2126 | 2127 | 2128 | 2129 | 2130 | 2131 | 2132 | 2133 | >NAME 2134 | >VALUE 2135 | 2136 | 2137 | <h3>LED</h3> 2138 | <p></p> 2139 | 2140 | 2141 | 2142 | 2143 | 2144 | 2145 | 2146 | 2147 | 2148 | >NAME 2149 | >VALUE 2150 | 2151 | 2152 | 2153 | 2154 | 2155 | 2156 | 2157 | 2158 | 2159 | 2160 | 2161 | 2162 | <h3>USB Voltage Supply</h3> 2163 | 2164 | 2165 | 2166 | >VALUE 2167 | 2168 | 2169 | 2170 | 2171 | 2172 | 2173 | 2174 | 2175 | 2176 | 2177 | 2178 | 2179 | 2180 | >NAME 2181 | >VALUE 2182 | 2183 | 2184 | 2185 | 2186 | 2187 | 2188 | 2189 | 2190 | 2191 | 2192 | 2193 | 2194 | 2195 | >NAME 2196 | >VALUE 2197 | 2198 | 2199 | <h3>Momentary Switch (Pushbutton) - SPST - Two Circuits</h3> 2200 | <p>Normally-open (NO) SPST momentary switches (buttons, pushbuttons). Schematic symbol includes two switch circuits.</p> 2201 | 2202 | 2203 | 2204 | 2205 | 2206 | 2207 | 2208 | 2209 | 2210 | 2211 | 2212 | 2213 | 2214 | 2215 | 2216 | 2217 | 2218 | >NAME 2219 | >VALUE 2220 | 2221 | 2222 | 2223 | 2224 | 2225 | 2226 | 2227 | 2228 | 2229 | 2230 | 2231 | 2232 | GND 2233 | 2234 | 2235 | 2236 | 2237 | 2238 | 2239 | 2240 | 2241 | 2242 | 2243 | 2244 | 2245 | 2246 | 2247 | 2248 | 2249 | 2250 | 2251 | 2252 | 2253 | >NAME 2254 | 2255 | 2256 | 2257 | 2258 | 2259 | 2260 | 2261 | 2262 | 2263 | 2264 | 2265 | 2266 | 2267 | 2268 | 2269 | >VALUE 2270 | 1 2271 | 2 2272 | >NAME 2273 | 2274 | 2275 | 2276 | 2277 | 2278 | 2279 | 2280 | 2281 | 2282 | 2283 | 2284 | 2285 | 2286 | 2287 | 2288 | 2289 | >NAME 2290 | >VALUE 2291 | 2292 | 2293 | 2294 | 2295 | 2296 | 2297 | 2298 | 2299 | 2300 | 2301 | 2302 | 2303 | 2304 | 2305 | 2306 | 2307 | 2308 | 2309 | 2310 | 2311 | 2312 | 2313 | 2314 | 2315 | 2316 | 2317 | 2318 | 2319 | 2320 | 2321 | 2322 | 2323 | 2324 | 2325 | 2326 | 2327 | 2328 | 2329 | 2330 | 2331 | 2332 | 2333 | 2334 | 2335 | 2336 | >Name 2337 | >Value 2338 | 2339 | 2340 | 2341 | 2342 | 2343 | 2344 | 2345 | 2346 | 2347 | 2348 | 2349 | 2350 | 2351 | 2352 | 2353 | 2354 | 2355 | 2356 | 2357 | 2358 | 2359 | 2360 | >NAME 2361 | >VALUE 2362 | 2363 | 2364 | <h3>CH340C USB-to-Serial Converter</h3> 2365 | 2366 | 2367 | 2368 | 2369 | 2370 | 2371 | 2372 | 2373 | 2374 | 2375 | 2376 | 2377 | 2378 | 2379 | 2380 | 2381 | 2382 | 2383 | 2384 | 2385 | >NAME 2386 | >VALUE 2387 | 2388 | 2389 | 2390 | 2391 | <b>SUPPLY SYMBOL</b> 2392 | 2393 | 2394 | 2395 | 2396 | 2397 | 2398 | 2399 | 2400 | 2401 | 2402 | 2403 | 2404 | <b>SUPPLY SYMBOL</b> 2405 | 2406 | 2407 | 2408 | 2409 | 2410 | 2411 | 2412 | 2413 | 2414 | 2415 | 2416 | 2417 | <h3>Schematic Frame - Letter</h3> 2418 | <p>Standard 8.5x11 US Letter frame</p> 2419 | 2420 | 2421 | 2422 | 2423 | 2424 | 2425 | 2426 | 2427 | 2428 | 2429 | 2430 | 2431 | 2432 | 2433 | 2434 | 2435 | 2436 | 2437 | 2438 | 2439 | 2440 | <h3>Ground Supply Symbol</h3> 2441 | <p>Generic signal ground supply symbol.</p> 2442 | 2443 | 2444 | 2445 | 2446 | 2447 | 2448 | 2449 | 2450 | 2451 | 2452 | 2453 | 2454 | 2455 | CAP-00810<br> 2456 | Ceramic<br> 2457 | Standard decoupling cap 2458 | 2459 | 2460 | 2461 | 2462 | 2463 | 2464 | 2465 | 2466 | 2467 | 2468 | 2469 | 2470 | 2471 | 2472 | 2473 | 2474 | 2475 | 2476 | 2477 | <h3>1µF ceramic capacitors</h3> 2478 | <p>A capacitor is a passive two-terminal electrical component used to store electrical energy temporarily in an electric field.</p> 2479 | 2480 | 2481 | 2482 | 2483 | 2484 | 2485 | 2486 | 2487 | 2488 | 2489 | 2490 | 2491 | 2492 | 2493 | 2494 | 2495 | 2496 | 2497 | 2498 | 2499 | 2500 | 2501 | 2502 | 2503 | 2504 | 2505 | 2506 | 2507 | 2508 | 2509 | 2510 | 2511 | 2512 | 2513 | 2514 | 2515 | 2516 | 2517 | 2518 | 2519 | 2520 | 2521 | 2522 | 2523 | 2524 | 2525 | 2526 | 2527 | 2528 | 2529 | 2530 | 2531 | 2532 | 2533 | 2534 | 2535 | 2536 | 2537 | 2538 | 2539 | 2540 | 2541 | 2542 | 2543 | 2544 | 2545 | 2546 | 2547 | 2548 | 2549 | 2550 | 2551 | 2552 | 2553 | 2554 | 2555 | 2556 | 2557 | 2558 | <h3>4.7µF ceramic capacitors</h3> 2559 | <p>A capacitor is a passive two-terminal electrical component used to store electrical energy temporarily in an electric field.</p> 2560 | 2561 | 2562 | 2563 | 2564 | 2565 | 2566 | 2567 | 2568 | 2569 | 2570 | 2571 | 2572 | 2573 | 2574 | 2575 | 2576 | 2577 | 2578 | 2579 | 2580 | 2581 | 2582 | 2583 | 2584 | 2585 | 2586 | 2587 | 2588 | 2589 | 2590 | 2591 | CAP-11812 2592 | 2593 | 2594 | 2595 | 2596 | 2597 | 2598 | 2599 | 2600 | 2601 | 2602 | 2603 | 2604 | 2605 | 2606 | 2607 | 2608 | 2609 | 2610 | 2611 | <h3>SparkFun I<sup>2</sup>C Standard Qwiic Connector</h3> 2612 | An SMD 1mm pitch JST connector makes it easy and quick (get it? Qwiic?) to connect I<sup>2</sup>C devices to each other. The <a href=”http://www.sparkfun.com/qwiic”>Qwiic system</a> enables fast and solderless connection between popular platforms and various sensors and actuators. 2613 | 2614 | <br><br> 2615 | 2616 | We carry <a href=”https://www.sparkfun.com/products/14204”>200mm</a>, <a href=”https://www.sparkfun.com/products/14205”>100mm</a>, <a href=”https://www.sparkfun.com/products/14206”>50mm</a>, and <a href=”https://www.sparkfun.com/products/14207”>breadboard friendly</a> Qwiic cables. We also offer <a href=”https://www.sparkfun.com/products/14323”>10 pcs strips</a> the SMD connectors. 2617 | 2618 | 2619 | 2620 | 2621 | 2622 | 2623 | 2624 | 2625 | 2626 | 2627 | 2628 | 2629 | 2630 | 2631 | 2632 | 2633 | 2634 | 2635 | 2636 | 2637 | 2638 | 2639 | 2640 | 2641 | 2642 | 2643 | 2644 | 2645 | 2646 | 2647 | 2648 | 2649 | <h3>SMD Antenna Connector - U.FL</h3> 2650 | <p>2mm height, 3.0mm x 3.0mm receptacle size. </p> 2651 | <p><b>SparkFun Products:</b> 2652 | <ul><li><a href="https://www.sparkfun.com/products/13287">SparkFun WiFi Shield - ESP8266</a></li> 2653 | <li><a href=”https://www.sparkfun.com/products/13231”>SparkFun ESP8266 Thing</a></li> 2654 | <li><a href=”https://www.sparkfun.com/products/11420”>SparkFun MiniGen - Pro Mini Signal Generator Shield</a></li> 2655 | </ul></p> 2656 | 2657 | 2658 | 2659 | 2660 | 2661 | 2662 | 2663 | 2664 | 2665 | 2666 | 2667 | 2668 | 2669 | 2670 | 2671 | 2672 | 2673 | 2674 | 2675 | 2676 | 2677 | <h3>USB Type Micro-B Connector</h3> 2678 | <p>Male/female and PTH/SMT variants</p> 2679 | <p>SparkFun Products: 2680 | <ul><li><a href=”https://www.sparkfun.com/products/12035”>SparkFun microB USB Breakout</a></li> 2681 | <li><a href=”https://www.sparkfun.com/products/10031”>SparkFun USB microB Plug Breakout</a></li> 2682 | <li><a href=”https://www.sparkfun.com/products/13231”>SparkFun ESP8266 Thing</a></li> 2683 | </ul></p> 2684 | 2685 | 2686 | 2687 | 2688 | 2689 | 2690 | 2691 | 2692 | 2693 | 2694 | 2695 | 2696 | 2697 | 2698 | 2699 | 2700 | 2701 | 2702 | 2703 | 2704 | 2705 | 2706 | 2707 | 2708 | 2709 | 2710 | 2711 | 2712 | 2713 | 2714 | 2715 | 2716 | 2717 | 2718 | 2719 | 2720 | 2721 | 2722 | 2723 | 2724 | 2725 | 2726 | 2727 | 2728 | 2729 | 2730 | 2731 | 2732 | 2733 | 2734 | 2735 | 2736 | 2737 | 2738 | 2739 | 2740 | 2741 | 2742 | 2743 | 2744 | 2745 | 2746 | 2747 | 2748 | 2749 | 2750 | 2751 | 2752 | 2753 | 2754 | 2755 | 2756 | 2757 | 2758 | 2759 | 2760 | 2761 | 2762 | 2763 | 2764 | 2765 | 2766 | 2767 | 2768 | 2769 | 2770 | 2771 | 2772 | 2773 | 2774 | 2775 | 2776 | 2777 | 2778 | 2779 | 2780 | 2781 | 2782 | 2783 | A simple USB 2.0 to Serial IC. 2784 | 2785 | 2786 | 2787 | 2788 | 2789 | 2790 | 2791 | 2792 | 2793 | 2794 | 2795 | 2796 | 2797 | 2798 | 2799 | 2800 | 2801 | 2802 | 2803 | 2804 | 2805 | 2806 | 2807 | 2808 | 2809 | 2810 | 2811 | 2812 | 2813 | 2814 | 2815 | 2816 | 2817 | <h3>AP2112 - 600mA CMOS LDO Regulator w/ Enable</h3> 2818 | <p>The AP2112 is CMOS process low dropout linear regulator with enable function, the regulator delivers a guaranteed 600mA (min.) continuous load current.</p> 2819 | <p>Features<br> 2820 | <ul> 2821 | <li>Output Voltage Accuracy: ±1.5% </li> 2822 | <li>Output Current: 600mA (Min.) </li> 2823 | <li>Foldback Short Current Protection: 50mA </li> 2824 | <li>Enable Function to Turn ON/OFF VOUT</li> 2825 | <li>Low Dropout Voltage (3.3V): 250mV (Typ.) @IOUT=600mA </li> 2826 | <li>Excellent Load Regulation: 0.2%/A (Typ.) </li> 2827 | <li>Excellent Line Regulation: 0.02%/V (Typ.) </li> 2828 | <li>Low Quiescent Current: 55μA (Typ.)</li> 2829 | <li>Low Standby Current: 0.01μA (Typ.)</li> 2830 | <li>Low Output Noise: 50μVRMS </li> 2831 | <li>PSRR: 100Hz -65dB, 1kHz -65dB </li> 2832 | <li> OTSD Protection </li> 2833 | <li>Stable with 1.0μF Flexible Cap: Ceramic, Tantalum and Aluminum Electrolytic </li> 2834 | <li>Operation Temperature Range: -40°C to 85°C </li> 2835 | <li>ESD: MM 400V, HBM 4000V</li> 2836 | </ul> 2837 | </p> 2838 | 2839 | 2840 | 2841 | 2842 | 2843 | 2844 | 2845 | 2846 | 2847 | 2848 | 2849 | 2850 | 2851 | 2852 | 2853 | 2854 | 2855 | 2856 | 2857 | 2858 | 2859 | 2860 | <h3>Blue SMD LED</h3> 2861 | <p>Used in manufacturing of various products at SparkFun</p> 2862 | 2863 | 2864 | <p><b>Packages:</b> 2865 | <ul><li><b>0603</b> - SMD 0603 package <a href="http://www.digikey.com/product-detail/en/SMLE12BC7TT86/511-1589-2-ND/1641808">[Product Link]</li> 2866 | <li><b>1206</b> - SMD1206 package <a href="http://www.digikey.com/product-detail/en/lite-on-inc/LTST-C150TBKT/160-1643-1-ND/573584">[Product Link]</li> 2867 | <ul></p> 2868 | 2869 | <p><b>SparkFun Products:</b> 2870 | <ul><li><a href=”https://www.sparkfun.com/products/13711”>ESP8266 Thing-Dev Board</a></li> 2871 | <li><a href=”https://www.sparkfun.com/products/12757”>RedBoard</a></li> 2872 | </ul></p> 2873 | 2874 | 2875 | 2876 | 2877 | 2878 | 2879 | 2880 | 2881 | 2882 | 2883 | 2884 | 2885 | 2886 | 2887 | 2888 | 2889 | 2890 | 2891 | 2892 | 2893 | 2894 | 2895 | 2896 | 2897 | 2898 | 2899 | 2900 | 2901 | 2902 | 2903 | 2904 | 2905 | 2906 | 2907 | 2908 | 2909 | 2910 | 2911 | 2912 | 2913 | 2914 | 2915 | <h3>3.3V Supply Symbol</h3> 2916 | <p>Power supply symbol for a specifically-stated 3.3V source.</p> 2917 | 2918 | 2919 | 2920 | 2921 | 2922 | 2923 | 2924 | 2925 | 2926 | 2927 | 2928 | 2929 | <h3>USB Voltage Supply</h3> 2930 | 2931 | 2932 | 2933 | 2934 | 2935 | 2936 | 2937 | 2938 | 2939 | 2940 | 2941 | 2942 | <h3>1kΩ resistor</h3> 2943 | <p>A resistor is a passive two-terminal electrical component that implements electrical resistance as a circuit element. Resistors act to reduce current flow, and, at the same time, act to lower voltage levels within circuits. - Wikipedia</p> 2944 | 2945 | 2946 | 2947 | 2948 | 2949 | 2950 | 2951 | 2952 | 2953 | 2954 | 2955 | 2956 | 2957 | 2958 | 2959 | 2960 | 2961 | 2962 | 2963 | 2964 | 2965 | 2966 | 2967 | 2968 | 2969 | 2970 | 2971 | 2972 | 2973 | 2974 | 2975 | 2976 | 2977 | 2978 | 2979 | 2980 | 2981 | 2982 | 2983 | 2984 | 2985 | 2986 | 2987 | 2988 | 2989 | 2990 | 2991 | 2992 | 2993 | 2994 | 2995 | 2996 | 2997 | 2998 | 2999 | 3000 | 3001 | 3002 | 3003 | 3004 | 3005 | 3006 | 3007 | 3008 | 3009 | 3010 | 3011 | 3012 | 3013 | 3014 | 3015 | 3016 | 3017 | 3018 | 3019 | 3020 | 3021 | 3022 | 3023 | 3024 | 3025 | 3026 | 3027 | 3028 | 3029 | 3030 | 3031 | 3032 | 3033 | 3034 | 3035 | 3036 | 3037 | 3038 | 3039 | 3040 | 3041 | 3042 | 3043 | 3044 | 3045 | 3046 | 3047 | 3048 | 3049 | 3050 | 3051 | 3052 | 3053 | 3054 | 3055 | 3056 | 3057 | 3058 | 3059 | 3060 | 3061 | 3062 | 3063 | 3064 | 3065 | 3066 | 3067 | 3068 | 3069 | 3070 | 3071 | <h3>10kΩ resistor</h3> 3072 | <p>A resistor is a passive two-terminal electrical component that implements electrical resistance as a circuit element. Resistors act to reduce current flow, and, at the same time, act to lower voltage levels within circuits. - Wikipedia</p> 3073 | 3074 | 3075 | 3076 | 3077 | 3078 | 3079 | 3080 | 3081 | 3082 | 3083 | 3084 | 3085 | 3086 | 3087 | 3088 | 3089 | 3090 | 3091 | 3092 | 3093 | 3094 | 3095 | 3096 | 3097 | 3098 | 3099 | 3100 | 3101 | 3102 | 3103 | 3104 | 3105 | 3106 | 3107 | 3108 | 3109 | 3110 | 3111 | 3112 | 3113 | 3114 | 3115 | 3116 | 3117 | 3118 | 3119 | 3120 | 3121 | 3122 | 3123 | 3124 | 3125 | 3126 | 3127 | 3128 | 3129 | 3130 | 3131 | 3132 | 3133 | 3134 | 3135 | 3136 | 3137 | 3138 | 3139 | 3140 | 3141 | 3142 | 3143 | 3144 | 3145 | 3146 | 3147 | 3148 | 3149 | 3150 | 3151 | 3152 | 3153 | 3154 | 3155 | 3156 | 3157 | 3158 | 3159 | 3160 | 3161 | 3162 | 3163 | 3164 | 3165 | 3166 | 3167 | 3168 | 3169 | 3170 | 3171 | 3172 | 3173 | 3174 | 3175 | 3176 | 3177 | 3178 | 3179 | 3180 | 3181 | 3182 | 3183 | 3184 | 3185 | 3186 | 3187 | 3188 | 3189 | 3190 | 3191 | 3192 | 3193 | 3194 | 3195 | 3196 | 3197 | 3198 | 3199 | 3200 | 3201 | 3202 | 3203 | 3204 | 3205 | 3206 | 3207 | 3208 | 3209 | 3210 | 3211 | 3212 | 3213 | 3214 | 3215 | 3216 | 3217 | 3218 | 3219 | 3220 | 3221 | 3222 | 3223 | 3224 | 3225 | 3226 | 3227 | 3228 | 3229 | 3230 | 3231 | 3232 | 3233 | 3234 | 3235 | 3236 | Generic Resistor Package 3237 | 3238 | 3239 | 3240 | 3241 | 3242 | 3243 | 3244 | 3245 | 3246 | 3247 | 3248 | 3249 | 3250 | 3251 | 3252 | 3253 | 3254 | 3255 | 3256 | 3257 | 3258 | 3259 | 3260 | 3261 | 3262 | 3263 | 3264 | 3265 | 3266 | 3267 | 3268 | 3269 | 3270 | 3271 | 3272 | 3273 | 3274 | 3275 | 3276 | 3277 | 3278 | 3279 | 3280 | 3281 | 3282 | 3283 | 3284 | 3285 | 3286 | 3287 | 3288 | 3289 | 3290 | 3291 | 3292 | 3293 | 3294 | 3295 | 3296 | 3297 | 3298 | 3299 | 3300 | 3301 | 3302 | 3303 | 3304 | 3305 | 3306 | 3307 | 3308 | 3309 | 3310 | 3311 | 3312 | 3313 | 3314 | 3315 | 3316 | <h3>Momentary Switch (Pushbutton) - SPST - Two Circuits</h3> 3317 | <p>Normally-open (NO) SPST momentary switches (buttons, pushbuttons). Schematic symbol includes two switch circuits.</p> 3318 | <h4>Variants</h4> 3319 | <ul> 3320 | <li><b>SMD-4.6MMX2.8MM</b> - 4.60mm x 2.80mm Tactile Momentary Button Switch - Used on <a href="https://www.sparkfun.com/products/13664">SparkFun SAMD21 Mini Breakout</a></li> 3321 | <li><b>SMD-5.2MM</b> - <a href="https://www.sparkfun.com/products/8720">Mini Pushbutton Switch - SMD</a> - Used on <a href="https://www.sparkfun.com/products/11114">Arduino Pro Mini</a></li> 3322 | </ul> 3323 | 3324 | 3325 | 3326 | 3327 | 3328 | 3329 | 3330 | 3331 | 3332 | 3333 | 3334 | 3335 | 3336 | 3337 | 3338 | 3339 | 3340 | 3341 | 3342 | 3343 | 3344 | 3345 | 3346 | 3347 | 3348 | 3349 | 3350 | 3351 | 3352 | 3353 | 3354 | 3355 | 3356 | 3357 | 3358 | 3359 | 3360 | 3361 | 3362 | 3363 | 3364 | 3365 | 3366 | 3367 | 3368 | 3369 | 3370 | 3371 | 3372 | 3373 | 3374 | 3375 | 3376 | 3377 | 3378 | 3379 | 3380 | 3381 | 3382 | 3383 | 3384 | 3385 | 3386 | 3387 | 3388 | 3389 | 3390 | 3391 | 3392 | 3393 | 3394 | 3395 | 3396 | 3397 | 3398 | 3399 | 3400 | 3401 | Small, 3.2x2.5mm, SMD Crystal 3402 | 3403 | 3404 | 3405 | 3406 | 3407 | 3408 | 3409 | 3410 | 3411 | 3412 | 3413 | 3414 | 3415 | 3416 | 3417 | 3418 | 3419 | 3420 | 3421 | 3422 | 3423 | 3424 | 3425 | 3426 | 3427 | 3428 | 3429 | 3430 | 3431 | 3432 | <h3>MBT3904DW1 Dual NPN Transistors</h3> 3433 | <p>The MBT3904W1 puts two general purpose 3904 NPN transistors in a single package.</p> 3434 | <p><a href="http://www.onsemi.com/pub_link/Collateral/MBT3904DW1T1-D.PDF">Datasheet</a></p> 3435 | 3436 | 3437 | 3438 | 3439 | 3440 | 3441 | 3442 | 3443 | 3444 | 3445 | 3446 | 3447 | 3448 | 3449 | 3450 | 3451 | 3452 | 3453 | 3454 | 3455 | 3456 | 3457 | 3458 | 3459 | 3460 | 3461 | 3462 | 3463 | 3464 | 3465 | 3466 | 3467 | 3468 | 3469 | 3470 | 3471 | 3472 | 3473 | 3474 | 3475 | 3476 | 3477 | 3478 | 3479 | 3480 | 3481 | 3482 | 3483 | 3484 | 3485 | 3486 | 3487 | 3488 | 3489 | 3490 | 3491 | 3492 | 3493 | 3494 | 3495 | 3496 | 3497 | 3498 | 3499 | 3500 | 3501 | 3502 | 3503 | 3504 | 3505 | 3506 | 3507 | 3508 | 3509 | 3510 | 3511 | 3512 | 3513 | 3514 | 3515 | 3516 | 3517 | 3518 | 3519 | 3520 | 3521 | 3522 | 3523 | 3524 | 3525 | 3526 | 3527 | 3528 | 3529 | 3530 | 3531 | 3532 | 3533 | 3534 | 3535 | 3536 | 3537 | 3538 | 3539 | 3540 | 3541 | 3542 | 3543 | 3544 | 3545 | 3546 | 3547 | 3548 | 3549 | 3550 | 3551 | 3552 | 3553 | 3554 | 3555 | 3556 | 3557 | 3558 | 3559 | A simple USB 2.0 to Serial IC. 3560 | 3561 | 3562 | 3563 | 3564 | 3565 | 3566 | 3567 | 3568 | 3569 | 3570 | 3571 | 3572 | 3573 | 3574 | 3575 | 3576 | 3577 | 3578 | 3579 | 3580 | 3581 | 3582 | 3583 | 3584 | 3585 | 3586 | 3587 | 3588 | 3589 | 3590 | 3591 | 3592 | 3593 | 3594 | 3595 | 3596 | --------------------------------------------------------------------------------