Skip to the content
PCBKitNew board
2 layers105 × 38.5 mmHackTM, the printed circuit board in 3D

Github repository for HackTM 2018

Size
105 × 38.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
28
Nets
39
Pads
102
Tracks, vias
133, 5
Pours
2
Routed
Yes
KiCad
KiCad 4
Created
4 May 2018
Updated
20 Jul 2018

Overview

HackTM is an open-source printed circuit board by agweimar, from the agweimar/hackTM repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 105 × 38.5 mm with 28 parts on 39 nets, routed with 133 tracks and 5 vias.

It is built around the LM1117-1.8 and BSS138. Its parts include 12 connectors, 4 resistors, 2 transistors, 1 capacitor and 1 IC. It belongs with the power boards and the ESP32 boards of this library.

Main components

2

README

README.md

HackTM 2018 project #smucl

Hardware overview

Quickstart

Micropython

Hardware overview [blocked]

The sensor board/shield holds three major components, namely:

  • ESP32 breakout board with LoRa antenna and OLED display
  • Flex Cable including I2C addressable Sensirion SHTC01 (rel. humidity and temperature) and SGP30 (multipixle gas sensor)
  • Passive infrared sensor (PIR) a.k.a. motion sensor

A top view of the board is shown below:

Top_View_Board

ESP32 development board

The ESP32 breakout board is put in the socket on the lower left of the board. The usb port is facing outwards, so the board can be powered from an external (USB) power supply. On the bottom side of the ESP32 board a small LiPo battery can be connected. Charging this battery takes place via the USB port.
Caution: When booting or running the board the LoRa antenna must be connected!
Schematic Pinout

Flex cable

The flex cable is put in the FFC socket above the ESP32 board. It is to be mounted in such a fashion, that the sensors face upwards when the cable is bent to the right (parallel to the ESP32 board).
The flex cable combines the Sensirion SHTC1 and SGP30. Both of the sensors are accessed via I2C. The former is a sensor for relative humidity and temperature, the latter a multipixle gas sensor.
For both sensors a convenient micropython driver can be found in the micropython directory.

SGP30

The SGP30 can give raw readings corresponding to an Ethanol (EtOH) and Hydrogen (H2) signal. However, this chip can do more! If an In-Air-Qualitiy measurement has been initialized, the raw signals are used to calculate
the a TVOC signal (total volatile organic compounds) and an CO2 equivalent (CO2eq). These values already underly a dynamic baseline correction performed on-chip. To ensure these corrections works properly, it is advised to perform an iaq measurement once per second.
The power consumption of the chip can be drastically minimized by soft resetting it. This is done by an i2c general call. Caution is adviced, since other i2c devices might respont to this call as well. After each reset (hard or soft) the sensor starts in idle or sleep mode with lower power consumption. If a new iaq measurement is of intereset it needs to be initialized first, otherwise the default values are CO2eq = 400 and TVOC = 0.
For additional information see the below datasheet.
SGP30 Datasheet

SHTC1

The SHTC1 sensor is a little simpler than the SGP30. It gives values for temperature and relative humidity. The sensor can be soft reseted, but doesn't have a sleep mode due to its already low power consumption. SHTC1 Datasheet
Side note: The Sensirion sensors are powered with 1.8V. The electrical components taking care of voltage generation and conversion (for the I2C bus, including 10k pull-up resistors) are situated on the bottom side of the sensor board - see picture below:

Top_View_Board

PIR

The PIR sensor is placed on the right side of the sensor board. It produces a digital Signal (logic high) whenever a motion was detected. The sensor is internally powered by 3.3V. This voltage is generated on the PIR board by a voltage regulator. The solder jumper labeled 'V_In' on the right side selects the input voltage - either 5V or 3.3V. Keep in mind that the 5V is only 'stable' when powered via USB. Another (prefered and thus default) way to power the PIR Board is the second socket strip on the lower side. Originally those pins are designed to select the trigger mode (explained later). However, the outer two pins are connected to ground and 3.3V of the PIR sensor. This enables the option to surpass the PIR's voltage regulator and save energy by directly supplying 3.3V.
Via the solder jumpers labelled 'Single Trigger' and 'Retrigger' it can be selected if retriggering is possible. Retriggering is the possibility of increasing the duration of the digital output signal, when additional motion(s) are detected. If 'Single Trigger' is selected the output signal will return to its default state () when a certain time has passed after detecting the first motion. Only now new motions cann trigger the sensor. The pulse length of the output signal can be selected with the left (when mounted upper) trimmable potentiometer. The right (when mounted lower) potentiometer adjusts the sensitivity of the PIR sensor.
Example Datasheet Trigger Explanation

Extras

In addition to the previously mentioned features extra pins can be found on the sensor board. These are broken out pins (as well as solder eyelets) to conveniently expand the board. They include the power pins (5V, 3.3V and GND - 5V may be limited to USB use) as well as the I2C pins SDA and SCL (3.3V level). Furthermore 4 GPIOs are broken out. Those can be used for a wide variety of scenarios. All of them can be configured via software to be digital or analogue for different I/O devices. These pins could also be used as an SPI bus.

Quickstart ESP32 [blocked]

The ESP32 can be programmed using the Ardunio IDE, the Internet-of-Things Framework from Espressif or using Micropython. We chose Micropython, because it is very easy to start with and the code is very readable even for coders that are new to python. Of course you can use your favourite IDE or even a simple text editor to code. However, below are a few suggestions of tools, that could make your life much easier.

Micropython [blocked]

In order to start with changing the sources for your needs, start looking in micropython

You can copy files to and from the board using different libaries:

mpy utils

mpy-utils establishes a Filesystem in userspace connection to the board and allow you to change files directly on the board. (very handy)bla doesn't work on Windows

ampy

ampy is used to interact with your esp32 board via serial connection.

Atom with Pymakr Plugin

Atom can be used with the Pymakr Plugin (see here for help). Now you can use the powerful REPL (Read-Evaluate-Print-Loop), which greatly helps while debubbing or prototyping. You can also run a pre-written script with just a click of a button (without uploading first).

esptool.py

esptool is needed for flashing your esp32 with new firmware.

Parts

28
QtyValueFootprintReferences
410kResistors_SMD:R_1206_HandSolderingR1, R2, R3, R4
3GS2Connectors:GS2J1, J2, J11
21pinConnectors:1pin,
2BSS138TO_SOT_Packages_SMD:SOT-23_HandsolderingQ1, Q2
2GPIOs/ADCsPin_Headers:Pin_Header_Straight_1x04_Pitch2.54mmJ5, J7
2I2CPin_Headers:Pin_Header_Straight_1x02_Pitch2.54mmJ6, J8
1C_SmallCapacitors_SMD:C_1206_HandSolderingC1
1ESP32_LoRa_OLEDESP32_LoRa:ESP32_LoRaESP_1
1GS3Connectors:GS3J10
1LM1117-1.8TO_SOT_Packages_SMD:SOT-223-3_TabPin2U1
1PIRPin_Headers:Pin_Header_Straight_1x03_Pitch2.54mmJ4
1PIR TrigPin_Headers:Pin_Header_Straight_1x03_Pitch2.54mmJ12
1PWRESP32_LoRa:PWRJ3
1PWRSocket_Strips:Socket_Strip_Straight_1x03_Pitch2.54mmJ9
1SensirionESP32_LoRa:FFC MolexS1

The 24 most common of 28 parts.

Questions

How big is the HackTM PCB?

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

What parts does the HackTM use?

28 parts, built around the LM1117-1.8 and BSS138. 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 HackTM KiCad files?

From the agweimar/hackTM repository on GitHub, at the commit this page was made from: the board is pcb/V3.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the HackTM design in my own project?

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

More from agweimar/hackTM

1
  • 2 layers107 × 39.5 mmV3 jumper, the printed circuit board in 3D

    V3 jumper

    agweimar/hackTM

    Github repository for HackTM 2018

    26 parts5GPL-3.0

Similar boards

  • 2 layers52.5 × 36.6 mmESP8266-WebRadio, the printed circuit board in 3D

    ESP8266-WebRadio

    karawin/Ka-Radio

    A wifi webradio with only low cost boards ESP8266 and VS1053 by Jp Cocatrix

    52 parts453
  • 2 layers76.2 × 50.8 mmCuterunner-32-64, the printed circuit board in 3D

    Cuterunner-32-64

    ArcaneNibble/cuterunner

    CoolRunner-II Dev Board

    49 parts40BSD
  • 2 layers90 × 60 mmSabvoton controller, the printed circuit board in 3D

    Sabvoton controller

    dkomeza/sabvoton-controller

    A controller for the sabvoton ebike esc.

    72 parts3
  • 4 layers72 × 46.5 mmAssoc board, the printed circuit board in 3D

    Assoc board

    leoheck/assoc-board

    Evaluation board for the ASSoC IC

    48 parts3
  • 2 layers75 × 20 mmSpimux, the printed circuit board in 3D

    Spimux

    oxidecomputer/hw-spimux

    PMOD Quad SPI flash mux debug board

    23 parts2MPL-2.0
  • 2 layers93.3 × 97.2 mmUnderwater, the printed circuit board in 3D

    Underwater

    lets-make-something/underwater-drone

    73 parts
  • 2 layers99.3 × 41 mmEce49022 team44 pcb, the printed circuit board in 3D

    Ece49022 team44 pcb

    SRiegle2020/ECE49022_SrDsgn_f22_Team44

    ECE49022, Team44, f2022. Biometric "Smart" Watch

    111 parts