DIY Arduino Board
The Arduino platform was originally created as a way to reduce the cost of microcontrollers in educational settings, while simultaneously making electronics and programming more approachable for users with less technical experience (read more about the true history of Arduino here). An Arduino board is simply a collection of electronic components that enable users to rapidly prototype electronics ideas without the need for high level electronics assembly. The classic Arduino Uno has an ATmega328P as its microcontroller, along with LEDs, regulators, and fixtures that make it easy to get started with the Arduino platform. A DIY Arduino board is presented here, with most of the capabilities of the classic Arduino Uno board, but with a slimmer profile and more flexibility in hardware. The advantage to using the DIY Arduino board is its ability to change the input voltage (2.7V - 5.5V), the crystal oscillator (0-16MHz), and the use of LEDs and regulators when needed.
The DIY Arduino board can be assembled using a series of components that are easily found and likely already available in a maker’s toolbox or engineer’s work space. Maker Portal has put together the components into a kit, which can be found on our site.
Included in the DIY Arduino Kit + Uno Board:
1x ATmega328P-U Microcontroller
1x 16MHz Quartz Crystal Oscillator
2x 22pf Capacitors
1x 20kOhm Resistor
1x RGB LED
1x Mini Breadboard
10x Jumper Wires
Arduino Uno Rev3 Board
The DIY Arduino Kit + Uno Board includes everything the user needs to follow along with this tutorial. In this tutorial specifically, an Arduino Uno Rev3 board (with a removable ATmega328P) will be used as the USB to TTL adapter, however, any other adapter can be used. The expectation is that the user either already has one of these, or purchases the DIY kit with the Uno Board. If the user already has an Uno Rev3 board at home, then the components in the DIY Arduino Kit without the Uno board suffices (and is only $8 from our store).
An Arduino board is a collection of electronic components that enable users to rapidly prototype with a central microcontroller. LEDs, regulators, and fixtures make getting started with the Arduino platform simple. This DIY Arduino kit aims to demystify the Arduino board by taking the essential components of an Arduino board and putting them into one kit. The DIY Arduino kit uses an ATmega328P-U as the central microcontroller, and some essential electronic components necessary to function as an Arduino board.
Included in the DIY Arduino Kit:
1x ATmega328P-U Microcontroller
1x 16MHz Quartz Crystal Oscillator
2x 22pf Capacitors
1x 20kOhm Resistor
1x RGB LED
1x Mini Breadboard
10x Jumper Wires
Included in the DIY Arduino Kit + Uno Board:
Everything Above + Arduino Uno Rev3 Board for Programming the DIY Board
Some Features of the DIY Arduino Kit:
Fully-Functional Arduino Board
Low Power Consumption due to lack of LEDs or Regulators
Arduino Already Bootloaded onto the ATmega328P
Low Profile Breadboard, smaller than an Arduino Uno board
RGB LED for testing code
2.7V - 5.5V Operating Range
5µA Low Current when Powered Down (3.3V, 16MHz)
8mA Working Current (3.3V, 16MHz)
Jumper Wires for Uploading Code, and Interacting with Sensors and Motors
Some Features of the ATmega328P-U Chip:
28-Pins in a Dual In-Line Packaging (2x14 pins)
Capabilities: SPI, I2C, USART, PWM
2.7V - 5.5V Input Voltage Range
1µA - 1.5mA Power Consumption (3V, 4MHz)
10-bit Analog-to-Digital Converter (8-channels)
Interrupt Capabilities (2-channel)
32KB of Flash Memory for Programming
0MHz-16MHz Frequency Capabilities (External Crystals)
8-bit/16-bit Timers
Compatible with Arduino IDE
The wiring diagram and pinout table for the DIY Arduino board is given below:
This wiring convention will be consistent throughout the entire tutorial, with additional wires needed in later sections when uploading code.
Uploading code to the DIY Arduino board is quite simple once the board is wired for USB communication. The wiring diagram for uploading code to the DIY Arduino board using the Uno Rev3 is given below:
TAKE NOTE: the ATmega328P chip in the Uno Rev3 board has been removed - this is mandatory when uploading code to the DIY Arduino board. If the ATmega chip is still in the Uno board, the code will go to that chip instead of the DIY board's chip.
At this point the DIY Arduino board is wired for USB to TTL communication, wherein the USB device (the Uno Rev3 in this case, with no ATmega chip) will program the DIY board. The Arduino IDE can now be opened, once the Uno Rev3 board is plugged into the USB port. Any code uploaded should be done so as if uploaded to an Uno board, with the standard Board selection (Arduino/Genuino Uno) and the Uno Rev3 as the Port, which should look similar to the following screenshot:
Everything is exactly the same as with an Arduino Uno board, and thus, we arrive at the DIY Arduino board that is capable of being programmed as an Uno board.
The following video is an example of a simple blinking LED code uploaded using the wiring method and Arduino IDE settings above:
Notice that only two jumper wires are needed for the DIY board. Once the code has been uploaded using the USB to TTL method (using the USART pins 2/3 on the ATmega328P), all the wires can be removed. The only two needed then are any voltage and grounding wires needed to power the device. Hence, the two wires in the video above.
The most significant feature of the DIY Arduino board may be its adaptability. For example, being able to exchange the 16MHz quartz crystal allows users to control the power consumption of the board. Using a 4MHz crystal will give a much lower average power consumption than the 16MHz crystal. Furthermore, there is no regulator onboard, so the board can be powered at a lower voltage to further minimize the power consumption. Another advantage to the 2.7V - 5.5V voltage range of the DIY board is that a LiPo battery can be used as a power source, which permits creation of portable projects that don’t require a regulator.
The video below demonstrates the approximate power consumption of a board with a 16MHz crystal, 3.3V input voltage, and three different power cycles defined as follows:
15.6mA RGB LED Powered
8mA Idle Working Current
5µA Powered Down Sleep
The video demonstration of this is shown below for reference:
Some Features of the DIY Arduino Kit:
Fully-Functional Arduino Board
Low Power Consumption due to lack of LEDs or Regulators
Arduino Already Bootloaded onto the ATmega328P
Low Profile Breadboard, smaller than an Arduino Uno board
RGB LED for testing code
2.7V - 5.5V Operating Range
5µA Low Current when Powered Down (3.3V, 16MHz)
8mA Working Current (3.3V, 16MHz)
Jumper Wires for Uploading Code, and Interacting with Sensors and Motors
All of the features of the ATmega328P chip:
SPI, I2C, USART, PWM, ADC, Interrupts, Timers, etc.
Below is another video, this time demonstrating the PWM capabilities of the DIY board by showing a breathing LED phenomenon:
A DIY Arduino board was introduced here as a way to gain freedom in assembling an Arduino board for particular applications. The DIY board presented above is capable of very lower power modes, without the requirement of draining components such as LEDs or regulators. The ATmega328P chip is at the center of every Uno board (in recent years), and is also at the center of the DIY board, which allows the DIY Arduino to behave almost identically to the Uno board. Once the DIY board is wired for UART communication, it can be treated exactly as an Arduino Uno: from uploading code to interacting with motors and sensors. The DIY Arduino board has particular potential in low-power applications such as in Internet of Things meshes or portable sensors and controllers. This tutorial is meant as an introduction to the DIY Arduino and merely acts as a starting point for a serial of tests and explorations into the potential platform. In the next few entries, the board will be used to interact with various sensors over different protocols such as: I2C, SPI, and UART. The board will also be used to study low-power modes and power consumption, in order to explore its potential as a long-term wireless device controller and sensor node.
See More in Arduino and Electronics:
A vibration motor and joystick are used to create a haptic feedback device using the Arduino platform. As a response to specific changes in joystick position, we prescribe vibration motor actions corresponding to the movement of the joystick. This allows for creation of vibrational feedback similar to that used in video games and virtual reality systems. The goal of this tutorial is to introduce users to haptic technology that can immerse users into the digital world using physical feedback mechanisms, such as vibration. Different tunings of the vibration motor can provide users with instructions based on their input, which makes this type of application useful for enhancing digital media, as referenced above, or situations such as visually impaired navigation, feedback in auditory-restricted environments, and delivering quiet notifications to users. Haptics can be incredibly useful in emulating the real world and immersing users into scenarios that may otherwise be dangerous or difficult to experience. Vibrational haptic feedback is just one of a series of haptic mechanisms, and this tutorial was just a simple entry into a wide ranging and evolving field of human computer interaction.
In this tutorial, a 1.54 inch e-Paper module is wired to a BLE-Nano Arduino board to communicates via SPI and display text in real time over Bluetooth. The e-Paper module here can be powered via 3.3V or 5.0V, requires very low power when refreshing (2mA-8mA), and can be completely powered off while retaining its text. An Android smartphone and the BLExAR app will be used to print text on the e-Paper display in real time, demonstrating the capabilities of electronic paper technology.
The TinyBlueX is a Bluetooth Low Energy-enabled microcontroller module that combines an ATtiny85 microcontroller and CC254x Bluetooth Low Energy chip. The TinyBlueX is compatible with the Arduino platform (IDE) and the BLExAR iOS Arduino app. The TinyBlueX is very low power and has a low profile, which makes it great for very low power internet of things (IoT) applications with analog and digital sensors. The TinyBlueX can read sensors and transmit the data back to an iOS device, while also being able to read iOS commands and control LEDs, indicators, and motors. Pins 2,3,7 are available on the ATtiny85 aboard the TinyBlueX, allowing users to control/read up to 3 different devices or sensors. In this tutorial series, the TinyBlueX will be explored by instructing users on how to upload code to the module, how to control LEDs, and how to send data back to an iOS device using the BLExAR app.
Three different intermediate-level Arduino projects are introduced as a way of exploring the capabilities of the open-source microcontroller platform. First, an Arduino-based gimbal was proposed, with a video demonstration using the MPU6050 inertial measurement unit (IMU). Many commercial gimbals use similar sensors and methods for balancing objects and controlling angular and translational movement. Second, a mechanum wheels robot was presented as a way of creating a more omnidirectional robotic car, vs the normal one-dimensional movement associated with Arduino and robotic cars. Finally, an Arduino-based hovercraft was shown with motors and an Arduino at the center.
Soil moisture can be measured using a variety of different techniques: gravimetric, nuclear, electromagnetic, tensiometric, hygrometric, among others. The technique explored here uses a gravimetric technique to calibrate a capacitive-type electromagnetic soil moisture sensor. Capacitive soil moisture sensors exploit the dielectric contrast between water and soil, where dry soils have a relative permittivity between 2-6 and water has a value of roughly 80. Accurate measurement of soil water content is essential for applications in agronomy and botany - where the under- and over-watering of soil can result in ineffective or wasted resources. With water occupying up to 60% of certain soils by volume, depending on the specific porosity of the soil, calibration must be carried out in every environment to ensure accurate prediction of water content. Luckily, the accuracy of measurement devices has been increasing while the cost of the sensors have been decreasing. In this experiment, an Arduino board will be used to read the analog signal from the capacitive sensor, which will output voltage values which can be calibrated to volumetric soil moisture content via gravimetric methods.
Thermal cameras are similar to standard cameras in that they use light to record images. The most significant distinction is that thermal cameras detect and filter light such that only the infrared region of the electromagnetic spectrum is recorded, not the visible region [read more about infrared cameras here]. Shortly after the discovery of the relationship between radiation and the heat given off by black bodies, infrared detectors were patented as a way to predict temperature via non-contact instrumentation. In recent decades, as integrated circuits shrink in size, infrared detectors have become commonplace in applications of non-destructive testing, medical device technology, and motion detection of heated bodies. The sensor used here is the MLX90640 [datasheet], which is a 768 pixel (24x32) thermal camera. It uses an array of infrared detectors (and likely filters) to detect the radiation given off by objects. Along with a Raspberry Pi computer, the MLX90640 will be used to map and record fairly high-resolution temeperature maps. Using Python, we will be able to push the RPI to its limits by interpolating the MLX90640 to create a 3 frame-per-second (fps) thermal camera at 240x320 pixel resolution.
Pressure is defined as an evenly distributed force acting over a surface with a given area. The accurate measurement of pressure is essential for applications ranging from material testing to weighing scales, aircraft altitude prediction, and evaluating biological functions in humans relating to respiration and blood flow In this tutorial, a digital pressure transducer and analog pressure manometer will be used to measure gauge pressure - where the analog manometer is used as the calibration tool for the digital pressure sensor. Arduino will be used to read the digital pressure transducer, an MPS20N0040D, and a 3D printed manometer will be used to measure analog pressure manually.
A force sensitive resistor (FSR) is comprised of a conductive polymer material pressed between two electrode layers, giving it the ability to electrically respond to changes in stress and strain. FSRs are often used in ergonomic or rehabilitation applications where pressure is applied from human interaction and the response is recorded or translated. Force sensitive resistors are incredibly useful for human interactivity because of their slim profile, inexpensive construction, and multiplicative geometries. The sensor used in this tutorial is the RP-S40-ST, which is a 40mm x 40mm thin film FSR. An Arduino board will be used to read the analog signals outputted by the FSR in a voltage divider configuration, where the force applied to the FSR can be approximated using the sensor’s calibration curve.
A DIY Arduino board is presented here, with most of the capabilities of the classic Arduino Uno board, but with a slimmer profile and more flexibility in hardware. The advantage to using the DIY Arduino board is its ability to change the input voltage (2.7V - 5.5V), the crystal oscillator (0-16MHz), and the use of LEDs and regulators when needed. The DIY board is capable of very lower power modes, without the requirement of draining components such as LEDs or regulators. The ATmega328P chip is at the center of every Uno board (in recent years), and is also at the center of the DIY board, which allows the DIY Arduino to behave almost identically to the Uno board.
The Raspberry Pi Pico is a microcontroller designed by the Raspberry Pi foundation. The Pico is a groundbreaking board that is meant to use MicroPython in its native micro USB port. The RP2040 is the microcontroller chip at the center of the Pico, which has a dual-core Arm Cortex M0+ processor, capable of clocking at 133 MHz, which is much faster than many of the Arduino boards currently on the market. The Pico has GPIO pins and interfaces such as: SPI, UART, I2C, PWM, and a 12-bit analog-to-digital converter (ADC). This Raspberry Pi Pico comes with the Pico microcontroller, 2x 20-pin solder header, and a micro-USB cable.
Included with the Raspberry Pi Pico Microcontroller:
1x Raspberry Pi Pico Board
2x 20-pin Headers
1x Black 0.5m Micro USB Cable
Features of the Raspberry Pi Pico:
1.8V - 5.5V Input Voltage
21 mm × 51 mm Board Geometry
RP2040 microcontroller
Dual-core Arm Cortex-M0+ processor (Clock Speed up to 133 MHz)
264KB on-chip SRAM, 2MB on-board QSPI Flash
26x GPIO pins (3x 12-bit Analog Inputs)
2x UART, 2x SPI, 2x I2C, 16x PWM
1x USB 1.1 controller and PHY, with host and device support
8x Programmable I/O (PIO) state machines for custom peripheral support
Operating temperature -20°C to +85°C
Low-power sleep and dormant modes
Onboard Temperature sensor
Accelerated integer and floating-point libraries on-chip
The MLX90640 is a 768-pixel (32 x 24), low-cost thermal camera. It uses an array of infrared detectors (and filters) to detect the radiation given off by nearby objects by taking advantage of Planck’s radiation law. The MLX90640 is most notable because of its easy-to-use Python libraries that allow it to be read by Raspberry Pi computers. The MLX90640 can be used to map and record high-resolution temperature maps at refresh rates of up to 64 times per second (64Hz).
NOTE: There are two versions here, 1. an unsoldered board that needs to be soldered to be wired properly; and 2. a version that has a breakout connector that can be connected directly to a Raspberry Pi via the JST Dupont connector.
Included in the MLX90640 Thermal Camera Sensor Package:
1x MLX90640 Thermal Camera (32 x 24 Pixels, 55° x 35°)
Pin Header
5x Male-to-Female Jumper Wires (or JST Dupont connector for breakout version)
Features of the MLX90640 Thermal Camera:
Object Detection Temperatures: -40°C to +300°C
3V-6V Supply Voltage
20mA Average Current Consumption
32 x 24 Resolution, 768 Pixels in Total
55° x 35° Field of View
I²C Communication (Address: 0x33)
Ambient Temperature Operating Range: -40°C to +85°C
Raspberry Pi and Arduino Compatible
JST Dupont Breakout Pinouts:
Black for GND
Red for V+
Blue for SDA
Yellow for SCL
MLX90640 Datasheet
The Maker Portal Uno board is the centerpiece of many of the projects carried out in our maker spaces. The Uno board is capable of reading a wide range of sensors using analog-to-digital conversion, SPI, I2C, UART, and other common protocols. The Uno board can be used to control motors, OLED/LCD displays, and LEDs. The Arduino Uno board shown here is the official Maker Portal microcontroller, which we use in many of our projects!
Included in the Arduino Uno Package:
Maker Portal Arduino Uno Rev3 Board
Black USB Cable (1m in Length)
Specifications for Arduino Uno Rev3 Board:
ATmega328P chip with Arduino Bootloader
14 digital pins, 6 analog pins
10-bit analog-to-digital converter (ADC)
5V-12V Supply Tolerance
3.3V and 5.0V output pins
16 MHz clock
5 PWM pins, I2C support, SPI support , UART support
ATmega16U2 USB TTL, compatible with Linux, Windows, and Mac
Black Stylish Finish
Fully Integrated with Arduino IDE software
3.7V LiPo batteries are useful for low-power Arduino IoT applications. The 600mAh battery shown here can power a standard Arduino Uno board for a few days under moderate processing conditions, and up to several months with the right sleep routines and modifications (power down, no LED, etc.)!
Included in the LiPo Battery Kit for Arduino:
1x 600mAh LiPo Battery
1x USB Charger
1x JST to DuPont Connector (For Wiring to Arduino)
Features of the 3.7V LiPo Battery Kit for Arduino:
600mAh LiPo Battery with USB Charger
3.7V Battery Voltage
JST connector for direct wiring to Arduino
The INMP441 is a 3.3V MEMS microphone that uses Inter-IC Sound (I2S) to communicate with devices capable of audio recording via the I2S interface. The INMP441 is a great choice for voice inputs, sound localization, and other applications where an array of microphones can be used to identify and characterize acoustic systems. The INMP441 is compatible with Raspberry Pi stereo audio recording.
Tutorial with Raspberry Pi can be found here: Recording Stereo Audio on a Raspberry Pi
Included in the I2S MEMS Microphone Package:
1x INMP441 MEMS Microphone
1x 6-pin Solder Header
Features of the INMP441 MEMS I2S Microphone:
14mm Board Diameter, Low Profile
60Hz - 15kHz Frequency Response within -3dB Roll-Off
-26dBFS Sensitivity at 1kHz, 94dB Input
61dBA Signal-to-Noise Ratio (SNR)
-87dBFS Noise Floor
44.1kHz - 48kHz Sample Rates
Stereo Input Capabilities (L/R Channels)
Raspberry Pi Compatible
Radio Frequency Identification (RFID) is a common technology used for access control in schools and offices, animal identification, and product asset tracking. The MFRC522 module is a 13.56MHz RFID reader/writer that uses SPI to communicate with devices. The MFRC522 is compatible with both Arduino and Raspberry Pi, and a large range of RFID tags and cards. The kit we have assembled comes with an MFRC522 module, 6 RFID tags (3 fobs, 3 cards), and a 3D printed fixture for holding the MFRC522 - which makes getting started with RFID for Arduino very easy.
Included in the MFRC522 RFID Kit for Arduino:
1x MFRC522 RFID Module
6x RFID Tags (3x Cards, 3x Fobs)
1x 3D Printed Fixture
4x M3 Screws and Nuts for Affixing the MFRC522 Module to the Fixture
9x Female-to-Male Jumper Wires
Some Features of the MFRC522 RFID Module:
3.3V and 5.0V Supply Voltage
13.56MHz Operating Frequency
SPI Communication (Arduino, Raspberry Pi Compatible)
Capable of Communication with MIFARE Tags
10cm Read Range (between tag and reader)
Active Area: 30mm x 30mm
Module Dimensions: 36mm x 36mm x 7.5mm (accounting for pin headers)
MFRC522 Datasheet
See our tutorial on the MFRC522 with Arduino!
Some Features of the RFID Card:
Fully Read/Write Enabled
Can change their UID, and sectors
85.5mm x 54mm
13.56MHz Frequency Coils
MIFARE 1K Tags
Some Features of the RFID Fobs:
Read Enabled
Can write data, just not UID or manufacturer sectors
32mm x 40mm
13.56MHz Frequency Coils
MIFARE 1K Tags
The ATGM336H GPS module is a tiny (13mm x 16mm) constellation positioning and navigation device that is capable of connecting with up to six satellites to approximation its geolocation on earth. The ATGM336H is a great low-profile alternative to the similar NEO-6M GPS module that is commonly used in the Arduino/Raspberry Pi sphere. The ATGM336H has an accuracy of 2.5m and is capable of updating its coordinates 1-10 times per second. The GPS module uses a serial protocol to communicate with the Arduino platform (similar to the NEO-6M). Many of the libraries that work with other GPS modules also work with the ATGM336H, making it a great replacement for projects that require smaller geometries or weigh very little.
Included in the ATGM336H GPS Module Package:
1x ATGM336H GPS Module
1x 5-Pin Header
1x External GPS Antenna
Features of the ATGM336H GPS Module:
Dimensions: 13mm x 16mm
2.7V - 3.6V Supply Voltage
Average Power Consumption: <25mA (@3.3V)
Communicates with: BeiDou Navigation Satellite Systems (BDS) and Global Navigation Satellite Systems (GNSS)
32 Tracking Channels
Reads up to six satellite navigation systems and implement joint positioning, navigation,
and timing.
2.5m Positioning Precision
~32s to First Fix
1Hz-10Hz Update Rate
Serial Baudrate: 9600 (default)
Operational Temperature Range: -40℃ to +85℃
Read the Datasheet
Electronic paper, known as e-Paper, is a common technology used in devices such as the Amazon Kindle and Nook eReaders and eBooks. The e-Paper module here uses SPI to communicate with Arduino boards and display text at very low power consumption. e-Paper is highly advantageous for displays that update very infrequently, as they can retain the last printed image on their screen even in the absence of power. The e-Paper module here can be powered via 3.3V or 5.0V, and is compatible with Arduino boards.
Included in the e-Paper Display for Arduino Package:
1x 1.54 inch e-Paper Display Module (200x200 Pixels)
1x JST XH 2.54mm to Dupont 8-Pin Connector
Features of the 1.54in e-Paper Display Module:
Module Dimensions: 40mm x 55mm
Active Area Dimensions: 1.09 in. x 1.09 in. [1.54 in. Diagonal]
1.8V-5.3V Supply Voltage
Power Consumption Profiles @ 3.3V:
3mA Idle Current
2mA - 7mA Update Current
Resolution: 200 x 200 Pixels (~185 dpi)
Full/Partial Refresh Capabilities
Max Refresh Rate ~2 seconds (Partial), ~5 seconds (Full)
SPI Interface (Compatible with Arduino and Raspberry Pi)
See our tutorial interfacing the e-Paper display and Arduino!
This kit is geared toward engineers and makers interested in learning about solar energy and how to characterize solar cells, understand nominal values in solar technology, and how to collect meaningful data. The kit comes with a solar panel, SD card and module for datalogging, a potentiometer, and LiPo battery for portability. The user just needs to add an Arduino board and breadboard and they can start logging solar data and make calculations in their local environment.
Included in the Solar Panel Datalogger Kit:
1x 2V, 120mA Solar Panel (54mm x 54mm) [Wire Colors May Vary]
1x INA226 Voltage/Current Measurement Module
1x 1kΩ Potentiometer (Rheostat in Experiments)
1x 3.7V, 600mAh LiPo Battery + USB Charger
1x SD Datalogger Module
1x 16GB SD Card
10pcs Female-to-Male + 10pcs Male-to-Male Jumper Wires
Features of the Solar Panel Datalogger Kit:
Characterize Solar Panel by Varying 1kΩ Potentiometer
600mAh Battery Allows for Roughly 1 Day+ of Datalogging (Depending on the Arduino Board and Sleep Routines)
16GB SD Card + Module Allow for Long-Term Datalogging
INA226 Reads 16-bit Voltage and Current
54mm x 54mm Solar Panel has 4 cells each 10mm x 38mm, for an Active Area of 15.2 cm-sq
See our tutorial on using the kit: Solar Panel Characterization and Experiments with Arduino
The SSD1306 display is an organic light emitting diode (OLED) device that is great for small-scale Arduino, Raspberry Pi, and Raspberry Pi Pico projects that involve real-time data acquisition, communication, and debugging. The display allows users to visualize and print out information related to sensors and modules — specifically when creating internet of things (IoT) nodes with microcontrollers and wireless/headless technologies. The OLED display is a versatile and has a low profile that requires just two wires for communication (I2C), which makes it easy to integrate and control.
Included in the SSD1306 OLED Display Kit:
1x SSD1306 OLED Display
1x 3D Printed Display Stand
4x M2.5 Screw for Attaching Display to Stand
4x Rubber Stoppers for Stability
4x Female-to-Male Jumper Wires
Features of the SSD1306 OLED Display:
3V-5V Supply Range
2mA - 24mA Consumption Range (Blank to All Pixels Bright)
128 x 64 Pixel HD Resolution
I2C 2-Wire Protocol (I2C address: 0x3C)
White Display Colors Against Dark Backdrop
Compatible with Arduino, Raspberry Pi, and Raspberry Pi Pico
Module Dimensions: 25mm x 27mm
Active Display Dimensions: ~ 21mm x 12.5mm (0.96” Diagonal)
Arduino Tutorial with SSD1306 here
Raspberry Pi Pico Tutorial with SSD1306 here
Radio Frequency Identification (RFID) is a common technology used for access control in schools and offices, animal identification, and product asset tracking. The MFRC522 module is a 13.56MHz RFID reader/writer that uses SPI to communicate with devices. The MFRC522 is compatible with both Arduino and Raspberry Pi, and a large range of RFID tags and cards. The kit we have assembled comes with an MFRC522 module, 6 RFID tags (3 fobs, 3 cards), and a 3D printed fixture for holding the MFRC522 - which makes getting started with RFID for Arduino very easy.
Included in the MFRC522 RFID Kit for Arduino:
1x MFRC522 RFID Module
6x RFID Tags (3x Cards, 3x Fobs)
1x 3D Printed Fixture
4x M3 Screws and Nuts for Affixing the MFRC522 Module to the Fixture
9x Female-to-Male Jumper Wires
Some Features of the MFRC522 RFID Module:
3.3V and 5.0V Supply Voltage
13.56MHz Operating Frequency
SPI Communication (Arduino, Raspberry Pi Compatible)
Capable of Communication with MIFARE Tags
10cm Read Range (between tag and reader)
Active Area: 30mm x 30mm
Module Dimensions: 36mm x 36mm x 7.5mm (accounting for pin headers)
MFRC522 Datasheet
See our tutorial on the MFRC522 with Arduino!
Some Features of the RFID Card:
Fully Read/Write Enabled
Can change their UID, and sectors
85.5mm x 54mm
13.56MHz Frequency Coils
MIFARE 1K Tags
Some Features of the RFID Fobs:
Read Enabled
Can write data, just not UID or manufacturer sectors
32mm x 40mm
13.56MHz Frequency Coils
MIFARE 1K Tags
This kit is geared toward engineers and makers interested in learning about solar energy and how to characterize solar cells, understand nominal values in solar technology, and how to collect meaningful data. The kit comes with a solar panel, SD card and module for datalogging, a potentiometer, and LiPo battery for portability. The user just needs to add an Arduino board and breadboard and they can start logging solar data and make calculations in their local environment.
Included in the Solar Panel Datalogger Kit:
1x 2V, 120mA Solar Panel (54mm x 54mm) [Wire Colors May Vary]
1x INA226 Voltage/Current Measurement Module
1x 1kΩ Potentiometer (Rheostat in Experiments)
1x 3.7V, 600mAh LiPo Battery + USB Charger
1x SD Datalogger Module
1x 16GB SD Card
10pcs Female-to-Male + 10pcs Male-to-Male Jumper Wires
Features of the Solar Panel Datalogger Kit:
Characterize Solar Panel by Varying 1kΩ Potentiometer
600mAh Battery Allows for Roughly 1 Day+ of Datalogging (Depending on the Arduino Board and Sleep Routines)
16GB SD Card + Module Allow for Long-Term Datalogging
INA226 Reads 16-bit Voltage and Current
54mm x 54mm Solar Panel has 4 cells each 10mm x 38mm, for an Active Area of 15.2 cm-sq
See our tutorial on using the kit: Solar Panel Characterization and Experiments with Arduino
A venturi tube is a measurement device that uses the pressure differential between two sections that differ in diameter. Using Bernoulli’s principle, the velocity and flow rate can be approximated from the pressure differential measured across the two areas within the venturi tube. The venturi tube is a popular method of calculated volumetric flow rates for gases, water and oils, and other internally flowing fluids. The venturi tube given here is designed specifically for use with 80mm DC fans. The venturi tube has been used to verify fluid dynamics theory while also characterizing the relationship between duty cycle and flow rate of the fan. The fan included in this kit has been characterized to output approximately 75 cubic feet per minute (CFM). The kit also includes the XGMP3v3 differential pressure sensor (similar to the MPXV7002DP), which makes the kit a complete bundle for measuring real-world flows through a venturi tube.
See the Venturi Tube in action on Youtube.
Included in the Venturi Tube Flow Meter Kit:
1x 3D Printed Venturi Tube (236mm x 85mm x 85mm)
1x XGMP3v3 Differential Pressure Sensor (with JST-XH Connector)
1x 80mm x 38mm 12V DC Fan (+4x Screw Set)
2x Silicone Tubing (OD: 5mm, ID: 2.5mm, Length: 35cm Each)
20pcs Jumper Wires
Features of the Venturi Tube Flow Meter:
Dimensions: 236mm x 85mm x 85mm
Inlet Diameter: 76mm, Throat Diameter: 57mm
Roughness ~ 32μm
Most 80mm DC Fans Can be Affixed to Tube
Two Pressure Taps for 5mm Tubing (Inlet, Throat)
Features of the XGMP3v3 Differential Pressure Sensor:
-2.5 kPa to +2.5 kPa Measurement Range
3.3V Supply Voltage
24mA Max Power Consumption (10mW)
Analog Output Range: 0.2V - 2.7V
Measurement Accuracy: ±2.5% Full-Scale [kPa]
Temperature Compensated from 0°C - 60°C
Absolute Maximums: ±2x Pressure Max, -10°C to 85°C Operating Temperature
For Use with Non-Corrosive Gas (Air, Inert [Helium, Neon, Argon, etc.])
JST-XH Connector Makes Connection to Raspberry Pi or Arduino Simple
Features of the 12V 80mm x 38mm DC Fan:
Dimensions: 80mm x 38mm (Diameter x Thickness)
Input Voltage: 12V
Power Consumption: ~ 8.4W (12V, 0.7A)
Duty Cycle 25% - 100%
Volumetric Flow Rates: ~30CFM - 75CFM
Fairly noisy at high RPM (duty cycle 100%, 5500RPM, roughly 50dBA)
The NEMA 17 stepper motor (Model: 17HS4023) is a powerful motor capable of microstepping, high-speed rotation, and high-torque holding. The stepper motor kit also includes a DRV8825 stepper driver and motor bridge, which makes getting started with motor driving easy. With the stepper bridge, only a Raspberry Pi or Arduino, 12V supply, and five jumper wires are needed to control the NEMA 17 stepper motor. This stepper kit can be used in applications involving 3D printers, DIY CNC machines, precise camera movement, LiDAR rotation, among others!
Included in the NEMA 17 Stepper Motor Kit:
1x NEMA-17HS4023 Stepper Motor
1x DRV8825 Stepper Driver with Heat Sink
1x DRV8825 Driver Bridge
5x Female-to-Female Jumper Wires
1x Stepper-to-Bridge Connector Wire
Features of the NEMA-17HS4023 Motor:
42mm x 42mm x 23mm (LxWxH - Approximate Dimensions)
Micro-stepping down from 1.8° down to 0.05625°
Wide Voltage Supply Range: 5V - 24V
0.7A - 1.0A per phase (2-phases total)
130g Weight
13 N·cm Holding Torque
Clockwise and Counterclockwise Rotation
Rotation speeds at 1.8° Increments up to ~500RPM (12V, no load), ~1800RPM (24V, no load)
Controllable via Arduino or Raspberry Pi
Tutorial on the NEMA 17 Kit here
This kit uses known masses to calibrate a load cell using the linear response between strain gauges and weight under gravity. The HX711 is easily integrated with Arduino. Using this calibration kit, makers and engineers can build a low-weight measurement scale, a real-time measurement system for aerodynamic loads, a density measurement system using water, and so much more!
The Load Cell Calibration Kit includes:
1x 1 kg Load Cell
1x HX711 Strain Gauge 24-bit Amplifier
2x 3D Printed supports (one bottom, one top)
1x M5 Hex Screw, 1x M4 Hex Screw (for affixing the supports to the load cell)
3x rubber stoppers to prevent slipping
5x calibrated masses (20g, 10g, 5g, 2g, 1g)
An example video demonstration of the load cell can be found at:
NOTE: Because the supports are 3D printed, they may be slightly different from the ones photographed. They will function and appear exactly the same, with slight variations in minor striations or patterning.
The SSD1306 display is an organic light emitting diode (OLED) device that is great for small-scale Arduino, Raspberry Pi, and Raspberry Pi Pico projects that involve real-time data acquisition, communication, and debugging. The display allows users to visualize and print out information related to sensors and modules — specifically when creating internet of things (IoT) nodes with microcontrollers and wireless/headless technologies. The OLED display is a versatile and has a low profile that requires just two wires for communication (I2C), which makes it easy to integrate and control.
Included in the SSD1306 OLED Display Kit:
1x SSD1306 OLED Display
1x 3D Printed Display Stand
4x M2.5 Screw for Attaching Display to Stand
4x Rubber Stoppers for Stability
4x Female-to-Male Jumper Wires
Features of the SSD1306 OLED Display:
3V-5V Supply Range
2mA - 24mA Consumption Range (Blank to All Pixels Bright)
128 x 64 Pixel HD Resolution
I2C 2-Wire Protocol (I2C address: 0x3C)
White Display Colors Against Dark Backdrop
Compatible with Arduino, Raspberry Pi, and Raspberry Pi Pico
Module Dimensions: 25mm x 27mm
Active Display Dimensions: ~ 21mm x 12.5mm (0.96” Diagonal)
Arduino Tutorial with SSD1306 here
Raspberry Pi Pico Tutorial with SSD1306 here
This Arduino starter kit has been tailored directly to engineers interested in real-world applications involving sensors. We avoided many of the out-of-date sensors that often accompany Arduino kits and targeted several relevant and interesting areas of engineering: temperature and humidity sensing, infrared time-of-flight distance sensing, and visible spectrum light intensity detection, and MEMS microphone audio sensing. In conjunction with these sensors, the kit also comes with an Arduino Uno microcontroller, jumper wires for connecting the sensors, an RGB LED indicator, and plastic component enclosure.
Included in the Arduino Starter Kit for Engineers (Sensor Suite):
1x Maker Portal Arduino Uno Board
1x BH1750 Light Sensor
1x DHT22 Temperature and Humidity Sensor
1x VL53L0X Time-of-Flight Distance Sensor
1x MEMS Microphone
1x RGB LED
10x Male-to-Female Jumper Wires
1x Plastic Component Box
1x USB 2.0 Cable for Arduino
Features of the Arduino Starter Kit for Engineers (Sensor Suite):
Detect light, temperature, humidity, distance, and sound
All sensors have easy-to-use Arduino-compatible libraries
The kit fits snugly into the component box, excluding the USB cable
Each sensor has a real-world application for prototyping in topics ranging from: environmental monitoring, industrial engineering, obstacle avoidance in robotics, home automation, and more!
Component Specifications:
-Specifications for the Arduino Uno Board:
ATmega328P chip with Arduino Bootloader
14 digital pins, 6 analog pins
10-bit analog-to-digital converter (ADC)
5V-12V Supply Tolerance
3.3V and 5.0V output pins
16 MHz clock
5 PWM pins, I2C support, SPI support , UART support
ATmega16U2 USB TTL, compatible with Linux, Windows, and Mac
Black Stylish Finish
Fully Integrated with Arduino IDE software
-Features of the BH1750 Light Sensor:
3.3V - 5.0V Input Voltage
16-bit ADC: 1 - 65535 lx Range
8-60Hz Sample Rate
I2C 2-Wire Communication Protocol
Supply Current - 120 µA, Power-down Current 0.01 µA
Peak Current - 7mA
400nm - 700nm Wavelength Response
-Features of the DHT22 Temperature Sensor:
3.3-6V Supply Voltage
Operating ranges:
Relative Humidity: 0-100 %
Temperature -40 °C to 80 °C
Sample Rate ~ 2 seconds
Sensitivity:
Relative Humidity: ± 0.1 %
Temperature: ± 0.1 °C
Accuracy (Drift and calibration errors):
Relative Humidity: ± 2-5 %
Temperature: ±0.5 °C
-Features of the VL53L0X ToF Sensor:
3.3V Supply Voltage
<20 mA consumption
50mm - 1.2m range (default mode), 50mm - 2.2m range (long range mode)
5 Hz - 33 Hz Sample Rate
I2C Compatible with Arduino, Raspberry Pi
Class I Infrared Laser (safe under all conditions)
-Features of the Analog MEMS Microphone:
3.0V-7.0V Supply Range
-42dBV/Pa Sensitivity
59dBA Signal-to-Noise Ratio (SNR) @ 1kHz
16mm x 15mm x 3.1mm Module Dimensions
4.72mm x 3.76mm MEMS Microphone Dimensions
100Hz - 10kHz Frequency Range (within 4dB)
3mA - 10mA Average Consumption
SPM0404HD5-PB MEMS Microphone Datasheet
Named after its french creator, Henri Pitot, a pitot tube is a device used to approximate the speed of vehicles traveling through air and other fluids. Pitot tubes, also called pitot-static tubes and Prandtl tubes, are primarily used as airspeed indicators on drones, airplanes, and other rotorcraft. Pitot tubes use basic fluid dynamics and the Bernoulli equation to approximate airspeed, or relative velocity, of a moving vehicle/flying object. The pitot tube here can be combined with our XGMP3v3 Differential Pressure Sensor to measure pressure, which is then converted to a digital signal using an Arduino board or other analog-to-digital converter (ADC). This final differential pressure can be used to derive airspeed or velocity of a moving object.
Included in the Pitot Tube Airspeed Sensor Package:
1x Metal Pitot Tube
2x Acrylic 2.5mm ID Tubing (75cm in Length)
1x XGMP3v3 Differential Pressure Sensor
1x JST-XH 3-Wire Connector (Colors May Vary)
Features of the Pitot Tube Airspeed Sensor:
3.3V Supply Voltage
0.2V - 2.7V Analog Output
Dimensions (Pitot Tube): 100mm x 16mm x 6mm
Flexible 2.5mm Tubing (75cm Length)
Aluminum Machined Metal
Selectable Pressure (Velocity) Range:
-0.5kPa to +0.5kPa -> -28m/s to +28m/s
-1.0kPa to +1.0kPa -> —41m/s to +41m/s
-2.5kPa to +2.5kPa -> -64m/s to +64m/s
Features of the XGMP3v3 Differential Pressure Sensor:
3.3V Operating Voltage
24mA Max Power Consumption (10mW)
Analog Output Range: 0.2V - 2.7V
Measurement Accuracy: ±2.5% Full-Scale [kPa]
Temperature Compensated from 0°C - 60°C
Selectable Pressure Span:
-0.5kPa to +0.5kPa (Most Sensitive)
-1.0kPa to +1.0kPa
-2.5kPa to +2.5kPa (Similar to MPXV7002DP)
Absolute Maximums: ±2x Pressure Max, -10°C to 85°C Operating Temperature
For Use with Non-Corrosive Gas (Air, Inert [Helium, Neon, Argon, etc.])
JST-XH Connector Makes Connection to Raspberry Pi or Arduino Simple
Solar panels are an essential component of the renewable energy field. The solar panels here are 2V 120mA cells that are paired with an INA226 current sensor. The goal of this kit is to allow users to test the power output from the solar panel using the current sensor and a microcontroller. Any microcontroller can be used to interface with the INA226, which gives panel voltage, current, and output power. This combination can help engineers identify the approximate predicted output from their solar panel or solar panel array to approximate efficiency of their energy harvesting, irradiance in a specific geographic region, or characterize internet of things setup requirements.
Included in the Solar Panel Power Metering Kit:
1x 200mW Solar Panel (@ 1.6V) [Wire Colors May Vary]
1x INA226 Current Sensor
1x Terminal Block
1x 8-Pin Solder Header
Features of the Solar Panel:
54mm x 54mm Dimensions
200mW Peak Power Output
2.1V Open-Circuit Voltage
123mA Short Circuit Current
1.6V Max Power Voltage
120mA Max Power Current
Epoxy Finish (Waterproof Cells, not Electronics)
Soldered Breakout Wires
Features of the INA226 Current Sensor:
Senses Bus Voltages From 0V to 36V
2.7-V to 5.5-V Input Power Supply Range
I2C Communication (Raspberry Pi, Arduino, Pico-Compatible)
High-Side or Low-Side Sensing
16-bit Analog-to-Digital Converter
Current, Voltage, and Power Outputs
Low-Power Operation (330μA Quiescent Current)
NOTE: The terminal block overlaps slightly with the shunt resistor on the INA226, however, it does not affect the functionality of the sensor.
Control your PiCamera from a Raspberry Pi using a servo motor and 3D printed parts. This bundle uses an MG90S micro servo to pan the PiCamera over a 180° plane. Using Python, the user can record video captured by the Raspberry Pi and control the movement of the panning camera (we even wrote a tutorial on this: here).
Included in the PiCamera + Servo Camera Pan Bundle:
1x PiCamera V1.3
1x 50cm PiCamera Cable
1x MG90S Micro Servo
6x Pieces Servo Horns and Screws
3x Pieces 3D-Printed Servo Stand, Horn Part, and PiCamera Holder
3x Rubber Pads for Stabilization
Some Features of the PiCamera:
5MP Max photograph resolution (2592 x 1944 = 5,038,848 pixels)
Ribbon Cable that attaches directly to the Raspberry Pi
Pixel Size: 1.4 x 1.4 μm
Lens: f=3.6 mm, f/2.9
Viewing Angle: 54° x 41°
Max video resolution: 1080p @ 30fps
Max frame rate: 480p @ 90fps
Selectable video resolutions: 1080p @ 30fps, 720p @ 60fps, 480p @ 90fps
Sensor size: 3.67mm x 2.74mm (1/4" format)
Camera Module PCB dimensions: 25mm x 24mm (9mm thickness)
Some Features of the MG90S:
Input Voltage: 4.8V - 6.0V
Operating Current (5.0V): ~2.7mA (idle), ~70mA (no load), ~400mA (Stall)
Rotation Angle: 0° - 180° (Resolution: 1°)
Max Speed (5.0V): 0.6 deg/ms (full 180 degrees in 300 ms)
Largest Dimensions: 12mm x 32.5mm x 32.5mm
MG90S Datasheet
Maker Portal is a blog-centric company intended for young innovators interested in real-world applications to engineering. Resources include: physical products, mobile applications, software development, e-learning, and blog-style article writing. The maker-based approach is explored using written articles with topics ranging from Raspberry Pi, heat transfer, acoustics, robotics, data analysis, Arduino, sensor design, Python programming, and much more. Difficulty levels range depending on the topic and there is extensive focus on open-source software implementation, however, there will be articles with a focus on software design as well. The intention is to demonstrate applications of engineering that are repeatable at the intermediate level without requiring colossal resources.
The MakerBLE is introduced as a miniature breakout board variation of the nRF52840 Bluetooth Low Energy (BLE) Arduino board, which is capable of communicating with smartphnoes and carrying out many of the capabilities of other wirelessly-enabled microcontrollers. The MakerBLE is also compatible with our iOS app, BLExAR, and allows users to collect data, send commands, and control pins remotely from a smartphone. In this tutorial, the MakerBLE will be introduced and its capabilities will be explored from the perspective of the Arduino. This will also be the first in a series of entries geared toward low-power, BLE-enabled, tiny microcontroller projects; whether they involve remote control, data collection from sensors (I2C, SPI, UART), message transfers, BLE peripheral/central communication, or general electronics testing.