Skip to the content
PCBKitNew board
2 layers40 × 39.1 mmHERMES, the printed circuit board in 3D

My personal Swiss Army Board with a 9DOF IMU, Pressure Sensor, Air Quality Sensor, Humidity Sensor and Temperature Sensor. Built as a YSWS project for my Hack Club RISE ILE

Size
40 × 39.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
32
Nets
63
Pads
169
Tracks, vias
305, 23
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
4 Jun 2026
Updated
10 Jun 2026

Overview

HERMES is an open-source printed circuit board by Owenxman, from the Owenxman/HERMES repository on GitHub, published under the MIT licence. It is a 2-layer board of 40 × 39.1 mm with 32 parts on 63 nets, routed with 305 tracks and 23 vias.

It is built around the ATMEGA328-AU, BME680 and FT231XS-R, with the AP2112K-3.3, ICM-20948 and B3SN-3112P among its other parts. Its parts include 15 capacitors, 5 resistors, 5 ICs, 2 diodes and 2 connectors. It belongs with the sensors and measurement boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

6

README

README.md
HERMES

HERMES (Hardware Environmental & Rotational Motion Evaluation Sensor)

HERMES is a USB-connected sensor board that reads motion, environmental, and GPS data and sends it to a computer in real time. The data is visualized in a browser dashboard that connects directly over Web Serial.

🛰️ Live dashboard: https://owenxman.github.io/HERMES/ Works in desktop Chrome and Edge. Use Demo data if you don't have hardware connected.

What this is

The board combines a 9-axis IMU, environmental sensor, and GPS module with an ATmega328 microcontroller. The microcontroller reads everything and streams it over USB serial to a computer.

The goal is simple: plug it in, open the dashboard, and see live motion + environmental data without any setup beyond a serial connection.

Hardware

PartWhat it does
ICM-209489-axis IMU (accelerometer, gyroscope, magnetometer)
BME680Temperature, humidity, pressure, gas / VOC
GPS modulePosition data over UART
ATmega328-AMain microcontroller that reads sensors
FT231XSUSB to serial bridge
AP2112K-3.33.3V regulator

Connection: USB-C (power + data), 8 MHz clock, ICSP header for programming.

Dashboard

The dashboard is a single index.html file. There is no backend, no build system, and nothing to install.

It reads serial data from the board and visualizes it in real time:

ViewShows
Orientation3D model that moves with roll, pitch, and yaw
AccelerometerX/Y/Z arrows + combined force vector
MagnetometerCompass-style heading display
EnvironmentLive graphs for temperature, humidity, pressure, and gas
GPSLatitude, longitude, altitude, and satellite count
Raw telemetryLive serial log + update rate (Hz)

Everything runs in the browser. The board connects directly to your computer using Web Serial, and nothing gets uploaded anywhere.

How to run it

Locally

Open index.html in Chrome or Edge. Click Connect device, select the FT231XS serial port, and set the baud rate (default is 115200).

Browser support

Web Serial only works in Chromium-based browsers on desktop: Chrome, Edge, Brave, Opera.

Firefox, Safari, and mobile browsers will still load the page, but cannot connect to the board. Demo mode still works everywhere.

The web dashboard can be acessed at https://owenxman.github.io/HERMES/

Serial format

The board prints one line per update over serial. The dashboard tries to auto-detect the format. You can use any of:

JSON (recommended)

json
{"roll":2.1,"pitch":-5,"yaw":143,"ax":0.01,"ay":0.0,"az":1.0,"heading":143,"temp":22.4,"hum":41,"pres":1012.8,"gas":52000,"lat":44.47,"lon":-73.21,"alt":61,"sats":9}

key=value

text
roll=2.1 pitch=-5 yaw=143 ax=0.01 ay=0 az=1 temp=22.4 hum=41 pres=1012.8 gas=52000

CSV — first send a header line, then numeric rows:

text
roll,pitch,yaw,ax,ay,az,heading,temp,hum,pres,gas,lat,lon,alt,sats
2.1,-5,143,0.01,0,1,143,22.4,41,1012.8,52000,44.47,-73.21,61,9

Not all fields are required. You can start with just IMU data and add sensors later.

Fields

FieldAliasesUnits
roll / pitch / yawr / p / ydegrees
qw / qx / qy / qz—quaternion
gx / gy / gzgyroX/Y/Zdeg/s
ax / ay / azaccelX / accel_xg
mx / my / mzmagX/Y/ZµT
headinghdg / headdegrees
temptemperature / t°C
humhumidity / rh%
prespressure / baro / hPahPa
gasvoc / iaqΩ / kΩ
lat / lonlatitude / longitudedecimal degrees
altaltitudemeters
satssatellitescount

Orientation priority: quaternion → roll/pitch/yaw → gyro integration

Heading priority: heading → yaw → magnetic calculation (mx/my)

Repo structure

text
HERMES/
├── firmware/       # Microcontroller Code (not finished yet)
├── PCB/            # KiCad + PCB files
├── Production/     # Production Files
├── CAD/            # CAD Files for the Case
├── index.html      # Dashboard
├── LICENSE         # MIT License
└── README.md

Firmware

The firmware runs on an ATmega328 at 8 MHz. It reads:

  • ICM-20948 over I²C
  • BME680 over I²C
  • GPS over UART (NMEA)

Then it prints telemetry over USB serial in one of the supported formats.

This section will get updated once the final firmware is cleaned up and documented.

License

Released under the MIT License — you're free to use, copy, modify, and distribute this project, including commercially, as long as the copyright notice and license text are included. See the LICENSE file for the full terms.

Parts

32
QtyValueFootprintReferences
60.1uFCapacitor_SMD:C_1206_3216MetricC1, C2, C4, C18, C19, C20
5100nFCapacitor_SMD:C_1206_3216MetricC9, C14, C21, C22, C23
21KResistor_SMD:R_1206_3216MetricR2, R3
21uFCapacitor_SMD:C_1206_3216MetricC16, C17
25.1KResistor_SMD:R_1206_3216MetricR4, R5
110KResistor_SMD:R_1206_3216MetricR1
110uFCapacitor_SMD:C_1206_3216MetricC3
14.7uFCapacitor_SMD:C_1206_3216MetricC15
18MHzfootprints:AWSCR-8.00CV-T_ABRY1
1AP2112K-3.3Package_TO_SOT_SMD:SOT-23-5U5
1ATmega328-APackage_QFP:TQFP-32_7x7mm_P0.8mmU1
1B3SN-3112PKiCad2:B3SN3112PS1
1BME680Package_LGA:Bosch_LGA-8_3x3mm_P0.8mm_ClockwisePinNumberingU4
1Conn_02x03_Top_BottomConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ8
1FT231XSPackage_SO:SSOP-20_3.9x8.7mm_P0.635mmU2
1GREENLED_SMD:LED_1206_3216MetricD1
1ICM-20948Sensor_Motion:InvenSense_QFN-24_3x3mm_P0.4mmU6
1REDLED_SMD:LED_1206_3216MetricD2
1SolderJumper_2_BridgedConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP1
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_GCT_USB4085J1

Questions

How big is the HERMES PCB?

It measures 40 × 39.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the HERMES use?

32 parts, built around the ATMEGA328-AU, BME680, FT231XS-R and AP2112K-3.3. 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 HERMES KiCad files?

From the Owenxman/HERMES repository on GitHub, at the commit this page was made from: the board is PCB/HERMES.kicad_pcb and its schematic PCB/HERMES.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the HERMES design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 4 layers33.1 × 64.7 mmNrg3, the printed circuit board in 3D

    Nrg3

    panStamp/kicad

    Kicad projects

    135 parts15GPL-2.0
  • 6 layers53.3 × 101.6 mmMega2560plus, the printed circuit board in 3D

    Mega2560plus

    sneakylizard123-4/Mega2560plus

    Mega 2560+ is an upgraded version of the Arduino Mega 2560. It keeps the same form factor and pinout as the original so it still works with every Mega shield, but it adds an onboard sensor suite and an ESP32-S3…

    149 parts
  • 4 layers55 × 154.1 mmGPS module, the printed circuit board in 3D

    GPS module

    Dizzerin/Rocket-Flight-Data-Computer

    This project uses an STM32H743VGT6 MCU along with some innertial measurement units (IMU)s and barometric pressure sensors to and an SD card to record flight data from a model rocket and for later analysis, graphing, and…

    161 parts1
  • 4 layers57 × 35 mmSYSC4907 REV2, the printed circuit board in 3D

    SYSC4907 REV2

    MorganJamesSmith/BioSenseWearable

    Ideas for a university project

    122 parts1BSD-3-Clause
  • 2 layers17.5 × 29.5 mmMicro logger, the printed circuit board in 3D

    Micro logger

    GaitRehabilitation/mini_data_capture

    The current maintainers of this repository are:

    33 partsApache-2.0
  • 2 layers40 × 22.1 mmKaze, the printed circuit board in 3D

    Kaze

    Las-Vejas/Kaze

    A very powerful surrounding sensor

    44 parts3MIT
  • 4 layers50 × 80 mmSensBoard, the printed circuit board in 3D

    SensBoard

    Hazel-H-Chen/PocketSens

    Microcontroller based sensor suite for portable environmental measurements.

    62 parts1MIT
  • 2 layers70 × 70 mmCo2monitor, the printed circuit board in 3D

    Co2monitor

    co2monnz/co2monitor-pcb

    CO2 Monitor PCB

    40 parts