Skip to the content
PCBKitNew board
2 layers6.6 × 6.2 mmTMAG5273A1 PCB mini, the printed circuit board in 3D

TMAG5273A1 PCB mini

Joementrex/InstrumentedCube

This is the data repository for the code development of the instrumented object for my thesis.

Size
6.6 × 6.2 mm
Copper layers
2
Thickness
1.6 mm
Parts
2
Nets
5
Pads
12
Tracks, vias
13, 0
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
7 Jun 2024
Updated
20 Jun 2024

Overview

TMAG5273A1 PCB mini is an open-source printed circuit board by Joementrex, from the Joementrex/InstrumentedCube repository on GitHub. It is a 2-layer board of 6.6 × 6.2 mm with 2 parts on 5 nets, routed with 13 tracks and 0 vias.

Its parts include 1 capacitor and 1 IC.

README

README.md

A low cost instrumented cube for assessing robotic performance from a first person perspective

Buy Me A Coffee

This repository contains the content documenting the files for the instrumented cube

The data collected has been omitted from this repository as it exceeds the github 100MB limit.

Parts used

The parts used in this project are:

  • 2 ESP32C3 microcontrollers
  • 15 custom PCB's
  • 15 TMAG5273A2 hall effect sensors
  • Many JST connectors
  • Adafruit MCP23017 I2C GPIO Expander Breakout - STEMMA QT / Qwiic
  • PETG and TPU material for 3D printing
  • MIN CI Strong Neodymium Disc Magnets, 32x 3mm Rare Earth Magnets
  • M2 Heat inserts and screws

3D Files

The 3D files folder contains the STL files of the instrumented object to be downloaded, modified as wanted, and printed to construct the device.

Code

The code folder contains all the code developed during development including the programming for the microcontrollers and local data collection, training and inference.

The final code used for demonstration was the manualFinal python file and manualCollection Final running in python and the microcontrollers used ESP32C3_Master_sensors2 and ESP32_Slave_sensors.

The libraries in the data collection and training folder contain custom tools for commanding a 3D printer over the network that is connected with octoprint and contains functions that will estimate the duration of the movement of the printer to prevent sending many gcode commands and executing code before finishing movement. A library called ESPReader was also developed that reads and parses the incoming Serial data from the device.

The remaining code uploaded was just for development purposes for the visualisation, training and inference. Some versions of the code contain methods for saving version history of the data collected to prevent training when there is no new training data and skip to inference.

PCB

The custom PCB for the sensors were developed by another student and used in this project and is included in the PCB folder

Assembly

To assemble the device, 3D print the 3D model files with the inner shell and lid printed in a tough material such as PETG to ensure longevitiy and durability for extended use of the device under high forces, and print the bottom face to enclose the bottom. Do the same for the reciever print model and assemble it. The antenna can be removed on the reciever without limiting range greatly.

Screenshot of reciever

The modules and the outer shell is printed out of TPU material, TPU 95A was used but printers capable of printing a softer material can be used for better performance.

Once printed get the PCB's made and assemble them with the appropriate resistor and sensor. Wire up the sensors in groups of 3 with optional JST connectors for simple disassembly and glue them into the inserts in the modules. To provide face swaps and easy assembly and disassembly wire up the order of the sensors in each face the same order.

Photo of module wired up

Glue 5 magnets around the inner shell, and feed the wires of the modules through the holes in the inner shell. Heat insert m2 inserts into the hole for the lid screw in the inner shell and 4 more inside the lid for the IO expander and screw the IO expander onto the lid.

Photo of innershell wired up

Place the ESP32C3 microcontroller in the designated slot in the inner shell and place the battery inside the shell. Connect the IO expander to the microcontroller and the modules to the IO expander. Screw on the bottom lid.

Inner Wiring

Face the top module with the peak sensor facing the forward direction and the remaining modules have the peak sensor facing upwards. Enclose the modules with the outer shell and place the bottom face onto the device to secure the cube together and provide a flat surface.

Cube Cube Cube

Upload the code to the ESP32C3 reciever and transmitter.

Code Execution

To run the code, the main working example is the DataCollectionManualFinal that will prompt the user to press on each of the 4 contact points on the face and collect a range of sample data from the device. Once data has been collected manualFinal training will train the data on a random forest regressor and run inference on the file with a simple 2D visualiser showing contacts, forces and varying colour for each face.

The respository also contains many examples of using different training methods, different data collections and many different visualisers ranging from automatic to manual data collection. What combination of tools used is up to the researcher.

Automatic collection

To probe the device using an ender 3 V2 a custom probe was designed that attaches to the printer and supports swapping of the probe to different contact point numbers and can be found in the 3D Files section.

Parts

2
QtyValueFootprintReferences
1C_SmallCapacitor_SMD:C_0805_2012MetricC1
1TMAG5273Package_TO_SOT_SMD:SOT-23-6U1

Questions

How big is the TMAG5273A1 PCB mini PCB?

It measures 6.6 × 6.2 mm and has 2 copper layers, 1.6 mm thick.

What parts does the TMAG5273A1 PCB mini use?

2 parts. 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 TMAG5273A1 PCB mini KiCad files?

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

Can I use the TMAG5273A1 PCB mini design in my own project?

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

Similar boards

  • 2 layers37 × 19 mmPassive rpi hub75-adapter, the printed circuit board in 3D

    Passive rpi hub75-adapter

    hzeller/rpi-rgb-led-matrix

    Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO

    2 parts4.4kGPL-2.0
  • 2 layersDiode template, the printed circuit board in 3D

    Diode template

    adamws/kicad-kbplacer

    KiCad plugin for automatic keyboard's key placement and routing

    2 parts547GPL-3.0
  • 2 layers20.3 × 15.2 mmL0 button, the printed circuit board in 3D

    L0 button

    Luos-io/luos_engine

    Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

    2 parts546MIT
  • 2 layers35.1 × 46.8 mmSDEX2M2 Breakout Board, the printed circuit board in 3D

    SDEX2M2 Breakout Board

    NVNTLabs/switch2-SDEX2M2

    Micro SD Express to M.2 NVME Adapter for Nintendo Switch 2

    2 parts542GPL-3.0
  • 2 layers59.3 × 36.6 mmExpansionBoardTemplate, the printed circuit board in 3D

    ExpansionBoardTemplate

    BlueSCSI/BlueSCSI-v2

    BlueSCSI v2/Ultra - an open source, open hardware, SCSI emulator using the Pi Pico PR2040 and Pico 2 RP2350

    2 parts459GPL-3.0
  • 2 layersAlpha.9mm.wire, the printed circuit board in 3D

    Alpha.9mm.wire

    ohmtech-rdi/eurorack-blocks

    Software to Hardware Prototyping for Eurorack using C++, Max/Gen~ or Faust

    2 parts410
  • 2 layers26.7 × 64 mmGpu power, the printed circuit board in 3D

    Gpu power

    dennisss/dacha

    Monorepo for awesome tools/projects/libraries

    2 parts397Apache-2.0