Updated schematics, PCB, smalll web server changes

This commit is contained in:
Philip Smart
2026-05-15 10:08:21 +01:00
parent 5bbb3bcf5f
commit 55c6fdd3da
47 changed files with 73290 additions and 48 deletions

View File

@@ -72,6 +72,12 @@
<i style="color: yellow;" class="fa fa-microchip"></i> Persona
</a>
</li>
<li>
<a href="configgui.htm">
<i style="color: yellow;" class="fa fa-sliders"></i> Config GUI
</a>
</li>
</ul>
</li>
</ul>

View File

@@ -72,6 +72,12 @@
<i style="color: yellow;" class="fa fa-microchip"></i> Persona
</a>
</li>
<li>
<a href="configgui.htm">
<i style="color: yellow;" class="fa fa-sliders"></i> Config GUI
</a>
</li>
</ul>
</li>
</ul>

View File

@@ -72,6 +72,12 @@
<i style="color: yellow;" class="fa fa-microchip"></i> Persona
</a>
</li>
<li>
<a href="configgui.htm">
<i style="color: yellow;" class="fa fa-sliders"></i> Config GUI
</a>
</li>
</ul>
</li>
</ul>

View File

@@ -73,6 +73,12 @@
<i style="color: yellow;" class="fa fa-microchip"></i> Persona
</a>
</li>
<li>
<a href="configgui.htm">
<i style="color: yellow;" class="fa fa-sliders"></i> Config GUI
</a>
</li>
</ul>
</li>
</ul>

View File

@@ -73,6 +73,12 @@
<i style="color: yellow;" class="fa fa-microchip"></i> Persona
</a>
</li>
<li>
<a href="configgui.htm">
<i style="color: yellow;" class="fa fa-sliders"></i> Config GUI
</a>
</li>
</ul>
</li>
</ul>

View File

@@ -67,10 +67,16 @@
</li>
<li class="active">
<a href="personality.htm"">
<a href="personality.htm">
<i style="color: yellow;" class="fa fa-microchip"></i> Persona
</a>
</li>
<li>
<a href="configgui.htm">
<i style="color: yellow;" class="fa fa-sliders"></i> Config GUI
</a>
</li>
</ul>
</li>
</ul>
@@ -98,7 +104,6 @@
<li><a href="tasks/changefloppy?diskno=1"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 2 (%SK_FLOPPY2%)</a></li>
<li><a href="tasks/changeqd"><i class="fa fa-file"></i><span style="padding-left: 10px;">Change QD Disk (%SK_QDDISK%)</a></li>
<hr style="margin-top: 10px; margin-bottom: 10px;">
<li><a href="tasks/reloadcfg"><i class="fa fa-repeat"></i><span style="padding-left: 10px;">Reload RP2350 Config</a></li>
<li><a href="#" onclick="reloadConfig(); return false;"><i class="fa fa-repeat"></i><span style="padding-left: 10px;">Reload RP2350 Config</a></li>
</ul>
</li>

View File

@@ -71,6 +71,12 @@
<i style="color: yellow;" class="fa fa-microchip"></i> Persona
</a>
</li>
<li>
<a href="configgui.htm">
<i style="color: yellow;" class="fa fa-sliders"></i> Config GUI
</a>
</li>
</ul>
</li>
</ul>
@@ -98,7 +104,6 @@
<li><a href="tasks/changefloppy?diskno=1"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 2 (%SK_FLOPPY2%)</a></li>
<li><a href="tasks/changeqd"><i class="fa fa-file"></i><span style="padding-left: 10px;">Change QD Disk (%SK_QDDISK%)</a></li>
<hr style="margin-top: 10px; margin-bottom: 10px;">
<li><a href="tasks/reloadcfg"><i class="fa fa-repeat"></i><span style="padding-left: 10px;">Reload RP2350 Config</a></li>
<li><a href="#" onclick="reloadConfig(); return false;"><i class="fa fa-repeat"></i><span style="padding-left: 10px;">Reload RP2350 Config</a></li>
</ul>
</li>

View File

@@ -1 +1 @@
2.18
2.43

View File

@@ -1569,7 +1569,57 @@ esp_err_t WiFi::defaultDataGETHandler(httpd_req_t *req)
pThis->stringReplace(sdpath, "//", "/");
// Match URI and execute required data retrieval and return.
if (uriStr == "wifistatus")
if (uriStr == "config")
{
// Return the contents of config.json from the SD card root.
// The file is sent as-is (including any C-style comments and hex
// literals) — the browser-side JavaScript handles parsing.
std::string cfgPath = std::string(pThis->wifiCtrl.run.fsPath);
if (cfgPath.back() != '/') cfgPath += "/";
cfgPath += "config.json";
FILE *cfgFd = fopen(cfgPath.c_str(), "rb");
if (!cfgFd)
{
httpd_resp_send_err(req, HTTPD_404_NOT_FOUND, "config.json not found on SD card");
return ESP_FAIL;
}
// Send as chunked response to avoid allocating the entire file in memory.
httpd_resp_set_type(req, "application/json");
httpd_resp_set_hdr(req, "Cache-Control", "no-cache");
std::unique_ptr<char[]> cfgChunk(new char[MAX_CHUNK_SIZE]);
if (cfgChunk == nullptr)
{
fclose(cfgFd);
httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR, "Memory allocation failed");
return ESP_FAIL;
}
size_t bytesRead;
esp_err_t cfgResult = ESP_OK;
do
{
bytesRead = fread(cfgChunk.get(), 1, MAX_CHUNK_SIZE, cfgFd);
if (bytesRead > 0)
{
if (httpd_resp_send_chunk(req, cfgChunk.get(), bytesRead) != ESP_OK)
{
cfgResult = ESP_FAIL;
break;
}
}
} while (bytesRead > 0);
fclose(cfgFd);
if (cfgResult == ESP_OK)
httpd_resp_send_chunk(req, NULL, 0);
return cfgResult;
}
else if (uriStr == "wifistatus")
{
// JSON endpoint for AJAX polling of WiFi + system + RP2350 status.
// All fields that can change at runtime are included so the dashboard
@@ -3034,6 +3084,96 @@ esp_err_t WiFi::defaultDataPOSTHandler(httpd_req_t *req)
resp = "File uploaded.";
}
}
else if (uriStr == "config")
{
// Receive a JSON body and write it to /config.json on the SD card.
// The body is raw JSON (not form-encoded), so we read it directly
// rather than using getPOSTData().
int contentLen = req->content_len;
if (contentLen <= 0 || contentLen > (256 * 1024))
{
resp = "Invalid or missing JSON body (size=" + std::to_string(contentLen) + ")";
result = ESP_FAIL;
}
else
{
// Read the full JSON body.
std::string jsonBody;
jsonBody.reserve(contentLen);
char rcvBuf[512];
int remaining = contentLen;
while (remaining > 0)
{
int toRead = (remaining < (int)sizeof(rcvBuf)) ? remaining : (int)sizeof(rcvBuf);
int ret = httpd_req_recv(req, rcvBuf, toRead);
if (ret <= 0)
{
if (ret == HTTPD_SOCK_ERR_TIMEOUT)
continue;
result = ESP_FAIL;
resp = "Failed to receive POST body";
break;
}
jsonBody.append(rcvBuf, ret);
remaining -= ret;
}
if (result == ESP_OK)
{
// Basic validation: ensure it looks like JSON.
// Find the first non-whitespace character.
size_t firstNonWs = jsonBody.find_first_not_of(" \t\r\n");
if (firstNonWs == std::string::npos || jsonBody[firstNonWs] != '{')
{
resp = "Invalid JSON: must start with '{'";
result = ESP_FAIL;
}
}
if (result == ESP_OK)
{
// Write to a temp file, then atomically rename with versioned backup.
std::string trgFile = sdpath + "config.json";
std::string tmpFile = trgFile + ".tmp";
FILE *wf = fopen(tmpFile.c_str(), "wb");
if (!wf)
{
resp = "Failed to create temp file: " + tmpFile;
result = ESP_FAIL;
}
else
{
size_t written = fwrite(jsonBody.c_str(), 1, jsonBody.size(), wf);
fclose(wf);
if (written != jsonBody.size())
{
std::remove(tmpFile.c_str());
resp = "Failed to write config data (wrote " + std::to_string(written) + "/" + std::to_string(jsonBody.size()) + " bytes)";
result = ESP_FAIL;
}
else
{
// Version the existing config.json and rename temp into place.
std::string errMsg;
result = pThis->versionedRename(tmpFile, trgFile, errMsg);
if (result != ESP_OK)
{
resp = "Failed to save config: " + errMsg;
}
else
{
// Notify the RP2350 to reload its configuration.
pThis->reloadRP2350Config();
resp = "Configuration saved and RP2350 reload initiated.";
}
}
}
}
}
}
else
{
result = pThis->getPOSTData(req, &pairs);
@@ -3556,10 +3696,10 @@ esp_err_t WiFi::sendFileManagerDir(httpd_req_t *req)
{
htmlStr.append("<div id=\"filemanager-info\" style=\"font-size:12px;padding-top:8px;padding-bottom:8px;\"><b>").append(sdpath).append("</b></div>");
htmlStr.append("<div id=\"filemanager-area\" style=\"padding-left:25px;\">");
htmlStr.append(" <table class=\"table table-borderless table-sm\" style=\"width:55%\">");
htmlStr.append(" <table class=\"table table-borderless table-sm\" style=\"width:100%\">");
htmlStr.append(" <thead>");
htmlStr.append(" <tr>");
htmlStr.append(" <th style=\"width:50%\"><b>Name</b></th>");
htmlStr.append(" <th style=\"width:50%;min-width:200px\"><b>Name</b></th>");
htmlStr.append(" <th style=\"width:5%\"><b>Type</b></th>");
htmlStr.append(" <th style=\"width:5%\"><b>Size (Bytes)</b></th>");
htmlStr.append(" <th style=\"text-align:left;width:10%\"><b>Action</b></th>");
@@ -3812,9 +3952,12 @@ esp_err_t WiFi::defaultRebootHandler(httpd_req_t *req)
// Build a response with a meta-refresh back to the originating IP.
resp = "<head> <meta http-equiv=\"refresh\" content=\"5; URL=http://" + redirectIP +
"/\" /> </head><body><font size=\"6\" face=\"verdana\" color=\"red\"/>Rebooting... </font><br><font size=\"4\" face=\"verdana\" "
"/\" /> </head><body style=\"display:flex;justify-content:center;align-items:center;min-height:100vh;margin:0;"
"background:radial-gradient(ellipse at center,#f5f6f8 0%,#e8eaef 60%,#dcdfe6 100%);\">"
"<div style=\"text-align:center;\">"
"<font size=\"6\" face=\"verdana\" color=\"red\"/>Rebooting... </font><br><font size=\"4\" face=\"verdana\" "
"color=\"black\"/><p>Redirecting to http://" + redirectIP + "/ in 5 seconds. "
"If this screen doesnt auto-refresh, please reload manually.</p></font></body>";
"If this screen doesnt auto-refresh, please reload manually.</p></font></div></body>";
// Send the response and wait a while, then request reboot.
result = httpd_resp_send(req, resp.c_str(), resp.size() + 1);

View File

@@ -384,10 +384,14 @@ void setupUSBTask(void *pvParameters)
// 2. Force a clean USB disconnect/reconnect cycle. These delays run in this
// background task so the main task is free to start the CommandProcessor.
// The disconnect duration must be long enough for the host OS to fully
// tear down its NCM driver; the post-connect wait allows the host to
// enumerate the device and start its DHCP client. Shorter timings cause
// intermittent failures where the host never brings the link up.
tud_disconnect();
vTaskDelay(pdMS_TO_TICKS(1500));
vTaskDelay(pdMS_TO_TICKS(2000));
tud_connect();
vTaskDelay(pdMS_TO_TICKS(500));
vTaskDelay(pdMS_TO_TICKS(1500));
// 3. Initialise CDC-ACM for serial logging.
tinyusb_config_cdcacm_t acm_cfg = {};
@@ -448,6 +452,14 @@ void setupUSBTask(void *pvParameters)
esp_tusb_init_console(TINYUSB_CDC_ACM_0);
}
// 7. Allow time for the host to complete DHCP and bring the link up before
// signalling ready. Without this the webserver may start before the host
// has an IP address, causing the first connection attempt to fail.
if (ncmOk) {
ESP_LOGI(MAINTAG, "USB NCM netif up — waiting for host DHCP...");
vTaskDelay(pdMS_TO_TICKS(2000));
}
ESP_LOGI(MAINTAG, "USB setup complete (CDC:%s NCM:%s)", cdcOk ? "OK" : "FAIL", ncmOk ? "OK" : "FAIL");
g_usbReady = true;
vTaskDelete(NULL);

View File

@@ -48,6 +48,7 @@ if [[ ${ISNEWER} != "" ]]; then
cp ota-rp2350.htm ${WEBFSDIR}/ota-rp2350.htm
cp wifimanager.htm ${WEBFSDIR}/wifimanager.htm
cp personality.htm ${WEBFSDIR}/personality.htm
cp configgui.htm ${WEBFSDIR}/configgui.htm
(cd ${SRCDIR}/css;
@@ -103,6 +104,7 @@ if [[ ${ISNEWER} != "" ]]; then
cp ota-rp2350.js ${WEBFSDIR}/js/ota-rp2350.js
cp wifimanager.js ${WEBFSDIR}/js/wifimanager.js
cp personality.js ${WEBFSDIR}/js/personality.js
cp configgui.js ${WEBFSDIR}/js/configgui.js
cp editor.js ${WEBFSDIR}/js/editor.js
cp ui/icons.svg ${WEBFSDIR}/js/ui/icons.svg
)

View File

@@ -1 +1 @@
2.46
2.54

View File

@@ -23,6 +23,7 @@
<!-- Sidebar -->
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="nav-centered">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
@@ -39,7 +40,16 @@
<ul class="nav navbar-nav side-nav">
<li><a href="index.htm"><i style="color: yellow;" class="fa fa-dashboard"></i>&nbsp;&nbsp;Status</a></li>
<li class="active"><a href="config.htm?cmd=edit&dir=/&name=config.json&apply=yes"><i style="color: yellow;" class="fa fa-wrench"></i>&nbsp;&nbsp;Config Editor</a></li>
<li>
<a href="#configmenu" data-toggle="collapse" aria-expanded="true" class="dropdown-toggle">
<i style="color: yellow;" class="fa fa-cogs"></i> Config
<span class="caret pull-right"></span>
</a>
<ul id="configmenu" class="nav collapse in">
<li><a href="configgui.htm"><i style="color: yellow;" class="fa fa-sliders"></i> GUI</a></li>
<li class="active"><a href="config.htm?cmd=edit&dir=/&name=config.json&apply=yes"><i style="color: yellow;" class="fa fa-wrench"></i> Editor</a></li>
</ul>
</li>
<li><a href="filemanager.htm"><i style="color: yellow;" class="fa fa-folder"></i>&nbsp;&nbsp;File Manager</a></li>
<li>
@@ -72,6 +82,7 @@
<i style="color: yellow;" class="fa fa-microchip"></i> Persona
</a>
</li>
</ul>
</li>
</ul>
@@ -95,9 +106,9 @@
<ul class="dropdown-menu">
<li style="margin-left: 1em;"><b>Action Menu</b></li>
<li class="divider"></li>
<li><a href="tasks/changefloppy?diskno=0"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 1 (%SK_FLOPPY1%)</span></a></li>
<li><a href="tasks/changefloppy?diskno=1"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 2 (%SK_FLOPPY2%)</span></a></li>
<li><a href="tasks/changeqd"><i class="fa fa-file"></i><span style="padding-left: 10px;">Change QD Disk (%SK_QDDISK%)</span></a></li>
<li><a href="tasks/changefloppy?diskno=0"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 1 (<span class="rp-floppy1">%SK_FLOPPY1%</span>)</span></a></li>
<li><a href="tasks/changefloppy?diskno=1"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 2 (<span class="rp-floppy2">%SK_FLOPPY2%</span>)</span></a></li>
<li><a href="tasks/changeqd"><i class="fa fa-file"></i><span style="padding-left: 10px;">Change QD Disk (<span class="rp-qdisk">%SK_QDDISK%</span>)</span></a></li>
<hr style="margin-top: 10px; margin-bottom: 10px;">
<li><a href="#" onclick="reloadConfig(); return false;"><i class="fa fa-repeat"></i><span style="padding-left: 10px;">Reload RP2350 Config</a></li>
</ul>
@@ -105,6 +116,7 @@
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.nav-centered -->
</nav>
<div id="page-wrapper">

View File

@@ -0,0 +1,295 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<title>Dashboard - Pico %SK_PROCESSOR% Admin</title>
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- Add custom CSS here -->
<link href="css/sb-admin.css" rel="stylesheet">
<link href="css/%SK_DEVICE%.css" rel="stylesheet">
<link href="font-awesome/css/font-awesome.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="/css/style.css">
<style>
/* Section panels */
.cfg-section { margin-bottom: 15px; }
.cfg-section .panel-heading { cursor: pointer; }
.cfg-section .panel-heading .fa-chevron-down,
.cfg-section .panel-heading .fa-chevron-right { float: right; margin-top: 3px; }
/* Tables - compact, don't stretch beyond content */
.cfg-table { width: auto !important; }
.cfg-table th { white-space: nowrap; font-size: 12px; padding: 4px 8px !important; }
.cfg-table td { padding: 4px 6px !important; vertical-align: middle !important; }
.cfg-table input[type="text"],
.cfg-table input[type="number"] { padding: 2px 4px; font-size: 12px; }
.cfg-table select { padding: 2px 4px; font-size: 12px; }
.cfg-table .cfg-enable-col { width: 40px; text-align: center; }
/* Hex / address fields */
.cfg-hex-input { font-family: monospace; }
.cfg-addr-input { width: 80px !important; }
.cfg-size-input { width: 80px !important; }
.cfg-file-input { min-width: 160px !important; }
.cfg-num-input { width: 50px !important; }
.cfg-func-input { width: 80px !important; }
/* Core settings form - tighter label/field grouping */
.cfg-core-form { max-width: 700px; }
.cfg-core-form .form-group { margin-bottom: 8px; }
.cfg-core-form label { font-weight: normal; font-size: 13px; }
.cfg-core-form .form-control { font-size: 13px; height: 30px; }
/* Driver panels */
.cfg-driver-panel { margin-bottom: 8px; }
.cfg-driver-panel .panel-heading { padding: 6px 12px; font-size: 13px; }
.cfg-driver-panel .panel-body { padding: 10px 15px; }
/* Interface panels */
.cfg-if-panel { margin-bottom: 6px; border-left: 3px solid #337ab7; }
.cfg-if-panel .panel-heading { padding: 4px 10px; font-size: 12px; background: #f0f4f8; }
.cfg-if-panel .panel-body { padding: 8px 12px; }
/* ROM / param sub-tables */
.cfg-rom-table { width: auto !important; }
.cfg-rom-table th, .cfg-rom-table td { font-size: 11px; padding: 2px 4px !important; }
.cfg-param-table { width: auto !important; }
.cfg-param-table th, .cfg-param-table td { font-size: 11px; padding: 2px 4px !important; }
/* Buttons */
.cfg-btn-add { margin-top: 5px; margin-bottom: 5px; }
.cfg-btn-remove { padding: 1px 6px; font-size: 11px; }
/* Loading state */
.cfg-loading { text-align: center; padding: 40px; font-size: 16px; color: #888; }
/* Tabs */
.nav-tabs > li > a { font-size: 13px; padding: 8px 12px; }
.tab-content { padding-top: 15px; }
/* Action bar at the bottom */
.cfg-action-bar {
margin-top: 15px;
padding-top: 10px;
border-top: 1px solid #ddd;
max-width: 700px;
}
/* ESP32 WiFi form */
.cfg-wifi-form { max-width: 700px; }
</style>
</head>
<body>
<div id="wrapper">
<!-- Sidebar -->
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="nav-centered">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.htm">Pico %SK_PROCESSOR% Dashboard</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav side-nav">
<li><a href="index.htm"><i style="color: yellow;" class="fa fa-dashboard"></i>&nbsp;&nbsp;Status</a></li>
<li>
<a href="#configmenu" data-toggle="collapse" aria-expanded="true" class="dropdown-toggle">
<i style="color: yellow;" class="fa fa-cogs"></i> Config
<span class="caret pull-right"></span>
</a>
<ul id="configmenu" class="nav collapse in">
<li class="active"><a href="configgui.htm"><i style="color: yellow;" class="fa fa-sliders"></i> GUI</a></li>
<li><a href="config.htm?cmd=edit&dir=/&name=config.json&apply=yes"><i style="color: yellow;" class="fa fa-wrench"></i> Editor</a></li>
</ul>
</li>
<li><a href="filemanager.htm"><i style="color: yellow;" class="fa fa-folder"></i>&nbsp;&nbsp;File Manager</a></li>
<li>
<a href="#settings" data-toggle="collapse" aria-expanded="true" class="dropdown-toggle">
<i style="color: yellow;" class="fa fa-gear"></i> Settings
<span class="caret pull-right"></span>
</a>
<ul id="settings" class="nav collapse in">
<li>
<a href="#ota" data-toggle="collapse" aria-expanded="true" class="dropdown-toggle">
<i style="color: yellow;" class="fa fa-refresh"></i> Firmware
<span class="caret pull-right"></span>
</a>
<ul id="ota" class="nav collapse">
<li><a href="ota-esp32.htm">ESP32</a></li>
<li><a href="ota-rp2350.htm">RP2350</a></li>
</ul>
</li>
<li %SK_WIFINAVVISIBLE%>
<a href="wifimanager.htm">
<i style="color: yellow;" class="fa fa-wifi"></i> WiFi Manager
</a>
</li>
<li>
<a href="personality.htm">
<i style="color: yellow;" class="fa fa-microchip"></i> Persona
</a>
</li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right navbar-user">
<li class="dropdown user-dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" style="padding-right:40px;"><i class="fa fa-rotate-left" style="color: yellow;"></i> Reboot <b class="caret"></b></a>
<ul class="dropdown-menu">
<li style="margin-left: 1em;"><b>Reboot Menu</b></li>
<li class="divider"></li>
<li><a href="reboot/esp32"><i class="fa fa-rotate-left"></i><span style="padding-left: 10px;">ESP32</a></li>
<li><a href="#" onclick="rebootRP2350(); return false;"><i class="fa fa-rotate-left"></i><span style="padding-left: 10px;">RP2350B</a></li>
<li><a href="#" onclick="rebootHost(); return false;"><i class="fa fa-rotate-left"></i><span style="padding-left: 10px;">Host</a></li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right navbar-user">
<li class="dropdown user-dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" style="padding-right:35px;"><i class="fa fa-tasks" style="color: yellow;"></i> Actions <b class="caret"></b></a>
<ul class="dropdown-menu">
<li style="margin-left: 1em;"><b>Action Menu</b></li>
<li class="divider"></li>
<li><a href="tasks/changefloppy?diskno=0"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 1 (<span class="rp-floppy1">%SK_FLOPPY1%</span>)</span></a></li>
<li><a href="tasks/changefloppy?diskno=1"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 2 (<span class="rp-floppy2">%SK_FLOPPY2%</span>)</span></a></li>
<li><a href="tasks/changeqd"><i class="fa fa-file"></i><span style="padding-left: 10px;">Change QD Disk (<span class="rp-qdisk">%SK_QDDISK%</span>)</span></a></li>
<hr style="margin-top: 10px; margin-bottom: 10px;">
<li><a href="#" onclick="reloadConfig(); return false;"><i class="fa fa-repeat"></i><span style="padding-left: 10px;">Reload RP2350 Config</a></li>
</ul>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.nav-centered -->
</nav>
<div id="page-wrapper">
<div class="row">
<div class="col-lg-12">
<h1>Pico %SK_PROCESSOR% Configuration</h1>
<ol class="breadcrumb">
<li class="active"><i class="fa fa-dashboard"></i> Settings-&gt;Config GUI</li>
</ol>
<div class="alert alert-success alert-dismissable justify">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
<p>This page provides a graphical interface to configure the <i>Pico %SK_PROCESSOR%</i>. Changes are saved to <b>config.json</b> on the SD card. The existing configuration is backed up before saving.</p>
<p>For advanced editing, use the <b>Config Editor</b> to modify the raw JSON directly.</p>
</div>
</div>
</div><!-- /.row -->
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-sliders"></i> Configuration</h3>
</div>
<div class="panel-body">
<!-- Loading indicator -->
<div id="cfgLoading" class="cfg-loading">
<i class="fa fa-spinner fa-spin fa-2x"></i>
<p>Loading configuration...</p>
</div>
<!-- Error display -->
<div id="cfgError" class="alert alert-danger" style="display:none;"></div>
<!-- Main config tabs -->
<div id="cfgContent" style="display:none;">
<ul class="nav nav-tabs" id="cfgTabs">
<li class="active"><a href="#tab-rp2350-global" data-toggle="tab"><i class="fa fa-microchip"></i> RP2350 Global</a></li>
<li><a href="#tab-partition1" data-toggle="tab"><i class="fa fa-hdd-o"></i> Partition 1</a></li>
<li><a href="#tab-partition2" data-toggle="tab"><i class="fa fa-hdd-o"></i> Partition 2</a></li>
<li><a href="#tab-esp32" data-toggle="tab"><i class="fa fa-wifi"></i> ESP32</a></li>
</ul>
<div class="tab-content">
<!-- RP2350 Global Core -->
<div class="tab-pane active" id="tab-rp2350-global">
<div id="cfg-rp2350-core"></div>
</div>
<!-- Partition 1 -->
<div class="tab-pane" id="tab-partition1">
<div id="cfg-p1-core"></div>
<div id="cfg-p1-memory"></div>
<div id="cfg-p1-io"></div>
<div id="cfg-p1-drivers"></div>
</div>
<!-- Partition 2 -->
<div class="tab-pane" id="tab-partition2">
<div id="cfg-p2-core"></div>
<div id="cfg-p2-memory"></div>
<div id="cfg-p2-io"></div>
<div id="cfg-p2-drivers"></div>
</div>
<!-- ESP32 -->
<div class="tab-pane" id="tab-esp32">
<div id="cfg-esp32-core"></div>
<div id="cfg-esp32-wifi"></div>
</div>
</div>
<!-- Feedback area -->
<div id="cfgMsg" class="alert alert-info mt-3" style="display:none; margin-top:15px;"></div>
<!-- Action buttons -->
<div class="cfg-action-bar">
<button type="button" class="btn btn-primary" id="cfgSaveBtn">
<i class="fa fa-save"></i> Save Configuration
</button>
<button type="button" class="btn btn-default" id="cfgReloadBtn" style="margin-left: 10px;">
<i class="fa fa-refresh"></i> Reload
</button>
</div>
</div>
</div>
</div>
</div>
</div><!-- /.row -->
</div><!-- /#page-wrapper -->
</div><!-- /#wrapper -->
<!-- JavaScript -->
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script>
// Store the name of the active and secondary interfaces.
const activeInterface = "%SK_CURRENTIF%";
const secondaryInterface = "%SK_SECONDIF%"
</script>
<script src="js/configgui.js"></script>
<script src="js/actions.js"></script>
<script src="js/common.js"></script>
</body>
</html>

View File

@@ -12,6 +12,23 @@ For more info and more free Bootstrap 3 HTML themes, visit http://startbootstrap
body {
margin-top: 50px;
background:
/* Subtle diagonal pinstripe pattern */
repeating-linear-gradient(
135deg,
transparent,
transparent 10px,
rgba(0,0,0,0.015) 10px,
rgba(0,0,0,0.015) 11px
),
/* Soft radial vignette - lighter centre, slightly darker edges */
radial-gradient(
ellipse at center,
#f5f6f8 0%,
#e8eaef 60%,
#dcdfe6 100%
);
background-attachment: fixed;
}
#wrapper {
@@ -23,6 +40,12 @@ body {
padding: 5px 15px;
}
/* Ensure all panel content can scroll horizontally on small screens */
.panel-body {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
/* Nav Messages */
.messages-dropdown .dropdown-menu .message-preview .avatar,
@@ -86,21 +109,40 @@ table.tablesorter thead tr th:hover {
/* Edit Below to Customize Widths > 768px */
@media (min-width:768px) {
/* Centered layout: sidebar(225) + content(1210) = 1435px total */
/* Navbar: dark background only within the centred area, page background outside */
.navbar-inverse {
background-color: transparent;
border: none;
}
.nav-centered {
max-width: 1435px;
margin: 0 auto;
position: relative;
background-color: #222222;
}
/* Wrappers */
#wrapper {
padding-left: 225px;
max-width: 1435px;
margin: 0 auto;
}
#page-wrapper {
padding: 15px 25px;
max-width: 1210px;
background: #fff;
min-height: calc(100vh - 50px);
}
/* Side Nav */
/* Side Nav - fixed but tracks the centred layout */
.side-nav {
margin-left: -225px;
left: 225px;
margin-left: 0;
left: max(0px, calc(50% - 717.5px));
width: 225px;
position: fixed;
top: 50px;

View File

@@ -23,6 +23,7 @@
<!-- Sidebar -->
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="nav-centered">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
@@ -39,7 +40,16 @@
<ul class="nav navbar-nav side-nav">
<li><a href="index.htm"><i style="color: yellow;" class="fa fa-dashboard"></i>&nbsp;&nbsp;Status</a></li>
<li><a href="config.htm?cmd=edit&dir=/&name=config.json&apply=yes"><i style="color: yellow;" class="fa fa-wrench"></i>&nbsp;&nbsp;Config Editor</a></li>
<li>
<a href="#configmenu" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle">
<i style="color: yellow;" class="fa fa-cogs"></i> Config
<span class="caret pull-right"></span>
</a>
<ul id="configmenu" class="nav collapse">
<li><a href="configgui.htm"><i style="color: yellow;" class="fa fa-sliders"></i> GUI</a></li>
<li><a href="config.htm?cmd=edit&dir=/&name=config.json&apply=yes"><i style="color: yellow;" class="fa fa-wrench"></i> Editor</a></li>
</ul>
</li>
<li class="active"><a href="filemanager.htm"><i style="color: yellow;" class="fa fa-folder"></i>&nbsp;&nbsp;File Manager</a></li>
<li>
@@ -72,6 +82,7 @@
<i style="color: yellow;" class="fa fa-microchip"></i> Persona
</a>
</li>
</ul>
</li>
</ul>
@@ -95,9 +106,9 @@
<ul class="dropdown-menu">
<li style="margin-left: 1em;"><b>Action Menu</b></li>
<li class="divider"></li>
<li><a href="tasks/changefloppy?diskno=0"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 1 (%SK_FLOPPY1%)</span></a></li>
<li><a href="tasks/changefloppy?diskno=1"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 2 (%SK_FLOPPY2%)</span></a></li>
<li><a href="tasks/changeqd"><i class="fa fa-file"></i><span style="padding-left: 10px;">Change QD Disk (%SK_QDDISK%)</span></a></li>
<li><a href="tasks/changefloppy?diskno=0"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 1 (<span class="rp-floppy1">%SK_FLOPPY1%</span>)</span></a></li>
<li><a href="tasks/changefloppy?diskno=1"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 2 (<span class="rp-floppy2">%SK_FLOPPY2%</span>)</span></a></li>
<li><a href="tasks/changeqd"><i class="fa fa-file"></i><span style="padding-left: 10px;">Change QD Disk (<span class="rp-qdisk">%SK_QDDISK%</span>)</span></a></li>
<hr style="margin-top: 10px; margin-bottom: 10px;">
<li><a href="#" onclick="reloadConfig(); return false;"><i class="fa fa-repeat"></i><span style="padding-left: 10px;">Reload RP2350 Config</a></li>
</ul>
@@ -105,6 +116,7 @@
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.nav-centered -->
</nav>
<div id="page-wrapper">

View File

@@ -23,6 +23,7 @@
<!-- Sidebar -->
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="nav-centered">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
@@ -39,7 +40,16 @@
<ul class="nav navbar-nav side-nav">
<li class="active"><a href="index.htm"><i style="color: yellow;" class="fa fa-dashboard"></i>&nbsp;&nbsp;Status</a></li>
<li><a href="config.htm?cmd=edit&dir=/&name=config.json&apply=yes"><i style="color: yellow;" class="fa fa-wrench"></i>&nbsp;&nbsp;Config Editor</a></li>
<li>
<a href="#configmenu" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle">
<i style="color: yellow;" class="fa fa-cogs"></i> Config
<span class="caret pull-right"></span>
</a>
<ul id="configmenu" class="nav collapse">
<li><a href="configgui.htm"><i style="color: yellow;" class="fa fa-sliders"></i> GUI</a></li>
<li><a href="config.htm?cmd=edit&dir=/&name=config.json&apply=yes"><i style="color: yellow;" class="fa fa-wrench"></i> Editor</a></li>
</ul>
</li>
<li><a href="filemanager.htm"><i style="color: yellow;" class="fa fa-folder"></i>&nbsp;&nbsp;File Manager</a></li>
<li>
@@ -72,6 +82,7 @@
<i style="color: yellow;" class="fa fa-microchip"></i> Persona
</a>
</li>
</ul>
</li>
</ul>
@@ -105,6 +116,7 @@
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.nav-centered -->
</nav>
<div id="page-wrapper">
@@ -199,6 +211,7 @@
<h3 class="panel-title"><i class="fa fa-dashboard"></i> System Status</h3>
</div>
<div class="panel-body">
<div class="table-responsive">
<table class="table table-borderless table-sm" style="margin-bottom:0; width:auto;">
<tbody>
<tr>
@@ -227,6 +240,7 @@
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
@@ -239,6 +253,7 @@
<h3 class="panel-title"><i class="fa fa-microchip"></i> Active Personality</h3>
</div>
<div class="panel-body">
<div class="table-responsive">
<table class="table table-borderless table-sm" style="margin-bottom:0; width:auto;">
<tbody>
<tr>
@@ -262,6 +277,7 @@
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
@@ -342,6 +358,8 @@
<script src="js/actions.js"></script>
<script src="js/common.js"></script>
<script>
// Mark that the index page runs its own comprehensive poller so common.js skips its lighter one.
window._statusPollActive = true;
// Live WiFi/network status polling (updates every 3 seconds).
(function pollWifiStatus() {
$.getJSON("/data/wifistatus", function(data) {

View File

@@ -2,4 +2,19 @@ $(document).ready(function() {
$('.side-nav a, .side-nav .dropdown-toggle').on('mousedown touchstart', function() {
$(this).blur();
});
// Poll /data/wifistatus to keep Action Menu disk names up to date.
// The index page has its own more comprehensive poller; skip if already running.
if (typeof window._statusPollActive === 'undefined') {
window._statusPollActive = true;
(function pollDiskNames() {
$.getJSON("/data/wifistatus", function(data) {
if (data.floppy1) $(".rp-floppy1").text(data.floppy1);
if (data.floppy2) $(".rp-floppy2").text(data.floppy2);
if (data.qdisk) $(".rp-qdisk").text(data.qdisk);
}).always(function() {
setTimeout(pollDiskNames, 3000);
});
})();
}
});

File diff suppressed because it is too large Load Diff

View File

@@ -24,6 +24,7 @@
<!-- Sidebar -->
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="nav-centered">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
@@ -40,7 +41,16 @@
<ul class="nav navbar-nav side-nav">
<li><a href="index.htm"><i style="color: yellow;" class="fa fa-dashboard"></i>&nbsp;&nbsp;Status</a></li>
<li><a href="config.htm?cmd=edit&dir=/&name=config.json&apply=yes"><i style="color: yellow;" class="fa fa-wrench"></i>&nbsp;&nbsp;Config Editor</a></li>
<li>
<a href="#configmenu" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle">
<i style="color: yellow;" class="fa fa-cogs"></i> Config
<span class="caret pull-right"></span>
</a>
<ul id="configmenu" class="nav collapse">
<li><a href="configgui.htm"><i style="color: yellow;" class="fa fa-sliders"></i> GUI</a></li>
<li><a href="config.htm?cmd=edit&dir=/&name=config.json&apply=yes"><i style="color: yellow;" class="fa fa-wrench"></i> Editor</a></li>
</ul>
</li>
<li><a href="filemanager.htm"><i style="color: yellow;" class="fa fa-folder"></i>&nbsp;&nbsp;File Manager</a></li>
<li>
@@ -73,6 +83,7 @@
<i style="color: yellow;" class="fa fa-microchip"></i> Persona
</a>
</li>
</ul>
</li>
</ul>
@@ -96,9 +107,9 @@
<ul class="dropdown-menu">
<li style="margin-left: 1em;"><b>Action Menu</b></li>
<li class="divider"></li>
<li><a href="tasks/changefloppy?diskno=0"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 1 (%SK_FLOPPY1%)</span></a></li>
<li><a href="tasks/changefloppy?diskno=1"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 2 (%SK_FLOPPY2%)</span></a></li>
<li><a href="tasks/changeqd"><i class="fa fa-file"></i><span style="padding-left: 10px;">Change QD Disk (%SK_QDDISK%)</span></a></li>
<li><a href="tasks/changefloppy?diskno=0"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 1 (<span class="rp-floppy1">%SK_FLOPPY1%</span>)</span></a></li>
<li><a href="tasks/changefloppy?diskno=1"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 2 (<span class="rp-floppy2">%SK_FLOPPY2%</span>)</span></a></li>
<li><a href="tasks/changeqd"><i class="fa fa-file"></i><span style="padding-left: 10px;">Change QD Disk (<span class="rp-qdisk">%SK_QDDISK%</span>)</span></a></li>
<hr style="margin-top: 10px; margin-bottom: 10px;">
<li><a href="#" onclick="reloadConfig(); return false;"><i class="fa fa-repeat"></i><span style="padding-left: 10px;">Reload RP2350 Config</a></li>
</ul>
@@ -106,6 +117,7 @@
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.nav-centered -->
</nav>
<div id="page-wrapper">

View File

@@ -24,6 +24,7 @@
<!-- Sidebar -->
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="nav-centered">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
@@ -40,7 +41,16 @@
<ul class="nav navbar-nav side-nav">
<li><a href="index.htm"><i style="color: yellow;" class="fa fa-dashboard"></i>&nbsp;&nbsp;Status</a></li>
<li><a href="config.htm?cmd=edit&dir=/&name=config.json&apply=yes"><i style="color: yellow;" class="fa fa-wrench"></i>&nbsp;&nbsp;Config Editor</a></li>
<li>
<a href="#configmenu" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle">
<i style="color: yellow;" class="fa fa-cogs"></i> Config
<span class="caret pull-right"></span>
</a>
<ul id="configmenu" class="nav collapse">
<li><a href="configgui.htm"><i style="color: yellow;" class="fa fa-sliders"></i> GUI</a></li>
<li><a href="config.htm?cmd=edit&dir=/&name=config.json&apply=yes"><i style="color: yellow;" class="fa fa-wrench"></i> Editor</a></li>
</ul>
</li>
<li><a href="filemanager.htm"><i style="color: yellow;" class="fa fa-folder"></i>&nbsp;&nbsp;File Manager</a></li>
<li>
@@ -73,6 +83,7 @@
<i style="color: yellow;" class="fa fa-microchip"></i> Persona
</a>
</li>
</ul>
</li>
</ul>
@@ -96,9 +107,9 @@
<ul class="dropdown-menu">
<li style="margin-left: 1em;"><b>Action Menu</b></li>
<li class="divider"></li>
<li><a href="tasks/changefloppy?diskno=0"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 1 (%SK_FLOPPY1%)</span></a></li>
<li><a href="tasks/changefloppy?diskno=1"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 2 (%SK_FLOPPY2%)</span></a></li>
<li><a href="tasks/changeqd"><i class="fa fa-file"></i><span style="padding-left: 10px;">Change QD Disk (%SK_QDDISK%)</span></a></li>
<li><a href="tasks/changefloppy?diskno=0"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 1 (<span class="rp-floppy1">%SK_FLOPPY1%</span>)</span></a></li>
<li><a href="tasks/changefloppy?diskno=1"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 2 (<span class="rp-floppy2">%SK_FLOPPY2%</span>)</span></a></li>
<li><a href="tasks/changeqd"><i class="fa fa-file"></i><span style="padding-left: 10px;">Change QD Disk (<span class="rp-qdisk">%SK_QDDISK%</span>)</span></a></li>
<hr style="margin-top: 10px; margin-bottom: 10px;">
<li><a href="#" onclick="reloadConfig(); return false;"><i class="fa fa-repeat"></i><span style="padding-left: 10px;">Reload RP2350 Config</a></li>
</ul>
@@ -106,6 +117,7 @@
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.nav-centered -->
</nav>
<div id="page-wrapper">

View File

@@ -24,6 +24,7 @@
<!-- Sidebar -->
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="nav-centered">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
@@ -39,7 +40,16 @@
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav side-nav">
<li><a href="index.htm"><i style="color: yellow;" class="fa fa-dashboard"></i>&nbsp;&nbsp;Status</a></li>
<li><a href="config.htm?cmd=edit&dir=/&name=config.json&apply=yes"><i style="color: yellow;" class="fa fa-wrench"></i>&nbsp;&nbsp;Config Editor</a></li>
<li>
<a href="#configmenu" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle">
<i style="color: yellow;" class="fa fa-cogs"></i> Config
<span class="caret pull-right"></span>
</a>
<ul id="configmenu" class="nav collapse">
<li><a href="configgui.htm"><i style="color: yellow;" class="fa fa-sliders"></i> GUI</a></li>
<li><a href="config.htm?cmd=edit&dir=/&name=config.json&apply=yes"><i style="color: yellow;" class="fa fa-wrench"></i> Editor</a></li>
</ul>
</li>
<li><a href="filemanager.htm"><i style="color: yellow;" class="fa fa-folder"></i>&nbsp;&nbsp;File Manager</a></li>
<li>
<a href="#settings" data-toggle="collapse" aria-expanded="true" class="dropdown-toggle">
@@ -67,10 +77,11 @@
</li>
<li class="active">
<a href="personality.htm"">
<a href="personality.htm">
<i style="color: yellow;" class="fa fa-microchip"></i> Persona
</a>
</li>
</ul>
</li>
</ul>
@@ -94,17 +105,17 @@
<ul class="dropdown-menu">
<li style="margin-left: 1em;"><b>Action Menu</b></li>
<li class="divider"></li>
<li><a href="tasks/changefloppy?diskno=0"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 1 (%SK_FLOPPY1%)</span></a></li>
<li><a href="tasks/changefloppy?diskno=1"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 2 (%SK_FLOPPY2%)</span></a></li>
<li><a href="tasks/changeqd"><i class="fa fa-file"></i><span style="padding-left: 10px;">Change QD Disk (%SK_QDDISK%)</span></a></li>
<li><a href="tasks/changefloppy?diskno=0"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 1 (<span class="rp-floppy1">%SK_FLOPPY1%</span>)</span></a></li>
<li><a href="tasks/changefloppy?diskno=1"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 2 (<span class="rp-floppy2">%SK_FLOPPY2%</span>)</span></a></li>
<li><a href="tasks/changeqd"><i class="fa fa-file"></i><span style="padding-left: 10px;">Change QD Disk (<span class="rp-qdisk">%SK_QDDISK%</span>)</span></a></li>
<hr style="margin-top: 10px; margin-bottom: 10px;">
<li><a href="tasks/reloadcfg"><i class="fa fa-repeat"></i><span style="padding-left: 10px;">Reload RP2350 Config</a></li>
<li><a href="#" onclick="reloadConfig(); return false;"><i class="fa fa-repeat"></i><span style="padding-left: 10px;">Reload RP2350 Config</a></li>
</ul>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.nav-centered -->
</nav>
<div id="page-wrapper">

View File

@@ -1 +1 @@
2.18
2.43

View File

@@ -24,6 +24,7 @@
<!-- Sidebar -->
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="nav-centered">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
@@ -39,7 +40,16 @@
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav side-nav">
<li><a href="index.htm"><i style="color: yellow;" class="fa fa-dashboard"></i>&nbsp;&nbsp;Status</a></li>
<li><a href="config.htm?cmd=edit&dir=/&name=config.json&apply=yes"><i style="color: yellow;" class="fa fa-wrench"></i>&nbsp;&nbsp;Config Editor</a></li>
<li>
<a href="#configmenu" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle">
<i style="color: yellow;" class="fa fa-cogs"></i> Config
<span class="caret pull-right"></span>
</a>
<ul id="configmenu" class="nav collapse">
<li><a href="configgui.htm"><i style="color: yellow;" class="fa fa-sliders"></i> GUI</a></li>
<li><a href="config.htm?cmd=edit&dir=/&name=config.json&apply=yes"><i style="color: yellow;" class="fa fa-wrench"></i> Editor</a></li>
</ul>
</li>
<li><a href="filemanager.htm"><i style="color: yellow;" class="fa fa-folder"></i>&nbsp;&nbsp;File Manager</a></li>
<li>
<a href="#settings" data-toggle="collapse" aria-expanded="true" class="dropdown-toggle">
@@ -71,6 +81,7 @@
<i style="color: yellow;" class="fa fa-microchip"></i> Persona
</a>
</li>
</ul>
</li>
</ul>
@@ -94,17 +105,17 @@
<ul class="dropdown-menu">
<li style="margin-left: 1em;"><b>Action Menu</b></li>
<li class="divider"></li>
<li><a href="tasks/changefloppy?diskno=0"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 1 (%SK_FLOPPY1%)</span></a></li>
<li><a href="tasks/changefloppy?diskno=1"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 2 (%SK_FLOPPY2%)</span></a></li>
<li><a href="tasks/changeqd"><i class="fa fa-file"></i><span style="padding-left: 10px;">Change QD Disk (%SK_QDDISK%)</span></a></li>
<li><a href="tasks/changefloppy?diskno=0"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 1 (<span class="rp-floppy1">%SK_FLOPPY1%</span>)</span></a></li>
<li><a href="tasks/changefloppy?diskno=1"><i class="fa fa-floppy-o"></i><span style="padding-left: 10px;">Change Floppy Disk 2 (<span class="rp-floppy2">%SK_FLOPPY2%</span>)</span></a></li>
<li><a href="tasks/changeqd"><i class="fa fa-file"></i><span style="padding-left: 10px;">Change QD Disk (<span class="rp-qdisk">%SK_QDDISK%</span>)</span></a></li>
<hr style="margin-top: 10px; margin-bottom: 10px;">
<li><a href="tasks/reloadcfg"><i class="fa fa-repeat"></i><span style="padding-left: 10px;">Reload RP2350 Config</a></li>
<li><a href="#" onclick="reloadConfig(); return false;"><i class="fa fa-repeat"></i><span style="padding-left: 10px;">Reload RP2350 Config</a></li>
</ul>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.nav-centered -->
</nav>
<div id="page-wrapper">

View File

@@ -0,0 +1,160 @@
(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
(symbol "SN74LVCH8T245RHLR" (pin_names (offset 0.254)) (in_bom yes) (on_board yes)
(property "Reference" "U" (id 0) (at 30.48 10.16 0)
(effects (font (size 1.524 1.524)))
)
(property "Value" "SN74LVCH8T245RHLR" (id 1) (at 30.48 7.62 0)
(effects (font (size 1.524 1.524)))
)
(property "Footprint" "RHL24_4P05X2P05" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27) italic) hide)
)
(property "Datasheet" "SN74LVCH8T245RHLR" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27) italic) hide)
)
(property "ki_keywords" "SN74LVCH8T245RHLR" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_locked" "" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "RHL24_4P05X2P05" (id 6) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "SN74LVCH8T245RHLR_0_1"
(polyline
(pts
(xy 7.62 5.08)
(xy 7.62 -35.56)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(polyline
(pts
(xy 7.62 -35.56)
(xy 53.34 -35.56)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(polyline
(pts
(xy 53.34 -35.56)
(xy 53.34 5.08)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(polyline
(pts
(xy 53.34 5.08)
(xy 7.62 5.08)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(pin power_in line (at 0 0 0) (length 7.62)
(name "VCCA" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at 0 -2.54 0) (length 7.62)
(name "DIR" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 0 -5.08 0) (length 7.62)
(name "A1" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 0 -7.62 0) (length 7.62)
(name "A2" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 0 -10.16 0) (length 7.62)
(name "A3" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 0 -12.7 0) (length 7.62)
(name "A4" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 0 -15.24 0) (length 7.62)
(name "A5" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 0 -17.78 0) (length 7.62)
(name "A6" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 0 -20.32 0) (length 7.62)
(name "A7" (effects (font (size 1.27 1.27))))
(number "9" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 0 -22.86 0) (length 7.62)
(name "A8" (effects (font (size 1.27 1.27))))
(number "10" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 -25.4 0) (length 7.62)
(name "GND" (effects (font (size 1.27 1.27))))
(number "11" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 -27.94 0) (length 7.62)
(name "GND" (effects (font (size 1.27 1.27))))
(number "12" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 60.96 -30.48 180) (length 7.62)
(name "GND" (effects (font (size 1.27 1.27))))
(number "13" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 60.96 -27.94 180) (length 7.62)
(name "B8" (effects (font (size 1.27 1.27))))
(number "14" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 60.96 -25.4 180) (length 7.62)
(name "B7" (effects (font (size 1.27 1.27))))
(number "15" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 60.96 -22.86 180) (length 7.62)
(name "B6" (effects (font (size 1.27 1.27))))
(number "16" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 60.96 -20.32 180) (length 7.62)
(name "B5" (effects (font (size 1.27 1.27))))
(number "17" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 60.96 -17.78 180) (length 7.62)
(name "B4" (effects (font (size 1.27 1.27))))
(number "18" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 60.96 -15.24 180) (length 7.62)
(name "B3" (effects (font (size 1.27 1.27))))
(number "19" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 60.96 -12.7 180) (length 7.62)
(name "B2" (effects (font (size 1.27 1.27))))
(number "20" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 60.96 -10.16 180) (length 7.62)
(name "B1" (effects (font (size 1.27 1.27))))
(number "21" (effects (font (size 1.27 1.27))))
)
(pin input line (at 60.96 -7.62 180) (length 7.62)
(name "*OE" (effects (font (size 1.27 1.27))))
(number "22" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 60.96 -5.08 180) (length 7.62)
(name "VCCB" (effects (font (size 1.27 1.27))))
(number "23" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 60.96 -2.54 180) (length 7.62)
(name "VCCB" (effects (font (size 1.27 1.27))))
(number "24" (effects (font (size 1.27 1.27))))
)
(pin unspecified line (at 60.96 0 180) (length 7.62)
(name "EPAD" (effects (font (size 1.27 1.27))))
(number "25" (effects (font (size 1.27 1.27))))
)
)
)
)

View File

@@ -0,0 +1,156 @@
(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
(symbol "SN74LVCH8T245DGVR" (pin_names (offset 0.254)) (in_bom yes) (on_board yes)
(property "Reference" "U" (id 0) (at 30.48 10.16 0)
(effects (font (size 1.524 1.524)))
)
(property "Value" "SN74LVCH8T245DGVR" (id 1) (at 30.48 7.62 0)
(effects (font (size 1.524 1.524)))
)
(property "Footprint" "DGV24" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27) italic) hide)
)
(property "Datasheet" "SN74LVCH8T245DGVR" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27) italic) hide)
)
(property "ki_keywords" "SN74LVCH8T245DGVR" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_locked" "" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "DGV24 DGV24-M DGV24-L" (id 6) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "SN74LVCH8T245DGVR_0_1"
(polyline
(pts
(xy 7.62 5.08)
(xy 7.62 -33.02)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(polyline
(pts
(xy 7.62 -33.02)
(xy 53.34 -33.02)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(polyline
(pts
(xy 53.34 -33.02)
(xy 53.34 5.08)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(polyline
(pts
(xy 53.34 5.08)
(xy 7.62 5.08)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(pin power_in line (at 0 0 0) (length 7.62)
(name "VCCA" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at 0 -2.54 0) (length 7.62)
(name "DIR" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 0 -5.08 0) (length 7.62)
(name "A1" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 0 -7.62 0) (length 7.62)
(name "A2" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 0 -10.16 0) (length 7.62)
(name "A3" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 0 -12.7 0) (length 7.62)
(name "A4" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 0 -15.24 0) (length 7.62)
(name "A5" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 0 -17.78 0) (length 7.62)
(name "A6" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 0 -20.32 0) (length 7.62)
(name "A7" (effects (font (size 1.27 1.27))))
(number "9" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 0 -22.86 0) (length 7.62)
(name "A8" (effects (font (size 1.27 1.27))))
(number "10" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 -25.4 0) (length 7.62)
(name "GND" (effects (font (size 1.27 1.27))))
(number "11" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 -27.94 0) (length 7.62)
(name "GND" (effects (font (size 1.27 1.27))))
(number "12" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 60.96 -27.94 180) (length 7.62)
(name "GND" (effects (font (size 1.27 1.27))))
(number "13" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 60.96 -25.4 180) (length 7.62)
(name "B8" (effects (font (size 1.27 1.27))))
(number "14" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 60.96 -22.86 180) (length 7.62)
(name "B7" (effects (font (size 1.27 1.27))))
(number "15" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 60.96 -20.32 180) (length 7.62)
(name "B6" (effects (font (size 1.27 1.27))))
(number "16" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 60.96 -17.78 180) (length 7.62)
(name "B5" (effects (font (size 1.27 1.27))))
(number "17" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 60.96 -15.24 180) (length 7.62)
(name "B4" (effects (font (size 1.27 1.27))))
(number "18" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 60.96 -12.7 180) (length 7.62)
(name "B3" (effects (font (size 1.27 1.27))))
(number "19" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 60.96 -10.16 180) (length 7.62)
(name "B2" (effects (font (size 1.27 1.27))))
(number "20" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 60.96 -7.62 180) (length 7.62)
(name "B1" (effects (font (size 1.27 1.27))))
(number "21" (effects (font (size 1.27 1.27))))
)
(pin input line (at 60.96 -5.08 180) (length 7.62)
(name "*OE" (effects (font (size 1.27 1.27))))
(number "22" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 60.96 -2.54 180) (length 7.62)
(name "VCCB" (effects (font (size 1.27 1.27))))
(number "23" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 60.96 0 180) (length 7.62)
(name "VCCB" (effects (font (size 1.27 1.27))))
(number "24" (effects (font (size 1.27 1.27))))
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,39 @@
Designator,Footprint,Quantity,Value,LCSC Part #
AE1,Walsin_RFANT3216120A5T_3216,1,Chip Antenna,C127629
"C1, C6",0402,2,22uF/10V,C3845593
"C10, C9",0402,2,1.5pF,C2980160
"C11, C14, C15, C2, C20, C25, C26, C27, C28, C3, C32, C33, C34, C35, C36, C37, C38, C39, C4, C40, C42, C8",0402,22,100nF,C1525
"C12, C22, C41",0402,3,10uF,C307415
C13,0402,1,1uF/6.3V,C314234
"C16, C17",0603,2,22uF,C2762594
"C18, C19, C21, C29",0402,4,4.7uF,C318563
C23,0402,1,6.8pF,C318598
C24,0805,1,100uF,C6882730
C30,0603,1,10uF,C1691
C31,0603,1,1uF,C5199872
"C5, C7",0402,2,15pF,C106997
J1,USB_Micro-B_Amphenol_10103594-0001LF_Horizontal,1,USB_B_Mini,C428495
J2,PinHeader_1x06_P1.00mm_Vertical,1,JST Debug,
J3,MOLEX_104031-0811,1,SD Drive,C585350
L1,0402,1,6.8nH,C882467
L2,0402,1,2.7nH,C412269
L3,0805,1,3.3u,C48888263
L4,0603,1,2.2uH/1.05A,C337911
"R1, R17, R18, R19, R2, R27, R28, R29, R3, R30, R31, R32, R33, R34, R35, R36, R37, R38, R39, R4, R40, R44, R45, R5, R52, R53",0402,26,22R,C2906914
"R10, R11, R12, R13, R14, R20, R26, R7, R8, R9",0402,10,1K,C11702
"R15, R16, R21, R41, R42, R43, R6",0402,7,0R,C17168
"R22, R23, R46, R50, R51, R54, R56, R57, R59, R60",0402,10,10K,C60490
"R24, R25",0402,2,27R,C5151586
"R47, R48",0402,2,47K,C25792
R49,0402,1,33R,C25105
R55,0402,1,200K,C114763
R58,0402,1,44.2K,C853281
"R61, R62, R63, R64",0402,4,10K,C25792
U1,DIP-40_W15.24mm_Extender_NoCourtyard_SmallPad,1,EXTENDER,
U2,WSON-8-1EP_6x5mm_P1.27mm_EP3.4x4.3mm,1,W25Q128JVPIQ,C190862
U3,QFN-56-1EP_7x7mm_P0.4mm_EP4x4mm,1,ESP32-S3-PICO-1 N8R8,C7545129
U4,RP2350-QFN-80-1EP_10x10_P0.4mm_EP3.4x3.4mm_ThermalVias,1,RP2350_A4_80QFN,C42415655
U5,SOP-8_3.9x4.9mm_P1.27mm,1,APS6404L-3SQR-SN,C5333729
U6,SOT-23-5,1,TLV62569DBV,C141836
U7,QFN-24-1EP_4x4mm_P0.5mm_EP2.7x2.7mm,1,CH334F,C5187527
"Y1, Y2",Crystal_SMD_3225-4Pin_3.2x2.5mm,2,ABM8-272-T3 12MHz,C20625731
1 Designator Footprint Quantity Value LCSC Part #
2 AE1 Walsin_RFANT3216120A5T_3216 1 Chip Antenna C127629
3 C1, C6 0402 2 22uF/10V C3845593
4 C10, C9 0402 2 1.5pF C2980160
5 C11, C14, C15, C2, C20, C25, C26, C27, C28, C3, C32, C33, C34, C35, C36, C37, C38, C39, C4, C40, C42, C8 0402 22 100nF C1525
6 C12, C22, C41 0402 3 10uF C307415
7 C13 0402 1 1uF/6.3V C314234
8 C16, C17 0603 2 22uF C2762594
9 C18, C19, C21, C29 0402 4 4.7uF C318563
10 C23 0402 1 6.8pF C318598
11 C24 0805 1 100uF C6882730
12 C30 0603 1 10uF C1691
13 C31 0603 1 1uF C5199872
14 C5, C7 0402 2 15pF C106997
15 J1 USB_Micro-B_Amphenol_10103594-0001LF_Horizontal 1 USB_B_Mini C428495
16 J2 PinHeader_1x06_P1.00mm_Vertical 1 JST Debug
17 J3 MOLEX_104031-0811 1 SD Drive C585350
18 L1 0402 1 6.8nH C882467
19 L2 0402 1 2.7nH C412269
20 L3 0805 1 3.3u C48888263
21 L4 0603 1 2.2uH/1.05A C337911
22 R1, R17, R18, R19, R2, R27, R28, R29, R3, R30, R31, R32, R33, R34, R35, R36, R37, R38, R39, R4, R40, R44, R45, R5, R52, R53 0402 26 22R C2906914
23 R10, R11, R12, R13, R14, R20, R26, R7, R8, R9 0402 10 1K C11702
24 R15, R16, R21, R41, R42, R43, R6 0402 7 0R C17168
25 R22, R23, R46, R50, R51, R54, R56, R57, R59, R60 0402 10 10K C60490
26 R24, R25 0402 2 27R C5151586
27 R47, R48 0402 2 47K C25792
28 R49 0402 1 33R C25105
29 R55 0402 1 200K C114763
30 R58 0402 1 44.2K C853281
31 R61, R62, R63, R64 0402 4 10K C25792
32 U1 DIP-40_W15.24mm_Extender_NoCourtyard_SmallPad 1 EXTENDER
33 U2 WSON-8-1EP_6x5mm_P1.27mm_EP3.4x4.3mm 1 W25Q128JVPIQ C190862
34 U3 QFN-56-1EP_7x7mm_P0.4mm_EP4x4mm 1 ESP32-S3-PICO-1 N8R8 C7545129
35 U4 RP2350-QFN-80-1EP_10x10_P0.4mm_EP3.4x3.4mm_ThermalVias 1 RP2350_A4_80QFN C42415655
36 U5 SOP-8_3.9x4.9mm_P1.27mm 1 APS6404L-3SQR-SN C5333729
37 U6 SOT-23-5 1 TLV62569DBV C141836
38 U7 QFN-24-1EP_4x4mm_P0.5mm_EP2.7x2.7mm 1 CH334F C5187527
39 Y1, Y2 Crystal_SMD_3225-4Pin_3.2x2.5mm 2 ABM8-272-T3 12MHz C20625731

View File

@@ -0,0 +1,123 @@
AE1:1
C1:1
C10:1
C11:1
C12:1
C13:1
C14:1
C15:1
C16:1
C17:1
C18:1
C19:1
C2:1
C20:1
C21:1
C22:1
C23:1
C24:1
C25:1
C26:1
C27:1
C28:1
C29:1
C3:1
C30:1
C31:1
C32:1
C33:1
C34:1
C35:1
C36:1
C37:1
C38:1
C39:1
C4:1
C40:1
C41:1
C42:1
C5:1
C6:1
C7:1
C8:1
C9:1
J1:1
J2:1
J3:1
L1:1
L2:1
L3:1
L4:1
R1:1
R10:1
R11:1
R12:1
R13:1
R14:1
R15:1
R16:1
R17:1
R18:1
R19:1
R2:1
R20:1
R21:1
R22:1
R23:1
R24:1
R25:1
R26:1
R27:1
R28:1
R29:1
R3:1
R30:1
R31:1
R32:1
R33:1
R34:1
R35:1
R36:1
R37:1
R38:1
R39:1
R4:1
R40:1
R41:1
R42:1
R43:1
R44:1
R45:1
R46:1
R47:1
R48:1
R49:1
R5:1
R50:1
R51:1
R52:1
R53:1
R54:1
R55:1
R56:1
R57:1
R58:1
R59:1
R6:1
R60:1
R61:1
R62:1
R63:1
R64:1
R7:1
R8:1
R9:1
U1:1
U2:1
U3:1
U4:1
U5:1
U6:1
U7:1
Y1:1
Y2:1
1 AE1:1
2 C1:1
3 C10:1
4 C11:1
5 C12:1
6 C13:1
7 C14:1
8 C15:1
9 C16:1
10 C17:1
11 C18:1
12 C19:1
13 C2:1
14 C20:1
15 C21:1
16 C22:1
17 C23:1
18 C24:1
19 C25:1
20 C26:1
21 C27:1
22 C28:1
23 C29:1
24 C3:1
25 C30:1
26 C31:1
27 C32:1
28 C33:1
29 C34:1
30 C35:1
31 C36:1
32 C37:1
33 C38:1
34 C39:1
35 C4:1
36 C40:1
37 C41:1
38 C42:1
39 C5:1
40 C6:1
41 C7:1
42 C8:1
43 C9:1
44 J1:1
45 J2:1
46 J3:1
47 L1:1
48 L2:1
49 L3:1
50 L4:1
51 R1:1
52 R10:1
53 R11:1
54 R12:1
55 R13:1
56 R14:1
57 R15:1
58 R16:1
59 R17:1
60 R18:1
61 R19:1
62 R2:1
63 R20:1
64 R21:1
65 R22:1
66 R23:1
67 R24:1
68 R25:1
69 R26:1
70 R27:1
71 R28:1
72 R29:1
73 R3:1
74 R30:1
75 R31:1
76 R32:1
77 R33:1
78 R34:1
79 R35:1
80 R36:1
81 R37:1
82 R38:1
83 R39:1
84 R4:1
85 R40:1
86 R41:1
87 R42:1
88 R43:1
89 R44:1
90 R45:1
91 R46:1
92 R47:1
93 R48:1
94 R49:1
95 R5:1
96 R50:1
97 R51:1
98 R52:1
99 R53:1
100 R54:1
101 R55:1
102 R56:1
103 R57:1
104 R58:1
105 R59:1
106 R6:1
107 R60:1
108 R61:1
109 R62:1
110 R63:1
111 R64:1
112 R7:1
113 R8:1
114 R9:1
115 U1:1
116 U2:1
117 U3:1
118 U4:1
119 U5:1
120 U6:1
121 U7:1
122 Y1:1
123 Y2:1

View File

@@ -0,0 +1,122 @@
Designator,Mid X,Mid Y,Rotation,Layer
AE1,6.1976,52.578,180.0,top
C1,14.451601,42.0699,0.0,top
C10,12.810357,46.713979,135.0,top
C11,10.68875,46.9646,90.0,top
C12,9.6975,46.9646,90.0,top
C13,14.451601,43.03885,0.0,top
C14,14.451601,44.0078,0.0,top
C15,7.973,30.139201,180.0,bottom
C16,13.323717,32.752036,90.0,bottom
C17,11.773087,32.752036,90.0,bottom
C18,14.0608,25.716,270.0,top
C19,12.02,25.2856,0.0,top
C2,14.451601,40.132,180.0,top
C20,9.971616,13.669012,180.0,bottom
C21,12.02,26.2,0.0,top
C22,8.72625,49.0982,270.0,top
C23,8.17157,35.122696,0.0,bottom
C24,4.629704,25.096715,180.0,bottom
C25,13.94,21.45,270.0,bottom
C26,8.031616,13.669012,0.0,bottom
C27,6.38,23.5,0.0,bottom
C28,13.9,19.31,90.0,bottom
C29,4.06,19.14,90.0,bottom
C3,5.623349,36.83,0.0,top
C30,5.052553,30.642101,180.0,bottom
C31,4.184766,33.162955,90.0,bottom
C32,5.381488,32.782305,90.0,bottom
C33,13.9,17.45,270.0,bottom
C34,4.06,16.24,270.0,bottom
C35,6.011616,13.669012,0.0,bottom
C36,13.9,15.24,90.0,bottom
C37,4.06,21.26,90.0,bottom
C38,9.42,23.42,0.0,bottom
C39,6.315587,32.782305,90.0,bottom
C4,3.584347,41.527149,90.0,top
C40,12.9552,8.01,90.0,top
C41,10.7708,8.01,90.0,top
C42,11.736,8.01,90.0,top
C5,7.704,10.868,90.0,top
C6,8.72625,46.9646,90.0,top
C7,8.144,8.458,0.0,top
C8,15.018131,27.669,270.0,top
C9,13.236,49.7586,180.0,top
J1,9.017,3.823,0.0,top
J3,9.04,43.67,180.0,bottom
L1,12.446,51.7144,315.0,top
L2,13.716,48.2854,270.0,top
L3,11.77,27.64,0.0,top
L4,11.596988,30.533129,180.0,bottom
R1,1.18,48.768,0.0,top
R10,1.18,25.908,0.0,top
R11,1.18,23.368,0.0,top
R12,1.18,20.828,0.0,top
R13,1.18,18.288,0.0,top
R14,1.18,15.748,0.0,top
R15,1.18,13.208,180.0,top
R16,1.18,10.668,180.0,top
R17,1.18,8.128,180.0,top
R18,1.18,5.588,180.0,top
R19,1.18,3.048,180.0,top
R2,1.18,46.228,0.0,top
R20,8.164,9.438,0.0,top
R21,10.0076,52.578,180.0,top
R22,6.390001,47.542,180.0,top
R23,6.390001,46.552,0.0,top
R24,8.430002,25.9649,180.0,top
R25,8.430002,24.991099,180.0,top
R26,14.730001,1.48,180.0,top
R27,16.85,3.048,0.0,top
R28,16.85,48.768,180.0,top
R29,16.85,46.228,180.0,top
R3,1.18,43.688,0.0,top
R30,16.85,43.688,180.0,top
R31,16.85,41.148,180.0,top
R32,16.85,38.608,180.0,top
R33,16.85,36.068,180.0,top
R34,16.85,33.528,180.0,top
R35,16.85,30.988,180.0,top
R36,16.85,28.448,180.0,top
R37,16.85,25.908,180.0,top
R38,16.85,23.368,180.0,top
R39,16.85,20.828,0.0,top
R4,1.18,41.148,0.0,top
R40,16.85,18.288,0.0,top
R41,16.85,15.748,0.0,top
R42,16.85,13.208,0.0,top
R43,16.85,10.668,0.0,top
R44,16.85,8.128,0.0,top
R45,16.85,5.588,0.0,top
R46,7.54485,36.83,180.0,top
R47,13.991004,13.694412,180.0,bottom
R48,14.451601,41.10095,0.0,top
R49,14.0708,27.649,270.0,top
R5,1.18,38.608,0.0,top
R50,10.69875,49.0982,90.0,top
R51,11.69,49.0982,270.0,top
R52,4.4224,38.3626,270.0,top
R53,3.428465,38.3626,270.0,top
R54,9.7075,49.0982,90.0,top
R55,10.050034,35.122696,0.0,bottom
R56,5.545,49.0982,90.0,top
R57,7.745,49.0982,90.0,top
R58,5.847941,34.166561,0.0,bottom
R59,4.495,49.0982,90.0,top
R6,1.18,36.068,180.0,top
R60,13.789827,36.434075,180.0,bottom
R61,3.45663,43.918578,0.0,top
R62,3.45663,45.906444,0.0,top
R63,3.45663,42.924645,0.0,top
R64,3.45663,44.912511,0.0,top
R7,1.18,33.528,0.0,top
R8,1.18,30.988,0.0,top
R9,1.18,28.448,0.0,top
U2,12.446,32.512,270.0,top
U3,9.017,41.526,0.0,top
U4,9.017,18.500867,0.0,top
U5,5.588,32.512,180.0,top
U6,8.928592,32.959181,180.0,bottom
U7,10.7,9.52,270.0,bottom
Y1,5.4864,9.779,270.0,top
Y2,5.4864,9.779,270.0,bottom
1 Designator Mid X Mid Y Rotation Layer
2 AE1 6.1976 52.578 180.0 top
3 C1 14.451601 42.0699 0.0 top
4 C10 12.810357 46.713979 135.0 top
5 C11 10.68875 46.9646 90.0 top
6 C12 9.6975 46.9646 90.0 top
7 C13 14.451601 43.03885 0.0 top
8 C14 14.451601 44.0078 0.0 top
9 C15 7.973 30.139201 180.0 bottom
10 C16 13.323717 32.752036 90.0 bottom
11 C17 11.773087 32.752036 90.0 bottom
12 C18 14.0608 25.716 270.0 top
13 C19 12.02 25.2856 0.0 top
14 C2 14.451601 40.132 180.0 top
15 C20 9.971616 13.669012 180.0 bottom
16 C21 12.02 26.2 0.0 top
17 C22 8.72625 49.0982 270.0 top
18 C23 8.17157 35.122696 0.0 bottom
19 C24 4.629704 25.096715 180.0 bottom
20 C25 13.94 21.45 270.0 bottom
21 C26 8.031616 13.669012 0.0 bottom
22 C27 6.38 23.5 0.0 bottom
23 C28 13.9 19.31 90.0 bottom
24 C29 4.06 19.14 90.0 bottom
25 C3 5.623349 36.83 0.0 top
26 C30 5.052553 30.642101 180.0 bottom
27 C31 4.184766 33.162955 90.0 bottom
28 C32 5.381488 32.782305 90.0 bottom
29 C33 13.9 17.45 270.0 bottom
30 C34 4.06 16.24 270.0 bottom
31 C35 6.011616 13.669012 0.0 bottom
32 C36 13.9 15.24 90.0 bottom
33 C37 4.06 21.26 90.0 bottom
34 C38 9.42 23.42 0.0 bottom
35 C39 6.315587 32.782305 90.0 bottom
36 C4 3.584347 41.527149 90.0 top
37 C40 12.9552 8.01 90.0 top
38 C41 10.7708 8.01 90.0 top
39 C42 11.736 8.01 90.0 top
40 C5 7.704 10.868 90.0 top
41 C6 8.72625 46.9646 90.0 top
42 C7 8.144 8.458 0.0 top
43 C8 15.018131 27.669 270.0 top
44 C9 13.236 49.7586 180.0 top
45 J1 9.017 3.823 0.0 top
46 J3 9.04 43.67 180.0 bottom
47 L1 12.446 51.7144 315.0 top
48 L2 13.716 48.2854 270.0 top
49 L3 11.77 27.64 0.0 top
50 L4 11.596988 30.533129 180.0 bottom
51 R1 1.18 48.768 0.0 top
52 R10 1.18 25.908 0.0 top
53 R11 1.18 23.368 0.0 top
54 R12 1.18 20.828 0.0 top
55 R13 1.18 18.288 0.0 top
56 R14 1.18 15.748 0.0 top
57 R15 1.18 13.208 180.0 top
58 R16 1.18 10.668 180.0 top
59 R17 1.18 8.128 180.0 top
60 R18 1.18 5.588 180.0 top
61 R19 1.18 3.048 180.0 top
62 R2 1.18 46.228 0.0 top
63 R20 8.164 9.438 0.0 top
64 R21 10.0076 52.578 180.0 top
65 R22 6.390001 47.542 180.0 top
66 R23 6.390001 46.552 0.0 top
67 R24 8.430002 25.9649 180.0 top
68 R25 8.430002 24.991099 180.0 top
69 R26 14.730001 1.48 180.0 top
70 R27 16.85 3.048 0.0 top
71 R28 16.85 48.768 180.0 top
72 R29 16.85 46.228 180.0 top
73 R3 1.18 43.688 0.0 top
74 R30 16.85 43.688 180.0 top
75 R31 16.85 41.148 180.0 top
76 R32 16.85 38.608 180.0 top
77 R33 16.85 36.068 180.0 top
78 R34 16.85 33.528 180.0 top
79 R35 16.85 30.988 180.0 top
80 R36 16.85 28.448 180.0 top
81 R37 16.85 25.908 180.0 top
82 R38 16.85 23.368 180.0 top
83 R39 16.85 20.828 0.0 top
84 R4 1.18 41.148 0.0 top
85 R40 16.85 18.288 0.0 top
86 R41 16.85 15.748 0.0 top
87 R42 16.85 13.208 0.0 top
88 R43 16.85 10.668 0.0 top
89 R44 16.85 8.128 0.0 top
90 R45 16.85 5.588 0.0 top
91 R46 7.54485 36.83 180.0 top
92 R47 13.991004 13.694412 180.0 bottom
93 R48 14.451601 41.10095 0.0 top
94 R49 14.0708 27.649 270.0 top
95 R5 1.18 38.608 0.0 top
96 R50 10.69875 49.0982 90.0 top
97 R51 11.69 49.0982 270.0 top
98 R52 4.4224 38.3626 270.0 top
99 R53 3.428465 38.3626 270.0 top
100 R54 9.7075 49.0982 90.0 top
101 R55 10.050034 35.122696 0.0 bottom
102 R56 5.545 49.0982 90.0 top
103 R57 7.745 49.0982 90.0 top
104 R58 5.847941 34.166561 0.0 bottom
105 R59 4.495 49.0982 90.0 top
106 R6 1.18 36.068 180.0 top
107 R60 13.789827 36.434075 180.0 bottom
108 R61 3.45663 43.918578 0.0 top
109 R62 3.45663 45.906444 0.0 top
110 R63 3.45663 42.924645 0.0 top
111 R64 3.45663 44.912511 0.0 top
112 R7 1.18 33.528 0.0 top
113 R8 1.18 30.988 0.0 top
114 R9 1.18 28.448 0.0 top
115 U2 12.446 32.512 270.0 top
116 U3 9.017 41.526 0.0 top
117 U4 9.017 18.500867 0.0 top
118 U5 5.588 32.512 180.0 top
119 U6 8.928592 32.959181 180.0 bottom
120 U7 10.7 9.52 270.0 bottom
121 Y1 5.4864 9.779 270.0 top
122 Y2 5.4864 9.779 270.0 bottom

View File

@@ -0,0 +1,781 @@
P CODE 00
P UNITS CUST 0
P arrayDim N
317+5V VIA MD0120PA00X+002950Y+012638X0200Y0000R000S3
317+5V VIA MD0120PA00X+005274Y+002721X0200Y0000R000S3
317+5V VIA MD0120PA00X+004889Y+002721X0200Y0000R000S3
317+5V VIA MD0120PA00X+003490Y+013350X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+001112Y+019654X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005118Y+010353X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005003Y+005040X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004571Y+020959X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003753Y+021020X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005528Y+009719X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004072Y+016918X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005646Y+020428X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+002334Y+009527X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005352Y+018034X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004409Y+005050X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003828Y+004093X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003966Y+018863X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+002101Y+013095X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005688Y+018843X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+001465Y+019722X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003450Y+019956X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005405Y+013361X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004668Y+018110X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003769Y+020043X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004543Y+015319X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005890Y+016559X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+002917Y+015978X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+001124Y+016122X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003033Y+004468X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005487Y+017735X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004635Y+013361X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004972Y+020695X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003490Y+012253X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003302Y+015978X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005672Y+019608X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004072Y+015978X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004973Y+019860X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004598Y+003363X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+002495Y+004717X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003302Y+016363X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+001351Y+014258X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003302Y+016918X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003687Y+016363X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004213Y+003363X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005064Y+021020X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+002849Y+009634X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003687Y+015978X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005112Y+018870X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005112Y+019215X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+001829Y+019978X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005118Y+010125X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+001825Y+002983X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004351Y+018863X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004547Y+017373X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+001441Y+019983X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004598Y+004093X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+002495Y+002983X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004697Y+020104X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+002189Y+019978X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+002950Y+012253X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+001950Y+014500X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+002490Y+013095X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004278Y+012976X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003436Y+019717X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003687Y+016918X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005020Y+013361X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005879Y+017326X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005314Y+020628X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005970Y+018595X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+002917Y+016918X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004072Y+016363X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005914Y+019790X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005587Y+003670X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004213Y+004093X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+001431Y+003417X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+002849Y+010428X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004426Y+019987X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005960Y+019040X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005879Y+015800X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005436Y+020923X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004378Y+020334X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003828Y+003748X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004910Y+018525X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+001950Y+010319X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+002917Y+016363X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005332Y+020308X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+001431Y+004283X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005601Y+018433X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+002616Y+019637X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003042Y+019978X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+001331Y+013480X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003109Y+003043X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+001017Y+019978X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003490Y+012976X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003819Y+020361X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+003826Y+005040X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005587Y+004218X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+002458Y+012253X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005742Y+018117X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005601Y+019940X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004115Y+020095X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+004133Y+021020X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005913Y+010579X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005016Y+017698X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+005686Y+019284X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+002666Y+019916X0200Y0000R000S3
317GNDPWR VIA MD0120PA00X+006002Y+019407X0200Y0000R000S3
317VZ80.~{RFSH} VIA MD0120PA00X+004409Y+006438X0200Y0000R000S3
317VZ80.~{RFSH} VIA MD0120PA00X+006433Y+008200X0200Y0000R000S3
317VZ80.~{RD} VIA MD0120PA00X+006433Y+001200X0200Y0000R000S3
317VZ80.~{RD} VIA MD0120PA00X+002929Y+005668X0200Y0000R000S3
317SP32.FSPI_MISO VIA MD0120PA00X+004781Y+007705X0200Y0000R000S3
317SP32.FSPI_MISO VIA MD0120PA00X+001742Y+016918X0200Y0000R000S3
317VZ80.~{IORQ} VIA MD0120PA00X+004967Y+005668X0200Y0000R000S3
317VZ80.~{IORQ} VIA MD0120PA00X+000665Y+001200X0200Y0000R000S3
317ESP32.~{RESET} VIA MD0120PA00X+005839Y+006948X0200Y0000R000S3
317ESP32.~{RESET} VIA MD0120PA00X+004547Y+016918X0200Y0000R000S3
317VZ80.~{NMI} VIA MD0120PA00X+004967Y+006438X0200Y0000R000S3
317VZ80.~{NMI} VIA MD0120PA00X+000665Y+004200X0200Y0000R000S3
317VZ80.~{HALT} VIA MD0120PA00X+003156Y+005085X0200Y0000R000S3
317VZ80.~{HALT} VIA MD0120PA00X+000665Y+003200X0200Y0000R000S3
317VZ80.~{CLK} VIA MD0120PA00X+005839Y+006178X0200Y0000R000S3
317VZ80.~{CLK} VIA MD0120PA00X+000665Y+014200X0200Y0000R000S3
317ESP32.RXD VIA MD0120PA00X+004547Y+016363X0200Y0000R000S3
317ESP32.RXD VIA MD0120PA00X+005789Y+007705X0200Y0000R000S3
317ESP32.FSPI_CS0 VIA MD0120PA00X+005166Y+008120X0200Y0000R000S3
317ESP32.FSPI_CS0 VIA MD0120PA00X+001742Y+018073X0200Y0000R000S3
317ESP32.BOOT VIA MD0120PA00X+004781Y+007363X0200Y0000R000S3
317ESP32.BOOT VIA MD0120PA00X+004072Y+017303X0200Y0000R000S3
317VZ80.~{BUSACK} VIA MD0120PA00X+006433Y+003200X0200Y0000R000S3
317VZ80.~{BUSACK} VIA MD0120PA00X+001424Y+001588X0200Y0000R000S3
317VZ80.~{MREQ} VIA MD0120PA00X+001039Y+001203X0200Y0000R000S3
317VZ80.~{MREQ} VIA MD0120PA00X+004967Y+006053X0200Y0000R000S3
317VZ80.~{WR} VIA MD0120PA00X+001424Y+001203X0200Y0000R000S3
317VZ80.~{WR} VIA MD0120PA00X+006433Y+002200X0200Y0000R000S3
317VZ80.~{INT} VIA MD0120PA00X+004967Y+006823X0200Y0000R000S3
317VZ80.~{INT} VIA MD0120PA00X+000665Y+005200X0200Y0000R000S3
317VZ80.~{M1} VIA MD0120PA00X+006433Y+007200X0200Y0000R000S3
317VZ80.~{M1} VIA MD0120PA00X+004409Y+005668X0200Y0000R000S3
317ESP32.TXD VIA MD0120PA00X+005166Y+007705X0200Y0000R000S3
317ESP32.TXD VIA MD0120PA00X+005226Y+016363X0200Y0000R000S3
317VZ80.~{BUSRQ} VIA MD0120PA00X+005388Y+005040X0200Y0000R000S3
317VZ80.~{BUSRQ} VIA MD0120PA00X+006433Y+005200X0200Y0000R000S3
317ESP32.FSPI_CLK VIA MD0120PA00X+001742Y+017303X0200Y0000R000S3
317ESP32.FSPI_CLK VIA MD0120PA00X+004781Y+008120X0200Y0000R000S3
317SP32.FSPI_MOSI VIA MD0120PA00X+001742Y+017688X0200Y0000R000S3
317SP32.FSPI_MOSI VIA MD0120PA00X+005789Y+008120X0200Y0000R000S3
317ESP32.HS VIA MD0120PA00X+003687Y+017303X0200Y0000R000S3
317ESP32.HS VIA MD0120PA00X+005839Y+006563X0200Y0000R000S3
317/ESP32/SD.DAT2 VIA MD0120PA00X+004602Y+019717X0200Y0000R000S3
317/ESP32/SD.DAT2 VIA MD0120PA00X+003302Y+017303X0200Y0000R000S3
317/ESP32/SD.CMD VIA MD0120PA00X+002542Y+016363X0200Y0000R000S3
317/ESP32/SD.CMD VIA MD0120PA00X+003822Y+019717X0200Y0000R000S3
31732/SD.CDDETECT VIA MD0120PA00X+005890Y+016200X0200Y0000R000S3
31732/SD.CDDETECT VIA MD0120PA00X+002542Y+015653X0200Y0000R000S3
317/ESP32/SD.DAT3 VIA MD0120PA00X+002917Y+017303X0200Y0000R000S3
317/ESP32/SD.DAT3 VIA MD0120PA00X+004212Y+019717X0200Y0000R000S3
317/ESP32/SD.DAT1 VIA MD0120PA00X+001770Y+019717X0200Y0000R000S3
317/ESP32/SD.DAT1 VIA MD0120PA00X+001742Y+016363X0200Y0000R000S3
317/ESP32/SD.CLK VIA MD0120PA00X+003049Y+019717X0200Y0000R000S3
317/ESP32/SD.CLK VIA MD0120PA00X+002542Y+015978X0200Y0000R000S3
317/ESP32/SD.DAT0 VIA MD0120PA00X+002183Y+019717X0200Y0000R000S3
317/ESP32/SD.DAT0 VIA MD0120PA00X+001742Y+015978X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+001103Y+016383X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+003188Y+018506X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+003581Y+018943X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+002594Y+008900X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+005789Y+007205X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+005226Y+016016X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+005913Y+011082X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+005478Y+008929X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+003914Y+008900X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+002183Y+018937X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+003750Y+009506X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+002450Y+014500X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+001934Y+008150X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+003315Y+018937X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+004504Y+002721X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+005226Y+016756X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+005528Y+011082X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+003189Y+018286X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+003314Y+005668X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+005789Y+005788X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+002950Y+011866X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+005789Y+008622X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+001934Y+006575X0200Y0000R000S3
317+3V3 VIA MD0120PA00X+002526Y+005668X0200Y0000R000S3
317ESP32.SW_CLK VIA MD0120PA00X+002127Y+017688X0200Y0000R000S3
317ESP32.SW_CLK VIA MD0120PA00X+003314Y+006053X0200Y0000R000S3
317+1V1 VIA MD0120PA00X+004241Y+010335X0200Y0000R000S3
317+1V1 VIA MD0120PA00X+003746Y+005668X0200Y0000R000S3
317+1V1 VIA MD0120PA00X+004241Y+010107X0200Y0000R000S3
317+1V1 VIA MD0120PA00X+001934Y+007363X0200Y0000R000S3
317+1V1 VIA MD0120PA00X+005166Y+007363X0200Y0000R000S3
317ESP32.SW_DIO VIA MD0120PA00X+002127Y+018073X0200Y0000R000S3
317ESP32.SW_DIO VIA MD0120PA00X+003746Y+006053X0200Y0000R000S3
3172.~{RP2350RST} VIA MD0120PA00X+005773Y+005040X0200Y0000R000S3
3172.~{RP2350RST} VIA MD0120PA00X+004409Y+006053X0200Y0000R000S3
3172.~{RP2350RST} VIA MD0120PA00X+002512Y+018073X0200Y0000R000S3
317USB?HUB/USB_DP VIA MD0120PA00X+005370Y+003812X0200Y0000R000S3
31750?CPU/VREG_LX VIA MD0120PA00X+004731Y+009491X0200Y0000R000S3
31750?CPU/VREG_LX VIA MD0120PA00X+004731Y+009719X0200Y0000R000S3
31750?CPU/VREG_LX VIA MD0120PA00X+004731Y+010579X0200Y0000R000S3
31750?CPU/VREG_LX VIA MD0120PA00X+004731Y+010806X0200Y0000R000S3
317?CPU/FLASH2_SS VIA MD0120PA00X+005166Y+008505X0200Y0000R000S3
317?CPU/FLASH2_SS VIA MD0120PA00X+003479Y+014634X0200Y0000R000S3
317?CPU/QSPI_SCLK VIA MD0120PA00X+004650Y+011328X0200Y0000R000S3
317?CPU/QSPI_SCLK VIA MD0120PA00X+003514Y+008900X0200Y0000R000S3
317?CPU/QSPI_SCLK VIA MD0120PA00X+001950Y+011328X0200Y0000R000S3
3170?CPU/QSPI_SD1 VIA MD0120PA00X+002989Y+008900X0200Y0000R000S3
3170?CPU/QSPI_SD1 VIA MD0120PA00X+002450Y+014115X0200Y0000R000S3
3170?CPU/QSPI_SD1 VIA MD0120PA00X+005150Y+014035X0200Y0000R000S3
3170?CPU/QSPI_SD0 VIA MD0120PA00X+001950Y+010943X0200Y0000R000S3
3170?CPU/QSPI_SD0 VIA MD0120PA00X+003514Y+008515X0200Y0000R000S3
3170?CPU/QSPI_SD0 VIA MD0120PA00X+004265Y+011328X0200Y0000R000S3
3170?CPU/QSPI_SD3 VIA MD0120PA00X+002450Y+011328X0200Y0000R000S3
3170?CPU/QSPI_SD3 VIA MD0120PA00X+003914Y+008515X0200Y0000R000S3
3170?CPU/QSPI_SD3 VIA MD0120PA00X+005150Y+011328X0200Y0000R000S3
3170?CPU/QSPI_SD2 VIA MD0120PA00X+004650Y+014035X0200Y0000R000S3
3170?CPU/QSPI_SD2 VIA MD0120PA00X+001950Y+014115X0200Y0000R000S3
3170?CPU/QSPI_SD2 VIA MD0120PA00X+002989Y+008515X0200Y0000R000S3
317VZ80.A5 VIA MD0120PA00X+003120Y+015319X0200Y0000R000S3
317VZ80.A5 VIA MD0120PA00X+006433Y+014200X0200Y0000R000S3
317VZ80.A5 VIA MD0120PA00X+002082Y+008773X0200Y0000R000S3
317VZ80.D4 VIA MD0120PA00X+000665Y+013200X0200Y0000R000S3
317VZ80.D4 VIA MD0120PA00X+001369Y+005668X0200Y0000R000S3
317VZ80.A8 VIA MD0120PA00X+004781Y+008890X0200Y0000R000S3
317VZ80.A8 VIA MD0120PA00X+006433Y+017200X0200Y0000R000S3
317VZ80.A10 VIA MD0120PA00X+006433Y+019200X0200Y0000R000S3
317VZ80.A10 VIA MD0120PA00X+004781Y+008505X0200Y0000R000S3
317VZ80.A3 VIA MD0120PA00X+001805Y+009527X0200Y0000R000S3
317VZ80.A3 VIA MD0120PA00X+006433Y+012200X0200Y0000R000S3
317VZ80.A3 VIA MD0120PA00X+003890Y+015319X0200Y0000R000S3
317VZ80.A1 VIA MD0120PA00X+001805Y+009054X0200Y0000R000S3
317VZ80.A1 VIA MD0120PA00X+006433Y+010200X0200Y0000R000S3
317VZ80.A1 VIA MD0120PA00X+003505Y+015319X0200Y0000R000S3
317VZ80.A9 VIA MD0120PA00X+006433Y+018200X0200Y0000R000S3
317VZ80.A9 VIA MD0120PA00X+005166Y+008890X0200Y0000R000S3
317VZ80.A12 VIA MD0120PA00X+001934Y+006960X0200Y0000R000S3
317VZ80.A12 VIA MD0120PA00X+000665Y+018200X0200Y0000R000S3
317VZ80.D6 VIA MD0120PA00X+002139Y+005668X0200Y0000R000S3
317VZ80.D6 VIA MD0120PA00X+000665Y+010200X0200Y0000R000S3
317VZ80.D3 VIA MD0120PA00X+000665Y+012200X0200Y0000R000S3
317VZ80.D3 VIA MD0120PA00X+001369Y+005283X0200Y0000R000S3
317VZ80.A11 VIA MD0120PA00X+000665Y+019200X0200Y0000R000S3
317VZ80.A11 VIA MD0120PA00X+002319Y+007345X0200Y0000R000S3
317VZ80.D7 VIA MD0120PA00X+000665Y+008200X0200Y0000R000S3
317VZ80.D7 VIA MD0120PA00X+002139Y+006053X0200Y0000R000S3
317VZ80.A7 VIA MD0120PA00X+006433Y+016200X0200Y0000R000S3
317VZ80.A7 VIA MD0120PA00X+002082Y+008388X0200Y0000R000S3
317VZ80.A7 VIA MD0120PA00X+002735Y+015319X0200Y0000R000S3
317VZ80.D2 VIA MD0120PA00X+000665Y+009200X0200Y0000R000S3
317VZ80.D2 VIA MD0120PA00X+002319Y+006960X0200Y0000R000S3
317VZ80.D5 VIA MD0120PA00X+001754Y+005283X0200Y0000R000S3
317VZ80.D5 VIA MD0120PA00X+000665Y+011200X0200Y0000R000S3
31750?CPU/QSPI_SS VIA MD0120PA00X+002594Y+008515X0200Y0000R000S3
31750?CPU/QSPI_SS VIA MD0120PA00X+005598Y+000583X0200Y0000R000S3
31750?CPU/QSPI_SS VIA MD0120PA00X+002929Y+006053X0200Y0000R000S3
31750?CPU/QSPI_SS VIA MD0120PA00X+005650Y+014035X0200Y0000R000S3
317RP2350_DP VIA MD0120PA00X+002842Y+009896X0200Y0000R000S3
317RP2350_DP VIA MD0120PA00X+004827Y+004834X0200Y0000R000S3
317ESP32_DP VIA MD0120PA00X+001691Y+014575X0200Y0000R000S3
317ESP32_DP VIA MD0120PA00X+004268Y+004834X0200Y0000R000S3
317USB?HUB/USB_DN VIA MD0120PA00X+005370Y+004078X0200Y0000R000S3
317RP2350_DN VIA MD0120PA00X+002842Y+010166X0200Y0000R000S3
317RP2350_DN VIA MD0120PA00X+004557Y+004834X0200Y0000R000S3
317ESP32_DN VIA MD0120PA00X+001400Y+014575X0200Y0000R000S3
317ESP32_DN VIA MD0120PA00X+004002Y+004834X0200Y0000R000S3
327NET-(U1-D1) R14 -1 A01X+000264Y+006200X0213Y0252R000S2
327VZ80.D1 R14 -2 A01X+000665Y+006200X0213Y0252R000S2
327+3V3 R48 -1 A01X+005489Y+016181X0213Y0252R000S2
32732/SD.CDDETECT R48 -2 A01X+005890Y+016181X0213Y0252R000S2
327VZ80.~{WAIT} R43 -1 A01X+006433Y+004200X0213Y0252R000S2
327T-(U1-~{WAIT}) R43 -2 A01X+006835Y+004200X0213Y0252R000S2
327+3V3 C14 -1 A01X+005501Y+017326X0220Y0244R000S2
327GNDPWR C14 -2 A01X+005879Y+017326X0220Y0244R000S2
327VZ80.~{BUSRQ} R42 -1 A01X+006433Y+005200X0213Y0252R000S2
327-(U1-~{BUSRQ}) R42 -2 A01X+006835Y+005200X0213Y0252R000S2
327NET-(U1-A7) R31 -1 A01X+006835Y+016200X0213Y0252R180S2
327VZ80.A7 R31 -2 A01X+006433Y+016200X0213Y0252R180S2
327+5V C40 -1 A01X+005100Y+002965X0220Y0244R270S2
327GNDPWR C40 -2 A01X+005100Y+003343X0220Y0244R270S2
327VZ80.~{RFSH} R39 -1 A01X+006433Y+008200X0213Y0252R000S2
327T-(U1-~{RFSH}) R39 -2 A01X+006835Y+008200X0213Y0252R000S2
32750?CPU/QSPI_SS U2 -1 A01X+005650Y+013863X0295Y0197R090S2
3270?CPU/QSPI_SD1 U2 -2 A01X+005150Y+013863X0295Y0197R090S2
3270?CPU/QSPI_SD2 U2 -3 A01X+004650Y+013863X0295Y0197R090S2
327GNDPWR U2 -4 A01X+004150Y+013863X0295Y0197R090S2
3270?CPU/QSPI_SD0 U2 -5 A01X+004150Y+011737X0295Y0197R090S2
327?CPU/QSPI_SCLK U2 -6 A01X+004650Y+011737X0295Y0197R090S2
3270?CPU/QSPI_SD3 U2 -7 A01X+005150Y+011737X0295Y0197R090S2
327+3V3 U2 -8 A01X+005650Y+011737X0295Y0197R090S2
327GNDPWR U2 -9 A01X+004900Y+012800X1339Y1693R090S2
327NET-(C7-PAD1) R20 -1 A01X+003013Y+003716X0213Y0252R000S2
327P2350?CPU/XOUT R20 -2 A01X+003415Y+003716X0213Y0252R000S2
327NET-(U1-D6) R10 -1 A01X+000264Y+010200X0213Y0252R000S2
327VZ80.D6 R10 -2 A01X+000665Y+010200X0213Y0252R000S2
327VZ80.~{IORQ} R19 -1 A01X+000665Y+001200X0213Y0252R180S2
327T-(U1-~{IORQ}) R19 -2 A01X+000264Y+001200X0213Y0252R180S2
327+3V3 R49 -1 A01X+005540Y+011086X0213Y0252R090S2
327?CPU/VREG_AVDD R49 -2 A01X+005540Y+010685X0213Y0252R090S2
327VZ80.~{RESET} R41 -1 A01X+006433Y+006200X0213Y0252R000S2
327-(U1-~{RESET}) R41 -2 A01X+006835Y+006200X0213Y0252R000S2
327NET-(L1-PAD1) R21 -1 A01X+004141Y+020700X0213Y0252R180S2
327NET-(AE1-FEED) R21 -2 A01X+003739Y+020700X0213Y0252R180S2
317ESP32.SW_CLK J2 -1 D0197PA00X+005827Y+003207X0335Y0335R000S0
317ESP32.SW_DIO J2 -2 D0197PA00X+005827Y+002813X0335Y0335R000S0
3172.~{RP2350RST} J2 -3 D0197PA00X+005827Y+002419X0335Y0335R000S0
317ESP32.~{RESET} J2 -4 D0197PA00X+005827Y+002026X0335Y0335R000S0
317GNDPWR J2 -5 D0197PA00X+005827Y+001632X0335Y0335R000S0
317P2350?CPU/BOOT J2 -6 D0197PA00X+005827Y+001238X0335Y0335R000S0
327NET-(U1-A3) R35 -1 A01X+006835Y+012200X0213Y0252R180S2
327VZ80.A3 R35 -2 A01X+006433Y+012200X0213Y0252R180S2
327+3V3 C1 -1 A01X+005501Y+016563X0220Y0244R000S2
327GNDPWR C1 -2 A01X+005879Y+016563X0220Y0244R000S2
327ET-(U3-LNA_IN) C10 -1 A01X+005177Y+018258X0220Y0244R225S2
327GNDPWR C10 -2 A01X+004910Y+018525X0220Y0244R225S2
327NET-(U1-D0) R13 -1 A01X+000264Y+007200X0213Y0252R000S2
327VZ80.D0 R13 -2 A01X+000665Y+007200X0213Y0252R000S2
327VZ80.~{WR} R45 -1 A01X+006433Y+002200X0213Y0252R000S2
327NET-(U1-~{WR}) R45 -2 A01X+006835Y+002200X0213Y0252R000S2
327VZ80.~{BUSACK} R44 -1 A01X+006433Y+003200X0213Y0252R000S2
327(U1-~{BUSACK}) R44 -2 A01X+006835Y+003200X0213Y0252R000S2
327NET-(U1-A9) R29 -1 A01X+006835Y+018200X0213Y0252R180S2
327VZ80.A9 R29 -2 A01X+006433Y+018200X0213Y0252R180S2
327NET-(L1-PAD1) L1 -1 A01X+004765Y+020495X0232Y0252R045S2
327NET-(C9-PAD1) L1 -2 A01X+005035Y+020225X0232Y0252R045S2
327+3V3 C13 -1 A01X+005501Y+016944X0220Y0244R000S2
327GNDPWR C13 -2 A01X+005879Y+016944X0220Y0244R000S2
327VZ80.~{NMI} R16 -1 A01X+000665Y+004200X0213Y0252R180S2
327ET-(U1-~{NMI}) R16 -2 A01X+000264Y+004200X0213Y0252R180S2
327?CPU/VREG_AVDD C18 -1 A01X+005536Y+010313X0220Y0244R090S2
327GNDPWR C18 -2 A01X+005536Y+009935X0220Y0244R090S2
327+3V3 C11 -1 A01X+004208Y+018301X0220Y0244R270S2
327GNDPWR C11 -2 A01X+004208Y+018679X0220Y0244R270S2
327VZ80.~{INT} R15 -1 A01X+000665Y+005200X0213Y0252R180S2
327ET-(U1-~{INT}) R15 -2 A01X+000264Y+005200X0213Y0252R180S2
3272/USB_ESP32_DN R53 -1 A01X+001350Y+015304X0213Y0252R090S2
327ESP32_DN R53 -2 A01X+001350Y+014903X0213Y0252R090S2
317NET-(U1-A11) U1 -1 D0315PA00X+000550Y+019700X0472Y0551R000S0
317NET-(U1-A12) U1 -2 D0315PA00X+000550Y+018700X0472Y0551R000S0
317NET-(U1-A13) U1 -3 D0315PA00X+000550Y+017700X0472Y0551R000S0
317NET-(U1-A14) U1 -4 D0315PA00X+000550Y+016700X0472Y0551R000S0
317NET-(U1-A15) U1 -5 D0315PA00X+000550Y+015700X0472Y0551R000S0
317ET-(U1-~{CLK}) U1 -6 D0315PA00X+000550Y+014700X0472Y0551R000S0
317NET-(U1-D4) U1 -7 D0315PA00X+000550Y+013700X0472Y0551R000S0
317NET-(U1-D3) U1 -8 D0315PA00X+000550Y+012700X0472Y0551R000S0
317NET-(U1-D5) U1 -9 D0315PA00X+000550Y+011700X0472Y0551R000S0
317NET-(U1-D6) U1 -10 D0315PA00X+000550Y+010700X0472Y0551R000S0
317+5V U1 -11 D0315PA00X+000550Y+009700X0472Y0551R000S0
317NET-(U1-D2) U1 -12 D0315PA00X+000550Y+008700X0472Y0551R000S0
317NET-(U1-D7) U1 -13 D0315PA00X+000550Y+007700X0472Y0551R000S0
317NET-(U1-D0) U1 -14 D0315PA00X+000550Y+006700X0472Y0551R000S0
317NET-(U1-D1) U1 -15 D0315PA00X+000550Y+005700X0472Y0551R000S0
317ET-(U1-~{INT}) U1 -16 D0315PA00X+000550Y+004700X0472Y0551R000S0
317ET-(U1-~{NMI}) U1 -17 D0315PA00X+000550Y+003700X0472Y0551R000S0
317T-(U1-~{HALT}) U1 -18 D0315PA00X+000550Y+002700X0472Y0551R000S0
317T-(U1-~{MREQ}) U1 -19 D0315PA00X+000550Y+001700X0472Y0551R000S0
317T-(U1-~{IORQ}) U1 -20 D0315PA00X+000550Y+000700X0472Y0551R000S0
317NET-(U1-~{RD}) U1 -21 D0315PA00X+006550Y+000700X0472Y0551R000S0
317NET-(U1-~{WR}) U1 -22 D0315PA00X+006550Y+001700X0472Y0551R000S0
317(U1-~{BUSACK}) U1 -23 D0315PA00X+006550Y+002700X0472Y0551R000S0
317T-(U1-~{WAIT}) U1 -24 D0315PA00X+006550Y+003700X0472Y0551R000S0
317-(U1-~{BUSRQ}) U1 -25 D0315PA00X+006550Y+004700X0472Y0551R000S0
317-(U1-~{RESET}) U1 -26 D0315PA00X+006550Y+005700X0472Y0551R000S0
317NET-(U1-~{M1}) U1 -27 D0315PA00X+006550Y+006700X0472Y0551R000S0
317T-(U1-~{RFSH}) U1 -28 D0315PA00X+006550Y+007700X0472Y0551R000S0
317GNDPWR U1 -29 D0315PA00X+006550Y+008700X0472Y0551R000S0
317NET-(U1-A0) U1 -30 D0315PA00X+006550Y+009700X0472Y0551R000S0
317NET-(U1-A1) U1 -31 D0315PA00X+006550Y+010700X0472Y0551R000S0
317NET-(U1-A2) U1 -32 D0315PA00X+006550Y+011700X0472Y0551R000S0
317NET-(U1-A3) U1 -33 D0315PA00X+006550Y+012700X0472Y0551R000S0
317NET-(U1-A4) U1 -34 D0315PA00X+006550Y+013700X0472Y0551R000S0
317NET-(U1-A5) U1 -35 D0315PA00X+006550Y+014700X0472Y0551R000S0
317NET-(U1-A6) U1 -36 D0315PA00X+006550Y+015700X0472Y0551R000S0
317NET-(U1-A7) U1 -37 D0315PA00X+006550Y+016700X0472Y0551R000S0
317NET-(U1-A8) U1 -38 D0315PA00X+006550Y+017700X0472Y0551R000S0
317NET-(U1-A9) U1 -39 D0315PA00X+006550Y+018700X0472Y0551R000S0
317NET-(U1-A10) U1 -40 D0315PA00X+006550Y+019700X0472Y0551R000S0
327GNDPWR C4 -1 A01X+001411Y+016160X0220Y0244R270S2
327+3V3 C4 -2 A01X+001411Y+016538X0220Y0244R270S2
327VZ80.~{HALT} R17 -1 A01X+000665Y+003200X0213Y0252R180S2
327T-(U1-~{HALT}) R17 -2 A01X+000264Y+003200X0213Y0252R180S2
327NET-(C7-PAD1) C7 -1 A01X+003017Y+003330X0220Y0244R000S2
327GNDPWR C7 -2 A01X+003395Y+003330X0220Y0244R000S2
327+3V3 C12 -1 A01X+003818Y+018301X0220Y0244R270S2
327GNDPWR C12 -2 A01X+003818Y+018679X0220Y0244R270S2
327+3V3 R56 -1 A01X+002183Y+019129X0213Y0252R270S2
327/ESP32/SD.DAT0 R56 -2 A01X+002183Y+019531X0213Y0252R270S2
327NET-(U1-A11) R1 -1 A01X+000264Y+019200X0213Y0252R000S2
327VZ80.A11 R1 -2 A01X+000665Y+019200X0213Y0252R000S2
327+3V3 C6 -1 A01X+003436Y+018301X0220Y0244R270S2
327GNDPWR C6 -2 A01X+003436Y+018679X0220Y0244R270S2
327+1V1 C21 -1 A01X+004543Y+010315X0220Y0244R000S2
327GNDPWR C21 -2 A01X+004921Y+010315X0220Y0244R000S2
327NET-(U1-D2) R11 -1 A01X+000264Y+009200X0213Y0252R000S2
327VZ80.D2 R11 -2 A01X+000665Y+009200X0213Y0252R000S2
327NET-(U1-A8) R30 -1 A01X+006835Y+017200X0213Y0252R180S2
327VZ80.A8 R30 -2 A01X+006433Y+017200X0213Y0252R180S2
327VZ80.~{M1} R40 -1 A01X+006433Y+007200X0213Y0252R000S2
327NET-(U1-~{M1}) R40 -2 A01X+006835Y+007200X0213Y0252R000S2
327NET-(U1-A14) R4 -1 A01X+000264Y+016200X0213Y0252R000S2
327VZ80.A14 R4 -2 A01X+000665Y+016200X0213Y0252R000S2
327(J1-VBUS-PAD1) J1 -1 A01X+003028Y+002200X0650Y0157R270S2
327USB?HUB/USB_DN J1 -2 A01X+003284Y+002200X0650Y0157R270S2
327USB?HUB/USB_DP J1 -3 A01X+003540Y+002200X0650Y0157R270S2
327D-(J1-ID-PAD4) J1 -4 A01X+003796Y+002200X0650Y0157R270S2
327GNDPWR J1 -5 A01X+004052Y+002200X0650Y0157R270S2
327GNDPWR J1 -6 A01X+002379Y+001728X0719Y0276R000S2
327GNDPWR J1 -6 A01X+002418Y+002239X0787Y0591R000S2
327GNDPWR J1 -6 A01X+002465Y+001432X0531Y0787R000S2
317GNDPWR J1 -6 D0276PA00X+002465Y+001066X0669Y0531R270S0
317GNDPWR J1 -6 D0256PA00X+002587Y+002247X0591Y0433R270S0
327GNDPWR J1 -6 A01X+003162Y+000960X0984Y0563R270S2
327GNDPWR J1 -6 A01X+003918Y+000960X0984Y0563R270S2
317GNDPWR J1 -6 D0256PA00X+004493Y+002247X0591Y0433R270S0
317GNDPWR J1 -6 D0276PA00X+004615Y+001066X0669Y0531R270S0
327GNDPWR J1 -6 A01X+004623Y+001432X0531Y0787R000S2
327GNDPWR J1 -6 A01X+004682Y+002247X0787Y0591R000S2
327GNDPWR J1 -6 A01X+004721Y+001728X0719Y0276R000S2
327P2350?CPU/BOOT R26 -1 A01X+006000Y+000583X0213Y0252R180S2
32750?CPU/QSPI_SS R26 -2 A01X+005598Y+000583X0213Y0252R180S2
327NET-(C9-PAD1) L2 -1 A01X+005400Y+019201X0232Y0252R090S2
327ET-(U3-LNA_IN) L2 -2 A01X+005400Y+018819X0232Y0252R090S2
327/USB_RP2350_DN R24 -1 A01X+003520Y+010222X0213Y0252R180S2
327RP2350_DN R24 -2 A01X+003118Y+010222X0213Y0252R180S2
327NET-(U1-A0) R38 -1 A01X+006835Y+009200X0213Y0252R180S2
327VZ80.A0 R38 -2 A01X+006433Y+009200X0213Y0252R180S2
327NET-(U1-A10) R28 -1 A01X+006835Y+019200X0213Y0252R180S2
327VZ80.A10 R28 -2 A01X+006433Y+019200X0213Y0252R180S2
327/USB_RP2350_DP R25 -1 A01X+003520Y+009839X0213Y0252R180S2
327RP2350_DP R25 -2 A01X+003118Y+009839X0213Y0252R180S2
327RP2350?CPU/XIN C5 -1 A01X+003033Y+004090X0220Y0244R270S2
327GNDPWR C5 -2 A01X+003033Y+004468X0220Y0244R270S2
327+3V3 R61 -1 A01X+001160Y+017291X0213Y0252R000S2
327ESP32.FSPI_CLK R61 -2 A01X+001562Y+017291X0213Y0252R000S2
327NET-(U1-D4) R7 -1 A01X+000264Y+013200X0213Y0252R000S2
327VZ80.D4 R7 -2 A01X+000665Y+013200X0213Y0252R000S2
327VZ80.A4 U4 -1 A01X+001622Y+008780X0087Y0307R270S2
327VZ80.A5 U4 -2 A01X+001622Y+008622X0087Y0307R270S2
327VZ80.A6 U4 -3 A01X+001622Y+008465X0087Y0307R270S2
327VZ80.A7 U4 -4 A01X+001622Y+008307X0087Y0307R270S2
327+3V3 U4 -5 A01X+001622Y+008150X0087Y0307R270S2
327VZ80.A8 U4 -6 A01X+001622Y+007992X0087Y0307R270S2
327VZ80.A9 U4 -7 A01X+001622Y+007835X0087Y0307R270S2
327VZ80.A10 U4 -8 A01X+001622Y+007678X0087Y0307R270S2
327VZ80.A11 U4 -9 A01X+001622Y+007520X0087Y0307R270S2
327+1V1 U4 -10 A01X+001622Y+007363X0087Y0307R270S2
327VZ80.A12 U4 -11 A01X+001622Y+007205X0087Y0307R270S2
327VZ80.A13 U4 -12 A01X+001622Y+007048X0087Y0307R270S2
327VZ80.A14 U4 -13 A01X+001622Y+006890X0087Y0307R270S2
327VZ80.A15 U4 -14 A01X+001622Y+006733X0087Y0307R270S2
327+3V3 U4 -15 A01X+001622Y+006575X0087Y0307R270S2
327VZ80.D0 U4 -16 A01X+001622Y+006418X0087Y0307R270S2
327VZ80.D1 U4 -17 A01X+001622Y+006260X0087Y0307R270S2
327VZ80.D2 U4 -18 A01X+001622Y+006103X0087Y0307R270S2
327VZ80.D3 U4 -19 A01X+001622Y+005945X0087Y0307R270S2
327VZ80.D4 U4 -20 A01X+001622Y+005788X0087Y0307R270S2
327VZ80.D5 U4 -21 A01X+002054Y+005356X0087Y0307R000S2
327VZ80.D6 U4 -22 A01X+002211Y+005356X0087Y0307R000S2
327VZ80.D7 U4 -23 A01X+002369Y+005356X0087Y0307R000S2
327+3V3 U4 -24 A01X+002526Y+005356X0087Y0307R000S2
327VZ80.~{RD} U4 -25 A01X+002684Y+005356X0087Y0307R000S2
327VZ80.~{WR} U4 -26 A01X+002841Y+005356X0087Y0307R000S2
327VZ80.~{BUSACK} U4 -27 A01X+002999Y+005356X0087Y0307R000S2
327VZ80.~{HALT} U4 -28 A01X+003156Y+005356X0087Y0307R000S2
327+3V3 U4 -29 A01X+003314Y+005356X0087Y0307R000S2
327RP2350?CPU/XIN U4 -30 A01X+003471Y+005356X0087Y0307R000S2
327P2350?CPU/XOUT U4 -31 A01X+003629Y+005356X0087Y0307R000S2
327+1V1 U4 -32 A01X+003786Y+005356X0087Y0307R000S2
327ESP32.SW_CLK U4 -33 A01X+003944Y+005356X0087Y0307R000S2
327ESP32.SW_DIO U4 -34 A01X+004101Y+005356X0087Y0307R000S2
3272.~{RP2350RST} U4 -35 A01X+004259Y+005356X0087Y0307R000S2
327VZ80.~{M1} U4 -36 A01X+004416Y+005356X0087Y0307R000S2
327VZ80.~{RFSH} U4 -37 A01X+004574Y+005356X0087Y0307R000S2
327VZ80.~{MREQ} U4 -38 A01X+004731Y+005356X0087Y0307R000S2
327VZ80.~{IORQ} U4 -39 A01X+004889Y+005356X0087Y0307R000S2
327VZ80.~{BUSRQ} U4 -40 A01X+005046Y+005356X0087Y0307R000S2
327+3V3 U4 -41 A01X+005478Y+005788X0087Y0307R270S2
327VZ80.~{INT} U4 -42 A01X+005478Y+005945X0087Y0307R270S2
327VZ80.~{WAIT} U4 -43 A01X+005478Y+006103X0087Y0307R270S2
327VZ80.~{CLK} U4 -44 A01X+005478Y+006260X0087Y0307R270S2
327VZ80.~{NMI} U4 -45 A01X+005478Y+006418X0087Y0307R270S2
327ESP32.HS U4 -46 A01X+005478Y+006575X0087Y0307R270S2
327VZ80.~{RESET} U4 -47 A01X+005478Y+006733X0087Y0307R270S2
327ESP32.BOOT U4 -48 A01X+005478Y+006890X0087Y0307R270S2
327ESP32.~{RESET} U4 -49 A01X+005478Y+007048X0087Y0307R270S2
327+3V3 U4 -50 A01X+005478Y+007205X0087Y0307R270S2
327+1V1 U4 -51 A01X+005478Y+007363X0087Y0307R270S2
327ESP32.TXD U4 -52 A01X+005478Y+007520X0087Y0307R270S2
327ESP32.RXD U4 -53 A01X+005478Y+007678X0087Y0307R270S2
327SP32.FSPI_MOSI U4 -54 A01X+005478Y+007835X0087Y0307R270S2
327SP32.FSPI_MISO U4 -55 A01X+005478Y+007992X0087Y0307R270S2
327ESP32.FSPI_CS0 U4 -56 A01X+005478Y+008150X0087Y0307R270S2
327ESP32.FSPI_CLK U4 -57 A01X+005478Y+008307X0087Y0307R270S2
327?CPU/FLASH2_SS U4 -58 A01X+005478Y+008465X0087Y0307R270S2
327+3V3 U4 -59 A01X+005478Y+008622X0087Y0307R270S2
327+3V3 U4 -60 A01X+005478Y+008780X0087Y0307R270S2
327?CPU/VREG_AVDD U4 -61 A01X+005046Y+009212X0087Y0307R000S2
327GNDPWR U4 -62 A01X+004889Y+009212X0087Y0307R000S2
32750?CPU/VREG_LX U4 -63 A01X+004731Y+009212X0087Y0307R000S2
327+3V3 U4 -64 A01X+004574Y+009212X0087Y0307R000S2
327+1V1 U4 -65 A01X+004416Y+009212X0087Y0307R000S2
327/USB_RP2350_DN U4 -66 A01X+004259Y+009212X0087Y0307R000S2
327/USB_RP2350_DP U4 -67 A01X+004101Y+009212X0087Y0307R000S2
327+3V3 U4 -68 A01X+003944Y+009212X0087Y0307R000S2
327+3V3 U4 -69 A01X+003786Y+009212X0087Y0307R000S2
3270?CPU/QSPI_SD3 U4 -70 A01X+003629Y+009212X0087Y0307R000S2
327?CPU/QSPI_SCLK U4 -71 A01X+003471Y+009212X0087Y0307R000S2
3270?CPU/QSPI_SD0 U4 -72 A01X+003314Y+009212X0087Y0307R000S2
3270?CPU/QSPI_SD2 U4 -73 A01X+003156Y+009212X0087Y0307R000S2
3270?CPU/QSPI_SD1 U4 -74 A01X+002999Y+009212X0087Y0307R000S2
32750?CPU/QSPI_SS U4 -75 A01X+002841Y+009212X0087Y0307R000S2
327+3V3 U4 -76 A01X+002684Y+009212X0087Y0307R000S2
327VZ80.A0 U4 -77 A01X+002526Y+009212X0087Y0307R000S2
327VZ80.A1 U4 -78 A01X+002369Y+009212X0087Y0307R000S2
327VZ80.A2 U4 -79 A01X+002211Y+009212X0087Y0307R000S2
327VZ80.A3 U4 -80 A01X+002054Y+009212X0087Y0307R000S2
317GNDPWR U4 -81 D0120PA00X+003104Y+007730X0200Y0000R000S0
327GNDPWR U4 -81 A01X+003104Y+007730X0446Y0446R000S2
317GNDPWR U4 -81 D0120PA00X+003104Y+006838X0200Y0000R000S0
327GNDPWR U4 -81 A01X+003104Y+006838X0446Y0446R000S2
317GNDPWR U4 -81 D0120PA00X+003104Y+007284X0200Y0000R000S0
327GNDPWR U4 -81 A01X+003104Y+007284X0446Y0446R000S2
317GNDPWR U4 -81 D0120PA00X+003550Y+007730X0200Y0000R000S0
327GNDPWR U4 -81 A01X+003550Y+007730X0446Y0446R000S2
317GNDPWR U4 -81 D0120PA00X+003550Y+007284X0200Y0000R000S0
327GNDPWR U4 -81 A01X+003550Y+007284X0446Y0446R000S2
317GNDPWR U4 -81 D0120PA00X+003550Y+006838X0200Y0000R000S0
327GNDPWR U4 -81 A01X+003550Y+006838X0446Y0446R000S2
317GNDPWR U4 -81 D0120PA00X+003996Y+007284X0200Y0000R000S0
327GNDPWR U4 -81 A01X+003996Y+007284X0446Y0446R000S2
317GNDPWR U4 -81 D0120PA00X+003996Y+007730X0200Y0000R000S0
327GNDPWR U4 -81 A01X+003996Y+007730X0446Y0446R000S2
317GNDPWR U4 -81 D0120PA00X+003996Y+006838X0200Y0000R000S0
327GNDPWR U4 -81 A01X+003996Y+006838X0446Y0446R000S2
327GNDPWR C3 -1 A01X+002025Y+014500X0220Y0244R000S2
327+3V3 C3 -2 A01X+002403Y+014500X0220Y0244R000S2
327NET-(U1-A1) R37 -1 A01X+006835Y+010200X0213Y0252R180S2
327VZ80.A1 R37 -2 A01X+006433Y+010200X0213Y0252R180S2
327+3V3 R54 -1 A01X+003822Y+019129X0213Y0252R270S2
327/ESP32/SD.CMD R54 -2 A01X+003822Y+019531X0213Y0252R270S2
327RP2350?CPU/XIN Y1 -1 A01X+001825Y+004283X0551Y0472R090S2
327GNDPWR Y1 -2 A01X+001825Y+003417X0551Y0472R090S2
327NET-(C7-PAD1) Y1 -3 A01X+002495Y+003417X0551Y0472R090S2
327GNDPWR Y1 -4 A01X+002495Y+004283X0551Y0472R090S2
327NET-(U1-A13) R3 -1 A01X+000264Y+017200X0213Y0252R000S2
327VZ80.A13 R3 -2 A01X+000665Y+017200X0213Y0252R000S2
327NET-(U1-A5) R33 -1 A01X+006835Y+014200X0213Y0252R180S2
327VZ80.A5 R33 -2 A01X+006433Y+014200X0213Y0252R180S2
327VZ80.~{RD} R27 -1 A01X+006433Y+001200X0213Y0252R000S2
327NET-(U1-~{RD}) R27 -2 A01X+006835Y+001200X0213Y0252R000S2
327?CPU/FLASH2_SS U5 -1 A01X+002950Y+013833X0650Y0236R090S2
3270?CPU/QSPI_SD1 U5 -2 A01X+002450Y+013833X0650Y0236R090S2
3270?CPU/QSPI_SD2 U5 -3 A01X+001950Y+013833X0650Y0236R090S2
327GNDPWR U5 -4 A01X+001450Y+013833X0650Y0236R090S2
3270?CPU/QSPI_SD0 U5 -5 A01X+001450Y+011767X0650Y0236R090S2
327?CPU/QSPI_SCLK U5 -6 A01X+001950Y+011767X0650Y0236R090S2
3270?CPU/QSPI_SD3 U5 -7 A01X+002450Y+011767X0650Y0236R090S2
327+3V3 U5 -8 A01X+002950Y+011767X0650Y0236R090S2
327+3V3 R23 -1 A01X+002315Y+018328X0213Y0252R000S2
327ESP32.BOOT R23 -2 A01X+002717Y+018328X0213Y0252R000S2
327NET-(AE1-FEED) AE1 -1 A01X+002971Y+020700X0551Y0531R180S2
327GNDPWR AE1 -2 A01X+001909Y+020700X0551Y0531R180S2
327/ESP32/SD.DAT2 R51 -1 A01X+004602Y+019531X0213Y0252R090S2
327+3V3 R51 -2 A01X+004602Y+019129X0213Y0252R090S2
327NET-(U1-A12) R2 -1 A01X+000264Y+018200X0213Y0252R000S2
327VZ80.A12 R2 -2 A01X+000665Y+018200X0213Y0252R000S2
327+3V3 C8 -1 A01X+005913Y+011082X0220Y0244R090S2
327GNDPWR C8 -2 A01X+005913Y+010704X0220Y0244R090S2
327NET-(U1-D7) R12 -1 A01X+000264Y+008200X0213Y0252R000S2
327VZ80.D7 R12 -2 A01X+000665Y+008200X0213Y0252R000S2
327+3V3 R50 -1 A01X+004212Y+019129X0213Y0252R270S2
327/ESP32/SD.DAT3 R50 -2 A01X+004212Y+019531X0213Y0252R270S2
327+3V3 R63 -1 A01X+001160Y+016899X0213Y0252R000S2
327SP32.FSPI_MISO R63 -2 A01X+001562Y+016899X0213Y0252R000S2
327GNDPWR C22 -1 A01X+003436Y+019519X0220Y0244R090S2
327+3V3 C22 -2 A01X+003436Y+019141X0220Y0244R090S2
327+3V3 C41 -1 A01X+004240Y+002965X0220Y0244R270S2
327GNDPWR C41 -2 A01X+004240Y+003343X0220Y0244R270S2
327VZ80.~{CLK} R6 -1 A01X+000665Y+014200X0213Y0252R180S2
327ET-(U1-~{CLK}) R6 -2 A01X+000264Y+014200X0213Y0252R180S2
327NET-(U1-A2) R36 -1 A01X+006835Y+011200X0213Y0252R180S2
327VZ80.A2 R36 -2 A01X+006433Y+011200X0213Y0252R180S2
327NET-(U1-D5) R9 -1 A01X+000264Y+011200X0213Y0252R000S2
327VZ80.D5 R9 -2 A01X+000665Y+011200X0213Y0252R000S2
327NET-(U1-A4) R34 -1 A01X+006835Y+013200X0213Y0252R180S2
327VZ80.A4 R34 -2 A01X+006433Y+013200X0213Y0252R180S2
327GNDPWR C2 -1 A01X+005879Y+015800X0220Y0244R180S2
327+3V3 C2 -2 A01X+005501Y+015800X0220Y0244R180S2
327ESP32.~{RESET} R22 -1 A01X+002717Y+018717X0213Y0252R180S2
327+3V3 R22 -2 A01X+002315Y+018717X0213Y0252R180S2
327+3V3 C42 -1 A01X+004620Y+002965X0220Y0244R270S2
327GNDPWR C42 -2 A01X+004620Y+003343X0220Y0244R270S2
327+3V3 R59 -1 A01X+001770Y+019129X0213Y0252R270S2
327/ESP32/SD.DAT1 R59 -2 A01X+001770Y+019531X0213Y0252R270S2
327+3V3 R64 -1 A01X+001160Y+017682X0213Y0252R000S2
327SP32.FSPI_MOSI R64 -2 A01X+001562Y+017682X0213Y0252R000S2
327ET-(U3-LNA_IN) U3 -1 A01X+004574Y+017707X0315Y0079R090S2
327+3V3 U3 -2 A01X+004416Y+017707X0315Y0079R090S2
327+3V3 U3 -3 A01X+004259Y+017707X0315Y0079R090S2
327ESP32.~{RESET} U3 -4 A01X+004101Y+017707X0315Y0079R090S2
327ESP32.BOOT U3 -5 A01X+003944Y+017707X0315Y0079R090S2
327U3-GPIO1-PAD6) U3 -6 A01X+003786Y+017707X0315Y0079R090S2
327ESP32.HS U3 -7 A01X+003629Y+017707X0315Y0079R090S2
327U3-GPIO3-PAD8) U3 -8 A01X+003471Y+017707X0315Y0079R090S2
327/ESP32/SD.DAT2 U3 -9 A01X+003314Y+017707X0315Y0079R090S2
327/ESP32/SD.DAT3 U3 -10 A01X+003156Y+017707X0315Y0079R090S2
3273-GPIO6-PAD11) U3 -11 A01X+002999Y+017707X0315Y0079R090S2
3272.~{RP2350RST} U3 -12 A01X+002841Y+017707X0315Y0079R090S2
327ESP32.SW_CLK U3 -13 A01X+002684Y+017707X0315Y0079R090S2
327ESP32.SW_DIO U3 -14 A01X+002526Y+017707X0315Y0079R090S2
327ESP32.FSPI_CS0 U3 -15 A01X+002192Y+017372X0079Y0315R090S2
327SP32.FSPI_MOSI U3 -16 A01X+002192Y+017215X0079Y0315R090S2
327ESP32.FSPI_CLK U3 -17 A01X+002192Y+017057X0079Y0315R090S2
327SP32.FSPI_MISO U3 -18 A01X+002192Y+016900X0079Y0315R090S2
327-GPIO14-PAD19) U3 -19 A01X+002192Y+016743X0079Y0315R090S2
327+3V3 U3 -20 A01X+002192Y+016585X0079Y0315R090S2
327/ESP32/SD.DAT1 U3 -21 A01X+002192Y+016428X0079Y0315R090S2
327/ESP32/SD.DAT0 U3 -22 A01X+002192Y+016270X0079Y0315R090S2
327/ESP32/SD.CMD U3 -23 A01X+002192Y+016113X0079Y0315R090S2
327/ESP32/SD.CLK U3 -24 A01X+002192Y+015955X0079Y0315R090S2
3272/USB_ESP32_DN U3 -25 A01X+002192Y+015798X0079Y0315R090S2
3272/USB_ESP32_DP U3 -26 A01X+002192Y+015640X0079Y0315R090S2
32732/SD.CDDETECT U3 -27 A01X+002192Y+015483X0079Y0315R090S2
327-SPICS1-PAD28) U3 -28 A01X+002192Y+015325X0079Y0315R090S2
327+3V3 U3 -29 A01X+002526Y+014991X0315Y0079R090S2
3273-SPIHD-PAD30) U3 -30 A01X+002684Y+014991X0315Y0079R090S2
3273-SPIWP-PAD31) U3 -31 A01X+002841Y+014991X0315Y0079R090S2
327-SPICS0-PAD32) U3 -32 A01X+002999Y+014991X0315Y0079R090S2
327-SPICLK-PAD33) U3 -33 A01X+003156Y+014991X0315Y0079R090S2
327U3-SPIQ-PAD34) U3 -34 A01X+003314Y+014991X0315Y0079R090S2
327U3-SPID-PAD35) U3 -35 A01X+003471Y+014991X0315Y0079R090S2
327PICLK_N-PAD36) U3 -36 A01X+003629Y+014991X0315Y0079R090S2
327PICLK_P-PAD37) U3 -37 A01X+003786Y+014991X0315Y0079R090S2
327-GPIO33-PAD38) U3 -38 A01X+003944Y+014991X0315Y0079R090S2
327-GPIO34-PAD39) U3 -39 A01X+004101Y+014991X0315Y0079R090S2
327-GPIO35-PAD40) U3 -40 A01X+004259Y+014991X0315Y0079R090S2
327-GPIO36-PAD41) U3 -41 A01X+004416Y+014991X0315Y0079R090S2
327-GPIO37-PAD42) U3 -42 A01X+004574Y+014991X0315Y0079R090S2
327-GPIO38-PAD43) U3 -43 A01X+004908Y+015325X0079Y0315R090S2
327U3-MTCK-PAD44) U3 -44 A01X+004908Y+015483X0079Y0315R090S2
327U3-MTDO-PAD45) U3 -45 A01X+004908Y+015640X0079Y0315R090S2
327+3V3 U3 -46 A01X+004908Y+015798X0079Y0315R090S2
327U3-MTDI-PAD47) U3 -47 A01X+004908Y+015955X0079Y0315R090S2
327U3-MTMS-PAD48) U3 -48 A01X+004908Y+016113X0079Y0315R090S2
327ESP32.TXD U3 -49 A01X+004908Y+016270X0079Y0315R090S2
327ESP32.RXD U3 -50 A01X+004908Y+016428X0079Y0315R090S2
327-GPIO45-PAD51) U3 -51 A01X+004908Y+016585X0079Y0315R090S2
327GNDPWR U3 -52 A01X+004908Y+016743X0079Y0315R090S2
327-XTAL_N-PAD53) U3 -53 A01X+004908Y+016900X0079Y0315R090S2
327-XTAL_P-PAD54) U3 -54 A01X+004908Y+017057X0079Y0315R090S2
327+3V3 U3 -55 A01X+004908Y+017215X0079Y0315R090S2
327+3V3 U3 -56 A01X+004908Y+017372X0079Y0315R090S2
327GNDPWR U3 -57 A01X+003550Y+016349X1575Y1575R090S2
327NET-(U1-A15) R5 -1 A01X+000264Y+015200X0213Y0252R000S2
327VZ80.A15 R5 -2 A01X+000665Y+015200X0213Y0252R000S2
327+3V3 R62 -1 A01X+001160Y+018073X0213Y0252R000S2
327ESP32.FSPI_CS0 R62 -2 A01X+001562Y+018073X0213Y0252R000S2
327?CPU/FLASH2_SS R46 -1 A01X+003171Y+014500X0213Y0252R180S2
327+3V3 R46 -2 A01X+002770Y+014500X0213Y0252R180S2
327+3V3 R57 -1 A01X+003049Y+019129X0213Y0252R270S2
327/ESP32/SD.CLK R57 -2 A01X+003049Y+019531X0213Y0252R270S2
3272/USB_ESP32_DP R52 -1 A01X+001741Y+015304X0213Y0252R090S2
327ESP32_DP R52 -2 A01X+001741Y+014903X0213Y0252R090S2
327NET-(C9-PAD1) C9 -1 A01X+005400Y+019590X0220Y0244R180S2
327GNDPWR C9 -2 A01X+005022Y+019590X0220Y0244R180S2
327NET-(U1-A6) R32 -1 A01X+006835Y+015200X0213Y0252R180S2
327VZ80.A6 R32 -2 A01X+006433Y+015200X0213Y0252R180S2
327VZ80.~{MREQ} R18 -1 A01X+000665Y+002200X0213Y0252R180S2
327T-(U1-~{MREQ}) R18 -2 A01X+000264Y+002200X0213Y0252R180S2
327NET-(U1-D3) R8 -1 A01X+000264Y+012200X0213Y0252R000S2
327VZ80.D3 R8 -2 A01X+000665Y+012200X0213Y0252R000S2
327+3V3 C19 -1 A01X+004543Y+009955X0220Y0244R000S2
327GNDPWR C19 -2 A01X+004921Y+009955X0220Y0244R000S2
327+1V1 L3 -1 A01X+004260Y+010882X0394Y0571R000S2
32750?CPU/VREG_LX L3 -2 A01X+005008Y+010882X0394Y0571R000S2
327/ESP32/SD.DAT2 J3 -1 A06X+004781Y+019339X0335Y0433R000S1
327/ESP32/SD.DAT3 J3 -2 A06X+004348Y+019339X0335Y0433R000S1
327/ESP32/SD.CMD J3 -3 A06X+003915Y+019339X0335Y0433R000S1
327+3V3 J3 -4 A06X+003482Y+019339X0335Y0433R000S1
327/ESP32/SD.CLK J3 -5 A06X+003049Y+019339X0335Y0433R000S1
327GNDPWR J3 -6 A06X+002616Y+019339X0335Y0433R000S1
327/ESP32/SD.DAT0 J3 -7 A06X+002183Y+019339X0335Y0433R000S1
327/ESP32/SD.DAT1 J3 -8 A06X+001770Y+019339X0295Y0433R000S1
32732/SD.CDDETECT J3 -9 A06X+005819Y+016917X0472Y0394R000S1
327GNDPWR J3 -10 A06X+005819Y+015461X0472Y0394R000S1
327GNDPWR J3 -G1 A06X+005750Y+019289X0610Y0531R000S1
327GNDPWR J3 -G2 A06X+001293Y+019201X0461Y0709R000S1
327GNDPWR J3 -G3 A06X+002091Y+015077X0748Y0531R000S1
327GNDPWR J3 -G4 A06X+004441Y+015077X0748Y0531R000S1
327+3V3 C16 -1 A06X+005246Y+012589X0354Y0374R270S1
327GNDPWR C16 -2 A06X+005246Y+013200X0354Y0374R270S1
327+5V C39 -1 A06X+002486Y+012717X0220Y0244R270S1
327GNDPWR C39 -2 A06X+002486Y+013095X0220Y0244R270S1
327+5V C31 -1 A06X+001648Y+012751X0354Y0374R270S1
327GNDPWR C31 -2 A06X+001648Y+013361X0354Y0374R270S1
327+3V3 C36 -1 A06X+005472Y+005811X0220Y0244R270S1
327GNDPWR C36 -2 A06X+005472Y+006189X0220Y0244R270S1
327+1V1 C29 -1 A06X+001598Y+007346X0220Y0244R270S1
327GNDPWR C29 -2 A06X+001598Y+007724X0220Y0244R270S1
327+1V1 C28 -1 A06X+005472Y+007413X0220Y0244R270S1
327GNDPWR C28 -2 A06X+005472Y+007791X0220Y0244R270S1
327+3V3 C35 -1 A06X+002556Y+005382X0220Y0244R180S1
327GNDPWR C35 -2 A06X+002178Y+005382X0220Y0244R180S1
327+3V3 C23 -1 A06X+003406Y+013828X0220Y0244R180S1
327NET-(U6-FB) C23 -2 A06X+003028Y+013828X0220Y0244R180S1
327NET-(U7-XI) Y2 -1 A06X+002495Y+004283X0551Y0472R090S1
327GNDPWR Y2 -2 A06X+002495Y+003417X0551Y0472R090S1
327NET-(U7-XO) Y2 -3 A06X+001825Y+003417X0551Y0472R090S1
327GNDPWR Y2 -4 A06X+001825Y+004283X0551Y0472R090S1
327+5V C24 -1 A06X+001449Y+009881X0394Y0571R000S1
327GNDPWR C24 -2 A06X+002197Y+009881X0394Y0571R000S1
327+3V3 C33 -1 A06X+005472Y+007059X0220Y0244R090S1
327GNDPWR C33 -2 A06X+005472Y+006681X0220Y0244R090S1
327+3V3 C17 -1 A06X+004635Y+012589X0354Y0374R270S1
327GNDPWR C17 -2 A06X+004635Y+013200X0354Y0374R270S1
327+3V3 R55 -1 A06X+004157Y+013828X0213Y0252R180S1
327NET-(U6-FB) R55 -2 A06X+003756Y+013828X0213Y0252R180S1
327+3V3 C15 -1 A06X+002950Y+011866X0220Y0244R000S1
327GNDPWR C15 -2 A06X+003328Y+011866X0220Y0244R000S1
327+5V C32 -1 A06X+002119Y+012717X0220Y0244R270S1
327GNDPWR C32 -2 A06X+002119Y+013095X0220Y0244R270S1
327+1V1 C20 -1 A06X+003737Y+005382X0220Y0244R000S1
327GNDPWR C20 -2 A06X+004115Y+005382X0220Y0244R000S1
327NET-(U6-SW) L4 -1 A06X+004256Y+012021X0344Y0374R000S1
327+3V3 L4 -2 A06X+004876Y+012021X0344Y0374R000S1
327~{OVCUR}-PAD1) U7 -1 A06X+003440Y+003256X0325Y0098R000S1
327D-(U7-NC-PAD2) U7 -2 A06X+003440Y+003453X0325Y0098R000S1
327NET-(U7-XO) U7 -3 A06X+003440Y+003650X0325Y0098R000S1
327NET-(U7-XI) U7 -4 A06X+003440Y+003846X0325Y0098R000S1
327(U7-DM4--PAD5) U7 -5 A06X+003440Y+004043X0325Y0098R000S1
327(U7-DP4+-PAD6) U7 -6 A06X+003440Y+004240X0325Y0098R000S1
327(U7-DM3--PAD7) U7 -7 A06X+003720Y+004521X0098Y0325R000S1
327(U7-DP3+-PAD8) U7 -8 A06X+003917Y+004521X0098Y0325R000S1
327ESP32_DN U7 -9 A06X+004114Y+004521X0098Y0325R000S1
327ESP32_DP U7 -10 A06X+004311Y+004521X0098Y0325R000S1
327RP2350_DN U7 -11 A06X+004508Y+004521X0098Y0325R000S1
327RP2350_DP U7 -12 A06X+004705Y+004521X0098Y0325R000S1
327ASH}SCL-PAD13) U7 -13 A06X+004985Y+004240X0325Y0098R000S1
327USB?HUB/USB_DN U7 -14 A06X+004985Y+004043X0325Y0098R000S1
327USB?HUB/USB_DP U7 -15 A06X+004985Y+003846X0325Y0098R000S1
327ASH}CDP-PAD16) U7 -16 A06X+004985Y+003650X0325Y0098R000S1
327-(U7-NC-PAD17) U7 -17 A06X+004985Y+003453X0325Y0098R000S1
3277-PSELF-PAD18) U7 -18 A06X+004985Y+003256X0325Y0098R000S1
327+5V U7 -19 A06X+004705Y+002975X0098Y0325R000S1
327+3V3 U7 -20 A06X+004508Y+002975X0098Y0325R000S1
327ASH}SDA-PAD21) U7 -21 A06X+004311Y+002975X0098Y0325R000S1
327U7-LED1-PAD22) U7 -22 A06X+004114Y+002975X0098Y0325R000S1
327U7-LED2-PAD23) U7 -23 A06X+003917Y+002975X0098Y0325R000S1
327{PWREN}-PAD24) U7 -24 A06X+003720Y+002975X0098Y0325R000S1
327GNDPWR U7 -25 A06X+004213Y+003748X1063Y1063R000S1
327+5V U6 -1 A06X+003963Y+013350X0522Y0236R180S1
327GNDPWR U6 -2 A06X+003963Y+012976X0522Y0236R180S1
327NET-(U6-SW) U6 -3 A06X+003963Y+012602X0522Y0236R180S1
327+5V U6 -4 A06X+003067Y+012602X0522Y0236R180S1
327NET-(U6-FB) U6 -5 A06X+003067Y+013350X0522Y0236R180S1
327+3V3 C34 -1 A06X+001598Y+006583X0220Y0244R090S1
327GNDPWR C34 -2 A06X+001598Y+006205X0220Y0244R090S1
327+3V3 C27 -1 A06X+002701Y+009252X0220Y0244R180S1
327GNDPWR C27 -2 A06X+002323Y+009252X0220Y0244R180S1
3272.~{RP2350RST} R47 -1 A06X+005307Y+005392X0213Y0252R000S1
327+3V3 R47 -2 A06X+005709Y+005392X0213Y0252R000S1
327+3V3 R60 -1 A06X+005228Y+014344X0213Y0252R000S1
32750?CPU/QSPI_SS R60 -2 A06X+005630Y+014344X0213Y0252R000S1
327+3V3 C37 -1 A06X+001598Y+008181X0220Y0244R270S1
327GNDPWR C37 -2 A06X+001598Y+008559X0220Y0244R270S1
327+3V3 C26 -1 A06X+003351Y+005382X0220Y0244R180S1
327GNDPWR C26 -2 A06X+002973Y+005382X0220Y0244R180S1
327+5V C30 -1 A06X+001684Y+012064X0354Y0374R000S1
327GNDPWR C30 -2 A06X+002294Y+012064X0354Y0374R000S1
327+3V3 C38 -1 A06X+003898Y+009220X0220Y0244R180S1
327GNDPWR C38 -2 A06X+003520Y+009220X0220Y0244R180S1
327NET-(U6-FB) R58 -1 A06X+002503Y+013451X0213Y0252R180S1
327GNDPWR R58 -2 A06X+002102Y+013451X0213Y0252R180S1
327+3V3 C25 -1 A06X+005488Y+008634X0220Y0244R090S1
327GNDPWR C25 -2 A06X+005488Y+008256X0220Y0244R090S1
999

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,39 @@
"Id";"Designator";"Footprint";"Quantity";"Designation";"Supplier and ref";
1;"U7";"QFN-24-1EP_4x4mm_P0.5mm_EP2.7x2.7mm";1;"CH334F";;;
2;"R14,R20,R10,R13,R11,R26,R7,R12,R9,R8";"R_0402_1005Metric";10;"1K";;;
3;"R43,R42,R41,R21,R16,R15,R6";"R_0402_1005Metric";7;"0R";;;
4;"C14,C11,C4,C3,C2,C39,C32";"C_0402_1005Metric";7;"100nF";;;
5;"R31,R39,R19,R35,R45,R44,R29,R17,R1,R30,R40,R4,R38,R28,R37,R3,R33,R27,R2,R36,R34,R5,R32,R18,R53,R52";"R_0402_1005Metric";26;"22R";;;
6;"C40,C15,C8,C42,C36,C28,C35,C33,C20,C34,C27,C37,C26,C38,C25";"C_0402_1005Metric";15;"100n";;;
7;"U2";"WSON-8-1EP_6x5mm_P1.27mm_EP3.4x4.3mm";1;"W25Q128JVPIQ";;;
8;"J2";"PinHeader_1x06_P1.00mm_Vertical";1;"JST Debug";;;
9;"C1,C6";"C_0402_1005Metric";2;"22uF/10V";;;
10;"C10,C9";"C_0402_1005Metric";2;"1.5pF";;;
11;"L1";"L_0402_1005Metric";1;"6.8nH";;;
12;"C13";"C_0402_1005Metric";1;"1uF/6.3V";;;
13;"U1";"DIP-40_W15.24mm_Extender_NoCourtyard_SmallPad";1;"EXTENDER";;;
14;"C7,C5";"C_0402_1005Metric";2;"15p";;;
15;"C12,C41,C22";"C_0402_1005Metric";3;"10uF";;;
16;"L2";"L_0402_1005Metric";1;"2.7nH";;;
17;"R24,R25";"R_0402_1005Metric";2;"27R";;;
18;"U4";"RP2350-QFN-80-1EP_10x10_P0.4mm_EP3.4x3.4mm_ThermalVias";1;"RP2350_A4_80QFN";;;
19;"Y1,Y2";"Crystal_SMD_3225-4Pin_3.2x2.5mm";2;"ABM8-272-T3 12MHz";;;
20;"U5";"SOP-8_3.9x4.9mm_P1.27mm";1;"APS6404L-3SQR-SN";;;
21;"R23,R22,R56,R54,R51,R50,R60,R59,R46,R57";"R_0402_1005Metric";10;"10K";;;
22;"AE1";"Walsin_RFANT3216120A5T_3216";1;"Chip Antenna";;;
23;"U3";"QFN-56-1EP_7x7mm_P0.4mm_EP4x4mm";1;"ESP32-S3-PICO-1 N8R8";;;
24;"J3";"MOLEX_104031-0811";1;"SD Drive";;;
25;"R48,R47";"R_0402_1005Metric";2;"47K";;;
26;"C16,C17";"C_0603_1608Metric";2;"22uF";;;
27;"C31";"C_0603_1608Metric";1;"1uF";;;
28;"R49";"R_0402_1005Metric";1;"33R";;;
29;"C29,C18,C21,C19";"C_0402_1005Metric";4;"4.7u";;;
30;"C23";"C_0402_1005Metric";1;"6.8pF";;;
31;"C24";"C_0805_2012Metric";1;"100uF";;;
32;"R55";"R_0402_1005Metric";1;"200K";;;
33;"L4";"L_0603_1608Metric";1;"2.2uH/1.05A";;;
34;"U6";"SOT-23-5";1;"TLV62569DBV";;;
35;"C30";"C_0603_1608Metric";1;"10uF";;;
36;"R58";"R_0402_1005Metric";1;"44.2K";;;
37;"L3";"C_0805_2012Metric";1;"3.3u";;;
38;"J1";"USB_Micro-B_Amphenol_10103594-0001LF_Horizontal";1;"USB_B_Mini";;;
1 Id Designator Footprint Quantity Designation Supplier and ref
2 1 U7 QFN-24-1EP_4x4mm_P0.5mm_EP2.7x2.7mm 1 CH334F
3 2 R14,R20,R10,R13,R11,R26,R7,R12,R9,R8 R_0402_1005Metric 10 1K
4 3 R43,R42,R41,R21,R16,R15,R6 R_0402_1005Metric 7 0R
5 4 C14,C11,C4,C3,C2,C39,C32 C_0402_1005Metric 7 100nF
6 5 R31,R39,R19,R35,R45,R44,R29,R17,R1,R30,R40,R4,R38,R28,R37,R3,R33,R27,R2,R36,R34,R5,R32,R18,R53,R52 R_0402_1005Metric 26 22R
7 6 C40,C15,C8,C42,C36,C28,C35,C33,C20,C34,C27,C37,C26,C38,C25 C_0402_1005Metric 15 100n
8 7 U2 WSON-8-1EP_6x5mm_P1.27mm_EP3.4x4.3mm 1 W25Q128JVPIQ
9 8 J2 PinHeader_1x06_P1.00mm_Vertical 1 JST Debug
10 9 C1,C6 C_0402_1005Metric 2 22uF/10V
11 10 C10,C9 C_0402_1005Metric 2 1.5pF
12 11 L1 L_0402_1005Metric 1 6.8nH
13 12 C13 C_0402_1005Metric 1 1uF/6.3V
14 13 U1 DIP-40_W15.24mm_Extender_NoCourtyard_SmallPad 1 EXTENDER
15 14 C7,C5 C_0402_1005Metric 2 15p
16 15 C12,C41,C22 C_0402_1005Metric 3 10uF
17 16 L2 L_0402_1005Metric 1 2.7nH
18 17 R24,R25 R_0402_1005Metric 2 27R
19 18 U4 RP2350-QFN-80-1EP_10x10_P0.4mm_EP3.4x3.4mm_ThermalVias 1 RP2350_A4_80QFN
20 19 Y1,Y2 Crystal_SMD_3225-4Pin_3.2x2.5mm 2 ABM8-272-T3 12MHz
21 20 U5 SOP-8_3.9x4.9mm_P1.27mm 1 APS6404L-3SQR-SN
22 21 R23,R22,R56,R54,R51,R50,R60,R59,R46,R57 R_0402_1005Metric 10 10K
23 22 AE1 Walsin_RFANT3216120A5T_3216 1 Chip Antenna
24 23 U3 QFN-56-1EP_7x7mm_P0.4mm_EP4x4mm 1 ESP32-S3-PICO-1 N8R8
25 24 J3 MOLEX_104031-0811 1 SD Drive
26 25 R48,R47 R_0402_1005Metric 2 47K
27 26 C16,C17 C_0603_1608Metric 2 22uF
28 27 C31 C_0603_1608Metric 1 1uF
29 28 R49 R_0402_1005Metric 1 33R
30 29 C29,C18,C21,C19 C_0402_1005Metric 4 4.7u
31 30 C23 C_0402_1005Metric 1 6.8pF
32 31 C24 C_0805_2012Metric 1 100uF
33 32 R55 R_0402_1005Metric 1 200K
34 33 L4 L_0603_1608Metric 1 2.2uH/1.05A
35 34 U6 SOT-23-5 1 TLV62569DBV
36 35 C30 C_0603_1608Metric 1 10uF
37 36 R58 R_0402_1005Metric 1 44.2K
38 37 L3 C_0805_2012Metric 1 3.3u
39 38 J1 USB_Micro-B_Amphenol_10103594-0001LF_Horizontal 1 USB_B_Mini

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,80 @@
{
"board": {
"active_layer": 31,
"active_layer_preset": "",
"auto_track_width": true,
"hidden_netclasses": [],
"hidden_nets": [],
"high_contrast_mode": 0,
"net_color_mode": 2,
"opacity": {
"images": 0.6,
"pads": 1.0,
"tracks": 1.0,
"vias": 1.0,
"zones": 0.6
},
"selection_filter": {
"dimensions": false,
"footprints": true,
"graphics": false,
"keepouts": false,
"lockedItems": false,
"otherItems": false,
"pads": false,
"text": true,
"tracks": false,
"vias": false,
"zones": false
},
"visible_items": [
0,
1,
2,
3,
4,
5,
8,
9,
10,
11,
12,
13,
15,
16,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
32,
33,
34,
35,
36,
40
],
"visible_layers": "fffffff_ffffffff",
"zone_display_mode": 0
},
"git": {
"repo_password": "",
"repo_type": "",
"repo_username": "",
"ssh_key": ""
},
"meta": {
"filename": "PICOZ80_v25a.kicad_prl",
"version": 3
},
"project": {
"files": []
}
}

View File

@@ -0,0 +1,757 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"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.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": false,
"text_position": 0,
"units_format": 1
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.8,
"height": 1.6,
"width": 1.11
},
"silk_line_width": 0.12,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.15,
"silk_text_upright": false,
"zones": {
"45_degree_only": false,
"min_clearance": 0.0
}
},
"diff_pair_dimensions": [
{
"gap": 0.0,
"via_gap": 0.0,
"width": 0.0
}
],
"drc_exclusions": [],
"meta": {
"filename": "board_design_settings.json",
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "ignore",
"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": "ignore",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "error",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "ignore",
"silk_over_copper": "ignore",
"silk_overlap": "ignore",
"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",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rule_severitieslegacy_courtyards_overlap": true,
"rule_severitieslegacy_no_courtyard_defined": false,
"rules": {
"allow_blind_buried_vias": false,
"allow_microvias": false,
"max_error": 0.005,
"min_clearance": 0.127,
"min_connection": 0.127,
"min_copper_edge_clearance": 0.4,
"min_hole_clearance": 0.127,
"min_hole_to_hole": 0.254,
"min_microvia_diameter": 0.28,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 1,
"min_silk_clearance": 0.0,
"min_text_height": 0.762,
"min_text_thickness": 0.127,
"min_through_hole_diameter": 0.3048,
"min_track_width": 0.127,
"min_via_annular_width": 0.15,
"min_via_diameter": 0.508,
"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,
0.127,
0.1524,
0.254,
0.381,
0.508,
0.8128
],
"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,
"drill": 0.0
},
{
"diameter": 0.4,
"drill": 0.3
},
{
"diameter": 0.4064,
"drill": 0.3048
},
{
"diameter": 0.4572,
"drill": 0.3048
},
{
"diameter": 0.508,
"drill": 0.3048
}
],
"zones_allow_external_fillets": false,
"zones_use_no_outline": true
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "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",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "error",
"power_pin_not_driven": "ignore",
"similar_labels": "warning",
"simulation_model_issue": "ignore",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "PICOZ80_v25a.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.127,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.127,
"via_diameter": 0.35,
"via_drill": 0.25,
"wire_width": 6
},
{
"bus_width": 12,
"clearance": 0.127,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "ESP32",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.127,
"via_diameter": 0.35,
"via_drill": 0.25,
"wire_width": 6
},
{
"bus_width": 12,
"clearance": 0.127,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Power",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.5,
"via_diameter": 0.8,
"via_drill": 0.4,
"wire_width": 6
},
{
"bus_width": 12,
"clearance": 0.127,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Z80",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.127,
"via_diameter": 0.35,
"via_drill": 0.25,
"wire_width": 6
}
],
"meta": {
"version": 3
},
"net_colors": {
"+1V1": "rgb(204, 102, 0)",
"+3V3": "rgb(194, 0, 194)",
"+5V": "rgb(0, 132, 0)",
"GNDPWR": "rgb(72, 72, 72)"
},
"netclass_assignments": null,
"netclass_patterns": [
{
"netclass": "ESP32",
"pattern": "GPIO"
},
{
"netclass": "Z80",
"pattern": "Z80"
}
]
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"plot": "Output/v2.5/",
"pos_files": "/Users/psmart/CAD/PICOZ80/Output/v2.5/",
"specctra_dsn": "PICOZ80_v25a.dsn",
"step": "",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"bom_export_filename": "Output/v2.5/PICOZ80_v25a.csv",
"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
},
{
"group_by": false,
"label": "#",
"name": "${ITEM_NUMBER}",
"show": false
},
{
"group_by": false,
"label": "Field4",
"name": "Field4",
"show": false
},
{
"group_by": false,
"label": "Field5",
"name": "Field5",
"show": false
},
{
"group_by": false,
"label": "Field6",
"name": "Field6",
"show": false
},
{
"group_by": false,
"label": "Description",
"name": "Description",
"show": false
},
{
"group_by": false,
"label": "LCSC",
"name": "LCSC",
"show": true
}
],
"filter_string": "",
"group_symbols": true,
"name": "",
"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": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.25,
"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": 0.0,
"text_offset_ratio": 0.08
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"ngspice": {
"fix_include_paths": true,
"fix_passive_vals": false,
"meta": {
"version": 0
},
"model_mode": 0,
"workbook_filename": ""
},
"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": [
[
"418bd263-f0a9-42da-88ea-160d6eff482c",
"Root"
],
[
"3da6f496-6052-4594-a29a-86a728dc85d3",
"RP2350 CPU"
],
[
"6c5e5935-c23c-4fe7-8398-8135bb4dc7c7",
"ESP32"
],
[
"995f36f1-2c59-4a3e-83df-a1bc72be4aa9",
"Z80 Interface"
],
[
"074eebe6-b378-413d-a234-c39bd734d2f6",
"Power Supply"
],
[
"48e9655a-ebba-4649-b419-dc0a41bd09e4",
"USB Hub"
]
],
"text_variables": {}
}

View File

@@ -0,0 +1,209 @@
(kicad_sch
(version 20231120)
(generator "eeschema")
(generator_version "8.0")
(uuid "418bd263-f0a9-42da-88ea-160d6eff482c")
(paper "A4")
(title_block
(title "PICOZ80")
(date "2023-08-28")
(rev "2.5")
(comment 4 "A Z80 replacement using a Raspberry Pi RP2350 MCU.")
)
(lib_symbols)
(sheet
(at 109.22 96.52)
(size 78.74 53.34)
(fields_autoplaced yes)
(stroke
(width 0.1524)
(type solid)
)
(fill
(color 0 0 0 0.0000)
)
(uuid "074eebe6-b378-413d-a234-c39bd734d2f6")
(property "Sheetname" "Power Supply"
(at 109.22 95.8084 0)
(effects
(font
(size 1.27 1.27)
)
(justify left bottom)
)
)
(property "Sheetfile" "PICOZ80-PowerSupply_v25a.kicad_sch"
(at 109.22 150.4446 0)
(effects
(font
(size 1.27 1.27)
)
(justify left top)
)
)
(instances
(project "PICOZ80_v25a"
(path "/418bd263-f0a9-42da-88ea-160d6eff482c"
(page "5")
)
)
)
)
(sheet
(at 24.13 27.94)
(size 78.74 53.34)
(fields_autoplaced yes)
(stroke
(width 0.1524)
(type solid)
)
(fill
(color 0 0 0 0.0000)
)
(uuid "3da6f496-6052-4594-a29a-86a728dc85d3")
(property "Sheetname" "RP2350 CPU"
(at 24.13 27.2284 0)
(effects
(font
(size 1.27 1.27)
)
(justify left bottom)
)
)
(property "Sheetfile" "PICOZ80-RP2350B_v25a.kicad_sch"
(at 24.13 81.8646 0)
(effects
(font
(size 1.27 1.27)
)
(justify left top)
)
)
(instances
(project "PICOZ80_v25a"
(path "/418bd263-f0a9-42da-88ea-160d6eff482c"
(page "2")
)
)
)
)
(sheet
(at 24.13 96.52)
(size 78.74 53.34)
(fields_autoplaced yes)
(stroke
(width 0.1524)
(type solid)
)
(fill
(color 0 0 0 0.0000)
)
(uuid "48e9655a-ebba-4649-b419-dc0a41bd09e4")
(property "Sheetname" "USB Hub"
(at 24.13 95.8084 0)
(effects
(font
(size 1.27 1.27)
)
(justify left bottom)
)
)
(property "Sheetfile" "PICOZ80-USBHUB_v25a.kicad_sch"
(at 24.13 150.4446 0)
(effects
(font
(size 1.27 1.27)
)
(justify left top)
)
)
(instances
(project "PICOZ80_v25a"
(path "/418bd263-f0a9-42da-88ea-160d6eff482c"
(page "6")
)
)
)
)
(sheet
(at 109.22 27.94)
(size 78.74 53.34)
(fields_autoplaced yes)
(stroke
(width 0.1524)
(type solid)
)
(fill
(color 0 0 0 0.0000)
)
(uuid "6c5e5935-c23c-4fe7-8398-8135bb4dc7c7")
(property "Sheetname" "ESP32"
(at 109.22 27.2284 0)
(effects
(font
(size 1.27 1.27)
)
(justify left bottom)
)
)
(property "Sheetfile" "PICOZ80-ESP32_v25a.kicad_sch"
(at 109.22 81.8646 0)
(effects
(font
(size 1.27 1.27)
)
(justify left top)
)
)
(instances
(project "PICOZ80_v25a"
(path "/418bd263-f0a9-42da-88ea-160d6eff482c"
(page "3")
)
)
)
)
(sheet
(at 194.31 27.94)
(size 78.74 53.34)
(fields_autoplaced yes)
(stroke
(width 0.1524)
(type solid)
)
(fill
(color 0 0 0 0.0000)
)
(uuid "995f36f1-2c59-4a3e-83df-a1bc72be4aa9")
(property "Sheetname" "Z80 Interface"
(at 194.31 27.2284 0)
(effects
(font
(size 1.27 1.27)
)
(justify left bottom)
)
)
(property "Sheetfile" "PICOZ80-Z80_Interface_v25a.kicad_sch"
(at 194.31 81.8646 0)
(effects
(font
(size 1.27 1.27)
)
(justify left top)
)
)
(instances
(project "PICOZ80_v25a"
(path "/418bd263-f0a9-42da-88ea-160d6eff482c"
(page "4")
)
)
)
)
(sheet_instances
(path "/"
(page "1")
)
)
)

View File

@@ -0,0 +1,253 @@
EESchema-LIBRARY Version 2.4
#encoding utf-8
#
# Ext_Bus_MZ800
#
DEF Ext_Bus_MZ800 J 0 20 Y Y 1 F N
F0 "J" 0 1225 50 H V C CNN
F1 "Ext_Bus_MZ800" 0 -1225 50 H V C CNN
F2 "" 0 -450 50 H I C CNN
F3 "" 0 -450 50 H I C CNN
DRAW
T 0 -200 1150 31 0 0 0 " Top Side" Normal 0 C C
T 0 150 1150 31 0 0 0 "Bottom Side" Normal 0 C C
S -300 -1150 300 1200 0 1 10 f
X VCC 1 -400 1050 100 R 50 50 1 1 w
X D6 10 400 650 100 L 50 50 1 1 T
X AD15 11 -400 550 100 R 50 50 1 1 O
X D7 12 400 550 100 L 50 50 1 1 T
X AD14 13 -400 450 100 R 50 50 1 1 O
X BUS0 14 400 450 100 L 50 50 1 1 O
X AD13 15 -400 350 100 R 50 50 1 1 O
X ~M1 16 400 350 100 L 50 50 1 1 O
X AD12 17 -400 250 100 R 50 50 1 1 O
X ~WR 18 400 250 100 L 50 50 1 1 O
X AD11 19 -400 150 100 R 50 50 1 1 O
X VCC 2 400 1050 100 L 50 50 1 1 W
X ~RD 20 400 150 100 L 50 50 1 1 O
X AD10 21 -400 50 100 R 50 50 1 1 O
X ~IORQ 22 400 50 100 L 50 50 1 1 O
X AD9 23 -400 -50 100 R 50 50 1 1 O
X ~MREQ 24 400 -50 100 L 50 50 1 1 O
X AD8 25 -400 -150 100 R 50 50 1 1 O
X GND 26 400 -150 100 L 50 50 1 1 w
X AD7 27 -400 -250 100 R 50 50 1 1 O
X ~HALT 28 400 -250 100 L 50 50 1 1 I
X AD6 29 -400 -350 100 R 50 50 1 1 O
X D2 3 -400 950 100 R 50 50 1 1 T
X IE1 30 400 -350 100 L 50 50 1 1 I
X AD5 31 -400 -450 100 R 50 50 1 1 O
X NC 32 400 -450 100 L 50 50 1 1 P
X AD4 33 -400 -550 100 R 50 50 1 1 O
X RESET 34 400 -550 100 L 50 50 1 1 O
X AD3 35 -400 -650 100 R 50 50 1 1 O
X ~EXRESET 36 400 -650 100 L 50 50 1 1 I
X AD2 37 -400 -750 100 R 50 50 1 1 O
X ~INT 38 400 -750 100 L 50 50 1 1 I
X AD1 39 -400 -850 100 R 50 50 1 1 O
X D3 4 400 950 100 L 50 50 1 1 T
X ~EXWAIT 40 400 -850 100 L 50 50 1 1 I
X AD0 41 -400 -950 100 R 50 50 1 1 O
X NC 42 400 -950 100 L 50 50 1 1 P
X GND 43 -400 -1050 100 R 50 50 1 1 W
X GND 44 400 -1050 100 L 50 50 1 1 W
X D1 5 -400 850 100 R 50 50 1 1 T
X D4 6 400 850 100 L 50 50 1 1 T
X D0 7 -400 750 100 R 50 50 1 1 T
X D5 8 400 750 100 L 50 50 1 1 T
X GND 9 -400 650 100 R 50 50 1 1 W
ENDDRAW
ENDDEF
#
# PAL12L6
#
DEF PAL12L6 U 0 40 Y Y 1 F N
F0 "U" -350 650 50 H V L CNN
F1 "PAL12L6" 50 700 50 H V L CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
DIP*
PDIP*
$ENDFPLIST
DRAW
S -350 600 300 -850 0 1 10 f
X GND 10 0 -1000 150 U 50 50 0 0 W
X VCC 20 0 750 150 D 50 50 0 0 W
X A0 1 -500 500 150 R 50 50 1 1 I
X ~WR 11 -500 -500 150 R 50 50 1 1 I
X ~RD 12 -500 -600 150 R 50 50 1 1 I
X ~BUS 13 450 400 150 L 50 50 1 1 O
X ~DRIVE 14 450 50 150 L 50 50 1 1 O
X ~RES 15 450 -350 150 L 50 50 1 1 O
X ~SIDE 16 450 -600 150 L 50 50 1 1 O
X ~DDEN 17 450 -150 150 L 50 50 1 1 O
X ~FDC 18 450 250 150 L 50 50 1 1 O
X ~IORQ 19 -500 -400 150 R 50 50 1 1 I
X A1 2 -500 400 150 R 50 50 1 1 I
X A2 3 -500 300 150 R 50 50 1 1 I
X A3 4 -500 200 150 R 50 50 1 1 I
X RESET 5 -500 -750 150 R 50 50 1 1 I
X A4 6 -500 100 150 R 50 50 1 1 I
X A5 7 -500 0 150 R 50 50 1 1 I
X A6 8 -500 -100 150 R 50 50 1 1 I
X A7 9 -500 -200 150 R 50 50 1 1 I
ENDDRAW
ENDDEF
#
# Connector_Generic_Conn_02x17_Odd_Even
#
DEF Connector_Generic_Conn_02x17_Odd_Even J 0 40 Y N 1 F N
F0 "J" 50 900 50 H V C CNN
F1 "Connector_Generic_Conn_02x17_Odd_Even" 50 -900 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
Connector*:*_2x??_*
$ENDFPLIST
DRAW
S -50 -795 0 -805 1 1 6 N
S -50 -695 0 -705 1 1 6 N
S -50 -595 0 -605 1 1 6 N
S -50 -495 0 -505 1 1 6 N
S -50 -395 0 -405 1 1 6 N
S -50 -295 0 -305 1 1 6 N
S -50 -195 0 -205 1 1 6 N
S -50 -95 0 -105 1 1 6 N
S -50 5 0 -5 1 1 6 N
S -50 105 0 95 1 1 6 N
S -50 205 0 195 1 1 6 N
S -50 305 0 295 1 1 6 N
S -50 405 0 395 1 1 6 N
S -50 505 0 495 1 1 6 N
S -50 605 0 595 1 1 6 N
S -50 705 0 695 1 1 6 N
S -50 805 0 795 1 1 6 N
S -50 850 150 -850 1 1 10 f
S 150 -795 100 -805 1 1 6 N
S 150 -695 100 -705 1 1 6 N
S 150 -595 100 -605 1 1 6 N
S 150 -495 100 -505 1 1 6 N
S 150 -395 100 -405 1 1 6 N
S 150 -295 100 -305 1 1 6 N
S 150 -195 100 -205 1 1 6 N
S 150 -95 100 -105 1 1 6 N
S 150 5 100 -5 1 1 6 N
S 150 105 100 95 1 1 6 N
S 150 205 100 195 1 1 6 N
S 150 305 100 295 1 1 6 N
S 150 405 100 395 1 1 6 N
S 150 505 100 495 1 1 6 N
S 150 605 100 595 1 1 6 N
S 150 705 100 695 1 1 6 N
S 150 805 100 795 1 1 6 N
X Pin_1 1 -200 800 150 R 50 50 1 1 P
X Pin_10 10 300 400 150 L 50 50 1 1 P
X Pin_11 11 -200 300 150 R 50 50 1 1 P
X Pin_12 12 300 300 150 L 50 50 1 1 P
X Pin_13 13 -200 200 150 R 50 50 1 1 P
X Pin_14 14 300 200 150 L 50 50 1 1 P
X Pin_15 15 -200 100 150 R 50 50 1 1 P
X Pin_16 16 300 100 150 L 50 50 1 1 P
X Pin_17 17 -200 0 150 R 50 50 1 1 P
X Pin_18 18 300 0 150 L 50 50 1 1 P
X Pin_19 19 -200 -100 150 R 50 50 1 1 P
X Pin_2 2 300 800 150 L 50 50 1 1 P
X Pin_20 20 300 -100 150 L 50 50 1 1 P
X Pin_21 21 -200 -200 150 R 50 50 1 1 P
X Pin_22 22 300 -200 150 L 50 50 1 1 P
X Pin_23 23 -200 -300 150 R 50 50 1 1 P
X Pin_24 24 300 -300 150 L 50 50 1 1 P
X Pin_25 25 -200 -400 150 R 50 50 1 1 P
X Pin_26 26 300 -400 150 L 50 50 1 1 P
X Pin_27 27 -200 -500 150 R 50 50 1 1 P
X Pin_28 28 300 -500 150 L 50 50 1 1 P
X Pin_29 29 -200 -600 150 R 50 50 1 1 P
X Pin_3 3 -200 700 150 R 50 50 1 1 P
X Pin_30 30 300 -600 150 L 50 50 1 1 P
X Pin_31 31 -200 -700 150 R 50 50 1 1 P
X Pin_32 32 300 -700 150 L 50 50 1 1 P
X Pin_33 33 -200 -800 150 R 50 50 1 1 P
X Pin_34 34 300 -800 150 L 50 50 1 1 P
X Pin_4 4 300 700 150 L 50 50 1 1 P
X Pin_5 5 -200 600 150 R 50 50 1 1 P
X Pin_6 6 300 600 150 L 50 50 1 1 P
X Pin_7 7 -200 500 150 R 50 50 1 1 P
X Pin_8 8 300 500 150 L 50 50 1 1 P
X Pin_9 9 -200 400 150 R 50 50 1 1 P
ENDDRAW
ENDDEF
#
# PICOZ80_PAL12L6
#
DEF PICOZ80_PAL12L6 U 0 40 Y Y 1 F N
F0 "U" -350 650 50 H V L CNN
F1 "PICOZ80_PAL12L6" 50 700 50 H V L CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
DIP*
PDIP*
$ENDFPLIST
DRAW
S -350 600 300 -850 0 1 10 f
X GND 10 0 -1000 150 U 50 50 0 0 W
X VCC 20 0 750 150 D 50 50 0 0 W
X A0 1 -500 500 150 R 50 50 1 1 I
X ~WR 11 -500 -500 150 R 50 50 1 1 I
X ~RD 12 -500 -600 150 R 50 50 1 1 I
X ~BUS 13 450 400 150 L 50 50 1 1 O
X ~DRIVE 14 450 50 150 L 50 50 1 1 O
X ~RES 15 450 -350 150 L 50 50 1 1 O
X ~SIDE 16 450 -600 150 L 50 50 1 1 O
X ~DDEN 17 450 -150 150 L 50 50 1 1 O
X ~FDC 18 450 250 150 L 50 50 1 1 O
X ~IORQ 19 -500 -400 150 R 50 50 1 1 I
X A1 2 -500 400 150 R 50 50 1 1 I
X A2 3 -500 300 150 R 50 50 1 1 I
X A3 4 -500 200 150 R 50 50 1 1 I
X RESET 5 -500 -750 150 R 50 50 1 1 I
X A4 6 -500 100 150 R 50 50 1 1 I
X A5 7 -500 0 150 R 50 50 1 1 I
X A6 8 -500 -100 150 R 50 50 1 1 I
X A7 9 -500 -200 150 R 50 50 1 1 I
ENDDRAW
ENDDEF
#
# PICOZ80_PAL12L6
#
DEF PICOZ80_PAL12L6 U 0 40 Y Y 1 F N
F0 "U" -350 650 50 H V L CNN
F1 "PICOZ80_PAL12L6" 50 700 50 H V L CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
DIP*
PDIP*
$ENDFPLIST
DRAW
S -350 600 300 -850 0 1 10 f
X GND 10 0 -1000 150 U 50 50 0 0 W
X VCC 20 0 750 150 D 50 50 0 0 W
X A0 1 -500 500 150 R 50 50 1 1 I
X ~WR 11 -500 -500 150 R 50 50 1 1 I
X ~RD 12 -500 -600 150 R 50 50 1 1 I
X ~BUS 13 450 400 150 L 50 50 1 1 O
X ~DRIVE 14 450 50 150 L 50 50 1 1 O
X ~RES 15 450 -350 150 L 50 50 1 1 O
X ~SIDE 16 450 -600 150 L 50 50 1 1 O
X ~DDEN 17 450 -150 150 L 50 50 1 1 O
X ~FDC 18 450 250 150 L 50 50 1 1 O
X ~IORQ 19 -500 -400 150 R 50 50 1 1 I
X A1 2 -500 400 150 R 50 50 1 1 I
X A2 3 -500 300 150 R 50 50 1 1 I
X A3 4 -500 200 150 R 50 50 1 1 I
X RESET 5 -500 -750 150 R 50 50 1 1 I
X A4 6 -500 100 150 R 50 50 1 1 I
X A5 7 -500 0 150 R 50 50 1 1 I
X A6 8 -500 -100 150 R 50 50 1 1 I
X A7 9 -500 -200 150 R 50 50 1 1 I
ENDDRAW
ENDDEF
#
#End Library

File diff suppressed because it is too large Load Diff

View File

@@ -1309,7 +1309,7 @@ static void cmdHist(t_Z80CPU *cpu, int argc, char **argv)
// save — save to default file (dbghist.txt)
// History is also auto-saved every 5 seconds when changed.
// ---------------------------------------------------------------------------
static void cmdSave(t_Z80CPU *cpu, int argc, char **argv)
static void cmdSaveHist(t_Z80CPU *cpu, int argc, char **argv)
{
(void) cpu;
(void) argc;
@@ -1325,6 +1325,188 @@ static void cmdSave(t_Z80CPU *cpu, int argc, char **argv)
shPrintf("Saved %d entries to %s.\r\n", shell.histCount, DBGSH_HIST_FILE);
}
// ---------------------------------------------------------------------------
// Command: load — load a file from SD card into memory
// load <p|v> <filename> <addr> <len> [fileofs]
// p = physical bus write, v = virtual PSRAM (bank 0)
// filename is relative to /sdcard/ on the ESP32
// ---------------------------------------------------------------------------
static void cmdLoad(t_Z80CPU *cpu, int argc, char **argv)
{
if (!cpu) { shPuts("CPU not initialised.\r\n"); return; }
if (argc < 5)
{
shPuts("Usage: load <p|v> <filename> <addr> <len> [fileofs]\r\n"
" p = physical bus write, v = virtual PSRAM bank 0\r\n"
" filename relative to /sdcard/ on ESP32\r\n");
return;
}
bool physical = (argv[1][0] == 'p' || argv[1][0] == 'P');
const char *fileName = argv[2];
uint32_t addr = (uint32_t) strtoul(argv[3], NULL, 0);
uint32_t len = (uint32_t) strtoul(argv[4], NULL, 0);
int fileOfs = (argc >= 6) ? (int) strtoul(argv[5], NULL, 0) : 0;
if (len == 0 || len > 0x100000)
{
shPuts("Length must be 1-1048576.\r\n");
return;
}
// Hold CPU for physical writes.
bool autoHeld = false;
if (physical && !cpu->hold)
{
cpu->hold = true;
int timeout = 3000;
while (!cpu->holdAck && timeout > 0) { sleep_ms(1); timeout--; }
if (!cpu->holdAck) { cpu->hold = false; shPuts("CPU hold timeout.\r\n"); return; }
autoHeld = true;
}
// Read file into a temporary PSRAM buffer, then copy to target.
uint8_t *buf = (uint8_t *) cpu->_z80PSRAM->RAM;
// Use a high PSRAM bank area as scratch (bank 63, offset 0).
uint8_t *scratch = buf + (63 * MEMORY_PAGE_SIZE);
uint8_t *scratchPtr = scratch;
int bytesRead = ESP_readFile(fileName, NULL, NULL, NULL,
&scratchPtr, (int) len, false, fileOfs);
if (bytesRead <= 0)
{
shPrintf("Failed to read '%s' (result=%d).\r\n", fileName, bytesRead);
if (autoHeld) { cpu->hold = false; }
return;
}
shPrintf("Read %d bytes from '%s' (offset %d).\r\n", bytesRead, fileName, fileOfs);
// Copy to target.
uint32_t copied = 0;
for (uint32_t i = 0; i < (uint32_t) bytesRead && i < len; i++)
{
uint16_t z80Addr = (uint16_t)((addr + i) & 0xFFFF);
if (physical)
{
Z80CPU_writePhysicalMem(cpu, z80Addr, scratch[i]);
if ((i & 0xFF) == 0xFF)
{
Z80CPU_refreshDRAM(cpu, true, 0, 0);
watchdog_update();
}
}
else
{
// Virtual PSRAM bank 0.
cpu->_z80PSRAM->RAM[z80Addr] = scratch[i];
}
copied++;
}
shPrintf("Loaded %lu bytes to %s %04lX-%04lX.\r\n",
(unsigned long) copied,
physical ? "physical" : "virtual",
(unsigned long) addr,
(unsigned long)((addr + copied - 1) & 0xFFFF));
if (physical)
Z80CPU_refreshDRAM(cpu, true, 0, 0);
if (autoHeld)
cpu->hold = false;
}
// ---------------------------------------------------------------------------
// Command: save — save memory to a file on SD card
// save <p|pf|v> <filename> <addr> <len>
// p = physical bus read, pf = physical fetch (M1), v = virtual PSRAM bank 0
// filename is relative to /sdcard/ on the ESP32
// ---------------------------------------------------------------------------
static void cmdSaveFile(t_Z80CPU *cpu, int argc, char **argv)
{
if (!cpu) { shPuts("CPU not initialised.\r\n"); return; }
if (argc < 5)
{
shPuts("Usage: save <p|pf|v> <filename> <addr> <len>\r\n"
" p = physical read, pf = physical fetch (M1), v = virtual PSRAM bank 0\r\n"
" filename relative to /sdcard/ on ESP32\r\n");
return;
}
bool physical = (argv[1][0] == 'p' || argv[1][0] == 'P');
bool fetch = physical && (argv[1][1] == 'f' || argv[1][1] == 'F');
const char *fileName = argv[2];
uint32_t addr = (uint32_t) strtoul(argv[3], NULL, 0);
uint32_t len = (uint32_t) strtoul(argv[4], NULL, 0);
if (len == 0 || len > 0x10000)
{
shPuts("Length must be 1-65536.\r\n");
return;
}
// Hold CPU for physical reads.
bool autoHeld = false;
if (physical && !cpu->hold)
{
cpu->hold = true;
int timeout = 3000;
while (!cpu->holdAck && timeout > 0) { sleep_ms(1); timeout--; }
if (!cpu->holdAck) { cpu->hold = false; shPuts("CPU hold timeout.\r\n"); return; }
autoHeld = true;
}
// Read memory into scratch buffer.
uint8_t *buf = (uint8_t *) cpu->_z80PSRAM->RAM;
uint8_t *scratch = buf + (63 * MEMORY_PAGE_SIZE);
shPrintf("Reading %lu bytes from %s %04lX...\r\n",
(unsigned long) len,
fetch ? "physical(fetch)" : physical ? "physical(read)" : "virtual",
(unsigned long) addr);
for (uint32_t i = 0; i < len; i++)
{
uint16_t z80Addr = (uint16_t)((addr + i) & 0xFFFF);
if (physical)
{
if (fetch)
scratch[i] = Z80CPU_fetchPhysicalMem(cpu, z80Addr);
else
scratch[i] = Z80CPU_readPhysicalMem(cpu, z80Addr);
if ((i & 0xFF) == 0xFF)
{
Z80CPU_refreshDRAM(cpu, true, 0, 0);
watchdog_update();
}
}
else
{
scratch[i] = cpu->_z80PSRAM->RAM[z80Addr];
}
}
if (physical)
Z80CPU_refreshDRAM(cpu, true, 0, 0);
// Write to SD card.
bool ok = ESP_writeFile(fileName, scratch, (int) len);
if (ok)
shPrintf("Saved %lu bytes to '%s'.\r\n", (unsigned long) len, fileName);
else
shPrintf("Failed to write '%s'.\r\n", fileName);
if (autoHeld)
cpu->hold = false;
}
// ===========================================================================
// Phase 2 — In-Circuit Emulation commands
// ===========================================================================
@@ -3797,9 +3979,11 @@ static const t_DbgShCmd cmdTable[] =
{"fdctrace","FDC trace: fdctrace <on|off|dump>", cmdFdcTrace},
{"qdtrace", "QD trace: qdtrace <on|off|dump>", cmdQdTrace},
{"piodbg", "RP2350 PIO diagnostics: piodbg [clear]", cmdPiodbg},
{"load", "Load file: load <p|v> <file> <addr> <len> [ofs]", cmdLoad},
{"save", "Save mem: save <p|pf|v> <file> <addr> <len>", cmdSaveFile},
{"echo", "Toggle character echo [on|off]", cmdEcho},
{"hist", "Show command history: hist [n]", cmdHist},
{"save", "Force-save history to ESP32 now", cmdSave},
{"savehst", "Force-save history to ESP32 now", cmdSaveHist},
};
static const int cmdTableSize = sizeof(cmdTable) / sizeof(cmdTable[0]);

View File

@@ -1 +1 @@
2.49
2.491

View File

@@ -1 +1 @@
2.471
2.472