Skip to the content
PCBKitNew board
2 layers100 × 60 mmA NET, the printed circuit board in 3D

ArchiNet para conectividad WiFi/BLE/Ethernet mediante Archi

Size
100 × 60 mm
Copper layers
2
Thickness
1.6 mm
Parts
106
Nets
113
Pads
399
Tracks, vias
841, 51
Pours
129
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
21 Oct 2024
Updated
25 Sep 2025

Overview

A NET is an open-source printed circuit board by NewsanLab, from the NewsanLab/ARCHINET repository on GitHub. It is a 2-layer board of 100 × 60 mm with 106 parts on 113 nets, routed with 841 tracks and 51 vias.

It is built around the 74AHC1G125GW, ESP32-S3-WROOM-1-N8 and DSS14U, with the RJ45 and W5500 among its other parts. Its parts include 30 resistors, 28 capacitors, 11 diodes, 7 connectors and 6 ICs. It belongs with the radio and wireless boards and the ESP32 boards of this library.

Main components

5

README

README.md

ARCHINET

Archi Net es una placa de desarrollo diseñada para facilitar la conectividad mediante WiFi, Ethernet y Bluetooth Low Energy (BLE). Cuenta con 4 entradas analógicas y 8 entradas/salidas digitales.

El diseño está pensado para que todas las funciones puedan ser programadas y controladas directamente desde el microcontrolador ARCHI (basado en RP2040), sin necesidad de programar el ESP32 por separado. Este actúa como un coprocesador de comunicaciones, operando mediante comandos enviados en formato Json.

Texto alternativo para la imagen

Especificaciones

  • Voltaje de Entrada del Shield: 5V a 12V.
  • Conectividad Wi-Fi: Estándar 802.11 b/g/n (2.4 GHz) con soporte para modos de estación, Punto de Acceso (AP) y Wi-Fi Direct (ESP32-S3).
  • Conectividad Bluetooth: Bluetooth LE 5.0 (Bluetooth Low Energy).
  • Conectividad Ethernet: Compatible con 10Base-T/100Base-TX Ethernet (WIZnet W5500).
  • Voltaje de Operación Interno: Los módulos internos (ESP32-S3 y W5500) operan típicamente a 3.3V, provistos por reguladores a bordo del shield.
  • Pines de Entrada/Salida (I/O):
    • 4 Entradas/Salidas Analógicas.
    • 8 Entradas/Salidas Digitales.
  • Programación/Depuración: Incluye un puerto USB JTAG integrado para la programación y depuración directa del ESP32-S3.

Diagrama en Bloques

El shield ArchiNET se divide en 4 bloques funcionales principales:
  • Fuente de Alimentación: Este bloque garantiza la alimentación estable a los bloques de conectividad.
  • Archi: Es el microcontrolador principal que controla la comunicación y funcionalidad de los bloques de conectividad (ESP32 y Ethernet WIZNET W5500).
  • ESP32-S3: Funciona como un coprocesador dedicado a la conectividad inalámbrica, comunicándose con Archi mediante interfaces como UART o SPI.
  • Ethernet (WIZNET W5500): Proporciona la conexión de red cableada a través de un puerto RJ45, permitiendo una comunicación Ethernet.

Diagrama en Bloques ArchiNET

Fuente de alimentación

El siguiente diagrama en bloque muestra la distribución de voltaje.

Fuente ArchiNET

El shield ArchiNet tiene una entrada para una fuente externa de +5V con una capacidad de hasta 2A.

Este voltaje de +5V se utiliza para la alimentación principal de la placa. La placa ArchiNet, a su vez, regula este voltaje para obtener una salida de +3.3V.

Esta salida de +3.3V es la que se utiliza para alimentar los módulos de bajo voltaje, como el Wiznet 5500 , el ESP32S3 y sensores

💻 Software

Conexión a Ethernet

Para realizar una conexión por medio de Ethernet se deben tener cargadas las siguientes librerías en la carpeta CIRCUITPY/lib:

  • Adafruit_Bus_Device
  • Adafruit_Wiznet5K
  • Adafruit_Connection_Manager
  • Adafruit_Requests
  • Adafruit_Ticks

⚙️ Configuración de pines

  • SPI:
    • SCK → GP10
    • MOSI → GP11
    • MISO → GP12
    • Chip Select (CS) → GP9

Prueba de conexión inicial con ETHERNET

Este script permite comprobar que el dispositivo se conecta correctamente a la red mediante Ethernet.

¿Qué hace el script?

  1. Configura el bus SPI y el pin CS.
  2. Inicializa el módulo Ethernet WIZNET5K.
  3. Crea una sesión HTTP con adafruit_requests.
  4. Muestra:
    • Versión del chip
    • Dirección MAC
    • Dirección IP asignada

Ejemplo: Consulta de IP por Ethernet

Ver código completo en GitHub

Fragmento del código

python
import board
import busio
import digitalio
import adafruit_connection_manager
import adafruit_requests
from adafruit_wiznet5k.adafruit_wiznet5k import WIZNET5K

spi = busio.SPI(board.GP10, MOSI=board.GP11, MISO=board.GP12)
cs = digitalio.DigitalInOut(board.GP9)
eth = WIZNET5K(spi, cs)

pool = adafruit_connection_manager.get_radio_socketpool(eth)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(eth)
requests = adafruit_requests.Session(pool, ssl_context)

print("Chip Version:", eth.chip)
print("MAC Address:", [hex(i) for i in eth.mac_address])
print("My IP address is:", eth.pretty_ip(eth.ip_address))

ESP32 como Coprocesador (modo UART)

El ESP32 se utiliza como coprocesador encargado de gestionar la conexión WiFi. La comunicación entre el microcontrolador principal (ej. RP2040, Archi u otros) y el ESP32 se realiza mediante UART o SPI, mediante el envío de comandos en formato JSON.


Modos de operación

  • UART: Se comunica a través de pines TX/RX, usando comandos y respuestas JSON.
  • SPI: Alternativamente, se puede implementar una versión basada en SPI (no cubierta en este ejemplo, pero compatible).

Conexión WiFi / BLE vía UART

Este ejemplo muestra cómo controlar el ESP32 como coprocesador para conectarse a una red WiFi/BLE mediante UART.

Conceptos clave

  • Comunicación UART entre el microcontrolador principal y el ESP32.
  • El pin ready indica cuándo el ESP32 está disponible para recibir comandos.
  • Uso de JSON para enviar comandos como CONNECT, SCAN, STATUS, etc.
  • Reset físico al ESP32 para asegurar un arranque limpio.

⚙️ Configuración de pines

  • UART y pines de control:

    • UART TX → GP12
    • UART RX → GP13
    • Pin ready → GP14
    • Pin reset → GP15

¿Qué hace el script?

  1. Reinicia el ESP32 con un pulso en el pin reset.
  2. Espera la señal ready del ESP32.
  3. Envía el comando CONNECT con SSID y contraseña.
  4. Recibe las respuestas en formato JSON.
  5. Finaliza cuando se recibe {"end": true} desde el ESP32.

Ejemplo: Primera conexión a la red

Ver código completo en GitHub

Fragmento del código

python
esp = ESP32UART(tx_pin=board.GP12, rx_pin=board.GP13, ready_pin=board.GP14)

if esp.esperar_ready(timeout=10):
    esp.solicitar_comando({"cmd": "CONNECT", "ssid": "tu_ssid", "pass": "tu_password"})
    esp.leer_respuesta(timeout=20)
else:
    print("ESP32 no está listo.")

Ejemplo: Primera conexión mediante BLE

Para iniciar comunicación BLE se realiza mediante la misma manera por comandos:

python
 #Inicia BLE->Con el siguiente comando por defecto tiene el nombre de ARCHINET_BLEXX  
    print("\n--- TEST: CONNECT BLE---")
    esp.solicitar_comando({"cmd": "BLEINIT"})
    esp.leer_respuesta(timeout=20) #respuesta el nombre del dispositivo

    while True:
        esp.solicitar_comando({"cmd": "BLETX","data": "{pcb:archinet, version:v2}"})#tx
        esp.solicitar_comando({"cmd": "BLERX"})
        esp.leer_respuesta(timeout=15) #respuesta del ble rx
        time.sleep(2) 

Una vez que tienes la conexión hecha, puedes realizar una app escritorio/celular para obtener datos.

Ejemplo de APP recepción y transmisión

APP


📋 Lista de comandos

ComandoParámetrosDescripción📄 Código de ejemplo
SCAN(ninguno)Escanea y lista redes WiFi disponibles.🔗 Ver ejemplo
CONNECTssid, passConecta a una red WiFi específica.🔗 Ver ejemplo
DISCONNECTtarget ("WiFi" o "AP")Desconecta de la red o cierra el punto de acceso.🔗 Ver ejemplo
APssid, passCrea un punto de acceso (Access Point).🔗 Ver ejemplo
PING(ninguno)Verifica si el ESP32 está activo y responde con su IP.🔗 Ver ejemplo
INFO(ninguno)Devuelve información del sistema: IP, RSSI y memoria disponible.🔗 Ver ejemplo
GETurlRealiza una petición HTTP GET a la URL indicada.🔗 Ver ejemplo
POSTurl, dataEnvía datos mediante HTTP POST (JSON) a la URL especificada.🔗 Ver ejemplo
WebServerlabel, dataCrea o actualiza un endpoint en el servidor embebido del ESP32.🔗 Ver ejemplo
HTMLhtmlInyecta HTML personalizado en el servidor web embebido.🔗 Ver ejemplo
UART_OFFUART_OFFApaga el UART para utilizar el Ethernet, para volver utilzar reiniciar esp32.🔗 Ver ejemplo
BLEINIT(ninguno o name)Inicia BLE por defecto crea el nombre del dispositivo🔗 Ver ejemplo
BLETXdataRealiza la transmisión de datos de BLE , se debe mandar los datos en el parametro data en formato json🔗 Ver ejemplo
BLERX(ninguno)Realiza la recepción de datos de BLE🔗 Ver ejemplo
BLEOFF(ninguno o name)Desactiva el BLE🔗 Ver ejemplo

Parts

106
QtyValueFootprintReferences
12Conn_01x03Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalA0, A1, A2, A3, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6, GPIO16, GPIO17, GPIO18
1010uFCapacitor_SMD:C_0603_1608MetricC1, C2, C7, C9, C10, C11, C12, C14, C18, C23
70.1uFCapacitor_SMD:C_0603_1608MetricC8, C16, C17, C19, C20, C21, C22
710KResistor_SMD:R_0603_1608MetricR4, R16, R17, R20, R21, R22, R23
61KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR7, R10, R11, R12, R13, R14
449.9Resistor_SMD:R_0603_1608MetricR25, R26, R27, R28
4MountingHole_3.2mmArduino_MountingHole:MountingHole_3.2mmMH1, MH2, MH3, MH4
3D_TVS_FilledDiode_SMD:D_0402_1005MetricD5, D6, D7
3LED_POWLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD9, D10, D11
3SOLDERJUMPERREFLOW_NOPASTEanetLib:JumperSJ1, SJ2, SJ3
3SWITCHButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187AU3, U4, U5
2100nFCapacitor_SMD:C_0603_1608MetricC3, C6
210nFCapacitor_SMD:C_0603_1608MetricC24, C26
222pFCapacitor_SMD:C_0603_1608MetricC13, C15
2470Resistor_SMD:R_0603_1608MetricR18, R19
25k1Resistor_SMD:R_0402_1005MetricR8, R9
26.8nFCapacitor_SMD:C_0603_1608MetricC25, C27
2DSS14UDiode_SMD:D_SOD-123FD1, D3
110Resistor_SMD:R_0603_1608MetricR29
1100KResistor_SMD:R_0603_1608MetricR1
110KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR30
112.4KResistor_SMD:R_0603_1608MetricR24
1135KResistor_SMD:R_0603_1608MetricR5
11KResistor_SMD:R_0603_1608MetricR6
11MResistor_SMD:R_0603_1608MetricR15
11N5819Diode_SMD:Nexperia_CFP3_SOD-123WD8
11nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC28
12.2uHanetLib:IND_PA4332.222NLTL1
122uFCapacitor_SMD:C_0603_1608MetricC5
125MHzCrystal:Crystal_SMD_TXC_7M-4Pin_3.2x2.5mmY1
130KResistor_SMD:R_0603_1608MetricR3
147KResistor_SMD:R_0603_1608MetricR2
156pFCapacitor_SMD:C_0603_1608MetricC4
174AHC1G125Package_TO_SOT_SMD:SOT-353_SC-70-5IC1
1AnalogConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ5
1BATTerminalBlock_RND:TerminalBlock_RND_205-00287_1x02_P5.08mm_HorizontalJ1
1Digital/PWMConnector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_VerticalJ6
1Digital/PWMConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ7
1ESP32-S3-WROOM-1RF_Module:ESP32-S3-WROOM-1U2
1LED_POWLED_SMD:LED_0603_1608MetricD4
1PowerConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ4
1RJ45anetLib:CONN12_ARJM11B1-009-AB-EW2_ABRJ3
1SD12C-7Diode_SMD:D_SOD-323_HandSolderingD2
1TPS563252DRLRanetLib:SOT6_DRL_TEX-LU1
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J2
1W5500anetLib:W5500U$1
1ferriteResistor_SMD:R_0603_1608MetricFB2
1ferriteInductor_SMD:L_0603_1608MetricFB1

Questions

How big is the A NET PCB?

It measures 100 × 60 mm and has 2 copper layers, 1.6 mm thick.

What parts does the A NET use?

106 parts, built around the 74AHC1G125GW, ESP32-S3-WROOM-1-N8, DSS14U and RJ45. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the A NET KiCad files?

From the NewsanLab/ARCHINET repository on GitHub, at the commit this page was made from: the board is Hardware/A-NET.kicad_pcb and its schematic Hardware/A-NET.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the A NET design in my own project?

Its repository states no licence, so its author keeps all rights: ask NewsanLab before reusing the design.

Similar boards

  • 4 layers84.8 × 67 mmGreen net, the printed circuit board in 3D

    Green net

    benjisu03/green-net

    82 partsCERN-OHL-P-2.0
  • 4 layers40 × 40 mmBlueSTM32, the printed circuit board in 3D

    BlueSTM32

    Keetyn/ENGT481

    65 parts
  • 2 layers222 × 142 mmArchiBot panel, the printed circuit board in 3D

    ArchiBot panel

    NewsanLab/ArchiBot

    Escudo de Archi para el manejo de motores DC y servos

    602 partsMIT
  • 4 layers74.8 × 74.8 mmA1-FlightComputer, the printed circuit board in 3D

    A1-FlightComputer

    UVicRocketry/CoreSTM

    This is the Core STM32 PCB with several of the commonly used sensors on it.

    88 partsMIT
  • 6 layers116 × 126 mmKicker, the printed circuit board in 3D

    Kicker

    SSL-A-Team/electrical

    circuit board design files, gerbers, and circuit analysis

    292 parts6MIT
  • 2 layersGenesis, the printed circuit board in 3D

    Genesis

    iffycodes/Genesis

    Genesis Board design

    98 parts2
  • 2 layers53.6 × 44.8 mmRobi PCB, the printed circuit board in 3D

    Robi PCB

    acetaminophen34/robi

    53 parts
  • 2 layers100.1 × 56 mmM302N, the printed circuit board in 3D

    M302N

    mhorimoto/M302N

    New hardware that improves on the M302K to make it smaller, more dedicated and no-code.

    33 parts