mirror of
https://github.com/sanni/cartreader.git
synced 2024-12-27 21:41:52 +01:00
Merge branch 'master' of github.com:sanni/cartreader into cps3
This commit is contained in:
commit
c301d610ba
@ -460,7 +460,7 @@ uint32_t calculateCRC(char* fileName, char* folder, unsigned long offset) {
|
||||
/******************************************
|
||||
CRC Functions for Atari, Fairchild, Ody2, Arc, etc. modules
|
||||
*****************************************/
|
||||
#if (defined(ENABLE_ODY2) || defined(ENABLE_ARC) || defined(ENABLE_FAIRCHILD) || defined(ENABLE_MSX) || defined(ENABLE_POKE) || defined(ENABLE_2600) || defined(ENABLE_7800) || defined(ENABLE_C64) || defined(ENABLE_VECTREX) || defined(ENABLE_NES) || defined(ENABLE_LYNX) || defined(ENABLE_ATARI8) || defined(ENABLE_BALLY) || defined(ENABLE_LEAP) || defined(ENABLE_LJ) || defined(ENABLE_LJPRO) || defined(ENABLE_PV1000) || defined(ENABLE_PYUUTA) || defined(ENABLE_RCA) || defined(ENABLE_TI99) || defined(ENABLE_TRS80) || defined(ENABLE_VIC20) || defined(ENABLE_VSMILE))
|
||||
#if (defined(ENABLE_ODY2) || defined(ENABLE_ARC) || defined(ENABLE_FAIRCHILD) || defined(ENABLE_MSX) || defined(ENABLE_POKE) || defined(ENABLE_2600) || defined(ENABLE_7800) || defined(ENABLE_C64) || defined(ENABLE_VECTREX) || defined(ENABLE_NES) || defined(ENABLE_LYNX) || defined(ENABLE_ATARI8) || defined(ENABLE_BALLY) || defined(ENABLE_LEAP) || defined(ENABLE_LJ) || defined(ENABLE_LJPRO) || defined(ENABLE_PV1000) || defined(ENABLE_PYUUTA) || defined(ENABLE_RCA) || defined(ENABLE_TI99) || defined(ENABLE_TRS80) || defined(ENABLE_VIC20) || defined(ENABLE_VSMILE) || defined(ENABLE_CPS3))
|
||||
|
||||
void printCRC(char* checkFile, uint32_t* crcCopy, unsigned long offset) {
|
||||
uint32_t crc = calculateCRC(checkFile, folder, offset);
|
||||
@ -883,8 +883,6 @@ boolean checkCartSelection(FsFile& database, void (*readData)(FsFile&, void*), v
|
||||
return false;
|
||||
}
|
||||
|
||||
#if ( \
|
||||
defined(ENABLE_ODY2) || defined(ENABLE_ARC) || defined(ENABLE_FAIRCHILD) || defined(ENABLE_MSX) || defined(ENABLE_POKE) || defined(ENABLE_2600) || defined(ENABLE_5200) || defined(ENABLE_7800) || defined(ENABLE_C64) || defined(ENABLE_VECTREX) || defined(ENABLE_NES) || defined(ENABLE_GBX) || defined(ENABLE_BALLY) || defined(ENABLE_PV1000) || defined(ENABLE_PYUUTA) || defined(ENABLE_RCA) || defined(ENABLE_TRS80) || defined(ENABLE_VIC20) || defined(ENABLE_LEAP) || defined(ENABLE_LJ) || defined(ENABLE_VSMILE) || defined(ENABLE_TI99) || defined(ENABLE_ATARI8) || defined(ENABLE_CPS3))
|
||||
void printInstructions() {
|
||||
println_Msg(FS(FSTRING_EMPTY));
|
||||
|
||||
@ -988,7 +986,6 @@ int navigateMenu(__attribute__((unused)) int min, __attribute__((unused)) int ma
|
||||
return selectedNumber;
|
||||
}
|
||||
#endif /* (ENABLE_OLED | ENABLE_LCD) */
|
||||
#endif /* ENABLE_<CORES> */
|
||||
|
||||
#if (defined(ENABLE_OLED) || defined(ENABLE_LCD))
|
||||
void starting_letter__subDraw(byte selection, byte line) {
|
||||
@ -2344,8 +2341,8 @@ void setup() {
|
||||
}
|
||||
|
||||
// Start new log if file is too big
|
||||
if (myLog.fileSize() > 262144) {
|
||||
EEPROM_readAnything(0, foldern);
|
||||
EEPROM_readAnything(0, foldern);
|
||||
if ((myLog.fileSize() > 262144) && (foldern < 9999) && (foldern > 0)){
|
||||
sprintf(folder, "%s%d%s", "OSCR_LOG_", foldern, ".txt");
|
||||
foldern = foldern + 1;
|
||||
EEPROM_writeAnything(0, foldern);
|
||||
|
@ -49,11 +49,10 @@
|
||||
/****/
|
||||
|
||||
/* [ Clock Generator ---------------------------------------------- ]
|
||||
Enable this if you have the clock generator module. This will
|
||||
automatically be enabled if you selected HW2 or newer above.
|
||||
Disable this if you don't have the clock generator module.
|
||||
*/
|
||||
|
||||
//#define ENABLE_CLOCKGEN
|
||||
#define ENABLE_CLOCKGEN
|
||||
|
||||
/****/
|
||||
|
||||
@ -535,7 +534,7 @@
|
||||
with all Cart Readers
|
||||
*/
|
||||
|
||||
//#define OPTION_N64_FASTCRC
|
||||
#define OPTION_N64_FASTCRC
|
||||
|
||||
/****/
|
||||
|
||||
@ -566,29 +565,21 @@
|
||||
#define ENABLE_NEOPIXEL
|
||||
#define ENABLE_ROTARY
|
||||
//# define rotate_counter_clockwise
|
||||
#define ENABLE_CLOCKGEN
|
||||
#define OPTION_N64_FASTCRC
|
||||
#define OPTION_WS_ADAPTER_V2
|
||||
#endif
|
||||
|
||||
#if (defined(HW2) || defined(HW3))
|
||||
#define ENABLE_OLED
|
||||
#define ENABLE_BUTTON2
|
||||
#define ENABLE_CLOCKGEN
|
||||
#define ENABLE_CA_LED
|
||||
#define OPTION_N64_FASTCRC
|
||||
#endif
|
||||
|
||||
#if defined(HW1)
|
||||
#define ENABLE_OLED
|
||||
//#define ENABLE_CLOCKGEN
|
||||
//#define OPTION_N64_FASTCRC
|
||||
#endif
|
||||
|
||||
#if defined(SERIAL_MONITOR)
|
||||
#define ENABLE_SERIAL
|
||||
//#define ENABLE_CLOCKGEN
|
||||
//#define OPTION_N64_FASTCRC
|
||||
#endif
|
||||
|
||||
/* Firmware updater only works with HW3 and HW5 */
|
||||
|
@ -268,28 +268,34 @@ void mdMenu() {
|
||||
resetFlash_MD();
|
||||
idFlash_MD();
|
||||
resetFlash_MD();
|
||||
print_Msg(F("Flash ID: "));
|
||||
println_Msg(flashid_str);
|
||||
if (flashid == 0xC2F1) {
|
||||
println_Msg(F("MX29F1610 detected"));
|
||||
flashSize = 2097152;
|
||||
} else if (flashid == 0x017E) {
|
||||
println_Msg(F("S29GL064N detected"));
|
||||
flashSize = 4194304;
|
||||
} else {
|
||||
print_Msg(F("Flash ID: "));
|
||||
println_Msg(flashid_str);
|
||||
print_FatalError(F("Error: Unknown flashrom"));
|
||||
}
|
||||
println_Msg("Erasing...");
|
||||
display_Update();
|
||||
|
||||
eraseFlash_MD();
|
||||
resetFlash_MD();
|
||||
blankcheck_MD();
|
||||
write29F1610_MD();
|
||||
if (flashid == 0xC2F1)
|
||||
write29F1610_MD();
|
||||
else if (flashid == 0x017E)
|
||||
write29GL_MD();
|
||||
resetFlash_MD();
|
||||
delay(1000);
|
||||
resetFlash_MD();
|
||||
delay(1000);
|
||||
println_Msg("Verifying...");
|
||||
verifyFlash_MD();
|
||||
// Set CS(PH3) HIGH
|
||||
PORTH |= (1 << 3);
|
||||
println_Msg(FS(FSTRING_EMPTY));
|
||||
// Prints string out of the common strings array either with or without newline
|
||||
print_STR(press_button_STR, 1);
|
||||
display_Update();
|
||||
@ -1976,6 +1982,11 @@ void write29F1610_MD() {
|
||||
// Set data pins to output
|
||||
dataOut_MD();
|
||||
|
||||
//Initialize progress bar
|
||||
uint32_t processedProgressBar = 0;
|
||||
uint32_t totalProgressBar = (uint32_t)fileSize / 2;
|
||||
draw_progressbar(0, totalProgressBar);
|
||||
|
||||
// Fill sdBuffer with 1 page at a time then write it repeat until all bytes are written
|
||||
int d = 0;
|
||||
for (unsigned long currByte = 0; currByte < fileSize / 2; currByte += 64) {
|
||||
@ -2002,6 +2013,90 @@ void write29F1610_MD() {
|
||||
// Check if write is complete
|
||||
delayMicroseconds(100);
|
||||
busyCheck_MD();
|
||||
|
||||
// update progress bar
|
||||
processedProgressBar += 64;
|
||||
draw_progressbar(processedProgressBar, totalProgressBar);
|
||||
}
|
||||
|
||||
// Set data pins to input again
|
||||
dataIn_MD();
|
||||
|
||||
// Close the file:
|
||||
myFile.close();
|
||||
} else {
|
||||
print_STR(open_file_STR, 1);
|
||||
display_Update();
|
||||
}
|
||||
}
|
||||
|
||||
void write29GL_MD() {
|
||||
// Create filepath
|
||||
sprintf(filePath, "%s/%s", filePath, fileName);
|
||||
print_STR(flashing_file_STR, 0);
|
||||
print_Msg(filePath);
|
||||
println_Msg(F("..."));
|
||||
display_Update();
|
||||
|
||||
// Open file on sd card
|
||||
if (myFile.open(filePath, O_READ)) {
|
||||
// Get rom size from file
|
||||
fileSize = myFile.fileSize();
|
||||
if (fileSize > flashSize) {
|
||||
print_FatalError(file_too_big_STR);
|
||||
}
|
||||
// Set data pins to output
|
||||
dataOut_MD();
|
||||
|
||||
//Initialize progress bar
|
||||
uint32_t processedProgressBar = 0;
|
||||
uint32_t totalProgressBar = (uint32_t)fileSize;
|
||||
draw_progressbar(0, totalProgressBar);
|
||||
|
||||
for (unsigned long currSdBuffer = 0; currSdBuffer < fileSize; currSdBuffer += 512) {
|
||||
myFile.read(sdBuffer, 512);
|
||||
|
||||
// Blink led
|
||||
if (currSdBuffer % 4096 == 0) {
|
||||
blinkLED();
|
||||
}
|
||||
|
||||
for (int currWriteBuffer = 0; currWriteBuffer < 512; currWriteBuffer += 32) {
|
||||
// Two unlock cycles
|
||||
writeFlash_MD(0x555, 0xaa);
|
||||
writeFlash_MD(0x2aa, 0x55);
|
||||
// Write Buffer Load command to Sector Address
|
||||
writeFlash_MD((currSdBuffer + currWriteBuffer) / 2, 0x25);
|
||||
// Sector Address, Word count
|
||||
writeFlash_MD((currSdBuffer + currWriteBuffer) / 2, 16 - 1);
|
||||
|
||||
// Load buffer
|
||||
word currWord;
|
||||
for (byte currByte = 0; currByte < 32; currByte += 2) {
|
||||
currWord = ((sdBuffer[currWriteBuffer + currByte] & 0xFF) << 8) | (sdBuffer[currWriteBuffer + currByte + 1] & 0xFF);
|
||||
writeFlash_MD((currSdBuffer + currWriteBuffer + currByte) / 2, currWord);
|
||||
}
|
||||
|
||||
// Write buffer
|
||||
writeFlash_MD((currSdBuffer + currWriteBuffer + 32 - 2) / 2, 0x29);
|
||||
|
||||
// Check if write is complete
|
||||
// Set data pins to input
|
||||
dataIn_MD();
|
||||
|
||||
// Read the status register
|
||||
word statusReg = readFlash_MD((currSdBuffer + currWriteBuffer + 32 - 2) / 2);
|
||||
|
||||
while ((statusReg | 0xFF7F) != (currWord | 0xFF7F)) {
|
||||
statusReg = readFlash_MD((currSdBuffer + currWriteBuffer + 32 - 2) / 2);
|
||||
}
|
||||
|
||||
// Set data pins to output
|
||||
dataOut_MD();
|
||||
}
|
||||
// update progress bar
|
||||
processedProgressBar += 512;
|
||||
draw_progressbar(processedProgressBar, totalProgressBar);
|
||||
}
|
||||
|
||||
// Set data pins to input again
|
||||
|
@ -101,7 +101,7 @@ static const struct mapper_NES PROGMEM mapsize[] = {
|
||||
{ 78, 3, 3, 5, 5, 0, 0 }, // irem 74hc161/32
|
||||
{ 79, 1, 2, 2, 3, 0, 0 }, // NINA-03/06 by AVE [UNLICENSED]
|
||||
{ 80, 3, 3, 5, 6, 0, 1 }, // taito x1-005 [prgram r/w]
|
||||
{ 82, 3, 3, 5, 6, 0, 1 }, // taito x1-017 [prgram r/w]
|
||||
{ 82, 3, 3, 5, 6, 0, 1 }, // taito x1-017 wrong bank order [prgram r/w]
|
||||
// 84 - bad mapper, not used
|
||||
{ 85, 3, 5, 0, 5, 0, 1 }, // vrc7 [sram r/w]
|
||||
{ 86, 3, 3, 4, 4, 0, 0 }, // jaleco jf-13 (moero pro yakyuu)
|
||||
@ -174,7 +174,8 @@ static const struct mapper_NES PROGMEM mapsize[] = {
|
||||
{ 246, 5, 5, 7, 7, 0, 0 }, // C&E Feng Shen Bang [UNLICENSED]
|
||||
// 248 - bad mapper, not used
|
||||
{ 255, 4, 7, 5, 8, 0, 0 }, // 110-in-1 multicart (same as 225) [UNLICENSED]
|
||||
{ 446, 0, 8, 0, 0, 0, 0 } // Mindkids SMD172B_FGPA submapper 0 & 1
|
||||
{ 446, 0, 8, 0, 0, 0, 0 }, // Mindkids SMD172B_FGPA submapper 0 & 1
|
||||
{ 552, 0, 5, 0, 6, 0, 0 } // Taito X1-017 actual bank order
|
||||
};
|
||||
|
||||
const char _file_name_no_number_fmt[] PROGMEM = "%s.%s";
|
||||
@ -2286,19 +2287,17 @@ void readPRG(bool readrom) {
|
||||
case 80: // 128K
|
||||
case 207: // 256K [CART SOMETIMES NEEDS POWERCYCLE]
|
||||
banks = int_pow(2, prgsize) * 2;
|
||||
for (size_t i = 0; i < banks; i += 2) {
|
||||
for (size_t i = 0; i < banks; i++) {
|
||||
write_prg_byte(0x7EFA, i); // PRG Bank 0 ($8000-$9FFF)
|
||||
write_prg_byte(0x7EFC, i + 1); // PRG Bank 1 ($A000-$BFFF)
|
||||
dumpBankPRG(0x0, 0x4000, base);
|
||||
dumpBankPRG(0x0, 0x2000, base);
|
||||
}
|
||||
break;
|
||||
|
||||
case 82: // 128K
|
||||
banks = int_pow(2, prgsize) * 2;
|
||||
for (size_t i = 0; i < banks; i += 2) {
|
||||
write_prg_byte(0x7EFA, i << 2); // PRG Bank 0 ($8000-$9FFF)
|
||||
write_prg_byte(0x7EFB, (i + 1) << 2); // PRG Bank 1 ($A000-$BFFF)
|
||||
dumpBankPRG(0x0, 0x4000, base); // 8K Banks ($8000-$BFFF)
|
||||
for (size_t i = 0; i < banks; i++) {
|
||||
write_prg_byte(0x7EFA, i << 2); // PRG Bank 0 ($8000-$9FFF)
|
||||
dumpBankPRG(0x0, 0x2000, base); // 8K Banks ($8000-$BFFF)
|
||||
}
|
||||
break;
|
||||
|
||||
@ -2736,18 +2735,24 @@ void readPRG(bool readrom) {
|
||||
break;
|
||||
|
||||
case 446:
|
||||
{
|
||||
banks = int_pow(2, prgsize) * 2;
|
||||
write_prg_byte(0x5003, 0);
|
||||
write_prg_byte(0x5005, 0);
|
||||
for (uint8_t i = 0; i < banks; i++) { // 8192 for 64MiB
|
||||
write_prg_byte(0x5002, i >> 8); // outer bank LSB
|
||||
write_prg_byte(0x5001, i); // outer bank MSB
|
||||
write_prg_byte(0x8000, 0);
|
||||
dumpBankPRG(0x0, 0x2000, base);
|
||||
}
|
||||
break;
|
||||
banks = int_pow(2, prgsize) * 2;
|
||||
write_prg_byte(0x5003, 0);
|
||||
write_prg_byte(0x5005, 0);
|
||||
for (uint8_t i = 0; i < banks; i++) { // 8192 for 64MiB
|
||||
write_prg_byte(0x5002, i >> 8); // outer bank LSB
|
||||
write_prg_byte(0x5001, i); // outer bank MSB
|
||||
write_prg_byte(0x8000, 0);
|
||||
dumpBankPRG(0x0, 0x2000, base);
|
||||
}
|
||||
break;
|
||||
|
||||
case 552:
|
||||
banks = int_pow(2, prgsize) * 2;
|
||||
for (size_t i = 0; i < banks; i++) {
|
||||
write_prg_byte(0x7EFA, ((i & 0x01) << 5) | ((i & 0x02) << 3) | ((i & 0x04) << 1) | ((i & 0x08) >> 1) | ((i & 0x10) >> 3) | ((i & 0x20) >> 5)); // PRG Bank 0 ($8000-$9FFF)
|
||||
dumpBankPRG(0x0, 0x2000, base); // 8K Banks ($8000-$BFFF)
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (!readrom) {
|
||||
myFile.flush();
|
||||
@ -3296,13 +3301,13 @@ void readCHR(bool readrom) {
|
||||
case 80: // 128K/256K
|
||||
case 82: // 128K/256K
|
||||
case 207: // 128K [CART SOMETIMES NEEDS POWERCYCLE]
|
||||
banks = int_pow(2, chrsize) * 4;
|
||||
for (size_t i = 0; i < banks; i += 4) {
|
||||
write_prg_byte(0x7EF2, i); // CHR Bank 2 [REGISTERS 0x7EF0/0x7EF1 WON'T WORK]
|
||||
write_prg_byte(0x7EF3, i + 1); // CHR Bank 3
|
||||
write_prg_byte(0x7EF4, i + 2); // CHR Bank 4
|
||||
write_prg_byte(0x7EF5, i + 3); // CHR Bank 5
|
||||
dumpBankCHR(0x0, 0x2000);
|
||||
case 552:
|
||||
banks = int_pow(2, chrsize) * 2;
|
||||
write_prg_byte(0x7EF6, 0x00); // CHR mode [2x 2KiB banks at $0000-$0FFF]
|
||||
for (size_t i = 0; i < banks; i += 2) {
|
||||
write_prg_byte(0x7EF0, i << 1);
|
||||
write_prg_byte(0x7EF1, (i + 1) << 1);
|
||||
dumpBankCHR(0x0, 0x1000);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -4651,4 +4656,4 @@ void A29040B_writeFLASH() {
|
||||
#endif
|
||||
//******************************************
|
||||
// End of File
|
||||
//******************************************
|
||||
//******************************************
|
||||
|
@ -0,0 +1,149 @@
|
||||
(footprint "Header - VSELECT - Switch Pad"
|
||||
(version 20240108)
|
||||
(generator "pcbnew")
|
||||
(generator_version "8.0")
|
||||
(layer "F.Cu")
|
||||
(property "Reference" "REF**"
|
||||
(at 1.5 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(uuid "e990701a-bcd3-4e87-938f-905cc73f4049")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
(justify left)
|
||||
)
|
||||
)
|
||||
(property "Value" "Header - VSELECT - Switch Pad"
|
||||
(at 0 -3 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "57f87a13-d07d-4241-9113-a8ae9813bd54")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
(justify left)
|
||||
)
|
||||
)
|
||||
(property "Footprint" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "b8f04fcc-87a3-414f-bb9b-2ecc7118b59b")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Datasheet" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "3d49b41b-232c-446a-a7d2-7e9406628a16")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Description" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "9acea4ec-050a-4091-b9fb-b5af0f663691")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(attr through_hole exclude_from_pos_files exclude_from_bom)
|
||||
(fp_line
|
||||
(start -0.5 -0.9)
|
||||
(end 0.5 -0.9)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(net 1079758)
|
||||
(uuid "16e9f1bd-2634-4050-88dc-9b77c48ccec4")
|
||||
)
|
||||
(fp_line
|
||||
(start -0.5 0.9)
|
||||
(end 0.5 0.9)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(net 1079758)
|
||||
(uuid "f526eac6-e115-46ef-a7f0-3801423d2324")
|
||||
)
|
||||
(fp_arc
|
||||
(start -0.5 0.9)
|
||||
(mid -1.4 0)
|
||||
(end -0.5 -0.9)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(net 1079758)
|
||||
(uuid "856b8498-a652-42ab-a3b2-e7e22b982e9b")
|
||||
)
|
||||
(fp_arc
|
||||
(start 0.5 -0.9)
|
||||
(mid 1.4 0)
|
||||
(end 0.5 0.9)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(net 1079758)
|
||||
(uuid "a90e5060-0c66-4477-b686-7b6331ee07d7")
|
||||
)
|
||||
(fp_poly
|
||||
(pts
|
||||
(arc
|
||||
(start 0.5 0.9)
|
||||
(mid 1.4 0)
|
||||
(end 0.5 -0.9)
|
||||
)
|
||||
(arc
|
||||
(start -0.5 -0.9)
|
||||
(mid -1.4 0)
|
||||
(end -0.5 0.9)
|
||||
)
|
||||
)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(fill none)
|
||||
(layer "F.CrtYd")
|
||||
(net 1079758)
|
||||
(uuid "a7838a50-bc03-4678-97c5-261b02963260")
|
||||
)
|
||||
(pad "1" thru_hole oval
|
||||
(at 0 0 90)
|
||||
(size 1.5 2.5)
|
||||
(drill 0.9)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "7e08b2cb-d202-4b0c-bca7-e40031c1593d")
|
||||
)
|
||||
)
|
@ -0,0 +1,499 @@
|
||||
(footprint "IC - VSELECT - TPS2113"
|
||||
(version 20240108)
|
||||
(generator "pcbnew")
|
||||
(generator_version "8.0")
|
||||
(layer "F.Cu")
|
||||
(descr "Combination footprint supports 8-TSSOP and 8-SON; has paste only for 8-SON!")
|
||||
(tags "TPS2113")
|
||||
(property "Reference" "REF**"
|
||||
(at 0 -1.7 0)
|
||||
(layer "F.SilkS")
|
||||
(uuid "b88a0179-0761-4be2-96b7-8c61f1f96e59")
|
||||
(effects
|
||||
(font
|
||||
(size 0.5 0.5)
|
||||
(thickness 0.12)
|
||||
)
|
||||
(justify bottom)
|
||||
)
|
||||
)
|
||||
(property "Value" "TPS2113"
|
||||
(at 0 1.6 0)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "06ebc777-3196-4aaf-bbe7-13efe7fdad77")
|
||||
(effects
|
||||
(font
|
||||
(size 0.5 0.5)
|
||||
(thickness 0.1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Footprint" ""
|
||||
(at 0 0 0)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "3ef351ab-973f-4a0f-bed5-a8677d25a1c0")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Datasheet" ""
|
||||
(at 0 0 0)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "9ccfc8fe-ab64-4a24-9220-ab49938f01bd")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Description" ""
|
||||
(at 0 0 0)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "38482317-8c00-445f-a32b-16a9f0ae6e2a")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(clearance 0.15)
|
||||
(attr smd)
|
||||
(fp_line
|
||||
(start -1.9 -1.559999)
|
||||
(end 1.45 -1.559999)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "08a1f8ac-6ee4-400e-a107-97b5e2e0b9f7")
|
||||
)
|
||||
(fp_line
|
||||
(start -1.4 1.56)
|
||||
(end 1.4 1.56)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "1cc6c8eb-057a-4b98-bb71-ad400f0224f5")
|
||||
)
|
||||
(fp_poly
|
||||
(pts
|
||||
(xy -3.049999 -1.5) (xy -3.289999 -1.83) (xy -2.809999 -1.83) (xy -3.049999 -1.5)
|
||||
)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(fill solid)
|
||||
(layer "F.SilkS")
|
||||
(uuid "90d02910-b0b5-455b-b9cf-79a5d97bd0e6")
|
||||
)
|
||||
(fp_line
|
||||
(start -4.274999 -1.974996)
|
||||
(end -4.274999 1.975002)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "ad3685e9-b74c-4c5d-91af-e408afcccd8b")
|
||||
)
|
||||
(fp_line
|
||||
(start -4.274999 1.975002)
|
||||
(end 4.275001 1.975002)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "87be0132-56c4-4a96-94b0-572eb7aeeacd")
|
||||
)
|
||||
(fp_line
|
||||
(start 4.275001 -1.974996)
|
||||
(end -4.274999 -1.974996)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "c14ed152-172c-423f-8883-5491ac43e712")
|
||||
)
|
||||
(fp_line
|
||||
(start 4.275001 -1.974996)
|
||||
(end 4.275001 -1.974996)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "ad17112a-a282-4d03-9599-e5071930fd52")
|
||||
)
|
||||
(fp_line
|
||||
(start 4.275001 1.975002)
|
||||
(end 4.275001 -1.974996)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "e2284efd-d624-4d28-a16f-258f233bb4d0")
|
||||
)
|
||||
(fp_line
|
||||
(start -2.249998 -1.549999)
|
||||
(end 2.250001 -1.549999)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "cf795279-a1c3-4f8e-8ee6-c18fb6e4022e")
|
||||
)
|
||||
(fp_line
|
||||
(start -2.249998 1.549999)
|
||||
(end -2.249998 -1.549999)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "a5ee63ff-b116-48bd-9f0b-9a0f0351ba21")
|
||||
)
|
||||
(fp_line
|
||||
(start -2.249998 1.549999)
|
||||
(end 2.250001 1.549999)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "083e42b3-9708-45fd-8a79-c4bfdebafc6e")
|
||||
)
|
||||
(fp_line
|
||||
(start -1.5 -0.45)
|
||||
(end -1 -0.95)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "5646e25c-d36f-4b3f-8c17-e7d606ab68ee")
|
||||
)
|
||||
(fp_line
|
||||
(start -1.5 1.05)
|
||||
(end -1.5 -0.45)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "0cb38e21-0942-4639-b1e4-c1c547ef99c2")
|
||||
)
|
||||
(fp_line
|
||||
(start -1 -0.95)
|
||||
(end 1.5 -0.95)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "140c2234-00e5-41fc-aa35-2e83495cf582")
|
||||
)
|
||||
(fp_line
|
||||
(start 1.5 -0.95)
|
||||
(end 1.5 1.05)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "3aa39632-a4f3-44e0-9af6-65a39825bcb7")
|
||||
)
|
||||
(fp_line
|
||||
(start 1.5 1.05)
|
||||
(end -1.5 1.05)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "d637cbcc-1ebf-4cc4-a681-de3ee58fd49f")
|
||||
)
|
||||
(fp_line
|
||||
(start 2.250001 1.549999)
|
||||
(end 2.250001 -1.549999)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "e58b3075-2f37-49c9-a05d-efca560b6aaa")
|
||||
)
|
||||
(fp_circle
|
||||
(center -1.35 -0.649999)
|
||||
(end -0.850001 -0.649999)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(fill none)
|
||||
(layer "F.Fab")
|
||||
(uuid "39c76878-2dab-4c60-b192-dd619b9adad7")
|
||||
)
|
||||
(fp_text_box "*** NOTICE ***\nSolder paste has been added for the 8-SON package only. If using the 8-TSSOP package for machine assembly or with a stencil you must edit the pads and enable the solder paste layer for the 8-TSSOP as well as disable it for the 8-SON pads."
|
||||
(start -4.3 2.1)
|
||||
(end 4.3 4.3)
|
||||
(layer "Cmts.User")
|
||||
(uuid "8bc7aa09-7521-4ccd-aea3-531f96869560")
|
||||
(effects
|
||||
(font
|
||||
(size 0.2 0.2)
|
||||
(thickness 0.03175)
|
||||
)
|
||||
(justify top)
|
||||
)
|
||||
(border yes)
|
||||
(stroke
|
||||
(width 0.03175)
|
||||
(type dot)
|
||||
)
|
||||
)
|
||||
(pad "" smd roundrect
|
||||
(at 0 -0.63)
|
||||
(size 1.47 1.06)
|
||||
(layers "F.Paste")
|
||||
(roundrect_rratio 0.04716981132)
|
||||
(uuid "30fe792c-f94a-45c1-a54a-64c7a1b14ae4")
|
||||
)
|
||||
(pad "" smd roundrect
|
||||
(at 0 0.63)
|
||||
(size 1.47 1.06)
|
||||
(layers "F.Paste")
|
||||
(roundrect_rratio 0.04716981132)
|
||||
(uuid "c22ac406-1ad9-4a41-9758-aca31eb2dc2e")
|
||||
)
|
||||
(pad "1" smd roundrect
|
||||
(at -3.049999 -0.974999 270)
|
||||
(size 0.45 1.6)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.111111358)
|
||||
(uuid "d256954f-70fb-494c-81c8-a5f244595343")
|
||||
)
|
||||
(pad "1" smd roundrect
|
||||
(at -1.3975 -0.98)
|
||||
(size 0.6 0.3)
|
||||
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(roundrect_rratio 0.1666666667)
|
||||
(solder_mask_margin 0.07)
|
||||
(uuid "fa06c472-f92f-4c1e-929f-f77349ea0fc3")
|
||||
)
|
||||
(pad "2" smd roundrect
|
||||
(at -3.049999 -0.324998 270)
|
||||
(size 0.45 1.6)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.111111358)
|
||||
(uuid "b41b859e-a101-4f5b-86a9-b615346717ab")
|
||||
)
|
||||
(pad "2" smd roundrect
|
||||
(at -1.3975 -0.33)
|
||||
(size 0.6 0.3)
|
||||
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(roundrect_rratio 0.1666666667)
|
||||
(solder_mask_margin 0.07)
|
||||
(thermal_bridge_width 0.2)
|
||||
(thermal_gap 0.15)
|
||||
(uuid "9d7a0234-f48e-43a7-8d8e-1771318f9f08")
|
||||
)
|
||||
(pad "3" smd roundrect
|
||||
(at -3.049999 0.325001 270)
|
||||
(size 0.45 1.6)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.111111358)
|
||||
(uuid "3786d78b-61c5-44d8-829e-cfba0c4be785")
|
||||
)
|
||||
(pad "3" smd roundrect
|
||||
(at -1.3975 0.32)
|
||||
(size 0.6 0.3)
|
||||
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(roundrect_rratio 0.1666666667)
|
||||
(solder_mask_margin 0.07)
|
||||
(uuid "a8888280-162c-458f-a00b-2f36593c3fa5")
|
||||
)
|
||||
(pad "4" smd roundrect
|
||||
(at -3.049999 0.975002 270)
|
||||
(size 0.45 1.6)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.111111358)
|
||||
(uuid "34947aeb-958c-44f8-a866-c34e8483c279")
|
||||
)
|
||||
(pad "4" smd roundrect
|
||||
(at -1.3975 0.97)
|
||||
(size 0.6 0.3)
|
||||
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(roundrect_rratio 0.1666666667)
|
||||
(solder_mask_margin 0.07)
|
||||
(uuid "a98fffc4-d374-4da8-9047-36ce40640094")
|
||||
)
|
||||
(pad "5" smd roundrect
|
||||
(at 1.4025 0.97)
|
||||
(size 0.6 0.3)
|
||||
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(roundrect_rratio 0.1666666667)
|
||||
(solder_mask_margin 0.07)
|
||||
(thermal_bridge_width 0.2)
|
||||
(thermal_gap 0.15)
|
||||
(uuid "361c2713-c195-455b-ae37-5c7485d7fd28")
|
||||
)
|
||||
(pad "5" smd roundrect
|
||||
(at 3.050002 0.975002 270)
|
||||
(size 0.45 1.6)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.111111358)
|
||||
(uuid "505b3364-2156-4dcd-9c03-00379635931a")
|
||||
)
|
||||
(pad "6" smd roundrect
|
||||
(at 1.4025 0.32)
|
||||
(size 0.6 0.3)
|
||||
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(roundrect_rratio 0.1666666667)
|
||||
(solder_mask_margin 0.07)
|
||||
(uuid "2dd85cb1-e369-4997-b2d8-eecb0b14269e")
|
||||
)
|
||||
(pad "6" smd roundrect
|
||||
(at 3.050002 0.325001 270)
|
||||
(size 0.45 1.6)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.111111358)
|
||||
(uuid "809def39-07a8-48db-997f-9bf556e23926")
|
||||
)
|
||||
(pad "7" smd roundrect
|
||||
(at 1.4025 -0.33)
|
||||
(size 0.6 0.3)
|
||||
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(roundrect_rratio 0.1666666667)
|
||||
(solder_mask_margin 0.07)
|
||||
(uuid "529bbc54-c373-4b88-9cf2-0ae501d108d1")
|
||||
)
|
||||
(pad "7" smd roundrect
|
||||
(at 3.050002 -0.324998 270)
|
||||
(size 0.45 1.6)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.111111358)
|
||||
(uuid "d6f11747-ef29-4700-8968-5a69d977c61d")
|
||||
)
|
||||
(pad "8" smd roundrect
|
||||
(at 1.4025 -0.98)
|
||||
(size 0.6 0.3)
|
||||
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(roundrect_rratio 0.1666666667)
|
||||
(solder_mask_margin 0.07)
|
||||
(uuid "74ab520a-fa20-43ad-b91f-57b0c50830d8")
|
||||
)
|
||||
(pad "8" smd roundrect
|
||||
(at 3.050002 -0.974999 270)
|
||||
(size 0.45 1.6)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.111111358)
|
||||
(uuid "1178c938-7563-444a-8d90-506b7ef62a95")
|
||||
)
|
||||
(pad "9" thru_hole circle
|
||||
(at -0.575 0)
|
||||
(size 0.4 0.4)
|
||||
(drill 0.2)
|
||||
(property pad_prop_heatsink)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(thermal_bridge_width 0.2)
|
||||
(thermal_gap 0.12)
|
||||
(uuid "a0bd05f4-1b9e-430c-afb3-351dfddc04ee")
|
||||
)
|
||||
(pad "9" thru_hole circle
|
||||
(at 0 -0.95)
|
||||
(size 0.4 0.4)
|
||||
(drill 0.2)
|
||||
(property pad_prop_heatsink)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(thermal_bridge_width 0.2)
|
||||
(thermal_gap 0.12)
|
||||
(uuid "a11bd611-37a7-492e-beda-b8c395da6037")
|
||||
)
|
||||
(pad "9" smd roundrect
|
||||
(at 0 0)
|
||||
(size 1.6 2.4)
|
||||
(property pad_prop_heatsink)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.03125)
|
||||
(solder_mask_margin 0.07)
|
||||
(thermal_bridge_width 0.4)
|
||||
(thermal_gap 0.2)
|
||||
(uuid "06803922-4635-4680-96c6-5c6d919714de")
|
||||
)
|
||||
(pad "9" thru_hole circle
|
||||
(at 0 0.95)
|
||||
(size 0.4 0.4)
|
||||
(drill 0.2)
|
||||
(property pad_prop_heatsink)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(thermal_bridge_width 0.2)
|
||||
(thermal_gap 0.12)
|
||||
(uuid "c5eda055-b8ff-4d4b-9902-ba7283d2018c")
|
||||
)
|
||||
(pad "9" thru_hole circle
|
||||
(at 0.575 0)
|
||||
(size 0.4 0.4)
|
||||
(drill 0.2)
|
||||
(property pad_prop_heatsink)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(thermal_bridge_width 0.2)
|
||||
(thermal_gap 0.12)
|
||||
(uuid "b0332c6f-7e75-4f26-b7a4-016c37df7240")
|
||||
)
|
||||
(model "${KICAD7_3DMODEL_DIR}/Package_SO.3dshapes/TSSOP-8_4.4x3mm_P0.65mm.step"
|
||||
(hide yes)
|
||||
(offset
|
||||
(xyz 0 0 0)
|
||||
)
|
||||
(scale
|
||||
(xyz 1 1 1)
|
||||
)
|
||||
(rotate
|
||||
(xyz 0 0 0)
|
||||
)
|
||||
)
|
||||
(model "${KIPRJMOD}/../footprints/!OSCR.3dshapes/TPS2113ADRBR-1.step"
|
||||
(hide yes)
|
||||
(offset
|
||||
(xyz 0 0 0)
|
||||
)
|
||||
(scale
|
||||
(xyz 1 1 1)
|
||||
)
|
||||
(rotate
|
||||
(xyz 0 0 0)
|
||||
)
|
||||
)
|
||||
(model "${KIPRJMOD}/../footprints/!OSCR.3dshapes/TPS2113ADRBR-0.step"
|
||||
(offset
|
||||
(xyz 0 0 0)
|
||||
)
|
||||
(scale
|
||||
(xyz 1 1 1)
|
||||
)
|
||||
(rotate
|
||||
(xyz -90 0 0)
|
||||
)
|
||||
)
|
||||
)
|
@ -1,49 +1,45 @@
|
||||
### Important: The Vselect module PCB is currently untested and may require design revisions to function.
|
||||
# VSELECT: Automatic Voltage Selection Module
|
||||
|
||||
##
|
||||
|
||||
The Vselect module automates voltage selection on HW5. It is to be soldered in place of the voltage selection switch. You cannot use the Vselect module and a power LED at the same time.
|
||||
The VSELECT module automates voltage selection on HW5 by allowing the firmware to set the voltage. The module version is intended to be soldered in place of the voltage selection switch. You cannot use the VSELECT module and a power LED at the same time.
|
||||
|
||||
## Ordering the PCB and Installing the components
|
||||
|
||||
The Vselect module requires SMD/SMC (surface-mounted devices/components) soldering. The pads have been extended slightly to aid in hand-soldering. However, because many people are uncomfortable with hand-soldering such small components automated assembly files suitable for use with JLCPCB have been included. This does significantly increase the cost of the module, however. To use assembly on JLCPCB, upload the gerber as normal and then select to include assembly. On the next page upload `VSelect_bom.csv` and `VSelect-top-pos.csv`. Ensure the part placement looks sane. You may need to manually rotate components. Make sure the dots line up on the chip as well. It should look like this:
|
||||
|
||||
![](https://i.imgur.com/SJk2NCl.png)
|
||||
The VSELECT module requires SMD/SMC (surface-mounted devices/components) soldering. The pads have been extended slightly to aid in hand-soldering. While files suitable for use with JLCPCB's PCBA service have been included, these are unsuitable for most people to use due to the minimum order quantity. If you want fewer than 10 modules it will be cheaper to order them from someone selling pre-built ones.
|
||||
|
||||
## Installation
|
||||
|
||||
To install the module place it over the voltage switch contacts with the component side facing up and solder it in place. You can use stripped wires or pins to bridge between the boards. Once soldered in place you must jump 2 wires off of the board. JP1 should go to pin D38 on the Arduino. The nearest point to jump to is where the resistor for the power LED normally would be installed. Use the rightmost pin next to the screw terminal. After that, you must connect JP2 to ground. There are many places you could tap into ground but the closest is the screw terminal, just be careful not to close the hole which would get in the way of installing a screw. If you want an easier location, the unused screw terminal under the Arduino is probably the easiest.
|
||||
Instructions to build as well as to install the module have moved [to the wiki](https://github.com/sanni/cartreader/wiki/Automatic-Voltage-Selection).
|
||||
|
||||
## Configuration
|
||||
|
||||
The module requires code to function properly. The OSCR should still power on even without the code changes but the voltage will not automatically toggle. To enable automatic toggling, locate this bit of code:
|
||||
|
||||
```
|
||||
//******************************************
|
||||
// HW CONFIGS
|
||||
//******************************************
|
||||
#if (defined(HW4) || defined(HW5))
|
||||
// #define enable_vselect
|
||||
#define enable_LCD
|
||||
/*==== HARDWARE MODULES ===========================================*/
|
||||
|
||||
/* [ Automatic Voltage Selection ---------------------------------- ]
|
||||
Enable this if you have the VSELECT module.
|
||||
*/
|
||||
|
||||
//#define ENABLE_VSELECT
|
||||
```
|
||||
|
||||
...and change it to:
|
||||
|
||||
```
|
||||
//******************************************
|
||||
// HW CONFIGS
|
||||
//******************************************
|
||||
#if (defined(HW4) || defined(HW5))
|
||||
#define enable_vselect
|
||||
#define enable_LCD
|
||||
/*==== HARDWARE MODULES ===========================================*/
|
||||
|
||||
/* [ Automatic Voltage Selection ---------------------------------- ]
|
||||
Enable this if you have the VSELECT module.
|
||||
*/
|
||||
|
||||
#define ENABLE_VSELECT
|
||||
```
|
||||
|
||||
After that simply update/program/flash your Arduino/OSCR as normal. Make sure you enable this every time you update. You can test that voltage switching is occurring with a multimeter by checking between ground and VCC.
|
||||
|
||||
## Notes
|
||||
The module starts in 5V mode and switches to 3V after the Arduino finishes booting. Because of this, you should not install 3V carts before powering the system on. Once on the main menu, the system should be running on 3V.
|
||||
|
||||
The flash function does not currently have a menu to select a voltage. One should be added at a later time.
|
||||
## Updating
|
||||
When the OSCR is using VSELECT-enabled firmware there are a few extra steps you need to take when flashing firmware. First, before connecting the OSCR to a computer, remove the SD card. Next, connect the OSCR to your computer and wait. Once it prompts you, press the button to set the voltage to 5V. Although you can flash the ATmega2560 while running at 3.3V it does not always work and seems more likely to cause the firmware to randomly be corrupt (sometimes right away, sometimes not for a few days). Although you can just reflash the firmware to it to resolve it, having to deal with it is rather inconvenient.
|
||||
|
||||
## Troubleshooting
|
||||
If the 3.3V rail is not powered (i.e. you forgot to solder the jumper on the LCD) then when the module tries to switch to that it will power off the VCC rail. This will appear as a reboot loop where you'll see it briefly power on and then immediately power off only to immediately power on again. This is because the module starts in 5V mode and switches to 3V after the system boots and tells it to do so.
|
||||
If the 3.3V rail is not powered (i.e. you forgot to solder the jumper on the LCD) then when the module tries to switch to that it will power off the VCC rail. This will appear as a reboot loop where you'll see it briefly power on and then immediately power off only to immediately power on again. This is because the module starts in 5V mode and switches to 3.3V after the system boots and tells it to do so.
|
||||
|
@ -1,6 +1,6 @@
|
||||
Designator,Val,Package,Mid X,Mid Y,Rotation,Layer
|
||||
"C1","0.1 uF","C_0402_1005Metric_Pad0.74x0.62mm_HandSolder",37.750000,-19.490000,180.000000,top
|
||||
"C2","0.1 uF","C_0402_1005Metric_Pad0.74x0.62mm_HandSolder",37.717500,-21.490000,0.000000,top
|
||||
"C3","10 uF","C_0402_1005Metric_Pad0.74x0.62mm_HandSolder",37.750000,-20.490000,0.000000,top
|
||||
"R1","550","R_0402_1005Metric_Pad0.72x0.64mm_HandSolder",37.720000,-23.800000,180.000000,top
|
||||
"U1","TPS2113PW","Texas_Instruments-TPS2113PW-Level_A",31.550000,-20.790000,0.000000,top
|
||||
Designator,Mid X,Mid Y,Rotation,Layer
|
||||
C1,37.1275,-19.47,180.0,top
|
||||
C2,37.1275,-21.47,0.0,top
|
||||
C3,37.1275,-20.47,0.0,top
|
||||
R1,37.14,-22.48,180.0,top
|
||||
U1,31.55,-20.79,0.0,top
|
||||
|
|
BIN
hardware/vselect/VSelect.jpg
Normal file
BIN
hardware/vselect/VSelect.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 230 KiB |
File diff suppressed because it is too large
Load Diff
@ -1,12 +1,14 @@
|
||||
{
|
||||
"board": {
|
||||
"active_layer": 37,
|
||||
"active_layer_preset": "All Layers",
|
||||
"active_layer": 0,
|
||||
"active_layer_preset": "",
|
||||
"auto_track_width": true,
|
||||
"hidden_netclasses": [],
|
||||
"hidden_nets": [],
|
||||
"high_contrast_mode": 0,
|
||||
"net_color_mode": 1,
|
||||
"opacity": {
|
||||
"images": 0.6,
|
||||
"pads": 1.0,
|
||||
"tracks": 1.0,
|
||||
"vias": 1.0,
|
||||
@ -65,6 +67,12 @@
|
||||
"visible_layers": "fffffff_ffffffff",
|
||||
"zone_display_mode": 0
|
||||
},
|
||||
"git": {
|
||||
"repo_password": "",
|
||||
"repo_type": "",
|
||||
"repo_username": "",
|
||||
"ssh_key": ""
|
||||
},
|
||||
"meta": {
|
||||
"filename": "VSelect.kicad_prl",
|
||||
"version": 3
|
||||
|
@ -1,15 +1,19 @@
|
||||
{
|
||||
"board": {
|
||||
"3dviewports": [],
|
||||
"design_settings": {
|
||||
"defaults": {
|
||||
"board_outline_line_width": 0.09999999999999999,
|
||||
"copper_line_width": 0.19999999999999998,
|
||||
"apply_defaults_to_fp_fields": false,
|
||||
"apply_defaults_to_fp_shapes": false,
|
||||
"apply_defaults_to_fp_text": false,
|
||||
"board_outline_line_width": 0.1,
|
||||
"copper_line_width": 0.2,
|
||||
"copper_text_italic": false,
|
||||
"copper_text_size_h": 1.5,
|
||||
"copper_text_size_v": 1.5,
|
||||
"copper_text_thickness": 0.3,
|
||||
"copper_text_upright": false,
|
||||
"courtyard_line_width": 0.049999999999999996,
|
||||
"courtyard_line_width": 0.05,
|
||||
"dimension_precision": 4,
|
||||
"dimension_units": 3,
|
||||
"dimensions": {
|
||||
@ -20,7 +24,7 @@
|
||||
"text_position": 0,
|
||||
"units_format": 1
|
||||
},
|
||||
"fab_line_width": 0.09999999999999999,
|
||||
"fab_line_width": 0.1,
|
||||
"fab_text_italic": false,
|
||||
"fab_text_size_h": 1.0,
|
||||
"fab_text_size_v": 1.0,
|
||||
@ -45,7 +49,7 @@
|
||||
"silk_text_upright": false,
|
||||
"zones": {
|
||||
"45_degree_only": false,
|
||||
"min_clearance": 0.508
|
||||
"min_clearance": 0.16
|
||||
}
|
||||
},
|
||||
"diff_pair_dimensions": [
|
||||
@ -62,20 +66,28 @@
|
||||
"rule_severities": {
|
||||
"annular_width": "error",
|
||||
"clearance": "error",
|
||||
"connection_width": "warning",
|
||||
"copper_edge_clearance": "error",
|
||||
"copper_sliver": "warning",
|
||||
"courtyards_overlap": "error",
|
||||
"diff_pair_gap_out_of_range": "error",
|
||||
"diff_pair_uncoupled_length_too_long": "error",
|
||||
"drill_out_of_range": "error",
|
||||
"duplicate_footprints": "warning",
|
||||
"extra_footprint": "warning",
|
||||
"footprint": "error",
|
||||
"footprint_symbol_mismatch": "warning",
|
||||
"footprint_type_mismatch": "error",
|
||||
"hole_clearance": "error",
|
||||
"hole_near_hole": "error",
|
||||
"holes_co_located": "warning",
|
||||
"invalid_outline": "error",
|
||||
"isolated_copper": "warning",
|
||||
"item_on_disabled_layer": "error",
|
||||
"items_not_allowed": "error",
|
||||
"length_out_of_range": "error",
|
||||
"lib_footprint_issues": "warning",
|
||||
"lib_footprint_mismatch": "warning",
|
||||
"malformed_courtyard": "error",
|
||||
"microvia_drill_out_of_range": "error",
|
||||
"missing_courtyard": "ignore",
|
||||
@ -85,9 +97,14 @@
|
||||
"padstack": "error",
|
||||
"pth_inside_courtyard": "ignore",
|
||||
"shorting_items": "error",
|
||||
"silk_edge_clearance": "warning",
|
||||
"silk_over_copper": "warning",
|
||||
"silk_overlap": "warning",
|
||||
"skew_out_of_range": "error",
|
||||
"solder_mask_bridge": "error",
|
||||
"starved_thermal": "error",
|
||||
"text_height": "warning",
|
||||
"text_thickness": "warning",
|
||||
"through_hole_pad_without_hole": "error",
|
||||
"too_many_vias": "error",
|
||||
"track_dangling": "warning",
|
||||
@ -103,24 +120,98 @@
|
||||
"allow_blind_buried_vias": false,
|
||||
"allow_microvias": false,
|
||||
"max_error": 0.005,
|
||||
"min_clearance": 0.0,
|
||||
"min_copper_edge_clearance": 0.0,
|
||||
"min_hole_clearance": 0.25,
|
||||
"min_hole_to_hole": 0.25,
|
||||
"min_microvia_diameter": 0.19999999999999998,
|
||||
"min_microvia_drill": 0.09999999999999999,
|
||||
"min_clearance": 0.11,
|
||||
"min_connection": 0.0,
|
||||
"min_copper_edge_clearance": 0.25,
|
||||
"min_hole_clearance": 0.254,
|
||||
"min_hole_to_hole": 0.4,
|
||||
"min_microvia_diameter": 0.2,
|
||||
"min_microvia_drill": 0.1,
|
||||
"min_resolved_spokes": 2,
|
||||
"min_silk_clearance": 0.0,
|
||||
"min_through_hole_diameter": 0.3,
|
||||
"min_track_width": 0.19999999999999998,
|
||||
"min_via_annular_width": 0.049999999999999996,
|
||||
"min_via_diameter": 0.39999999999999997,
|
||||
"min_text_height": 0.5,
|
||||
"min_text_thickness": 0.08,
|
||||
"min_through_hole_diameter": 0.2,
|
||||
"min_track_width": 0.11,
|
||||
"min_via_annular_width": 0.13,
|
||||
"min_via_diameter": 0.25,
|
||||
"solder_mask_clearance": 0.0,
|
||||
"solder_mask_min_width": 0.0,
|
||||
"solder_mask_to_copper_clearance": 0.005,
|
||||
"use_height_for_length_calcs": true
|
||||
},
|
||||
"teardrop_options": [
|
||||
{
|
||||
"td_onpadsmd": true,
|
||||
"td_onroundshapesonly": false,
|
||||
"td_ontrackend": false,
|
||||
"td_onviapad": true
|
||||
}
|
||||
],
|
||||
"teardrop_parameters": [
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_round_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_rect_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_track_end",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
}
|
||||
],
|
||||
"track_widths": [
|
||||
0.0
|
||||
],
|
||||
"tuning_pattern_settings": {
|
||||
"diff_pair_defaults": {
|
||||
"corner_radius_percentage": 80,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.2,
|
||||
"single_sided": false,
|
||||
"spacing": 1.0
|
||||
},
|
||||
"diff_pair_skew_defaults": {
|
||||
"corner_radius_percentage": 80,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.2,
|
||||
"single_sided": false,
|
||||
"spacing": 0.6
|
||||
},
|
||||
"single_track_defaults": {
|
||||
"corner_radius_percentage": 80,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.2,
|
||||
"single_sided": false,
|
||||
"spacing": 0.6
|
||||
}
|
||||
},
|
||||
"via_dimensions": [
|
||||
{
|
||||
"diameter": 0.0,
|
||||
@ -130,7 +221,15 @@
|
||||
"zones_allow_external_fillets": false,
|
||||
"zones_use_no_outline": true
|
||||
},
|
||||
"layer_presets": []
|
||||
"ipc2581": {
|
||||
"dist": "",
|
||||
"distpn": "",
|
||||
"internal_id": "",
|
||||
"mfg": "",
|
||||
"mpn": ""
|
||||
},
|
||||
"layer_presets": [],
|
||||
"viewports": []
|
||||
},
|
||||
"boards": [],
|
||||
"cvpcb": {
|
||||
@ -317,15 +416,21 @@
|
||||
"bus_label_syntax": "error",
|
||||
"bus_to_bus_conflict": "error",
|
||||
"bus_to_net_conflict": "error",
|
||||
"conflicting_netclasses": "error",
|
||||
"different_unit_footprint": "error",
|
||||
"different_unit_net": "error",
|
||||
"duplicate_reference": "error",
|
||||
"duplicate_sheet_names": "error",
|
||||
"endpoint_off_grid": "warning",
|
||||
"extra_units": "error",
|
||||
"global_label_dangling": "warning",
|
||||
"hier_label_mismatch": "error",
|
||||
"label_dangling": "error",
|
||||
"lib_symbol_issues": "warning",
|
||||
"missing_bidi_pin": "warning",
|
||||
"missing_input_pin": "warning",
|
||||
"missing_power_pin": "error",
|
||||
"missing_unit": "warning",
|
||||
"multiple_net_names": "warning",
|
||||
"net_not_bus_member": "warning",
|
||||
"no_connect_connected": "warning",
|
||||
@ -335,6 +440,7 @@
|
||||
"pin_to_pin": "error",
|
||||
"power_pin_not_driven": "error",
|
||||
"similar_labels": "warning",
|
||||
"simulation_model_issue": "ignore",
|
||||
"unannotated": "error",
|
||||
"unit_value_mismatch": "error",
|
||||
"unresolved_variable": "error",
|
||||
@ -354,8 +460,8 @@
|
||||
"net_settings": {
|
||||
"classes": [
|
||||
{
|
||||
"bus_width": 12.0,
|
||||
"clearance": 0.15,
|
||||
"bus_width": 12,
|
||||
"clearance": 0.12,
|
||||
"diff_pair_gap": 0.25,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.2,
|
||||
@ -365,14 +471,14 @@
|
||||
"name": "Default",
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.25,
|
||||
"via_diameter": 0.8,
|
||||
"via_drill": 0.4,
|
||||
"wire_width": 6.0
|
||||
"track_width": 0.16,
|
||||
"via_diameter": 0.5,
|
||||
"via_drill": 0.2,
|
||||
"wire_width": 6
|
||||
},
|
||||
{
|
||||
"bus_width": 12.0,
|
||||
"clearance": 0.1,
|
||||
"bus_width": 12,
|
||||
"clearance": 0.12,
|
||||
"diff_pair_gap": 0.25,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.2,
|
||||
@ -380,49 +486,126 @@
|
||||
"microvia_diameter": 0.3,
|
||||
"microvia_drill": 0.1,
|
||||
"name": "Power",
|
||||
"nets": [
|
||||
"+3.3V",
|
||||
"+5V",
|
||||
"GND",
|
||||
"VCC"
|
||||
],
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.45,
|
||||
"via_diameter": 0.8,
|
||||
"via_drill": 0.4,
|
||||
"wire_width": 6.0
|
||||
"track_width": 0.24,
|
||||
"via_diameter": 0.5,
|
||||
"via_drill": 0.2,
|
||||
"wire_width": 6
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"version": 2
|
||||
"version": 3
|
||||
},
|
||||
"net_colors": null
|
||||
"net_colors": null,
|
||||
"netclass_assignments": null,
|
||||
"netclass_patterns": [
|
||||
{
|
||||
"netclass": "Power",
|
||||
"pattern": "+3.3V"
|
||||
},
|
||||
{
|
||||
"netclass": "Power",
|
||||
"pattern": "+5V"
|
||||
},
|
||||
{
|
||||
"netclass": "Power",
|
||||
"pattern": "GND"
|
||||
},
|
||||
{
|
||||
"netclass": "Power",
|
||||
"pattern": "VCC"
|
||||
}
|
||||
]
|
||||
},
|
||||
"pcbnew": {
|
||||
"last_paths": {
|
||||
"gencad": "",
|
||||
"idf": "",
|
||||
"netlist": "",
|
||||
"plot": "",
|
||||
"pos_files": "",
|
||||
"specctra_dsn": "",
|
||||
"step": "",
|
||||
"svg": "",
|
||||
"vrml": ""
|
||||
},
|
||||
"page_layout_descr_file": ""
|
||||
},
|
||||
"schematic": {
|
||||
"annotate_start_num": 0,
|
||||
"bom_export_filename": "",
|
||||
"bom_fmt_presets": [],
|
||||
"bom_fmt_settings": {
|
||||
"field_delimiter": ",",
|
||||
"keep_line_breaks": false,
|
||||
"keep_tabs": false,
|
||||
"name": "CSV",
|
||||
"ref_delimiter": ",",
|
||||
"ref_range_delimiter": "",
|
||||
"string_delimiter": "\""
|
||||
},
|
||||
"bom_presets": [],
|
||||
"bom_settings": {
|
||||
"exclude_dnp": false,
|
||||
"fields_ordered": [
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Reference",
|
||||
"name": "Reference",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "Value",
|
||||
"name": "Value",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Datasheet",
|
||||
"name": "Datasheet",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Footprint",
|
||||
"name": "Footprint",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Qty",
|
||||
"name": "${QUANTITY}",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "DNP",
|
||||
"name": "${DNP}",
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"filter_string": "",
|
||||
"group_symbols": true,
|
||||
"name": "Grouped By Value",
|
||||
"sort_asc": true,
|
||||
"sort_field": "Reference"
|
||||
},
|
||||
"connection_grid_size": 50.0,
|
||||
"drawing": {
|
||||
"dashed_lines_dash_length_ratio": 12.0,
|
||||
"dashed_lines_gap_length_ratio": 3.0,
|
||||
"default_line_thickness": 6.0,
|
||||
"default_text_size": 50.0,
|
||||
"field_names": [
|
||||
{
|
||||
"name": "Description",
|
||||
"name": "LCSC",
|
||||
"url": false,
|
||||
"visible": false
|
||||
},
|
||||
{
|
||||
"name": "JLCPCB",
|
||||
"name": "Part",
|
||||
"url": false,
|
||||
"visible": false
|
||||
}
|
||||
@ -434,6 +617,11 @@
|
||||
"intersheets_ref_suffix": "",
|
||||
"junction_size_choice": 3,
|
||||
"label_size_ratio": 0.375,
|
||||
"operating_point_overlay_i_precision": 3,
|
||||
"operating_point_overlay_i_range": "~A",
|
||||
"operating_point_overlay_v_precision": 3,
|
||||
"operating_point_overlay_v_range": "~V",
|
||||
"overbar_offset_ratio": 1.23,
|
||||
"pin_symbol_size": 25.0,
|
||||
"text_offset_ratio": 0.15
|
||||
},
|
||||
@ -455,14 +643,19 @@
|
||||
"page_layout_descr_file": "",
|
||||
"plot_directory": "",
|
||||
"spice_adjust_passive_values": false,
|
||||
"spice_current_sheet_as_root": false,
|
||||
"spice_external_command": "spice \"%I\"",
|
||||
"spice_model_current_sheet_as_root": true,
|
||||
"spice_save_all_currents": false,
|
||||
"spice_save_all_dissipations": false,
|
||||
"spice_save_all_voltages": false,
|
||||
"subpart_first_id": 65,
|
||||
"subpart_id_separator": 0
|
||||
},
|
||||
"sheets": [
|
||||
[
|
||||
"ec18acd3-6576-4c7e-a623-74d94852c1cc",
|
||||
""
|
||||
"Root"
|
||||
]
|
||||
],
|
||||
"text_variables": {}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,13 +1,5 @@
|
||||
"Item","Qty","Reference(s)","Value","LibPart","Footprint","Datasheet","Code JEDEC","Datasheet Version","Description","IN1 IN2 Input VoltageMaxV","IN1 IN2 Input VoltageMinV","IN1 Output CurrentMaxA","IN1 rDSonTypmOhm","IN2 Output CurrentMaxA","IN2 rDSonTypOhms","JLCPCB","Mounting Technology","Number of Inputs","Package Description","Package Version","Sub Family","category","ciiva ids","imported","library id","manufacturer","package","release date","rohs","vault revision"
|
||||
"1","2","C1, C2","0.1 uF","Device:C","Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder","~","","","CL05B104KB54PNC","","","","","","","C307331","","","","","","","","","","","","","",""
|
||||
"2","1","C3","10 uF","Device:C","Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder","~","","","CL05A106MQ5NUNC","","","","","","","C15525","","","","","","","","","","","","","",""
|
||||
"3","2","JP1, TP1","VSELECT","Connector:TestPoint","TestPoint:TestPoint_Pad_2.0x2.0mm","~","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"4","2","JP2, TP2","GND","Connector:TestPoint","TestPoint:TestPoint_Pad_2.0x2.0mm","~","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"5","1","JP3","3.3V","Connector:TestPoint","Personal:Vpower-Switch-Pad","~","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"6","1","JP4","5V","Connector:TestPoint","Personal:Vpower-Switch-Pad","~","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"7","1","JP5","VCC","Connector:TestPoint","Personal:Vpower-Switch-Pad","~","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"8","1","R1","550","Device:R","Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder","~","","","RC0402JR-07560RL","","","","","","","C137858","","","","","","","","","","","","","",""
|
||||
"9","1","TP3","3.3V","Connector:TestPoint","TestPoint:TestPoint_Pad_2.0x2.0mm","~","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"10","1","TP4","5V","Connector:TestPoint","TestPoint:TestPoint_Pad_2.0x2.0mm","~","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"11","1","TP5","VCC","Connector:TestPoint","TestPoint:TestPoint_Pad_2.0x2.0mm","~","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"12","1","U1","TPS2113PW","Added:TPS2113PW","Personal:Texas_Instruments-TPS2113PW-Level_A","http://www.ti.com/general/docs/lit/getliterature.tsp?genericPartNumber=TPS2113&fileType=pdf","MO-153","SLVS446","","5.5","2.8","1.25","84","1.25","0.084","","Surface Mount","2","8-Pin Plastic Thin Small Outline Package 3 x 4.4 mm Body ,0.65 mm Pitch","revG, Feb-2011","Power Multiplexer (MUX)","IC","1435368","yes","8d418d7fa91867a0","Texas Instruments","PW0008A","1464590589","Yes","9D6D1550-8F4D-4794-945B-26B7B47CC6E6"
|
||||
Designator,Footprint,Quantity,Value,LCSC Part #
|
||||
"C1, C2",0402,2,0.1u,C1525
|
||||
C3,0402,1,10u,C15525
|
||||
R1,0402,1,560R,C25123
|
||||
U1,IC - VSELECT - TPS2113,1,TPS211x,C354512
|
||||
|
|
Binary file not shown.
BIN
hardware/vselect/VSelect_schematic.pdf
Normal file
BIN
hardware/vselect/VSelect_schematic.pdf
Normal file
Binary file not shown.
1
hardware/vselect/fabrication-toolkit-options.json
Normal file
1
hardware/vselect/fabrication-toolkit-options.json
Normal file
@ -0,0 +1 @@
|
||||
{"EXTRA_LAYERS": "", "EXTEND_EDGE_CUT": false, "AUTO TRANSLATE": true, "AUTO FILL": true, "EXCLUDE DNP": false}
|
4
hardware/vselect/fp-lib-table
Normal file
4
hardware/vselect/fp-lib-table
Normal file
@ -0,0 +1,4 @@
|
||||
(fp_lib_table
|
||||
(version 7)
|
||||
(lib (name "!OSCRMisc")(type "KiCad")(uri "${KIPRJMOD}/../footprints/!OSCRMisc.pretty")(options "")(descr "OSCR Misc. Footprints"))
|
||||
)
|
4
hardware/vselect/sym-lib-table
Normal file
4
hardware/vselect/sym-lib-table
Normal file
@ -0,0 +1,4 @@
|
||||
(sym_lib_table
|
||||
(version 7)
|
||||
(lib (name "!OSCRMisc")(type "KiCad")(uri "${KIPRJMOD}/../symbols/!OSCRMisc.kicad_sym")(options "")(descr "OSCR Misc. Symbols"))
|
||||
)
|
Loading…
Reference in New Issue
Block a user