Skip to the content
2 layers20 × 20 mmController board, the printed circuit board in 3D

Controller board

XDjackieXD/TomoStrap2

The code residing in the "microcontroller" and "pebble" directories was written by me, Jakob (Jack/XDjackieXD), as part of the diploma thesis you are required to do for your A Level at a higher technical school in…

Size
20 × 20 mm
Copper layers
2
Thickness
1.6 mm
Parts
42
Nets
14
Pads
93
Tracks, vias
173, 19
Pours
2
Routed
Yes
KiCad
KiCad 4
Created
15 May 2017
Updated
24 Jul 2020

Overview

Controller board is an open-source printed circuit board by XDjackieXD, from the XDjackieXD/TomoStrap repository on GitHub. It is a 2-layer board of 20 × 20 mm with 42 parts on 14 nets, routed with 173 tracks and 19 vias.

It is built around the MKL03Z32VFG4, MAX30102EFD+ and ESDA6V1L. Its parts include 5 capacitors, 5 resistors, 4 ICs and 2 diodes. It belongs with the NXP (LPC, Kinetis, i.MX RT) boards of this library.

Main components

3

README

README.md

TomoStrap

The code residing in the "microcontroller" and "pebble" directories was written by me, Jakob (Jack/XDjackieXD), as part of the diploma thesis you are required to do for your A Level at a higher technical school in Austria. The KiCAD files inside the "hardware" directory, designed by Jakob Z., represent the hardware the aforementioned code runs on.

Introduction

The main topic of the diploma thesis was to build a device similar to http://chrisharrison.net/projects/tomo/tomo.pdf while increasing mobility by using a Pebble smartwatch as the base. During development I snuck in a MAX30102 pulseoximeter which basically is the main feature as of now.

Usage

Microcontroller Firmware

To compile the Firmware for the KL03 ARM processor, it'll be the easiest route to install the kinetis design studio. The hardware abstraction layer was generated using NXP's MCUXpresso tool. Most parts of the code are written in a way that should allow for fairly easy porting to other microcontroller platforms. Currently the handlers for data received are inside the library. Changing this to callbacks should be easy though. The firmware isn't complete by any means but contineous SpO2 and pulse measurements are working as intended. Things that need to be addressed before "production" use include proper power management and automatic gain control for the MAX30102's LEDs and configurable ADC ranges as those values are currently hard coded which lead to unreliable measurements in many situations.

Pebble App

The included pebble app is able to display any SpO2 and pulse data sent by the microcontroller. Impedance data is currently only printed into the debug log of the Pebble app.

License

All code written by me and the SpO2 calculation library is licensed under the MIT license (LICENSE-software.txt). The dstring library used for SpO2 debugging using FlexiPlot is licensed under the Creative Commons license (LICENSE-dstring.txt). All other source code files included in the microcontroller firmware directory (everything not inside of the "source" directory) is licensed under the respective licenses stated in the source file headers.

The hardware is Licensed under the terms of the Creative Commons Attribution Sharealike 4.0 license (LICENSE-hardware.txt) with the exception of the kicad library by Michael Cousins which is licensed under the terms of the Creative Commons Attribution Sharealike 3.0 Unported license (LICENSE-kicad-libs.txt).

Parts

42
QtyValueFootprintReferences
11VPDEV0VPAC0VP_0, VP_1, VP_2, VP_3, VP_4, VP_5, VP_6, VP_7, VP_9, VP_10, VP_10
7~controller_board:SMD1_27-2_54EXT-ENABLE12, EXT-GND12, EXT-SCL12, EXT-SDA12, EXT-VCC12, PEBBLE-DATA12, PEBBLE-VCC12
44k7M0805R1, R2, R3, R4
4TPB1,27controller_board:B1_27SWD-CLK12, SWD-DIO12, SWD-GND12, SWD-RESET12
2ESDA6V1LSOT-23D1, D2
2VPDEV0controller_board:VPAC0VP_8, VP_11
2~SMD1,27-2,54PEBBLE-GND1, PEBBLE-GND2
1100nC0805C5
110kcontroller_board:M0805R5
110nC0805C3
110µA%2f3216-18RC1
11µA%2f3216-18RC4
14.7µA%2f3216-18RC2
174LVC1G07DBVSOT23-5IC2
1LP2985TI-LP2985IC1
1MAX30102EFD+MAXIM-MAX30100IC3
1MKL03Z32VFG498ASA00525DU1

More from XDjackieXD/TomoStrap

1
  • 2 layers30 × 20 mmImpedance board, the printed circuit board in 3D

    Impedance board

    XDjackieXD/TomoStrap

    The code residing in the "microcontroller" and "pebble" directories was written by me, Jakob (Jack/XDjackieXD), as part of the diploma thesis you are required to do for your A Level at a higher technical school in…

    33 parts2

Similar boards

  • 2 layers55 × 40.1 mmFirst design, the printed circuit board in 3D

    First design

    kian09/Guardian

    A compact health monitoring device that is worn on the wrist. Its capabilities are measuring your heart rate and detecting accidental falls using an accelerometer.

    55 parts
  • 2 layers112 × 72 mmTouCAN, the printed circuit board in 3D

    TouCAN

    PickleWorks-Design/TouCAN

    USB to Can Adapter

    105 parts1CC0-1.0
  • 4 layers84 × 99 mmPCB Shield, the printed circuit board in 3D

    PCB Shield

    GitHaresco/196_Project_Team13

    Building an RFID organizer

    57 parts
  • 4 layers62 × 54 mmSim7070g imu batt, the printed circuit board in 3D

    Sim7070g imu batt

    jrborbars/sim7070g_imu

    Sim7070g custom board with imu + batt

    53 partsMIT
  • 4 layers100 × 100 mmPCB EU, the printed circuit board in 3D

    PCB EU

    nikolajevs/PCB_EU

    Сохраняются функции PCBV1: два LED-канала с общей яркостью, два независимых PWM/тахоканала вентиляторов, PTC, помпа, SHT4x, поплавок, RTC с CR2032, microSD, Wi-Fi и существующие функции интерфейса/расписаний.

    201 parts

Questions

How big is the Controller board PCB?

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

What parts does the Controller board use?

42 parts, built around the MKL03Z32VFG4, MAX30102EFD+ and ESDA6V1L. 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 Controller board KiCad files?

From the XDjackieXD/TomoStrap repository on GitHub, at the commit this page was made from: the board is hardware/controller_board/controller_board.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Controller board design in my own project?

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