{"id":10440,"date":"2026-05-08T08:30:00","date_gmt":"2026-05-08T06:30:00","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=10440"},"modified":"2026-05-08T18:57:25","modified_gmt":"2026-05-08T16:57:25","slug":"loopstation","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/","title":{"rendered":"LoopStation"},"content":{"rendered":"\n<p class=\"has-medium-font-size\">Alma Luc\u00eda V\u00e1zquez Beltr\u00e1n<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Mario Sauce Soriano<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-x-large-font-size\"><strong>Objetivo<\/strong><\/h2>\n\n\n\n<p class=\"has-medium-font-size\">El objetivo es construir una mini loop station funcional.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left has-large-font-size\"><strong>Definiendo el proyecto<\/strong><\/h2>\n\n\n\n<p class=\"has-text-align-left has-medium-font-size\">Primero, para entender la naturaleza del proyecto, se debe definir el concepto de loop station.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">\u00bfQu\u00e9 es una loop station?<a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/blob\/main\/README.es.md#qu%C3%A9-es-una-loop-station\"><\/a><\/h3>\n\n\n\n<p class=\"has-medium-font-size\">Tradicionalmente hablando, este concepto suele asociarse (y puede que est\u00e9s familiarizado con ello) a los pedales de guitarra. Sin embargo, ese no es el \u00fanico contexto que tiene una loop station. Para generalizar y sentar las bases de este proyecto, se definir\u00e1 una loop station como un dispositivo que permite al usuario grabar o capturar una serie de audios (pistas, eventos MIDI, etc.) y reproducirlos en bucle (loop). En el caso concreto de esta estaci\u00f3n de bucles, se encargar\u00e1 de grabar audios.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">De esta manera, se pueden crear bucles multicapa, dando un amplio margen para que la creatividad tome el control (armonizar, grabar una base de fondo, etc.).<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">Estableciendo los l\u00edmites<a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/blob\/main\/README.es.md#estableciendo-los-l%C3%ADmites\"><\/a><\/h3>\n\n\n\n<p class=\"has-medium-font-size\">Una loop station profesional puede variar en su composici\u00f3n (n\u00famero de pistas, opciones de manipulaci\u00f3n, etc.). Debido a esto, es necesario establecer las bases de las limitaciones y expectativas de esta mini versi\u00f3n:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">3 pistas funcionales (grabaci\u00f3n, overdub y control de volumen).<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Graban audios a trav\u00e9s del m\u00f3dulo de micr\u00f3fono.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">La primera pista ser\u00e1 una pista \u00abmaestra\u00bb ( la longitud del bucle), y las otras dos ser\u00e1n sus esclavas.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size\">Ahora bien, hay que tener en cuenta diferentes l\u00edmites en la secci\u00f3n de hardware. Debido a la gesti\u00f3n de memoria (PSRAM), se establecer\u00e1 que:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">Los bucles tienen una duraci\u00f3n m\u00e1xima de 20 segundos.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size\">Esto implica que cuando la loop station se configura para grabar la primera pista del bucle (necesariamente la Pista 1, ya que es la maestra), se puede establecer una duraci\u00f3n de cualquier valor entre 0 y 20 segundos. Esto se har\u00e1 pulsando el bot\u00f3n de grabaci\u00f3n por segunda vez para detenerla, o dejando que grabe hasta el final natural del bucle. Estas expectativas se logran mediante delimitaciones por software (al pulsar grabar por primera vez, si se alcanzan los 20 segundos de grabaci\u00f3n, la loop station sale del estado de grabaci\u00f3n autom\u00e1ticamente). De esta manera, durante todo el bucle, los audios se ajustan a la duraci\u00f3n establecida.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Este proyecto est\u00e1 dise\u00f1ado para que pueda desmontarse f\u00e1cilmente, ya que algunos componentes deben ser devueltos. Por lo tanto, tiene un concepto de prototipo que no es definitivo y presenta algunos problemas de hardware que podr\u00edan resolverse soldando todos los componentes correctamente en una placa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">Materiales<a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/blob\/main\/README.es.md#qu%C3%A9-es-una-loop-station\"><\/a><\/h2>\n\n\n\n<p class=\"has-medium-font-size\">En esta secci\u00f3n los requerimientos tanto de software como de hardware ser\u00e1n especificados. Tal y como se presenta, no es una necesidad estricta usar los mismos, y el proyecto se puede ajustar a diferentes m\u00f3dulos. Sin embargo, esta documentaci\u00f3n sigue el proceso de manera fiel a las opciones especificadas que se escogieron por el grupo de trabajo y grandes modificaciones del planteamiento del proyecto podr\u00edan conllevar un gran impacto en los requerimientos de software y hardware.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">Componentes<\/h3>\n\n\n\n<p class=\"has-medium-font-size\">Han sido pedidos por medios m\u00e1s fiables a coste de un posible mayor precio, sin arriesgar a que llegaran da\u00f1ados. Varios de los componentes fueron comprados en packs de varias unidades, por lo que se reflejar\u00e1 el precio estimado de una unidad del pack. No todos los materiales usados en esta versi\u00f3n son necesarios o indispensables, ya que el montaje ha sido hecho de manera subjetiva para mantener una limpieza y separaci\u00f3n del circuito. Por lo tanto, no es una gu\u00eda estricta, sino orientativa, del hardware implicado en el proyecto.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Nombre<\/th><th>Cantidad<\/th><th>Coste Estimado (euros)<\/th><th>Comprado\/Proporcionado<\/th><\/tr><\/thead><tbody><tr><td>ESP32-S3 DevKitC-1 N16R8<\/td><td>1<\/td><td>8\u20ac<\/td><td>Comprado<\/td><\/tr><tr><td>PCM5102<\/td><td>1<\/td><td>4,7\u20ac<\/td><td>Comprado<\/td><\/tr><tr><td>INMP441<\/td><td>1<\/td><td>4\u20ac<\/td><td>Comprado<\/td><\/tr><tr><td>Potenci\u00f3metros<\/td><td>3<\/td><td>0,5\u20ac<\/td><td>Comprado<\/td><\/tr><tr><td>LEDs (azul)<\/td><td>3<\/td><td>0,05\u20ac<\/td><td>Proporcionado<\/td><\/tr><tr><td>LEDs (verde)<\/td><td>1<\/td><td>0,05\u20ac<\/td><td>Proporcionado<\/td><\/tr><tr><td>LEDs (amarillo)<\/td><td>1<\/td><td>0,05\u20ac<\/td><td>Proporcionado<\/td><\/tr><tr><td>Botones<\/td><td>4<\/td><td>0,04\u20ac<\/td><td>Proporcionado<\/td><\/tr><tr><td>Cables Dupont<\/td><td>1<\/td><td>15\u20ac<\/td><td>Comprado<\/td><\/tr><tr><td>Protoboard<\/td><td>2<\/td><td>x<\/td><td>Proporcionado x1, Bought x1<\/td><\/tr><tr><td>Mini Protoboard<\/td><td>1<\/td><td>x<\/td><td>Proporcionado<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"has-medium-font-size\">La \u00abx\u00bb se refiere a la posibilidad de comprar los componentes maracados con precio \u00abx\u00bb en un pack de aproximadamente 13\u20ac.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Se refiere entonces el precio total estimado a la suma del precio de todos los materiales usados en este proyecto. El precio total invertido es el precio total real rest\u00e1ndole los materiales que fueron proporcionados o fueron comprados previamente para otros proyectos, de manera que solo se ve reflejado en \u00e9ste el dinero invertido desde el inicio del proyecto a final.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Precio Total Estimado<\/th><th>Precio Total Invertido<\/th><\/tr><\/thead><tbody><tr><td>47\u20ac<\/td><td>33,5\u20ac<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"has-medium-font-size\">Estos precios, si el proyecto fuera a empezarse de cero, son algo surrealistas. Se recomendar\u00eda comprar packs de componentes, subiendo algo el precio. De todas maneras, el dinero realmente invertido en este proyecto particular se ve reflejado en los precios de las tablas. La diferencia que marcar\u00eda a\u00f1adir el precio entero de packs con componentes extras no constituye un gasto real en el proyecto, ya que ese dinero solo se desperdiciar\u00eda exclusivamente en este proyecto si no se fueran a usar en ning\u00fan futuro proyecto. Tambi\u00e9n hay que considerar la posibilidad de que un componente se rompa o no funcione.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">Software<\/h3>\n\n\n\n<p class=\"has-medium-font-size\">Respecto a la parte de c\u00f3digo del proyecto, se ha utilizado Arduino IDE.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">La l\u00f3gica del sistema<\/h2>\n\n\n\n<p class=\"has-medium-font-size\">Ahora que los objetivos est\u00e1n claros, se puede definir una l\u00f3gica para el sistema. Esto se consigue mediante dos preguntas simples:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">\u00bfQu\u00e9 estoy haciendo?<a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/blob\/main\/README.es.md#la-l%C3%B3gica-del-sistema\"><\/a><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"487\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/currentStatus-1-1024x487.png\" alt=\"\" class=\"wp-image-10443\" style=\"aspect-ratio:2.1027479091995223;width:797px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/currentStatus-1-1024x487.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/currentStatus-1-300x143.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/currentStatus-1-768x366.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/currentStatus-1-1536x731.png 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/currentStatus-1.png 1893w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-medium-font-size\">Es importante recalcar que una vez que la loop station empieza un loop (graba el primer track), el dispositivo SIEMPRE est\u00e1 reproduciendo en bucle. Eso no significa que si se cambia a grabando la loop station deja de reproducir, simplemente cambia su foco principal a la tarea de grabar. Si la loop station se encuenta en el estado de reproducir, eso simplemente significa que 1- Se ha establecido un bucle 2- Actualmente no est\u00e1 grabando nada.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">\u00bfD\u00f3nde estoy?<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"901\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/selectedTrack-edited.png\" alt=\"\" class=\"wp-image-10445\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/selectedTrack-edited.png 1200w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/selectedTrack-edited-300x225.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/selectedTrack-edited-1024x769.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/selectedTrack-edited-768x577.png 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p class=\"has-medium-font-size\">El programa responde a un doble estado. Cuando el dispositivo se inicia, entra un estado de reposo (IDLE) donde su \u00fanico prop\u00f3sito es detectar si el usuario quiere empezar a grabar (presionar el bot\u00f3n de grabar). Cada vez que se quiera grabar (se ha presionado el bot\u00f3n de grabar), al principio de cada loop (por coordinaci\u00f3n), la loop station entra en su estado de grabar. Cuando termina de grabar, pasa a reproducir, lo que implica que ya hay un bucle definido (tiene longitud de loop, looplength, definida por lo menos, da igual si se ha grabado silencio en la pista 1).<\/p>\n\n\n\n<p class=\"has-medium-font-size\">De igual manera, responde a d\u00f3nde se encuentra. \u00bfEstoy en la pista 1, 2 o 3? Esto ayuda a determinar d\u00f3nde est\u00e1 grabando cuando captura la entrada (input) y decide d\u00f3nde pone la salida (output) de las pistas. Esto tambi\u00e9n ayuda a la din\u00e1mica maestro-esclavo. S\u00f3lo se podr\u00e1 comenzar a grabar cada bucle si la loop station se encuentra en la pista 1.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Mientras que se podr\u00eda a\u00f1adir una restricci\u00f3n para ignorar si se intenta cambiar de track al principio de cada bucle (estado de espera, IDLE) ya que se debe estar en la pista uno para grabar (igual que cuando se graba se ignora un cambio de pista), no se implementa porque ayuda a la detecci\u00f3n temprana de mal funcionamiento del hardware (los botones se pueden pulsar nada m\u00e1s se enciende la loop station para controlar si cambia de pista de manera exitosa).<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Con esta informaci\u00f3n, se introducen dos l\u00f3gicas interesantes de la loop station:<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-medium-font-size\">Grabaci\u00f3n pendiente<a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/blob\/main\/README.es.md#grabaci%C3%B3n-pendiente\"><\/a><\/h4>\n\n\n\n<ul class=\"wp-block-list has-medium-font-size\">\n<li>Si se presiona el bot\u00f3n de grabar en cualquier momento que no sea justo al principio del bucle, el sistema entra en un \u00abestado\u00bb intermedio introducido por una variable booleana . Este \u00abestado\u00bb intermedio es simplemente una alerta para que el sistema sepa que cuando vuelve al principio del loop tiene que empezar a grabar, asegurando que se cambie el estado.<\/li>\n\n\n\n<li>Esto solo pasa si se ha establecido un loop. Cuando se inicializa\/conecta, el bucle no est\u00e1 definido y no est\u00e1 intentando leer or reproducir nada, as\u00ed que empieza a grabar inmediatamente tras pulsar el bot\u00f3n de grabar.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size\">Con este concepto similar a las interrupciones pendientes, no se molesta al sistema hasta que se encuentra en el principio del bucle, ya que se ha establecido que no se grabar\u00e1 en ning\u00fan otro momento para una sincronizaci\u00f3n adecuada de la loop station que siga la naturaleza establecida.<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-medium-font-size\">Panic!<a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/blob\/main\/README.es.md#panic\"><\/a><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">Pulsar dos botones de pista a la vez manda una se\u00f1al de \u00abPANIC!\u00bb (p\u00e1nico), que resetea la ESP32.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size\">\u00bfQu\u00e9 pasa si se pulsan botones de manera simultanea de pistas? Como el hardware est\u00e1 pensado para ser introducido en una caja al final, se aprovecha este caso l\u00edmite para un reseteo r\u00e1pido de la ESP32 ya que no es posible pulsar el propio bot\u00f3n de reset de la placa una vez metida en la caja y cerrada. Hay diferentes l\u00f3gicas que se pod\u00edan introducir para gestionar este evento, pero se aprovecha la oportunidad para el reseteo r\u00e1pido. Se plantea un posible quinto bot\u00f3n para esta funcionalidad, pero para simplificar el hardware y minimizar los componentes, se establece el pulsar dos botones o m\u00e1s de track a la vez como una se\u00f1al de \u00abPANIC!\u00bb.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">El hardware<\/h2>\n\n\n\n<h4 class=\"wp-block-heading has-medium-font-size\">PCM5102<a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/blob\/main\/README.es.md#pcm5102\"><\/a><a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/blob\/main\/README.es.md#probando-el-hardware\"><\/a><\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"659\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/PCM5102-1024x659.png\" alt=\"\" class=\"wp-image-10446\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/PCM5102-1024x659.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/PCM5102-300x193.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/PCM5102-768x494.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/PCM5102-1536x988.png 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/PCM5102.png 1624w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading has-medium-font-size\">INMP441<\/h4>\n\n\n\n<p><a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/blob\/main\/README.es.md#inmp441\"><\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"985\" height=\"931\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/INMP441.png\" alt=\"\" class=\"wp-image-10447\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/INMP441.png 985w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/INMP441-300x284.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/INMP441-768x726.png 768w\" sizes=\"auto, (max-width: 985px) 100vw, 985px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading has-medium-font-size\">LEDs, botones y potenci\u00f3metros<\/h4>\n\n\n\n<p><a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/blob\/main\/README.es.md#leds-botones-y-potenci%C3%B3metros\"><\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"844\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/leds-buttons-potentiometers-1024x844.png\" alt=\"\" class=\"wp-image-10448\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/leds-buttons-potentiometers-1024x844.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/leds-buttons-potentiometers-300x247.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/leds-buttons-potentiometers-768x633.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/leds-buttons-potentiometers-1536x1266.png 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/leds-buttons-potentiometers-2048x1688.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">Montaje de la loop station<a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/blob\/main\/README.es.md#montaje-de-la-loop-station\"><\/a><\/h3>\n\n\n\n<p class=\"has-medium-font-size\">Los mayores problemas suelen surgir aqu\u00ed. Este es el esquema presentado en la versi\u00f3n de la loop station que se entreg\u00f3 para la clase. Siguiendo las im\u00e1genes de los pines insertadas anteriormente (sin contar el INMP441 y el PCM5102).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"402\" height=\"717\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/circuit-1.png\" alt=\"\" class=\"wp-image-10450\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/circuit-1.png 402w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/circuit-1-168x300.png 168w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">Primer prototipo de montaje:<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/IMG_20260507_193850-1024x768.jpg\" alt=\"\" class=\"wp-image-10452\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/IMG_20260507_193850-1024x768.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/IMG_20260507_193850-300x225.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/IMG_20260507_193850-768x576.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/IMG_20260507_193850-1536x1152.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/IMG_20260507_193850-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">Funcionamiento<\/h2>\n\n\n\n<p class=\"has-medium-font-size\">Esta secci\u00f3n detallar\u00e1 diferentes casos de uso, mostrando as\u00ed el funcionamiento esperado del sistema.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">1) Arranque de la ESP32<a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/edit\/main\/README.es.md#1-arranque-de-la-esp32\"><\/a><\/h3>\n\n\n\n<p class=\"has-medium-font-size\">Una vez que la ESP32 se enciende (conectado al port\u00e1til o a bater\u00edas), el programa comienza a ejecutarse. Se inicia en un estado de reposo (IDLE), se posiciona en la pista 1 (encendiendo el LED) y configura todos los pines y opciones para los dispositivos de entrada y salida. No se espera nada m\u00e1s de \u00e9l, por lo que no hace otra cosa que verificar la funci\u00f3n de los botones para determinar si alguno ha sido pulsado.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">2) Salida del estado IDLE<a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/edit\/main\/README.es.md#2-salida-del-estado-idle\"><\/a><\/h3>\n\n\n\n<p class=\"has-medium-font-size\">Para salir del estado IDLE, se deben cumplir dos condiciones. Esto es para que, una vez que salga de ese estado, nunca vuelva a consultar el inicio del c\u00f3digo.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">La loop station est\u00e1 en la Pista 1.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Se ha pulsado el bot\u00f3n de grabaci\u00f3n (record).<\/li>\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size\">Esto cambia inmediatamente el estado a RECORDING (Grabando). No hay otra forma de pasar de IDLE a PLAY (Reproducci\u00f3n), necesariamente debe pasar por la fase de grabaci\u00f3n. Este caso se ramifica en dos situaciones distintas:<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-medium-font-size\">2.1) La pista maestra establece una duraci\u00f3n de bucle de MAX_SAMPLES<a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/edit\/main\/README.es.md#21-la-pista-maestra-establece-una-duraci%C3%B3n-de-bucle-de-max_samples\"><\/a><\/h4>\n\n\n\n<p class=\"has-medium-font-size\">Para llegar a este escenario, tras pulsar el bot\u00f3n de grabaci\u00f3n por primera vez, no se debe pulsar nada m\u00e1s, dejando que el bucle llegue a su fin por s\u00ed solo. Esto establece autom\u00e1ticamente el bucle a su duraci\u00f3n m\u00e1xima y actualiza su estado a PLAYING (Reproduciendo).<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-medium-font-size\">2.2) La pista maestra detiene la grabaci\u00f3n antes de MAX_SAMPLES<a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/edit\/main\/README.es.md#22-la-pista-maestra-detiene-la-grabaci%C3%B3n-antes-de-max_samples\"><\/a><\/h4>\n\n\n\n<p class=\"has-medium-font-size\">Para llegar a este escenario, se debe pulsar el bot\u00f3n de grabaci\u00f3n una segunda vez antes de que alcance la duraci\u00f3n m\u00e1xima, estableciendo la longitud del bucle en cualquier tiempo inferior a 20 segundos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">3) Grabaci\u00f3n de la segunda o tercera pista tras la pista maestra<a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/edit\/main\/README.es.md#3-grabaci%C3%B3n-de-la-segunda-o-tercera-pista-tras-la-pista-maestra\"><\/a><\/h3>\n\n\n\n<p class=\"has-medium-font-size\">Este escenario es id\u00e9ntico en ambos casos. El \u00fanico cambio es en qu\u00e9 pista se encuentra una vez que comienza a grabar. La loop station est\u00e1 reproduciendo la pista maestra en bucle (con el volumen que tenga configurado) y entonces se pulsa el bot\u00f3n de grabaci\u00f3n. En cuanto llega al inicio del bucle, la loop station entra en estado de grabaci\u00f3n y sale de \u00e9l al alcanzar la longitud del bucle. Cualquier pulsaci\u00f3n de otro bot\u00f3n durante esta fase de grabaci\u00f3n es completamente ignorada.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">4) Overdub de cualquier pista<a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/edit\/main\/README.es.md#4-overdub-de-cualquier-pista\"><\/a><\/h3>\n\n\n\n<p class=\"has-medium-font-size\">Si el objetivo es sobrescribir cualquiera de las pistas existentes, todo lo dem\u00e1s seguir\u00e1 ocurriendo con normalidad, pero la pista regrabada dejar\u00e1 de reproducirse, ya que se est\u00e1 grabando de nuevo. Se debe pulsar el bot\u00f3n de la pista que se desea y tambi\u00e9n el bot\u00f3n de grabaci\u00f3n (el orden no es relevante, siempre y cuando se haya pulsado el bot\u00f3n de pista correcto antes de que el bucle llegue de nuevo al inicio y comience a grabar).<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">5) PANIC! se invoca<a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\/edit\/main\/README.es.md#5-panic-se-invoca\"><\/a><\/h3>\n\n\n\n<p class=\"has-medium-font-size\">El modo \u00abPanic\u00bb, ya sea por pulsar accidentalmente dos botones de pista al mismo tiempo o como una forma intencionada de realizar un reinicio r\u00e1pido, ocurre al pulsar o mantener pulsados dos botones (o m\u00e1s) de pista distintos simult\u00e1neamente. Puede ocurrir en cualquier momento.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">Documentaci\u00f3n extra<\/h2>\n\n\n\n<p class=\"has-medium-font-size\">Para consultar el c\u00f3digo y su explicaci\u00f3n, accede a nuestro repositorio de Github: <\/p>\n\n\n\n<p class=\"has-medium-font-size\"><a href=\"https:\/\/github.com\/soulieOG\/LoopStation-esp32\">https:\/\/github.com\/soulieOG\/LoopStation-esp32<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Alma Luc\u00eda V\u00e1zquez Beltr\u00e1n Mario Sauce Soriano Objetivo El objetivo es construir una mini loop station funcional. Definiendo el proyecto Primero, para entender la naturaleza del proyecto, se debe definir el concepto de loop&#46;&#46;&#46;<\/p>\n","protected":false},"author":334,"featured_media":10554,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-10440","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-proyectos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>LoopStation - Proyectos con Arduino.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"LoopStation - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"Alma Luc\u00eda V\u00e1zquez Beltr\u00e1n Mario Sauce Soriano Objetivo El objetivo es construir una mini loop station funcional. Definiendo el proyecto Primero, para entender la naturaleza del proyecto, se debe definir el concepto de loop&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-08T06:30:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-08T16:57:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/LoopStation-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1920\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"seytrmo2526g05\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"seytrmo2526g05\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/loopstation\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/loopstation\\\/\"},\"author\":{\"name\":\"seytrmo2526g05\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/c705e35390fd80c617d26f1007aba6f9\"},\"headline\":\"LoopStation\",\"datePublished\":\"2026-05-08T06:30:00+00:00\",\"dateModified\":\"2026-05-08T16:57:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/loopstation\\\/\"},\"wordCount\":2160,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/loopstation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2026\\\/05\\\/LoopStation-scaled.jpg\",\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/loopstation\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/loopstation\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/loopstation\\\/\",\"name\":\"LoopStation - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/loopstation\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/loopstation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2026\\\/05\\\/LoopStation-scaled.jpg\",\"datePublished\":\"2026-05-08T06:30:00+00:00\",\"dateModified\":\"2026-05-08T16:57:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/loopstation\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/loopstation\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/loopstation\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2026\\\/05\\\/LoopStation-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2026\\\/05\\\/LoopStation-scaled.jpg\",\"width\":2560,\"height\":1920},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/loopstation\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"LoopStation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"name\":\"Proyectos con Arduino.\",\"description\":\"Blog de proyectos de Arduino de alumnos de la URJC\",\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\",\"name\":\"Universidad Rey Juan Carlos\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"width\":745,\"height\":288,\"caption\":\"Universidad Rey Juan Carlos\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/c705e35390fd80c617d26f1007aba6f9\",\"name\":\"seytrmo2526g05\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/849c1f0a3162746ce071b0ba9b22957746cc285bf07d8c97de4e5b4be4ab1603?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/849c1f0a3162746ce071b0ba9b22957746cc285bf07d8c97de4e5b4be4ab1603?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/849c1f0a3162746ce071b0ba9b22957746cc285bf07d8c97de4e5b4be4ab1603?s=96&d=mm&r=g\",\"caption\":\"seytrmo2526g05\"},\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/seytrmo2526g05\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"LoopStation - Proyectos con Arduino.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/","og_locale":"es_ES","og_type":"article","og_title":"LoopStation - Proyectos con Arduino.","og_description":"Alma Luc\u00eda V\u00e1zquez Beltr\u00e1n Mario Sauce Soriano Objetivo El objetivo es construir una mini loop station funcional. Definiendo el proyecto Primero, para entender la naturaleza del proyecto, se debe definir el concepto de loop&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2026-05-08T06:30:00+00:00","article_modified_time":"2026-05-08T16:57:25+00:00","og_image":[{"width":2560,"height":1920,"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/LoopStation-scaled.jpg","type":"image\/jpeg"}],"author":"seytrmo2526g05","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"seytrmo2526g05","Tiempo de lectura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/"},"author":{"name":"seytrmo2526g05","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/c705e35390fd80c617d26f1007aba6f9"},"headline":"LoopStation","datePublished":"2026-05-08T06:30:00+00:00","dateModified":"2026-05-08T16:57:25+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/"},"wordCount":2160,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/LoopStation-scaled.jpg","articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/","name":"LoopStation - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/LoopStation-scaled.jpg","datePublished":"2026-05-08T06:30:00+00:00","dateModified":"2026-05-08T16:57:25+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/LoopStation-scaled.jpg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/LoopStation-scaled.jpg","width":2560,"height":1920},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/loopstation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"LoopStation"}]},{"@type":"WebSite","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","name":"Proyectos con Arduino.","description":"Blog de proyectos de Arduino de alumnos de la URJC","publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization","name":"Universidad Rey Juan Carlos","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","width":745,"height":288,"caption":"Universidad Rey Juan Carlos"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/c705e35390fd80c617d26f1007aba6f9","name":"seytrmo2526g05","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/849c1f0a3162746ce071b0ba9b22957746cc285bf07d8c97de4e5b4be4ab1603?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/849c1f0a3162746ce071b0ba9b22957746cc285bf07d8c97de4e5b4be4ab1603?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/849c1f0a3162746ce071b0ba9b22957746cc285bf07d8c97de4e5b4be4ab1603?s=96&d=mm&r=g","caption":"seytrmo2526g05"},"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/seytrmo2526g05\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/10440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/users\/334"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=10440"}],"version-history":[{"count":14,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/10440\/revisions"}],"predecessor-version":[{"id":10551,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/10440\/revisions\/10551"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media\/10554"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=10440"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=10440"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=10440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}