The manual pick and place tray was a quick concept to prototype while i was struggling to place SMD components in 100+ boards. I usually use SMD components in most of my designs. I was always struggling to pick and place the components, it takes more time as well as my energy by moving my body all the time. It was also testing my patients because i always search for the specific components in my component drawers. So i come up with this idea. The Manual PNP is a compact design. The design is fully digitally fabricated and I optimized the design for 3D printing such as less time and material consumption to print the design. I also didn’t forget to keep a good aesthetic. The design is fully designed in Autodesk Fusion360. The design is fully open source and you can also modify the for your requirement.
Getting started with connected devices and the Internet of Things (IoT) is much easier than before because have many choices of development boards. In the last few years, the market was boomed with the availability of different boards. Engineers will have to choose from microcontroller-based boards, System on Chip (SOC) boards, Single-board Computers (SBC), and purpose-built boards with support for BLE, ZIGBEE, LORA, and WiFi. Due to the wide competition in the market development boards are comes with a wide range of features and specs for cheaper price wich benefits the makers and engineers.
From the last few years, i used and tested different type microcontrollers and development boards for both my personal & Hobby projects and also for my professional works. So here are my best picks and my favorite development boards which i recommend to anyone. I also listed a few of the IoT development platforms which i also recommend. However, I am not going to compare any of the boards because every board have their own features and use case scenario. It depends on person to person and where we are using the boards.
MICRO CONTROLLER DEVELOPMENT BOARDS
In this section i will wrap it up all the microcontroller based development boards which is used for basic purpose and also some serious functionalities. Some of them are open-sources and few of them are not open-source that much. Also few of them are comes with built in network systems such as BLE & WIFI.
ARDUINO UNO R3 / NANO / PRO MINI
The Arduino is the 101 for Makers and hardware enthusiasts. Arduino UNO is an open-source microcontroller board based on the Microchip ATmega328P microcontroller (Former ATMEL) and developed by the Arduino.cc. The Development boards are available for a pretty cheaper price as low as 5USD in some regions. The Arduino NANO & Arduino Pro mini also comes with the same microcontrollers with less add on components with a smaller footprint that helps to suits in smaller dimension projects.
The board is equipped with sets of digital and analog input/output (I/O) pins that may be interfaced with various expansion modules and boards and other circuitry. It comes with 14 digital pins and 6 analog pins. The Board clocked with 16 MHz quartz crystal. But the microcontroller can even handle up to 20Mhz. A USB connection, a power jack, an ICSP header, and a reset button are available on the board which is pretty enough for any beginners to play with it. Since it has everything required for supporting the microcontroller, one can simply connect it to a computer with a USB cable or power it with an AC-to-DC adapter or battery to get started.
|Input Voltage (recommended)||7-12V|
|Input Voltage (limit)||6-20V|
|Digital I/O Pins||14 (of which 6 provide PWM output)|
|PWM Digital I/O Pins||6|
|Analog Input Pins||6|
|DC Current per I/O Pin||20 mA|
|DC Current for 3.3V Pin||50 mA|
|Flash Memory||32 KB (ATmega328P) of which 0.5 KB used by bootloader|
|SRAM||2 KB (ATmega328P)|
|EEPROM||1 KB (ATmega328P)|
|Clock Speed||16 MHz|
ARDUINO MICRO & LEONARDO
Further going a little bit up. If you need to communicate your microcontroller with your PC without Using a USB to TTL. Like the normal HID (Human Interaction device). Then the Arduino Micro or Leonardo should be a good option. Personally, this is one of my favorite microcontroller(ATMEGA32u4/16u4) and i used a lot of time for both my personal and professional works. I also designed my own wearable feature-rich development board called Pixelpad Indian using ATMEGA32u4 (Featured in Make Magazine and few online blogs).
The Micro is a microcontroller board based on the ATmega32U4 (datasheet). It has 20 digital input/output pins (of which 7 can be used as PWM outputs and 12 as analog inputs), a 16 MHz crystal oscillator, a micro USB connection, an ICSP header, and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a micro USB cable to get started. It has a form factor that enables it to be easily placed on a breadboard.
The Micro board is similar to the Arduino Leonardo in that the ATmega32U4 has built-in USB communication, eliminating the need for a secondary processor. This allows the Micro to appear to a connected computer as a mouse and keyboard, in addition to a virtual (CDC) serial / COM port.
|Input Voltage (recommended)||7-12V|
|Input Voltage (limit)||6-20V|
|Digital I/O Pins||20|
|Analog Input Channels||12|
|DC Current per I/O Pin||20 mA|
|DC Current for 3.3V Pin||50 mA|
|Flash Memory||32 KB (ATmega32U4) of which 4 KB used by bootloader|
|SRAM||2.5 KB (ATmega32U4)|
|EEPROM||1 KB (ATmega32U4)|
|Clock Speed||16 MHz|
ARDUINO MEGA 2560 REV3
When you have a lot of sensors & peripherals needed to connect on to your microcontroller. Using a microcontroller with limited I/O pins were not ideal. My recommended choice is Arduino MEGA 2560 REV3. The Arduino Mega 2560 is a microcontroller board based on the ATmega2560. It has 54 digital input/output pins (of which 15 can be used as PWM outputs), 16 analog inputs, 4 UARTs (hardware serial ports), a 16 MHz crystal oscillator, a USB connection, a power jack, an ICSP header, and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with an AC-to-DC adapter or battery to get started. The Mega 2560 board is compatible with most shields designed for the Uno and the former boards such as Duemilanove or Diecimila.
|Input Voltage (recommended)||7-12V|
|Input Voltage (limit)||6-20V|
|Digital I/O Pins||54 (of which 15 provide PWM output)|
|Analog Input Pins||16|
|DC Current per I/O Pin||20 mA|
|DC Current for 3.3V Pin||50 mA|
|Flash Memory||256 KB of which 8 KB used by bootloader|
|Clock Speed||16 MHz|
ARDUINO NANO EVERY
If you used Arduino Nano in your projects in the past, the Nano Every is a pin-equivalent substitute. The main differences are a better processor and a micro-USB connector. It allowing you to embed the Nano Every inside any kind of inventions, including wearables. The board comes with tessellated connectors and no components on the B-side. These features allow you to solder the board directly onto your own design, minimizing the height of your whole prototype.
The Arduino Nano Every is an evolution of the traditional Arduino Nano board but features a lot more powerful processor, the ATMega4809. This will allow you to make larger programs than with the Arduino Uno (it has 50% more program memory), and with a lot more variables (the RAM is 200% bigger).
|DC Current per I/O Pin||20 mA|
|DC Current for 3.3V Pin||50 mA|
|CPU Flash Memory||48KB (ATMega4809)|
|PWM Pins||5 (D3, D5, D6, D9, D10)|
|Analog Input Pins||8 (ADC 10 bit)|
|Analog Output Pins||Only through PWM (no DAC)|
|External Interrupts||all digital pins|
|USB||Uses the ATSAMD11D14A (datasheet)|
|Weight||5 gr (with headers)|
Need Something more powerful in a smaller footprint with enough digital & analog I/Os. Consider Teensy 3.2, Which is also my favorite development board due to its smaller footprint, Powerful 32bit Cortex M4 microcontroller which can be overclockable, and more than enough pinouts. The Teensy series is much smaller than Arduino pro mini.
The Teensy is a breadboard-friendly development board with loads of features in a, well, teensy package. Each Teensy 3.2 comes pre-flashed with a bootloader so you can program it using the on-board USB connection: No external programmer needed! You can program for the Teensy in your favorite program editor using C or you can install the Teensyduino add-on for the Arduino IDE and write Arduino sketches for Teensy!
The processor on the Teensy also has access to the USB and can emulate any USB device(HID) you need it to be, making it great for USB-MIDI and other HID projects. The 32-bit processor brings a few other features to the table as well, such as multiple channels of Direct Memory Access, several high-resolution ADCs, and even an I2S digital audio interface! There are also 4 separate interval timers plus a delay timer and all pins have interrupt capability. Also, it can provide a system voltage of 3.3V to other devices at up to 100mA.
All of this functionality is jammed into a 1.4 x 0.7-inch board with all headers on a 0.1″ grid so you can slap in on a breadboard and get to work! The Teensy 3.2 adds a more powerful 3.3V regulator, with the ability to directly power an ESP8266 Wifi, WIZ820io Ethernet, and other 3.3V add-on boards that require a little more power.
|Direct Memory Access||16|
Prog Gain Amp
CMT (infrared) Type
PIT (interval) Type
RTC (date/time) **
High Res Baud
ESP8285 Microcontroller & Development Modules
If you need a powerful microcontroller that suits your smaller IoT products or projects. Consider ESP8285, A 32-Bit Microcontroller has built-in Wifi.
Ai Thinker ESP-01F ESP8285 Serial WiFi Module has a highly competitive package size and ultra-low technology. ESP-01F can be widely used in a variety of networking, for home automation, industrial wireless control, baby monitors, wearable electronic products, wireless location sensing devices, wireless positioning system signals, and other networking applications.
The core processor ESP8285 integrates the industry-leading Tensilica L106 ultra-low-power 32-bit micro MCU in a small package with 16-bit Lite mode, clocked at Supports 80 MHz and 160 MHz, supports RTOS, and integrates Wi-Fi MAC/BB/RF/PA/LNA. The ESP-01F WiFi module supports the standard IEEE802.11 b/g/n protocol, a complete TCP/IP protocol stack. Users can use this module to add networking capabilities to existing devices or to build separate network controllers. The ESP8285 is a high-performance wireless SOC that offers maximum utility at the lowest cost and unlimited possibilities for embedding WiFi functionality into other systems.
- Ultra-small size;
- Onboard UFL connector for external antenna
- Support serial to WiFi;
- Wireless transparent transmission;
- Long distance transmission with ultra-low power;
- Support outboard antenna;
- Bearing high temperature to 125 ℃, compared to the 85℃ for ESP8266.
- Built-in Tensilica L106 ultra-low power 32-bit CPU, main frequency supports 80MHz and160MHz, and RTOS;
- Built-in TCP/IP protocol;
- Built-in one-channel 10-bit high precision ADC;
- Outboard interface: HSPI, UART, I2C, I2S, IR Remote Controk, PWM, GPIO;
- Deep sleep current is 10uA, the cut-off current is smaller than 5uA;
- Wake,connect and transmission data package within 2ms;
- The consume power is smaller 1.0Mw (DTIM3) when at stand by status;
- Built in 1M byte for SPI Flash.
ESP8266 (NodeMCU/Adafruit Huzzah)
The ESP8266 is the higher variant of espressif’s ESP series. The ESP8266 is a low-cost Wi-Fi microcontroller, with a full TCP/IP stack and microcontroller. ESP8266 Microcontroller got its global attention when the Third party manufacturer AI-Thinker in introduced their cheapest wifi module (ESP01) in 2014.
There are plenty of development boards available from different third party manufacturers like Wemos, NodeMCU, Adafruit, Sparkfun. I recommend boards from NodeMCU or Wemos. they are cheaper and have wide community around the internet.
TECHNICAL SPECIFICATION (ADAFRUIT HUZZAH)
- ESP8266 @ 80MHz or 160 MHz with 3.3V logic/power
- 4MB of FLASH (32 MBit)
- 3.3V regulator with 500mA peak current output
- CP2104 USB-Serial converter onboard with 921600 max baudrate for uploading
- Auto-reset support for getting into bootload mode before firmware upload
- 9 GPIO pins – can also be used as I2C and SPI
- 1 x analog inputs 1.0V max
- Built in 100mA lipoly charger with charging status indicator LED
- Pin #0 red LED for general purpose blinking. Pin #2 blue LED for bootloading debug & general purpose blinking
- Power/enable pin
- 4 mounting holes
- Reset button
ESP32(NodeMCU/ Adafruit Huzzah)
ESP 32 is the latest microcontroller series from Espressif. ESP32 is a series of low-cost, low-power SoC with integrated Wi-Fi and dual-mode BLE. The ESP32 series comes with Xtensa LX6 microprocessor in both dual-core and single-core variations and includes built-in antenna switches, RF balun, power amplifier, low-noise receive amplifier, filters, and power-management modules. ESP32 is created and developed by Espressif. The ESP32 is the successor of ESP8266 microcontroller and have a lot fan base due to its low cost and feature rich architecture.
Wide range of ESP32 development boards are available from different third party companies like NodeMCU, Wemos, Sparkfun, Adafruit.
NODEMCU TECHNICAL SPECIFICATION
|Pin Category||Pin Name||Details|
|Power||Micro-USB, 3.3V, 5V, GND||Micro-USB: ESP32 can be powered through USB port5V: Regulated 5V can be supplied to this pin which is we be again regulated to 3.3V by on board regulator, to power the board.3.3V: Regulated 3.3V can be supplied to this pin to power the board.GND: Ground pins.|
|Enable||En||The pin and the button resets the microcontroller.|
|Analog Pins||ADC1_0 to ADC1_5 and ADC2_0 to ADC2_9||Used to measure analog voltage in the range of 0-3.3V.12-bit 18 Channel ADC|
|DAC pins||DAC1 and DAC2||Used for Digital to analog Conversion|
|Input/Output Pins||GPIO0 to GPIO39||Totally 39 GPIO pins, can be used as input or output pins. 0V (low) and 3.3V (high). But pins 34 to 39 can be used as input only|
|Capacitive Touch pins||T0 to T9||These 10 pins can be used a touch pins normally used for capacitive pads|
|RTC GPIO pins||RTCIO0 to RTCIO17||These 18 GPIO pins can be used to wake up the ESP32 from deep sleep mode.|
|Serial||Rx, Tx||Used to receive and transmit TTL serial data.|
|External Interrupts||All GPIO||Any GPIO can be use to trigger an interrupt.|
|PWM||All GPIO||16 independent channel is available for PWM any GPIO can be made to work as PWM though software|
|VSPI||GPIO23 (MOSI), GPIO19(MISO), GPIO18(CLK) and GPIO5 (CS)||Used for SPI-1 communication.|
|HSPI||GPIO13 (MOSI), GPIO12(MISO), GPIO14(CLK) and GPIO15 (CS)||Used for SPI-2 communication.|
|IIC||GPIO21(SDA), GPIO22(SCL)||Used for I2C communication.|
|AREF||AREF||To provide reference voltage for input voltage.|
ESP32 Technical Specifications
|Microprocessor||Tensilica Xtensa LX6|
|Maximum Operating Frequency||240MHz|
|Analog Input Pins||12-bit, 18 Channel|
|DAC Pins||8-bit, 2 Channel|
|Digital I/O Pins||39 (of which 34 is normal GPIO pin)|
|DC Current on I/O Pins||40 mA|
|DC Current on 3.3V Pin||50 mA|
|Communication||SPI(4), I2C(2), I2S(2), CAN, UART(3)|
|Bluetooth||V4.2 – Supports BLE and Classic Bluetooth|
The Particle Proton is one of my favorite development board for designing IoT projects. the Particle proton is not that much user friendly when it comes to the opensource environment. However, the company provides for industrial scale-up for startups and tech companies who needed to scale up their product using particle framework. The Particle Photon is a tiny Wi-Fi IoT Development board for creating connected projects and products for the Internet of Things. It’s easy to use, it’s powerful, and it’s connected to the cloud. The board itself uses a Cypress Wi-Fi chip (one that can be found in Nest Protect, LIFX, and Amazon Dash) alongside a powerful STM32 ARM Cortex M3 microcontroller.
- Particle PØ Wi-Fi module
- Broadcom BCM43362 Wi-Fi chip
- 802.11b/g/n Wi-Fi
- STM32F205RGY6 120Mhz ARM Cortex M3
- 1MB flash, 128KB RAM
- On-board RGB status LED (ext. drive provided)
- 18 Mixed-signal GPIO and advanced peripherals
- Open-source design
- Real-time operating system (FreeRTOS)
- Soft AP setup
- FCC, CE, and IC certified
Need something powerful, flexible, and more reliable. Try particle Argon, which comes with NRF52840 as the main processor and ESP32-D0WD 2.4 GHz Wi-Fi coprocessor. You have access to both BLE & Wifi.
The Argon is a powerful Wi-Fi enabled development board that can act as a standalone Wi-Fi endpoint. It is based on the Nordic nRF52840 and has built-in battery charging circuitry so it’s easy to connect a Li-Po and deploy your local network in minutes.
The Argon is great for connecting projects to the Particle Device Cloud or as a gateway to connect an entire group of local endpoints. It’s everything you love about the Photon, with more features like Bluetooth.
Nordic Semiconductor nRF52840 SoC
- ARM Cortex-M4F 32-bit processor @ 64MHz
- 1MB flash, 256KB RAM
- Bluetooth LE (BLE) central and peripheral support
- 20 mixed signal GPIO (6 x Analog, 8 x PWM), UART, I2C, SPI
- Supports DSP instructions, HW accelerated Floating Point Unit (FPU) calculations
- ARM TrustZone CryptoCell-310 Cryptographic and security module
- Up to +8 dBm TX power (down to -20 dBm in 4 dB steps)
- NFC-A radio
Argon Wi-Fi network coprocessor:
Espressif ESP32-D0WD 2.4 GHz Wi-Fi coprocessor
- On-board 4MB flash for the ESP32
- 802.11 b/g/n support
- 802.11 n (2.4 GHz), up to 150 Mbps
Argon general specifications:
- On-board additional 4MB SPI flash
- Micro USB 2.0 full speed (12 Mbps)
- Integrated Li-Po charging and battery connector
- JTAG (SWD) Connector
- RGB status LED
- Reset and Mode buttons
- On-board 2.4GHz PCB antenna for Bluetooth (does not support Wi-Fi)
- Two U.FL connectors for external antennas (one for Bluetooth, another for Wi-Fi)
- Meets the Feather specification in dimensions and pinout
- FCC, CE and IC certified
- RoHS compliant (lead-free)
Official Arduino.cc is more renowned for its microcontroller development board. Most of them are not comes with built-in Wifi/BLE. Arduino MKR1000 has been designed to offer a practical and cost-effective solution for makers seeking to add Wi-Fi connectivity to their projects with minimal previous experience in networking. It is based on the Atmel ATSAMW25 SoC (System on Chip), which is part of the SmartConnect family of Atmel Wireless devices, specifically designed for IoT projects and devices. However, the ATSAMW25 is a far more complicated design when we compare it with ESP8266 or ESP32. So i don’t recommend this SoC for production purposes due to its high price.
The ATSAMW25 is composed of three main blocks:
- SAMD21 Cortex-M0+ 32bit low power ARM MCU
- WINC1500 low power 2.4GHz IEEE® 802.11 b/g/n Wi-Fi
- ECC508 CryptoAuthentication
|Microcontroller||SAMD21 Cortex-M0+ 32bit low power ARM MCU|
|Board Power Supply (USB/VIN)||5V|
|Supported Battery(*)||Li-Po single cell, 3.7V, 700mAh minimum|
|Circuit Operating Voltage||3.3V|
|Digital I/O Pins||8|
|PWM Pins||12 (0, 1, 2, 3, 4, 5, 6, 7, 8, 10, A3 – or 18 -, A4 -or 19)|
|Analog Input Pins||7 (ADC 8/10/12 bit)|
|Analog Output Pins||1 (DAC 10 bit)|
|External Interrupts||8 (0, 1, 4, 5, 6, 7, 8, A1 -or 16-, A2 – or 17)|
|DC Current per I/O Pin||7 mA|
|Flash Memory||256 KB|
|Clock Speed||32.768 kHz (RTC), 48 MHz|
|Full-Speed USB Device and embedded Host|
ARDUINO NANO 33 IOT
In 2020 Arduino introduced their updated Wifi &BLE enabled development boards. The Board design is pretty excellent. We can relate the design inspired by Nordic Semiconductors. However, i am happy to see this design which more helpful to integrate the development board into a PCB using the castellated Vias.
The board’s main processor is a low power Arm Cortex M0 32-bit SAMD21. The WiFi and Bluetooth connectivity is performed with a module from u-blox, the NINA-W10(Better than built-in Wifi & BLE in ESP32) , a low power chipset operating in the 2.4GHz range. On top of those, secure communication is ensured through the Microchip® ECC608 crypto chip. Besides that, you can find a 6 axis IMU, what makes this board perfect for simple vibration alarm systems, pedometers, relative positioning of robots, etc.
|Microcontroller||SAMD21 Cortex®-M0+ 32bit low power ARM MCU (datasheet)|
|Radio module||u-blox NINA-W102 (datasheet)|
|Secure Element||ATECC608A (datasheet)|
|Input Voltage (limit)||21V|
|DC Current per I/O Pin||7 mA|
|CPU Flash Memory||256KB|
|Digital Input / Output Pins||14|
|PWM Pins||11 (2, 3, 5, 6, 9, 10, 11, 12, 16 / A2, 17 / A3, 19 / A5)|
|Analog Input Pins||8 (ADC 8/10/12 bit)|
|Analog Output Pins||1 (DAC 10 bit)|
|External Interrupts||All digital pins (all analog pins can also be used as interrput pins, but will have duplicated interrupt numbers)|
|USB||Native in the SAMD21 Processor|
|Weight||5 gr (with headers)|
SINGLE BOARD COMPUTERS
If you have any bulky processing and feels microcontrollers are bottlenecking the needs. Then consider using SBC(Single Board Computers. SBCs are fully-featured microprocessor boards designed to be used individually or as part of a bigger product (as embedded computers). It is a product by itself. The SBCs can be used as a standalone computer and can be used for Machine learning and other heavy tasks. here are a few of my recommended SBCs.
RASPBERRY PI 3 MODEL B+
Everyone knows and loves the Raspberry Pi, but what if the wireless capabilities only got better? The Raspberry Pi 3 B+ is here to provide you with the same Pi as before, but now with gigabit and PoE capable Ethernet, as well as better overheating protection for the 64-bit processor. The credit-card-sized computer is capable of many of the things your desktop PC does, like spreadsheets, word processing and playing high-definition video and games. It can run several flavors of Linux (and even Windows 10 free-of-charge) and is being used to teach kids all over the world how to program… Oh yes, and it does all comes under a cheaper price!
- Broadcom BCM2837B0 64-bit ARM Cortex-A53 Quad Core Processor SoC running @ 1.4GHz
- 1GB RAM LPDDR2 SDRAM
- 4x USB2.0 Ports with up to 1.2A output
- Extended 40-pin GPIO Header
- Video/Audio Out via 4-pole 3.5mm connector, HDMI, CSI camera, or Raw LCD (DSI)
- Storage: MicroSD
- Gigabit Ethernet over USB 2.0 (maximum throughput 300Mbps)
- 2.4GHz and 5GHz IEEE 802.11.b/g/n/ac wireless LAN, Bluetooth 4.2, BLE
- H.264, MPEG-4 decode (1080p30); H.264 encode (1080p30); OpenGL ES 1.1, 2.0 graphics
- Low-Level Peripherals:
- 27x GPIO
- I2C bus
- SPI bus with two chip selects
- Power Requirements: 5V @ 2.5A via micro-USB power source
- Supports Raspbian, Windows 10 IoT Core, OpenELEC, OSMC, Pidora, Arch Linux, RISC OS, and More!
- 85mm x 56mm x 17mm
RASPBERRY PI 4
With the Raspberry Pi 4, the one-size-fits-all approach of previous releases is gone. It’s available with either 1, 2, 4 or 8 gigabytes of RAM. (This is the first time it’s been possible to get a Pi with more than 1 GB of memory.) The extra RAM opens a new world of functionality for the Pi, including running desktop software—but the Raspberry Pi 4 is still the same great little DIY machine.
|Processor||Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz|
|RAM||8GB LPDDR4-3200 SDRAM|
|Bluetooth||Bluetooth 5.0, BLE|
|Wifi||2.4 GHz and 5.0 GHz IEEE 802.11ac wireless|
|USB||2 USB 3.0 ports; 2 USB 2.0 ports|
|HDMI||2 × micro-HDMI ports (up to 4kp60 supported)|
|Storage||microSD Card Slot|
|Power Supply||5.1V 3A USB Type C Power (Recommended)|
RASPBERRY PI ZERO W
The Raspberry Pi Zero W is still the Pi you know and love, but at a largely reduced size of only 65mm long by 30mm wide and at a very economical price. With the addition of wireless LAN and Bluetooth, the Raspberry Pi Zero W is ideal for making embedded Internet of Things (IoT) projects. The Pi Zero W has been designed to be as flexible and compact as possible with mini connectors and an unpopulated 40-pin GPIO, allowing you to use only what your project requires.
At the heart of the Raspberry Pi Zero W is a 1GHz BCM2835 single-core processor with 512MB RAM. Quite frankly, this Pi is about four times faster that the original Raspberry Pi and is only a fraction of the cost of the current RPi3.
The setup for the Raspberry Pi Zero W is a little more complicated than on other Pis. Because of the small size, many of the connectors on the Pi Zero are not standard.
- 802.11 b/g/n wireless LAN
- Bluetooth 4.1
- Bluetooth Low Energy (BLE)
- 1GHz, single-core CPU
- 512MB RAM
- Mini HDMI and USB On-The-Go ports
- Micro USB power
- HAT-compatible 40-pin header
- Composite video and reset headers
- CSI camera connector
BEAGLE BONE BLACK
BeagleBone Black is a low-cost, open-source, community-supported development platform for ARM Cortex -A8 processor developers and hobbyists. Boot Linux in under 10-seconds and get started on Sitara AM335x ARM Cortex-A8 processor development in less than 5 minutes with just a single USB cable.
BeagleBone Black ships with the Debian GNU/Linux in onboard FLASH to start evaluation and development. Many other Linux distributions and operating systems are also supported on BeagleBone Black including:
BeagleBone Black’s capabilities can be extended using plug-in boards called “capes” that can be plugged into BeagleBone Black’s two 46-pin dual-row expansion headers. Capes are available for, VGA, LCD, motor control, prototyping, battery power, and other functionality.
- Processor: AM335x 1GHz ARM® Cortex-A8
- 512MB DDR3 RAM
- 4GB 8-bit eMMC onboard flash storage
- 3D graphics accelerator
- NEON floating-point accelerator
- 2x PRU 32-bit microcontrollers
- USB client for power & communications
- USB host
- 2x 46 pin headers
Need a SBC that candle even bigger tasks and threads. Then Lattepanda Alpha is a best option. You can run a fully activated windows 10 or any desktop Linux OS without any issues or lag. Generally refers to the leader in a wolf pack, α / Alpha. It will also be the leader in the LattePanda series, the most powerful in performance. Known as the leader of the Pandas, or “AlphaPanda” for short.
The Alpha Edition uses the same Intel 7th generation Core m3 processor as the latest MacBook. The Core m3 processor is the perfect choice for superior performance and low power consumption. We have shrunken this computing monster from a laptop to the size of a phone.
- CPU：Intel 7th Gen Core m3-7y30
- Core: 1.6-2.6GHz Dual-Core，Four-Thread
- Graphics: Intel HD Graphics 615, 300-900MHz
- RAM: 8GB LPDDR3 1866MHz Dual-Channel
- Connectors:1x M.2 M Key, PCIe 4x, supports NVMe SSD and SATA SSD. 1x M.2 E Key, PCIe 2x，supports USB2.0, UART, PCM
- Connectivity： WIFI 802.11 AC, 2.4G & 5G Dual Band. Bluetooth 4.2. Gigabyte Ethernet
- USB Ports： 3x USB 3.0 Type A. 1x USB Type C, supports PD, DP, USB 3.0
- Display： HDMI Output Type-C DP Support Extendable eDP touch displays
- Co-processor：Arduino Leonardo
- GPIO & other features：2x 50 GPIOs including I2C, I2S, USB, RS232, UART, RTC. Power Management. Extendable power button
- .OS Support：Windows 10 Pro, various Linux
NVIDIA JETSON NANO
If you need an SBC dedicated to AI/ML tasks then, NVIDIA Jetson Nano enables the development of millions of new small, low-power AI systems. It opens new worlds of embedded IoT applications, including entry-level Network Video Recorders (NVRs), home robots, and intelligent gateways with full analytics capabilities. At just 70 x 45 mm, the Jetson Nano module is the smallest Jetson device.
This production-ready System on Module (SOM) delivers big when it comes to deploying AI to devices at the edge across multiple industries—from smart cities to robotics. One of the biggest advantages is that it is an AI computing platform offering GPU-accelerated parallel processing. The Jetson Nano has a 128 CUDA core GPU based on the Maxwell architecture. Also, Nvidia has an open-source project called Jetson Inference; it runs on all its Jetson platforms, including the Nano. Jetson Interference demonstrates various machine learning techniques such as object recognition and object detection. This makes the Nano an ideal starting point for developers looking to build real-world machine learning projects.
- GPU: 128-core NVIDIA Maxwell™ architecture-based GPU
- CPU: Quad-core ARM® A57
- Video: 4K @ 30 fps (H.264/H.265) / 4K @ 60 fps (H.264/H.265) encode and decode
- Camera: MIPI CSI-2 DPHY lanes, 12x (Module) and 1x (Developer Kit)
- Memory: 4 GB 64-bit LPDDR4; 25.6 gigabytes/second
- Connectivity: Gigabit Ethernet
- OS Support: Linux for Tegra®
- Module Size: 70mm x 45mm
- Developer Kit Size: 100mm x 80mm
IOT CLOUD PLATFORMS
A reliable & cost effective cloud platform is necessary for any IoT products/projects for its maximum performance. Here is my most-recommended cloud platforms used for IoT development.
BLYNK IoT CLOUD PLATFORM
The most popular IoT platform to connect your devices easily to the cloud and design apps to control them, analyze telemetry data, and manage your deployed products at scale. However, Blynk is ideal for developers, makers, and small and medium businesses. But not ideal for big business. Blynk is user friendly and you can build a rapid prototype of your product/project within minutes.
Thinger.io provides a scalable cloud base for simply connecting devices. You can deal with them quickly by running the admin console or combine them into your project logic using their REST API. It supports all types of development boards such as Raspberry Pi, Intel Edison, ESP8266. Thinger can be integrated with IFTT, and it provides real-time data on a beautiful dashboard.
KAA IoT PLATFORM
Kaa is a production-ready, flexible, multi-purpose middleware platform for establishing end-to-end IoT solutions, connected applications, and smart devices. It gives a comprehensive way of carrying out effective communication, deals with, and interoperation capabilities in connected and intelligent devices.
It mounts from tiny startups to a great enterprise and holds advanced deployment models for multi-cloud IoT solutions. It is primarily based on flexible microservices and readily conforms to virtually any need and application
Thingsboard is my favorite IoT cloud and dashboard platform and i mostly used for my opensource projects. But thingsboard can be even considered for production. ThingsBoard is mostly for data collection, processing, visualization, and device management. It upholds all standard IoT protocols like CoAP, MQTT, and HTTP as quickly as cloud and on-premise deployments. It builds workflows based on design life cycle events, REST API events, RPC requests. Take a look at the features of thingsboard.
- A stable platform that is combining scalability, production, and fault-tolerance.
- Easy control of all connected devices in an exceptionally secure system
- Transforms and normalizes device inputs and facilitates alarms for generating alerts on all telemetry events, restores, and inactivity.
- Enables use-state specific features using customizable rule groups.
- Handles millions of devices at the same time.
- No single moment of failure, as every node in the bundle is exact.
- Multi-tenant installations out-of-the-wrap.
- Thirty highly customized dashboard widgets for successful user access.
GOOGLE IOT CLOUD PLATFORM
Google’s platform is among the best platforms we currently have in the market. Google has an end-to-end platform for Internet-of-Things solutions. It allows you to easily connect, store, and manage IoT data. This platform helps you to scale your business.
Their main focus is on making things easy and fast. Pricing on Google Cloud is done on a per-minute basis, which is cheaper than other platforms.
Google Cloud’s IoT platform provides features, including:
- Provides huge storage
- Cuts cost for server maintenance
- Business through a fully protected, intelligent, and responsive IoT data
- Efficient and scalable
- Analyze big data
MICROSOFT AZURE IOT CLOUD PLATFORM
MICROSOFT Azure IoT Cloud is also an industry-leading cloud platform. Microsoft Azure provides multiple services to create IoT solutions. It enhances your profitability and productivity with pre-built connected solutions. It analyzes untapped data to transform business. This provides the solutions for a small PoC to Rolling out your ideas. Azure Suite can easily analyze and act on new data.
Azure IoT Suite provides features like:
- Easy Device Registry.
- Rich Integration with SAP, Salesforce, Oracle, etc
- Dashboards and visualization
- Real-time streaming
- Offers third-party services
- Secure and scalable
- High availability
AWS IOT CLOUD PLATFORM
Amazon made it much easier for developers to collect data from sensors and Internet-connected IoT devices. They help you collect and send data to the cloud and analyze that information to provide the ability to manage devices. You can easily interact with your application with the devices even they are offline.
Main features of the AWS IoT platform are:
- Device management
- Secure gateway for devices
- Authentication and encryption
- Device shadow
- Good integration with laas offering.
- Price cheaper compared with Azure Google Cloud
- Open and flexible
These are my recommended hardware development platforms and IoT cloud platforms that i personally used for project and product prototyping purposes. However, I used to design and build custom hardware boards for product prototyping and even for my personal projects rather than relying on development boards.
You’ll hear this time and time again if you talk to engineers and manufacturers, don’t use 90-degree trace angles. Why? When you have a bunch of traces that have a sharp, right-angle turn on your board, the outside corner of that 90-degree angle has the likelihood of being etched narrower than your standard trace width. And at its worst, you might get a bunch of 90-degree traces back that aren’t fully etched, resulting in shorts.
As a solution to this problem, try to use 45-degree angle traces. This will produce some beautiful PCB layouts while also making your manufacturer’s life easier by being able to easily etch away all of the copper on your board.
# Avoid using 90-degree trace angles, opt for 45 degrees, with a smooth angle being the best.
If you were to choose Eagle’s default DRC (Design Rule Checking) settings, you’ll end up with non-tented vias. In order for the solder mask to be applied over the vias, you’ll need to make a small change in your DRC file. Below you can see that with the default DRC settings, all the vias have a solder mask around them.
Open your DRC file by either clicking on the DRC icon or by choosing it from Tools>DRC. Select the Masks subsection. Here you’ll find the Limit setting. Change this to the drill diameter of your via. I usually set it to 20mils so that all vias with drill holes equal to or less than 20mils will be covered with solder mask. Anything bigger than 20mils will have a solder mask applied to them.
Below you can see that the drill holes with diameter 20 mils and below are tinted and the bigger ones have solder mask applied around them.
Seeed Studio’ Latest entry in their Arduino based Seeeduino family Comes to a tiny 23.5mm x 17.5mm dimension. The XIAO Development Board packed with Microchip’s ATSAMD21 microcontroller. The XIAO Development Board can be easily integrated into any wearables project . The Seeeduino XIAO is also a breadboard-friendly development board that’s similar to Adafruit’s Trinket M0 and Attiny85 based digispark. The only difference is it packs a more advanced processor (ATSAMD21G18 vs. ATSAMD21E18), adds more GPIOs, and is significantly smaller in size.
The XIAO Development Board features a 32-bit Arm Cortex-M0+ CPU with a 256Kb of Flash memory and 32Kb of SRAM. The XIAO is offering 14 GPIO pins, 11 analog pins, 11 digital pins, 10 PWM pins, and a DAC pin. It also packed with I2C, UART, and SPI interfaces. Along with a USB Type-C port, Few LEDs, one reset button, power out pads (for battery power). It has an operating voltage of 3.3V.
The Seeeduino XIAO is a breadboard-friendly development board that’s similar to Adafruit’s Trinket M0. Only it packs a more advanced processor (ATSAMD21G18 vs. ATSAMD21E18), adds more GPIOs, and is significantly smaller in size.
The back of the Seeeduino XIAO features four power pads designed for hooking batteries for battery-powered operations. This makes the development board ideal for wearables and other portable projects that don’t require connected power. SeeedStudio also states that they have added an extra 32.768KHz to the MCU’s internal crystal oscillator. For Help on time fixing with added stability and accuracy. Wich is a better way of approach from SeedStudio
Programming the board made simple as well the board makes use of the Arduino IDE and its extensive library. SeeedStudio is currently offering the Seeeduino XIAO on its product page. Which retails for just $4.90,.Making it one of the cheapest SAMD21-based boards on market right now!
STMicroelectronics has announced the first LoRa SoC, Named STM32WLE5 well Designed for the long-range and low-power wide-area networking.
However, the STMicro’s STM32WLE5 is not only the first SoC(System on Chip) to integrate LoRa connectivity. Their first claim comes from the fact that it is the world’s first to place it on a die. Rather than simply integrating on the same main SoC hardware.
The STM32WL comes with an Arm Cortex-M4 processor running at 48MHz with DSP (digital signal processor ) and memory protection unit. It comes with up to 256kB of flash memory and up to 64kB of SRAM.
The radio system supports LoRa modulation alongside (G)FSK, (G)MSK, and BPSK, and works from 150MHz up to 960MHz. With one output running up to 22dBm and the other optimized for power consumption, running at up to 15dBm.
The Semtech SX1262 sub-gigahertz radio thus finds itself closer to the heart of the design. which could potentially spell good news for power draw.
While looking to the security side of the design. It includes AES 128- and 256-bit off acceleration. Fully hardware-level random number generator, a private key accelerator, and a 96-bit ID unique to each chip. Connectivity includes two SPIs, three I2Cs, one ultra-low-power UART, two USART, seven 16- and 32-bit timers. It also comes with One analog to digital (ADC) and digital to analog converters (DAC) at a 12-bit of resolution. The SoC also comes with an onboard temperature sensor and two ULP comparators. Also plus up to 43 general-purpose input/outputs (GPIOs).
Did you think about how to build a USBTiny ISP Programmer on your own?
Doing electronics projects is so exciting and fun for us, makers. But most makers and hardware enthusiasts who are just stepping ahead to the maker culture built their projects with development boards, breadboards, and modules. This way, we can build the rapid prototype version of our project. But it shall be bulk in size and messed with breadboard wirings. Similar case while using a Generic PCB board, it also looks messy and unprofessional!
So, how we can build our projects in a more convenient way?
The best way to use Standalone PCBs for our project!
Designing and manufacturing a PCB for our project is a better and convenient way to express your professionalism and expertise!. We can minimize the size of our project into a compatible size and custom shapes, PCBs are looking neat and sturdy connections are some of the advantages.
So, what matters is, how we build a PCB cost-effective and time-effective?
We can send our design to a PCB manufacturer to manufacture our PCB design, but it should be time taking and blew your pocket. Another method is to do a toner transfer method using a laser printer and photo paper. But its also time taking and test your level of patience and you also need a permanent marker to patch the non-etched parts. I used this method a lot of time and I hate it.
So, what is the best way?
In my case, The best way to use CNC milling machines to build your PCB. PCB milling machines give you good quality PCB and it takes less time, less resource and cheapest way to produce PCB prototypes!
But it just my own view, The way of method will vary person to person and where you live and accessible resources.
So, let’s build a USBtiny ISP programmer by utilizing a CNC milling machine!
Without further due, let’s get started!
Step 1: You Don’t Want to Be Rich!
Really! you don’t want to purchase a PCB milling machine. Most of us don’t have the budget to buy an expensive machine like this. I don’t even have one.
So, how I got access to a machine? Simply, I just go to a fablab, makerspace or a hackerspace in my locality! In my case, I just go to a fablab and use the machine for a cheap price. So, find a place like fablab or a makerspace in your locality. For me, the price is 48¢/hour for using the PCB milling machine. The price may vary in your locality. So, like I said you don’t want to be rich!
Step 2: Bill of Materials
- Attiny 45/85 microcontroller (SOIC package)
- 499 Ohms x 2
- 49 Ohms x 2
- 1K x 2
- 2 x 3.3 Zener diode
- 0.1mf capacitor
- Blue led
- Green led
- 2×3 Male header pins (SMD)
- 20cm 6wire Ribbon cable
- 2 x 2×3 Female Header IDC Ribbon Cable Transition Connector
- 4cm x 8cm FR4 Copper Clad
Please note: (Resistors, capacitors, diodes and led are used in this projects is 1206 package)
- Soldering station or soldering iron (Micro-tip)
- Soldering Lead wire
- Tweezer (microtip)
- Desoldering Wick
- Third-hand tool
- Wire Stripper
- Fume Extractor (Optional)
- Modela MDX20 (Any PCB milling machine do the job, but the job control software will change)
Download the resources for this project!
Step 3: What Is a PCB Milling Machine?
1 / 3
PCB milling machine is a CNC (Computer Numerical Control) machine that used to fabricate PCB prototypes. PCB milling machines are mill away the copper parts of the copper-clad to make out traces and pads of the PCB. The PCB milling machine comes with a three-axis mechanical movement (X, Y, Z). Each axis is controlled by a stepper motor for precisional movements. These axis movements are controlled by a computer program by giving G-code commands. Gcode is widely using Numerical control programming languages, most of the machines are using g-code to control the axis of the machines. A tool head (usually a milling bit) is connected to these axes that will mill out the PCBs.
:- The machine I am using is a MODELA MDX20 CNC milling machine.
The Modela MDX 20 PCB Milling Machine
The Modela MDX20 is a PCB milling machine. Modela MDX20 is usually used to fabricate PCBs but we can also make moldings, etchings, etc… Modela can mill on different materials like Plywood, Wax, Acrylic, Differents PCB materials like Fr1 Fr4, etc… The modela is lightweight and comes with small in size. We can place it on even a small desktop. The bed (milling surface) is attached to Y-axis and the tool head is attached to X and Z. That means the movement of the bed is controlled by the Y-axis and the movement of the tool head is controlled by X-axis and the tool head is controlled by Z-axis. Modela has its own computer program. But I am using a Linux program called FABModules. FABmodules communicate with Modela to control the cutting and milling process. Fab Modules never set X, Y, Z axis automatically, we need to set them manually.
- Workspace : 203.2 x 152.4 mm
- Z-axis stroke: 60.5mm
- Spindle speed: 6500RPM
Milling Bits To use
- Milling Bit: 1/64 inch (0.4 mm) bit
- Cutting Bit: 1/32 inch (0.8 mm) bit
Step 5: What is the ISP (In-System – Programmer)?
In System Programmer (ISP) also known as In-Circuit Serial Programmer (ICSP) is a microcontroller programmer. The ISP will read the instructions and commands from the computer USB and send it to the Microcontroller through the serial peripheral interface (SPI). Simply ISP devices allow us to communicate with the microcontroller using SPI lines. SPI is the way of communication in the microcontroller. Every connected peripherals and interface communicate with microcontrollers through SPI. As an electronics enthusiast, the first thing that comes to my mind when say about ISP is MISO, MOSI SCK. These three pins are the important pins.
Simply, ISP is used to burn programs to the microcontroller and also used to communicate with your microcontroller!
USBTiny ISP is a simple open-source USB AVR programmer and SPI interface. It is a low cost, easy to make, works great with avrdude, is AVRStudio-compatible and tested under Windows, Linux and macOS X. Perfect for students and beginners, or as a backup programmer.
All the components are used in this project’s SMD Components. The brain of the USBTinyISP is an Attiny45 microcontroller.
ATtiny 45 Microcontroller
The microcontroller that is using in USBTinyISP is Attiny 45. Attiny45 is a High performance and low power 8- bit AVR microcontroller running on RISC Architecture by Atmel (microchip acquired Atmel recently). Attiny 45 comes in an 8 pin package. Attiny 45 has 6 I/O pins, Three of them are ADC pins (10 bit ADC) and the other two are Digital pins supporting PWM. It comes with a 4KM flash memory, 256 In-System Programmable EEPROM and 256B SRAM.
Operating voltage around 1.8V to 5.5v 300mA. Attiny 45 support Universal Serial Interface. Both SMD version and THT versions are available in the market. Attiny 85 is a higher version of Attiny 45, They are almost the same. The only difference is in the Flash memory, Attiny 45 have 4KB flash and Attiny 85 have 8KB flash. We can choose either Attiny 45 or Attiny 85, Not a big deal but Attiny 45 is more enough to make FabTinyISP. See the official documentation from here.
- ATtiny 45 : 4KB FLASH /256 B EEPROM / 256 B SRAM
- ATtiny 85 : 8KB FLASH / 512B EEPROM / 512 B SRAM
- debugWIRE On-chip Debug System
- In-System Programmable via SPI Port
- External and Internal Interrupt Sources
- Low Power Idle, ADC Noise Reduction, and Power-down Modes
- Enhanced Power-on Reset Circuit
- Programmable Brown-out Detection Circuit
- Internal Calibrated Oscillator
Step 7: Setup the Machine
Now let us Build the PCB using the PCB milling machine. I included the Trace layout and Cut layout in the zip file, you can download the zip file from below.
Prerequestment: Please download and install the Fabmodules from this link
Fabmodules only supported in Linux machines, I am using Ubuntu!
Step1: Sacrificial Layer
First of all, the work plate of the PCB milling machine (AKA milling bed) is a metal plate. It is sturdy and well builds. But in some cases, it may damage while cutting in over depth by mistake. So, I place a sacrificial layer on top of the milling bed (a copper-clad placed on top of the milling bed to avoid touching bits in the metal plate).
Step 2: Fix the 1/62 milling bit in the tool head
After placing the sacrificial layer, Now I need to fix the milling bit (usually used a 1/62 milling bit) in the tool head. I already explained the two-stage process of milling PCBs. For milling the traces and pads of the PCB, use a 1/64 milling bit and place it on the tool head using the Allen key. While changing the bits, always give extra care for the bits. The bit’s tip is so thin, It has more chances to break the bit while slip from our hands even it is a small fall. to overcome this situation, I placed a small piece of foam under the tool head to protect from accidental falls.
Step 3: Clean the copper-clad
I am using an FR1 copper clad for this project. The FR-1 is heat resistant and more durable. But copper clads will oxidize quickly. Coppers are fingerprint magnets. So before using a copper-clad even, it is a new one, I recommend you to clean the PCB with a PCB cleaner or acetone before and after milling the PCB. I used a PCB cleaner to clean the PCB.
Step 4: Fix the Copper clad on the milling pad
After cleaning the copper clad, place the copper clad on the top of the milling bed. I placed the copper clad on the milling pad with the help of double-sided sticky tape. The double-sided sticky tapes are so easy to remove and they are available for a cheap price. I stick the double-sided tape on the top of the sacrificial layer. Then placed the copper clad on the top of the sticky tape.
Step 8: Setup Fab Modules and Milling Process
Step 1: Power the machine and Load FabModules
powered on the machine and then open the Fab module software in a Linux system (I’m using Ubuntu) by typing the below command in the Linux terminal.
Then a new window will pop up. Select image(.png) as input file format and output format as Roland MDX-20 mill(rml). After that, click the Make_png_rml button.
Step 2: Load the PCB design Image
At the top of the new window select the bit that you are going to use. then load your .png format by clink Load.png button. Then click on Make.path button to generate the path to for mill. Now click the Make.rml to generate the instructions and commands for the machine. A new Send it Button will appear on the top make the Make.rml button. Do not click on the button right now.
Step 3: Set X, Y & Z Axes
We are not done yet. Now press the View button on the Modela MDX20 control panel. make sure the bit is well tight. press once more the view button to get back to the default position. Now set the X, Y positions by entering the measurements (depends on your board position) in desired text boxes. I recommend you to note down the X & Y positions somewhere. If something went wrong and you need to start from first, You should need the exact X&Y positions to continue your milling process else it will mess up.
Bring down the tool head by pressing the Down button. Stop when the Tool head reaches near to the copper clad. Then lose the tool head screw and bring down the bit a little bit down until it touches the copper layer of the copper clad. Then tighten the screw back again and bring back the tool head to the home position by pressing the View button. Now we all set. Close the safety Lid of the Modela and click Send it button. The modela will start the milling process.
It shall take a minimum of 10 to 13 minutes to mill the traces and pads. After finishing the milling I got a good result.
Step 4: Milling Tracesand Pads & Cutting the Outline layout
After finishing the Trace milling, Cut out the PCB outline layout(simply shape of the PCB). The process is almost the same. For cutting the layout, Change the 1/64 bit to 1/32 bit in tool head. Then load the cutting layout .png file to fab modules and select the cutting bit(1/32) in the tools menu. Then continue the same procedures that I did earlier. Take out the completed PCB from the bed.
Step 9: Finished PCB
I successfully milled my FabTisnyISP PCB using Modela MDX20. I carefully removed the copper clad from the sacrificial layer and cleaned the specks of dust in milling bed using a dust buster. Then I cleaned the PCB one again using the PCB cleaner.
Step 10: Soldering the Components on PCB
ow I have a finished PCB. all I need to do is solder the components on the PCB. For me, it is a fun and easy task.
When it comes to soldering, Through-hole components are so easy to solder when comparing with SMD components. SMD components are small in their footprints. it is a little bit difficult to solder for beginners. There are a lot of chances to make mistakes like cold solders misplacements of components and the most common thing or make bridges in between traces and pads. But everyone has their own soldering tips and tricks, that they were learned from their own experiences. this will make this task fun and easy. So take your time to solder the components!
Here How I Do Soldering!
I usually solder Microcontrollers and Other ICs first. Then I solder small components like resistors and capacitors etc…
At last through-hole components, wires and header pins. To solder my USBTinyISP, I follow the same steps. To solder SMDs easily, First, I heat up the soldering iron to a 350°C. Then add some solder flux on pads. Then heat up the pad which I want to solder the components, then I add a little amount of solder to a single pad of the component pad.
Using tweezers, pluck the component and place on the pad and heat up the pad for 2-4 second. After that, solder the remaining pads. If you make bridges between pins and traces or gives a lot of solder to a component, used the solder wick ribbon to remove the unwanted solder. I continue the same steps until the PCB fully soldered without any problem. If something went wrong, first I carefully check all traces and components having breaks or bridges using a magnifier and multimeter. If I found, then I rectify it!
Step 11: Making the ISP Cable
To connect the microcontroller or another ISP programmer to flash the firmware. we need a six-line ribon wire with two 2×3 female wire connector. I used a 4/3 feet 6 channel ribbon wire and carefully connected the female header on both sides. To do nicely I used a G clamp. see the picture.
Step 12: Flashing Firmware
1 / 2
Now we can flash the firmware to our ISP. To do that we need another ISP programmer. I used another USBTinyISP, But you can use an Arduino as ISP to do this task. Connect both the ISPs using the ISP connector that we previously made. Then connect USBinyISP(The one we are using for programming) to the computer. Make sure the ISP is detected in your system by typing the below command in the Linux terminal.
Step 1: Install AVR GCC toolchain
First of all, we need to install the toolchain. To do that, open a Linux terminal and type.
sudo apt-get install avrdude gcc-avr avr-libc make
Step 2: Download and unzip the firmware
Now download and unzip the firmware files. You can download it from here. After downloading the zip file, extract into a good location that you can find easily (to avoid unnecessary confusion).
Step 3: Make file
Before burning the firmware. we need to ensure the makefile is configured for the Attiny microcontrollers. To do this open the Makefile in any text editor. then confirm MCU = Attiny45. See the image below.
Step 4: Flash the firmware
Now we can flash the firmware to our ISP. To do that we need another ISP programmer, as I said earlier. I used a FabTinyISP, that I made earlier. But you can use any ISP or use an Arduino as an ISP programmer. Connect both the ISPs using the ISP connector that I previously made. Then connect FabTinyISP (the one I using to program my ISP) to the computer. Make sure the Isp is detected in your system by typing the below command in the Linux terminal.
Now we are ready to flash. Open the terminal in the folder path of the firmware located and type “make” to make the .hex file. This will generate a .hex file that we need to burn into the Attiny 45.
Type the below command in the Linux terminal to flash the firmware to the microcontroller.
Step 5: Enabling Fusebit
That’s it we are done flashing the firmware. But we need to activate the fuse. Just type in
the terminal to activate internal fuse.
Now we need to either remove the jumper or disable the reset pin. Removing the jumper connection is not mandatory, we can disable the reset pin. It is up to you. I choose to disable the reset pin.
Please note:- If you disable the reset pin, then the Reset pin will be disconnected internally. Means you can’t program it anymore after disabling the reset pin.
If you want to disable the reset pin, then type make the below command in terminal.
You will get a success message. After uploading the firmware successfully i need to check the USBTinyISP is working correctly, to do that you need to enter a command in terminal
sudo avrdude -c usbtiny -b9600 -p t45 -v
After entering the command, you will get the return feedback in the terminal window.
Step 13: We Are Done
PixelPad is an electronic development badge based on an ATmega32U4 microcontroller and comes with a lot of built-in features. The PCB art is inspired by Indian culture, arts, and drawings. Using PixelPad, you can either use it as a wearable development board like the Adafruit Playground Express or LilyPad, or you can use it as an electronic badge!
The features of PixelPad can be seen below!
I went through many Indian cultural and spiritual arts and paintings to design the PCB art and board outline. After a lot of research and leanings, I designed a PCB art using Adobe Illustrator.
Let me explain the process and the experiences I went through to build my own electronic badge.
When I decided to build an electronic badge, I was gone through many ideas. That lead me into confusion regarding which one I need to design, Literally I don’t stick with an idea. instead of I am rapidly changing the ideas. So what I did is, I listed out the features that I wanted in the badge that am designing. So here are the criteria that I listed out in the idea sparking process.
- Minimalist design
- Compact in size
- The design should be Wearable friendly
- Have enough I/O pinouts
- Must be battery powered
- Have good LEDs that can be programmable to something useful
- Represent a culture or art
After going through the rough list, I started to search which Microcontroller, LEDs that I need to use for the Pixelpad. Finding a good theme for the art is too complicated for me, you know it right?
I don’t have that skill!
I decided to use the Atmega32U4 microcontroller for the badge design. It comes with USB support and supports data transfer rates up to 12Mbit/s and 1.5Mbit/s. It can also be used as an HID device. So, I stuck with ATmega32U4 as the MCU. You can definitely check out the datasheet I attached to this project.
The WS21812B 5050 NeoPixel LEDs
I used 12 NeoPixel LEDs because every led can addressable and a single Data pin needed to control the RGB colors. So, I decided to stick with NeoPixels.
I used Autodesk Eagle CAD to design all my PCBs. I started to design the circuit Schematics in Eagle. The main components that I used in the schematics are explained below.
- MIC5219B for a 3.3V 500ma power supply to power the microcontroller
- MCP73831 for Li-Po / Li-Ion battery management
- DS1307Z for an I2C RTC
- WS2812 5050 RGB LEDs
- 8Mhz Resonator to clock the ATmega32U4 externally
- 2×3 SMD pin header for ISP connection
- SMD reset push button
After the schematics designing, I started to design the printed circuit board (PCB). First, I placed all the components in an order that I wanted. Then started to route the air wires manually. I used a minimum trace width of 8mils for the traces. The board design is for a two-layer PCB. the overall dimension is 66 x 66 mm. You can find the design files and Gerber files attached at the end of this project.
Import PCB Art to the Board
I designed the PCB art in Adobe Illustrator. You can use any vector designing software to do this part. You can either use an illustrator or stick with an opensource one like the Inkscape. I tried a lot of design and in the end, I made it to the expected design. After designing the art you can save it as an 8-bit BMP format.
Then in Eagle, you need to import the art to any silkscreen layer. I used the name layer. I don’t want the component layer so I deleted the names and used the layer to place the design. to import the design follow the below steps:
- On the top, you can find the ULP icon, by clicking the icon you get the popup window to select the ULP. The search for import-BMP then opens the import-Bmp ULP.
Then select the BMP file you needed and the layer you wanted to place and scale measurements etc… and click OK. After that, you need to place the design in the PCB design where you wanted.
NB: Design should be in black and white color
I used Autodesk Fusion 360 to view the 3D model of the PCB, I also used Fusion 360 to design the board outline for the dimension layer. You can definitely use the advantage of Fusion 360 and Eagle integration.
Exporting the Gerber File for Manufacturing
For manufacturing the PCB from any manufacturers around the globe, you need the Gerber file sent to them. Generating the Gerber file in Eagle is super easy. You can follow the steps below.
On the right side of Eagle, you can find
Manufacturing tab. Click on the manufacturing tab you can see the rendered image of the PCB for manufacturing. In the same window click on the
Save each layer into a folder and compress the folder into a
There are a lot of PCB manufacturing services in China for cheap as $5 for 10 PCBs. I personally recommend
PCBWAY They deliver good quality PCBs and the customer care support is awesome.
The PCBs take two weeks to arrive according to the delivery method. Meanwhile, I started to collect the required components for the project. I already have some of the components, so I bought the remaining components from different sources. But I have given all the components link to the store.
Soldering the Components
After arriving both the PCBs and the components. I started soldering the components. using a weller we51 soldering station with a micro tip for soldering. the 0805 SMD package is a little hard for soldering for newcomers but you guys will be used to it after a few components soldered. I also used a hot air rework station but it is not necessary. Be careful while soldering the microcontroller and other ICs do not overheat the ICs.
I also used a PCB cleaning solution to clean the PCB from the excess solder flux.
Programming the Pixelpad Indian Board
I Soldered all the components on the PCB. To program the board using Arduino IDE first we need to burn an appropriate Atmega32u4 bootloader to the board. I used the Sparkfun pro micro board’s bootloader for my board. To Burn the bootloader you needed is ISP programmer or you can use an Arduino board as an ISP programmer. I build a USBTiny ISP programmer myself, visit my USBTinyISP programmer page.
When connecting the Pixelpad Indian, the power LED will light up.
I chose the Sparkfun Pro Micro board from the board manager and select the USBTiny ISP as the programmer from the programmer window. Then click the burn bootloader. It will take a little time to burn. After burning the bootloader, It is ready to program via the micro USB cable.
I made a basic sketch to show an analog clock time using the NeoPixel LEDs and RTC. The red LEDs show the hours and the blue LED shows minutes.
Eg: Lets say 3 : 30 || The 3rd LED will lights RED and 6th LEDs lights BLUE.
You can download all the files and resources to do this board from the end of this project.
Here is the working video of the above-mentioned sketch.
The open-source hardware platform Arduino.cc today launched the new low-code platform and modular hardware system for IoT development. The whole concept is here to support small and medium tech businesses the tools to develop IoT hardware products without having to invest in specialized technology resources.
The new hardware board named the Arduino Portenta H7, which features everything needs to get started with making an IoT hardware solution for small and medium businesses, including a wide range of features, crypto-authentication chip and communications modules for Wi-Fi, Bluetooth Low Energy, and also comes LTE which is arrow band IoT.
Built on Arm Pelion technology, the latest generation of Arduino solutions brings users the simplicity of integration and a scalable, secure, professionally supported service.
Official comment from arduino.cc :
“By combining the power and flexibility of our production ready IoT hardware with our secure, scalable and easy to integrate cloud services, we are putting in the hands of our customers something really disruptive,” commented Arduino CEO Fabio Violante. “Among the millions of Arduino customers, we’ve even seen numerous businesses transform from traditional ‘one off’ selling to subscription-based service models, creating new IoT-based revenue streams with Arduino as the enabler. The availability of a huge community of developers with Arduino skills is also an important plus and gives them the confidence to invest in our technology”.
The new H7 portenta module is now available for beta testers, with general availability dated for February 2020.
When you are planning to do an adventure journey or trekking to the wild, it is essential to have a device in your backpack that helps you to understand the environment.
For my upcoming adventure trip, I planned to build a handheld device that helps me to monitors temperature, humidity, air pressure, and altitude as well as an alarm can be set for any of the parameters that go beyond a user-defined threshold value. The device is powered with 1000maH lipo battery, with a backup of 72 Hours continuous running!
I made this device smaller in size, smarter to use, looks cool in your hands and durable outdoor. I keep the budget within $18!
Step1: Get the Parts and Tools!
Component and Parts :
- Atmega 328P (TQFP)
- 20mhz Resonator
- Rotary encoder
- BME280 Module
- 1.3″ 128 x 64 OLED Display Module
- 1 x Buzzer -3V
- 6 x 10K 0805 Resistor
- 2 x 1K 0805 Resistor
- 1 x 1.2K 0805 Resistor
- 1 x 0.1mF 0805 Capacitor
- 2 x 1mF Capacitor
- 10mF Capacitor
- Micro USB Port
- 1000maH 3.7v Lipo Battery
- 2×3 Header Pins
- 4 x M3/6mm Threaded inserts
- 12mm compass meter
- 4 x M3 15mm Screws
- Soldering Iron
- Allen key 3mm Screw Drivers
- Spray Paint (any color for your choice)
- Spray paint clear coat
- Sandpapers, Gloves, Mask, and Googles
- 3D Printer
- Vinyl Cutter Machine (Not necessary, Just for cutting logo)
Step 2: Designing PCB Using Autodesk Eagle
I use Autodesk Eagle to design all my projects PCBs. It is free and easy to kickstart learning PCB designing.
I used fusion 360 to design the outline of the PCB and the enclosure for 3D printing. It is simpler by syncing the eagle project into the fusion 360 projects. I used the 3D model of the PCB (designed in Eagle) in fusion360 and I modified the outline of the PCB in Fusion360 and export it back to Eagle.
For Designing the Xpedit I used Atmega328p-AU as the microcontroller along with 20mhz resonator. Using BME280 is capable of sensing temperature, humidity, air pressure, and altitude. I Used 128 x 64 OLED to display the information. Xpedit is power by a 3.7V lipo battery, TP4056 is used to charge the battery accordingly. A buzzer and button-sized Vibrator motor are used for notification. A rotary encoder is used for user inputs and for changing into various modes.
You can download the Eagle Project files and Gerber Files from the GitHub
I ordered 10 PCBs of xpedit from Pcbway. I always choose pcbway because of their high-quality PCBs for cheaper price and a great one to one customer support!
If you want to directly manufacture the PCBs. check out PCBWAY
Step 3: Designing Enclosure Using Fusion360
I use Fusion360 for 3D modeling. Like I said we can sync the projects between Autodesk Eagle and Autodesk Fusion 360. It is easy to design an enclosure for the PCB with the help of the sync feature. I designed a minimalistic Enclosure for the Xpedit.
I also used 3mm brass threaded inserts for holding the enclosure parts as much stronger.
Step 4: 3D Printing the Enclosure Parts
Depending on what you need, you could modify the enclosure parts to suit your needs. You could use bigger capacity batteries or more sensors etc…
If you want to stick with the default design, then you can download the files from Github.
I used Ultimaker 2+ for 3D printing the parts. You can use any 3D printer that you have access to!
Step 5: Sanding the 3D Printed Parts
It took me about 8 hours of printing, But it really depends on your 3Dprinter and the slice settings!
After 3D printing the parts, I used Files and sandpaper for smoothening rough edges. It is better to use small files as I used in the above image
Step 6: Install Threaded Inserts
I am using M3/6mm Threaded Inserts for screwing the lid to the bottom enclosure. If you’re using the same version of mine, You can install them now. These inserts will hold the PCB inside the enclosure and hold the lid strong!
Step 7: Spray Painting and Clear Coating the Enclosure
For a better and neat look, I used spray paint. You could use any color that you like. I used black as my choice. I did two coats of black spray paint. It is better to use a spray clear coat to protect the painting from peeling off!. Before you do spray painting, cover the threaded inserts using small pieces of masking tape. After painting the black color, I cut out an “XPEDIT” vinyl sticker using a vinyl cutter machine and stick it on the lid. Then i spray painted the clear coat to protect the paint and sticker.
Step 8: Soldering Components
Start soldering with the smallest components first. Probably the resistors and capacitors and then move your way to the larger ones. If you are soldering SMD components in your first time, it is a little bit hard to solder. Don’t worry, you will become used to after soldering a few components!
Step 9: Load Firmware in to the Xpedit
Time to upload your code and let the microcontroller do the work for you!
Do not use the Arduino NANO’s or UNO’s board bootloader. We are using 20Mhz Clock. Use the custom Atmega328p board manager from the below Link.
To upload the bootloader use an ISP programmer or use your Arduino as ISP. If you want to build Your USBtiny ISP programmer, check out my instructable to build one yourself from the link below. This is the same ISP that I am using to upload the firmware!
Download and upload the firmware from Github!
Step 10: Place the Board in Enclosure!
After uploading the firmware and everything goes good. You can place the board Inside. Before placing the board, First, place the Vibrator motor and apply a little hot glue or place a foam seal on the top of the motor and solder the wires to the pads on the board. Place the Slide Switch into the Lid and apply some hot glue to hold up the switch. Solder the switch Wire to the PWR Header pads on the PCB. At last, insert the battery into the battery slot and guide the wire through the channel. Solder the Redwire to the +(Plus) Header and Black Wire to the -(Minus).
Remove the header pins from the OLED display and place it in the Display Slot on the LID. Make use of a Duct tape or any tape with a strong bond for placing the display in the slot. Use Hot glue if necessary. Use a four-wire ribbon cable to connect the display on to the PCB.
Place the PCB in the enclossure and put the lid on. Use the four M3/15mm Screws to hold the enclosure. Stick the small compass into the slot on the lid using a two-part adhesive!
I used hot glue in a few places on the PCB, like the USB port, Display, and Switch for a strong bond.
Put on the Knob we printed earlier on to the rotary encoder after everything put together!
Step 11: Deploy
Now that’s it!
Don’t forget to take the Xpedit on your next Adventure trip!
This project is free and open-source. If you like what I do and want to support my projects consider following me on: