Skip to the content
PCBKitNew board
2 layers146.1 × 208.9 mmMasterthesis hardware, the printed circuit board in 3D

Masterthesis hardware

Fescron/masterthesis

This repository is a collection of hardware, firmware and some documentation files for the project I created for my masterthesis.

Size
146.1 × 208.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
247
Nets
153
Pads
729
Tracks, vias
1,290, 190
Pours
18
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
18 Feb 2020
Updated
28 Sep 2021

Overview

Masterthesis hardware is an open-source printed circuit board by Fescron, from the Fescron/masterthesis repository on GitHub. It is a 2-layer board of 146.1 × 208.9 mm with 247 parts on 153 nets, routed with 1,290 tracks and 190 vias.

It is built around the LMP8640MK-F, DS18B20 and SP1003-01ETG, with the 2N7002-7-F-ES, MMUN2233LT1G and SP3030-01ETG among its other parts. Its parts include 60 resistors, 46 capacitors, 12 connectors, 8 diodes and 4 ICs.

Main components

7

README

README.md

Masterthesis

Shortcut HW License SW License GitHub last commit GitHub Release Date GitHub release


Masterthesis PCB

This repository is a collection of hardware, firmware and some documentation files for the project I created for my masterthesis.


0 - Table of Contents


1 - Situation

The goal of the thesis was to create a module to connect a Moving Bed BioReactor (MBBR, schematically pictured below) to the Cloud. A MBBR is a system which removes excess nitrites in, in this case, drainwater coming from greenhouses to prevent eutrophication in surrounding water bodies. This is done by denitrifying bacteria inside the bioreactor, which grow on moving plastic carriers, and convert the nitrate to nitrogen gas. This is done in anoxic conditions and in the presence of a suitable electron donor, such as a glycerol-based carbon source.

MBBR situation

The picture below on the left gives an overview of the system that has already been build on the location. The drainage well from the diagram above is pictured on the lower right of this picture. The MBBR itself and a smaller drainage well are underground, under the two manhole covers on the left. In the middle of the picture the measuring system is visible, with under it two blue barrels of carbon source. The picture below on the right gives a peek inside the MBBR. The plastic carries are clearly visible.

MBBR situation MBBR


To get an overview of the added components of the masterthesis (in full-color) in relation to the already existing structures (semi-transparant), a global block diagram (in Dutch) was created which can be seen below.

Block diagram in relation to MBBR

The heart of the project is the EFM32HG222 microcontroller and with a Sparkfun SerLCD display it is possible to display status information and measurements. The IoT connection is done with a BG96 modem over NB-IoT. To get an indication of the amount of water processed by the MBBR, the amount of energy used by the waterpump is monitored with an energy-meter. This gives a pulse to the microcontroller when a certain amount of energy is used. Measurements done by the MBBR system (Hach sc200: acidity level, nitrate value, redox value) are acquired via 4-20 mA current loops. The remaining amount of carbon source in a barrel is measured with a VL53L1X sensor. To measure the water temperature a DS18B20 sensor was chosen, and to get the air temperature (and humidity) a SHT30 sensor is used.


2 - Hardware

Below one can see the block diagram of the constructed PCB (inside the big grey rounded rectangle) and the external sensors/modules on the far right. Semi-transparent items are optional for future expansion. The voltages used by the different components are indicated in square brackets. The different interconnecting technologies (I2C, USART, SWD, ADC, GPIO, ...) are indicated inside the MCU block.

Block diagram of the constructed PCB

230v mains power is used to power the project. A big SMPS is used to convert this AC voltage to a 3.8v DC voltage, mainly to power the BG96 modem and the display. The logic interfaces of the modem however run on 1.8v (indicated by the rounded brackets), so a level-shifter is used to convert the 3.3v logic signals from the MCU. The 3.8v voltage is then further stepped down to 3.3V using an LDO, for use by the MCU and temperature sensors. A 15V boostconverter is also added to supply power to the energy-meter. The schematic of the project can be found here.


3 - Firmware

To get a better idea of the code functionality a few flowcharts were designed, which can be seen below. The left most diagram indicates the main code-flow. The code-flow inside the yellow frames on this main flowchart are elaborated in the two diagrams next to the main diagram. The middle flowchart indicates how different statuses are send to the cloud, and the right one indicates how data is being send to the cloud.

Main flow chart Status flow chart Sending data flow chart


When starting up the code first initializes all the peripherals (INIT). After this a status message is send (SEND STATUS) indicating that the module started up. It can be noted that there is functionality to make sure the module doesn't spam status messages, which can be seen in the middle flowchart. Before sending the status message the display is updated indicating that a status message is being send. After the message has been send to the cloud the display is updated with the latest measurements.

After the startup message has been send new measurements are taken (MEASURE), and subsequently these are send to the cloud (SEND DATA). Prior to sending this data the display is updated with a message that data is being send. Afterwards the new measurements are shown on the display. When all of this is done the internal timer is reset (RESET TIMER) so the module can go back to sleep (SLEEP) and wake up after a predefined amount of time (TIMER END) to take new measurements. The module can also wake up on a button press (BUTTON INT) or on an incoming pulse from the energy meter (PULS INT). If the latter is the case this is directly send to the cloud (SEND DATA).


4 - Additional hardware changes (PCB v1.0)

Even though a lot of time was spend making sure the schematic was correct a bodge had to be made to make sure the modem could be turned correctly on and off with the PWRKEY pin. At first this was supposed to be done with the TXB0108PWR levelshifter but it turned out this could not work due to the inner workings of this chip. Luckily a lot of testpads and zero-ohm resistors were included in the design and a MOSFET, resistor and bodge-wire could easily be soldered to enable the correct functionality. This can be seen on the first overview picture on this repository.

What can also be seen on this picture is that not all of the components are fitted. Some were not soldered because they were not necessary at that point, like for example the micro-USB port which can be used for firmware updates and configuration of the modem. A 3D-render of the whole project is however given below, only missing the display and surrounding case.

Masterthesis PCB 3D view

Parts

247
QtyValueFootprintReferences
200 ΩResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR12, R17, R18, R21, R22, R23, R24, R27, R28, R31, R32, R33, R34, R35, R36, R37 +4
19100 nFCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC1, C2, C3, C4, C6, C12, C15, C18, C20, C22, C29, C31, C32, C34, C42, C44 +3
1610 kΩResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR1, R2, R3, R5, R6, R7, R8, R10, R11, R14, R15, R29, R44, R51, R57, R60
6SP1003-01ETGDiode_SMD:D_0402_1005MetricD1, D2, D3, D4, D6, D9
5100 ΩResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR16, R41, R53, R54, R56
533 pFCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC14, C16, C17, C23, C24
410 nFCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC27, C28, C35, C41
46,2 ΩResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR19, R20, R25, R26
4CH4Connector_Phoenix_PTSA_extra:PhoenixContact_PTSA_1,5_2-G-3,5_1x02_P3.50mm_AngledJ8, J9, J10, J11
4LMP8640Package_TO_SOT_SMD:SOT-23-6_HandsolderingU3, U4, U5, U6
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
31 kΩResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR45, R52, R58
31 µFCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC43, C45, C46
310 µFCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC30, C33, C36
21 MΩResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR13, R48
210 pFCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC19, C25
2100 µFCapacitor_SMD:C_1206_3216Metric_Pad1.42x1.75mm_HandSolderC11, C21
212 pFCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC39, C40
2120 kΩResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR4, R30
218 pFCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC37, C38
22,2 kΩResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR47, R49
22N7002-7-FPackage_TO_SOT_SMD:SOT-23_HandsolderingQ1, Q2
23V3Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP47, TP51
2470 µFCapacitor_Tantalum_SMD:CP_EIA-7343-43_Kemet-X_Pad2.25x2.55mm_HandSolderC10, C13
2GNDConnector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP49, TP52
2MMUN2233LT1GPackage_TO_SOT_SMD:SOT-23_HandsolderingQ3, Q4
2SMA-edgeConnector_Coaxial:SMA_Samtec_SMA-J-P-X-ST-EM1_EdgeMountJ22, J23
2SP3030-01ETGDiode_SMD:D_0402_1005MetricD8, D10
2SW_PushButton_Switch_SMD:SW_SPST_FSMSMSW1, SW2
1+15VConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalTP46
1+1V8Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalTP27
1+3V3Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalTP44
1+3V8Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalTP45
11 nFCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC5
11 ΩResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR50
11, 47 kΩResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR59
1100 kΩResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR55
11206L110SLYRFuse:Fuse_1206_3216Metric_Pad1.42x1.75mm_HandSolderF1
115 kΩResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR42
11V8Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP50
12,2 µFCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC26
12.2 kΩResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR46
1230V inputConnector_Phoenix_PTSA_extra:PhoenixContact_PTSA_1,5_2-G-3,5_1x02_P3.50mm_AngledJ34
124 MHzCrystal:Crystal_SMD_5032-4Pin_5.0x3.2mmY2
132 mAFuse:Fuseholder_Cylinder-5x20mm_Stelvio-Kontek_PTF78_Horizontal_OpenF2
132,768 kHzCrystal:Crystal_SMD_2012-2Pin_2.0x1.2mm_HandSolderingY1
13V8Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP48
151 kΩResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR43
1A1Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ12
1ADC0Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ21
1ADC1Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ20
1ADC_CH4Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP20
1ADC_CH5Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP21
1ADC_CH6Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP24
1ADC_CH7Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP25
1B1Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ13
1BG96_DTR_1V8Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP36
1BG96_DTR_3V3Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP35
1BG96_PWRKEY_1V8Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP43
1BG96_PWRKEY_3V3Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP42
1BG96_RI_1V8Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP29
1BG96_RI_3V3Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP28
1BG96_RXD_1V8Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP33
1BG96_RXD_3V3Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP32
1BG96_STAT_1V8Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP39
1BG96_STAT_3V3Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP38
1BG96_TXD_1V8Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP31
1BG96_TXD_3V3Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP30
1BG96_~RESET~_1V8Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP41
1BG96_~RESET~_3V3Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP40
1BLM21BD102SN1DInductor_SMD:L_0805_2012Metric_Pad1.15x1.40mm_HandSolderL1
1CH4Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalTP18
1CH5Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalTP19
1CH6Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalTP22
1CH7Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalTP23
1DS18B20Connector_Phoenix_PTSA_extra:PhoenixContact_PTSA_1,5_3-G-3,5_1x03_P3.50mm_AngledJ6
1DS18B20_DATAConnector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP14
1DS18B20_DATA_spareConnector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP16
1DS18B20_VDDConnector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP15
1DS18B20_VDD_spareConnector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalTP17

The 181 most common of 247 parts.

Questions

How big is the Masterthesis hardware PCB?

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

What parts does the Masterthesis hardware use?

247 parts, built around the LMP8640MK-F, DS18B20, SP1003-01ETG and 2N7002-7-F-ES. 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 Masterthesis hardware KiCad files?

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

Can I use the Masterthesis hardware design in my own project?

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

Similar boards

  • 2 layers80 × 80 mm2026 C AV TMB, the printed circuit board in 3D

    2026 C AV TMB

    EPFLRocketTeam/2026_C_AV_HARDWARE

    Repository containing PCBs files of FH2 Avionics

    34 parts
  • 2 layers46.4 × 46.4 mm2ch-4-20mA, the printed circuit board in 3D

    2ch-4-20mA

    Fescron/2ch-4-20mA-converter

    1/2 channel 4-20 mA to voltage converter boards using LMP8640 current sense monitor.

    30 parts10
  • 2 layers52 × 33 mmDrone ESC Bridge, the printed circuit board in 3D

    Drone ESC Bridge

    jerinabr/Drone_ESC_Bridge

    PCB that allows the NVIDIA Jetson to communicate with the 4-in-1 ESC for the drone

    24 parts
  • 4 layers103.5 × 91.3 mmSTM32 Play Board, the printed circuit board in 3D

    STM32 Play Board

    WillA97/STM32_Play_Board

    schematic of the microcontroller pcb files

    104 parts
  • 2 layers192.2 × 150.5 mmDjinn, the printed circuit board in 3D

    Djinn

    tzarc/keyboards

    @tzarc's custom keyboard designs.

    292 parts993CERN-OHL-S-2.0
  • 4 layers50.5 × 80 mmBasic, the printed circuit board in 3D

    Basic

    aep/artanis-light

    vehicle gps tracker with battery ================================

    147 parts2
  • 2 layers77.1 × 79.6 mmPCB PUERTA, the printed circuit board in 3D

    PCB PUERTA

    FreddyUrena/Freddy_Urena_microcontroladores_2025_C1

    57 parts
  • 2 layers193.5 × 133.9 mmKeyboard left, the printed circuit board in 3D

    Keyboard left

    jasonlaguidice/TKL-Split-Keyboard

    Board edge fillet plugin used: https://github.com/tywtyw2002/FilletEdge

    232 parts