{"id":25342979,"url":"https://github.com/masterpluster/rp2040-geek-circuitpython","last_synced_at":"2026-06-09T16:30:59.852Z","repository":{"id":270416841,"uuid":"900500862","full_name":"masterPlusTer/rp2040-geek-circuitpython","owner":"masterPlusTer","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-09T22:49:19.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-10T00:17:19.577Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/masterPlusTer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-08T23:11:52.000Z","updated_at":"2025-11-09T22:49:23.000Z","dependencies_parsed_at":"2024-12-31T02:22:42.353Z","dependency_job_id":"1588dfaa-a779-42a9-b93a-64742fcf74cb","html_url":"https://github.com/masterPlusTer/rp2040-geek-circuitpython","commit_stats":null,"previous_names":["masterpluster/rp2040-geek-circuitpython"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/masterPlusTer/rp2040-geek-circuitpython","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterPlusTer%2Frp2040-geek-circuitpython","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterPlusTer%2Frp2040-geek-circuitpython/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterPlusTer%2Frp2040-geek-circuitpython/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterPlusTer%2Frp2040-geek-circuitpython/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/masterPlusTer","download_url":"https://codeload.github.com/masterPlusTer/rp2040-geek-circuitpython/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterPlusTer%2Frp2040-geek-circuitpython/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34116456,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-14T10:03:19.286Z","updated_at":"2026-06-09T16:30:59.847Z","avatar_url":"https://github.com/masterPlusTer.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RP2040-GEEK-CircuitPython\nintento de interface novato friendly para el RP2040-GEEK en Circuit Python\n\n\n\npor ahora solo hay esto, pero bueno, finalmente logre integrar la sd y el display en un mismo codigo.\nesta porqueria que hay aqui genera un archivo en la sd y lo muestra en el display, todo un logro \n\ndespues voy a hacer un modulo que encapsule toda la complejidad para que se pueda hacer cosas facilmente\n\nIMPORTANTE, debes flashearle el firmware de la pagina oficial de circuit python https://circuitpython.org/board/waveshare_rp2040_geek/ si usas otro no funcionara\n\n\n\n\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n:::::::::::::::::::::::GESTION DE ARCHIVOS DE LA TARJETA SD:::::::::::::::::::::\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n\n🚀 Inicialización desde REPL\n\nAbre el REPL de Thonny y escribe:\n\nfrom sd_manager import SDManager\nsd = SDManager()\n\n\nSi todo está bien, deberías ver:\n\nTarjeta SD montada con éxito en /sd\n\n📁 Operaciones básicas\nVer archivos en la raíz\nsd.listar(\"/\")\n\n\nResultado:\n\n['archivo 1.txt', 'archivo 2.txt', 'datos.csv']\n\n\nListar todo el contenido de forma recursiva:\n\nfor ruta, es_dir in sd.listar_recursivo(\"/\"):\n    print(\"DIR\" if es_dir else \"FILE\", ruta)\n\nCrear, escribir y anexar archivos\nsd.crear_archivo(\"test.txt\", \"Hola mundo desde CircuitPython\\n\")\n\n\nCrea el archivo solo si no existe.\n\nsd.escribir_archivo(\"test.txt\", \"Texto nuevo que reemplaza el anterior\\n\")\n\n\nSobrescribe el archivo.\n\nsd.anexar_archivo(\"test.txt\", \"Línea agregada al final\\n\")\n\n\nAgrega texto al final del archivo.\n\nLeer archivos\nsd.leer_archivo(\"test.txt\")\n\n\nLeer por líneas:\n\nlineas = sd.leer_lineas(\"test.txt\")\nprint(lineas)\n\n\nEditar una línea específica:\n\nsd.editar_linea(\"test.txt\", 1, \"Primera línea modificada\\n\")\n\n\nReemplazar texto en todo el archivo:\n\nsd.reemplazar_texto(\"test.txt\", \"mundo\", \"planeta\")\n\nRenombrar, copiar y mover archivos\n\nRenombrar:\n\nsd.renombrar_archivo(\"test.txt\", \"nuevo.txt\")\n\n\nCopiar:\n\nsd.copiar_archivo(\"nuevo.txt\", \"copia.txt\", sobrescribir=True)\n\n\nMover (copia y borra el original):\n\nsd.mover_archivo(\"copia.txt\", \"backup/copia.txt\", sobrescribir=True)\n\nBorrar archivos y carpetas\n\nBorrar un archivo:\n\nsd.borrar_archivo(\"nuevo.txt\")\n\n\nCrear carpeta:\n\nsd.crear_directorio(\"logs\")\n\n\nBorrar carpeta vacía:\n\nsd.borrar_directorio(\"logs\")\n\n\nBorrar carpeta con contenido:\n\nsd.borrar_directorio(\"logs\", recursivo=True)\n\nComprobar existencia\n\nVerifica si un archivo o carpeta existe:\n\nsd.existe(\"test.txt\")\n\n\nVerifica si es carpeta:\n\nsd.es_directorio(\"logs\")\n\n💾 Consultar detalles de la tarjeta SD\ninfo = sd.detalles_tarjeta()\n\n\nEjemplo de salida:\n\nDetalles SD: {\n  'capacidad_total_mb': 15255.1,\n  'espacio_libre_mb': 15254.9,\n  'espacio_usado_mb': 0.2,\n  'raiz': ['archivo 1.txt', 'archivo 2.txt']\n}\n\n\nPuedes acceder a las claves:\n\nClave\tDescripción\ncapacidad_total_mb / capacidad_total\tCapacidad total en MB\nespacio_libre_mb / espacio_libre\tEspacio libre en MB\nespacio_usado_mb / espacio_utilizado\tEspacio usado en MB\nraiz / archivos\tLista de archivos en la raíz\n🔢 Creación automática de archivos numerados\n\nSi usas el script con display, ya tienes incluida esta función:\n\ncrear_archivo_incremental()\n\n\nCada vez que se ejecuta el código, crea automáticamente:\n\narchivo 1.txt\narchivo 2.txt\narchivo 3.txt\n...\n\n\nSi borras algunos intermedios, continuará con el siguiente número correcto.\n\nEjemplo: si tienes archivo 1.txt y archivo 3.txt, el siguiente será archivo 4.txt.\n\n🧹 Desmontar manualmente (opcional)\n\nSi deseas desmontar la SD antes de retirarla físicamente:\n\nimport storage\nstorage.umount(\"/sd\")\n\n📚 Resumen rápido de comandos\nAcción\t\t==\u003e Comando\n\nMontar SD\t\t==\u003e sd = SDManager()\n\nListar archivos\t\t==\u003e sd.listar(\"/\")\n\nCrear archivo\t\t==\u003e sd.crear_archivo(\"a.txt\", \"texto\")\n\nEscribir (sobrescribir)\t\t==\u003e sd.escribir_archivo(\"a.txt\", \"nuevo texto\")\n\nAnexar contenido\t\t==\u003e sd.anexar_archivo(\"a.txt\", \"línea más\\n\")\n\nLeer archivo\t\t==\u003e sd.leer_archivo(\"a.txt\")\n\nRenombrar\t\t==\u003e sd.renombrar_archivo(\"a.txt\", \"b.txt\")\n\nCopiar\t\t==\u003e sd.copiar_archivo(\"b.txt\", \"copia.txt\")\n\nMover\t\t==\u003e sd.mover_archivo(\"copia.txt\", \"sub/copia.txt\")\n\nBorrar archivo\t\t==\u003e sd.borrar_archivo(\"b.txt\")\n\nCrear carpeta\t\t==\u003e sd.crear_directorio(\"sub\")\n\nBorrar carpeta recursiva\t\t==\u003e sd.borrar_directorio(\"sub\", recursivo=True)\n\nConsultar detalles SD\t   ==\u003e sd.detalles_tarjeta()\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasterpluster%2Frp2040-geek-circuitpython","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmasterpluster%2Frp2040-geek-circuitpython","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasterpluster%2Frp2040-geek-circuitpython/lists"}