MITAYI is a series of RP2040-based microcontroller development boards from CIRCUITSTATE Electronics LLP. MITAYI Pico is the first one in this series. We were really excited to see the first microcontroller offering from Raspberry Pi and the features it had for the price. Raspberry Pi also did a good job in providing documentation and development support early with the release of their products. For these reasons, the RP2040 microcontroller and the Pico development board took the maker market by storm. We also wanted to use the new microcontroller in our designs and thus Mitayi was born. The MITAYI Pico r0.2 is the first pre-release design version. All Mitayi series boards will be completely open-sourced and designed in the open-source EDA tool KiCad. In this post, we will walk you through the schematic design, board design, manual assembly, and testing processes of the Mitayi Pico board.
- Features & Specifications
- Differences with RPi Pico
- MITAYI Series
- Schematic Design
- Part Selection & Purchase
- PCB Design
- Manual PCB Assembly
- Short URL
Features & Specifications
- Dual ARM Cortex-M0+ @ 133MHz
- On-chip PLL allows variable core frequency
- 264kByte high-performance SRAM in six independent banks
- Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus with eXecute In Place (XIP)
- DMA controller
- Fully-connected AHB crossbar
- Interpolator and integer divider peripherals
- On-chip programmable LDO to generate the core voltage
- 2 × on-chip PLLs to generate USB and core clocks
- 30 multi-function General Purpose IO (4 can be used for ADC)
- 1.8-3.3V IO Voltage (NOTE: Pico IO voltage is fixed at 3.3V)
- 12-bit 500ksps Analog to Digital Converter (ADC)
- 2 × UART
- 2 × SPI controller
- 2 × I2C controller
- 16 × PWM channel
- USB 1.1 controller and PHY, with host and device support
- 8 × PIO state machine
- 2 × Programmable IO (PIO) blocks, 8 state machines total
- Flexible, user-programmable high-speed IO
- Can emulate interfaces such as SD Card and VGA
- QFN-56 7x7mm package
Mitayi Pico RP2040 v0.2
- RP2040 dual-core, 133MHz ARM Cortex M0+ microcontroller.
- 16MB Flash memory in SOIC-8 package.
- Dual USB coonector options; Type-C and Micro-USB.
- Dual voltage regulators; AMS1117 and MIC5219.
- Reset button.
- Solder jumper for debug LED.
- Breaks out all GPIO pins (not pin-compatible with RPi Pico).
- Uses 0402 or larger SMD packages.
- Component references on the silkscreen.
- Same dimensions of 21 mm x 50 mm, with almost the same positions for mounting holes.
- Completely open-source design made with KiCad 6.
Differences with RPi Pico
|Feature||Mitayi Pico r0.2||Raspberry Pi Pico|
|USB||Micro USB or Type-C USB||Only Micro USB|
|Flash Memory||16MB, SOIC-8 package||2MB, USON-8|
|Bootsel Button||No (pad only)||Yes|
|GPIO Pins||Breaks out all GPIO||Does not break out all pins|
|Voltage Regulator||Dual Linear 500mA LDO and 1A AMS1117||800 mA buck-boost switching regulator|
|Component Silkscreen Reference||Yes||No|
|Smallest component size||0402||0201|
MITAYI is our first series of microcontroller development boards. The name is coming from the Malayalam word മിഠായി (IPA-EN: miṭhāyi) which translates to “candy”. We wanted a Malayali + Indian taste for our boards. Hope that works out. Mitayi boards will be exclusively based on the RP2040 microcontroller from Raspberry Pi. Mitayi Pico will be the first one in this series. Following it will come the Mitayi Nano, Mitayi Micro, Mitayi Stamp, and more.
Mitayi Pico is designed to closely resemble the official Pico, but adds a few obvious improvements. Revision 0.2 is the first design version we tried getting the PCBs for. The high-quality ENIG PCBs for r0.2 was generously sponsored by PCBWay. As most of our readers already know, or if you are new to PCB designing, PCBWay is a PCB manufacturer from China with a complete production pipeline for PCB Fabrication (all specs), Component Sourcing (turnkey, consigned, and kitted), and PCB Assembly (single, double, flex, etc). In addition to that, PCBWay also offers 3D printing services using both plastic and metals. PCBWay is a Silver Level Sponsor for the open-source EDA suite KiCad. If that was not enough, PCBWay regularly conducts giveaways and design/project competitions for makers all around the world. You can follow PCBWay on their social media pages to get updates on the contests and win free PCBs and other cool hardware. Thanks to PCBWay for sponsoring the PCBs for Mitayi Pico.
Revision 0.2 of the Mitayi Pico design is not perfect as one should expect. There were mistakes we inevitably had to make, and other improvements to add to the design. Therefore, r0.2 is not production-ready. You must only use r0.2 for reference purposes. We hope to fix all known issues with the upcoming production-ready design r1.0 and will make the boards available for purchase. This article is to only document the design process of the Mitayi Pico r0.2. We will be regularly making changes to the board design and pushing them to our GitHub. So follow and star the project on our GitHub. The source files for this open-source project will also be available at CADLAB.io, which is a tool should definitely try.
The schematic of Mitayi Pico is designed in KiCad version 6 and closely follows the official Pico schematic diagram and the design guidelines. We also used Shawn Hymel‘s Pico Debugger Shoe design as a reference. Let’s examine each block of the schematic of Mitayi Pico r0.2.
Getting Started with Raspberry Pi Pico : RP2040 Microcontroller Board – Pinout, Schematic and Programming Tutorial
RP2040 microcontroller requires two different working voltages; 1.1V for the core and 3.3V for everything else. We do not need to supply both voltages. The RP2040 has an internal 1.1V low drop regulator (LDO). We need to supply +3.3V to all IOVDD pins and the VREG-IN pin. The VREG-IN is an input to the 1.1V LDO) and its output VREG-VOUT must be connected to all the DVDD pins. Additionally, we need to tie the 3.3V supply to the USB-VDD pin as well. The ADC-AVDD pin accepts the supply for the internal ADC. The ADC is very sensitive to supply noise, drift, and other interference. So if you want maximum accuracy with your ADC readings, you can use a separate low noise and high precision voltage reference dedicated for the ADC. In the official Pico schematic, there are current limiting resistors and a capacitor on the ADC-AVDD pin. In the Mitayi Pico r0.2 schematic, the pin is provided with a solder jumper so that you can connect the ADC-AVDD pin to the 3.3V supply or provide your own supply.
The RP2040 schematic symbol was created from scratch and we have grouped pins of similar functions. The USB data lines have a 27R resistor in series with them.
The flash memory used is the W25Q128JVSSIQ from Winbond in SOIC-8 package. The QSPI_SS (Chip Select) pin is connected to the USB Boot solder pad for putting the board into boot mode. If the QSPI_SS pin is low when RP2040 boots up, the microcontroller automatically stops loading and executing any instructions from the flash chip. Instead, it will enumerate itself as a mass storage device (with the help of a Read-Only firmware), ready to accept new firmware. When we drag and drop a UF2 file to the drive, RP2040 will simply rewrite the flash memory with the new file and exit from the program mode.
The pull-up R1 is optional and should be 10K if used. In the official Pico design, the QSPI_SS pin is connected to a push-button. We decided to use a solder pad instead of a push-button and saved it for the RESET function. But that was a bad design choice. We will add both RESET and BOOTSEL buttons in the next design. The BOOTSEL button along with the RESET button can help you “save” your RP2040 when you have messed up your firmware.
USB Type-C Receptacle
We have both Micro USB (MPN: Molex 105017-0001) and Type-C USB (MPN: Korean Hroparts TYPE-C-31-M-12) receptacle options in the Mitayi Pico r0.2 design. The Type-C receptacle is used as a USB 2.0 interface with two data pins (USB_D- and USB_D+) and two supply pins. The identical bus pins are tried together and connected to the USB pins of RP2040. The two 5.1K resistors on the CC1 and CC2 lines allow the USB device to be detected and do proper current sourcing. The auxiliary bus pins SBU1 and SBU2 are not needed and are thus not connected. The VBUS provides a 5V supply from the USB and it is connected to the 3.3V voltage regulator via the Schottky diode MBR1020VL. The diode protects the USB host from a reverse supply input.
USB Micro Receptacle
Both the Type-C and micro USB receptacles share the same signals. But this won’t be a problem since you can only solder either one of them at a time. The USB micro is provided as a fallback connector in case you are not able to find Type-C connectors or want lower the cost of the board. But fortunately, you will never have to use micro USB connectors anymore because the 16-pin Type-C connectors are available for as low as INR 5 in India.
Main Voltage Regulator
The main 3.3V regulator is an MIC5219-3.3YM5 from Microchip. It is an LDO with a maximum output current of 500mA. The low drop means you can power the board from a 3.7V Li-Io or LiPo battery directly. The VR1_IN, VR1_CE, VR1_BP are solder jumpers that you can use to configure the regulator in case you want to use a similar regulator with a non-compatible pinout. We added them because there are many similar but cheap voltage regulators from Chinese manufacturers that you can find from LCSC. But we think they won’t be needed in the next design. The V_EN signal can be used to enable or disable the voltage regulator, allowing you to turn the board on or off.
Secondary Voltage Regulator
This is just another regular 3.3V regulator that you can use instead of the more expensive MIC5219. The VR2_OUT can be used to connect the voltage regulator output to the 3.3V rail. This also won’t be included in the next version of the Mitayi Pico design.
The reset function of the RP2040 is available as a push-button and as a pin. The official Pico does not have a dedicated pin for resetting. For the push-button, we used a 2-pin SMD type usually found on ESP32 boards – 3x4x2mm SMD Tactile Switch.
The crystal we are using here is a 12MHz SMD type. But the ABLS-12.000MHZ-B4-T is the wrong part number. It is originally a larger SMD crystal, but where we used a different one – 12M20P2/XT324-10/10 from YIC. We also made a terrible mistake here. The 12M20P2/XT324-10/10 is a 4-pin SMD crystal with signals on pins 1 and 3 and ground connections on pins 2 and 4. So we used a 4-pin footprint for Y1. And you can definitely see that we only have two pins for Y1 in the schematic. We had to manually fix this issue by cutting tracks and doing a rewiring.
The capacitor values we used are fortunately correct. The 12M20P2/XT324-10/10 has a load capacitance of 20pF and we needed around 30pF ceramic capacitors to get that value. We went with 27pF as it was easily available. The calculation of the required capacitor value is as follows,
C18, C19 = 2 * (CL - Cs) CL = 20pF, Cs can be ~5pF ∴ C18, C19 = 2 * (20 - 5) = 30pF
The debug LED is connected to GPIO25 through a solder jumper DEB_EN which allows you to disconnect the LED in case you need the pin for anything else.
The pinout of Mitayi Pico is not the same as the official Pico. This is because the official Pico does not break out all of the GPIO pins because some of them are used for other purposes. We wanted to minimize the additional uses of the GPIOs and allow the user to make use of all the pins available. Mitayi Pico breaks out all the GPIO pins and offers some compatibility with the official Pico. For example, the pins VBUS, VSYS, GND (pin 38), V_EN, and 3V3_OUT have the same pin assignment. Looks like we can also make AREF pin the same. We also have the SWD pins at the same place on the Mitayi Pico.
Part Selection & Purchase
There are many ways to select the actual part numbers for an electronic product. You can prioritize the part selection based on cost, specs, availability, etc. For our design, except for the RP2040, we selected the parts based on availability. We wanted parts that are available locally. Once the values of the components are finalized, we used ComKey.in, an electronic component distributor from Bangalore, India. They have a large selection of passive and discrete components. Their website is easy to use and we can find any parts with a few keyword searches and using the filters. ComKey’s prices are also reasonable. For the passive components, we normally chose Walsin and Yaego – both our favorites. The only downside of ComKey is the nonavailability of many active parts. Parts like ICs have to be bought from elsewhere. You can find the complete parts list and their links to stores in our Bill of Materials (BoM) file. With the next design, we will also include links to Indian stores.
We recommend the following sites for purchasing passives, discretes, and connectors.
The PCB was designed in KiCad version 6. We opted for a 2-layer design so that manufacturing them can be easier. RP2040 was placed in the same orientation and almost the same location as the official Pico. The default track thickness and minimum clearance were 0.2 mm. All vias have the same size of 0.5mm/0.3mm (diameter/drill). For the pin headers with castellated holes, we simply modified a 20-pin pin header footprint with a 2.54 mm pitch. If the edge of the PCB goes through the center of a plated hole, it will create a castellated hole. The drilling/scoring should be precise and it needs some cleaning after.
Stacking the Type-C and Micro USB connectors was easier than we thought. The footprints we used did not create any conflicts when placed on top of each other. Routing was also easy since similar kinds of signals were facing directly each other.
The USB data traces are impedance matched on the official Pico. This is because the distance between the USB connector and the USB pins of RP2040 is fairly large. When you have high-speed signals to route, then length matching, impedance matching, differential routing, etc. become important. You can use KiCad’s built-in calculator tool to calculate the sizes and other parameters of different types of transmission lines.
The type of transmission line used for USB is a Coupled Microstrip Line (when signals can be odd or even) or a Differential Microstrip (when signals are differential). In this, there will be two traces with uniform trace widths and uniform spacing between them. The traces should also have a continuous ground plane (Ground pour/fill) underneath them. We can calculate the width and spacing of these traces with the help of any Microstrip calculator. The impedance matching required for a differential USB line is actually 90 Ohms, unlike the conventional 50 Ohms. To achieve the 90 Ohms impedance, we can enter a few parameters into the calculator and it will show the trace widths and spacing required. We used 0.8 mm trace width and 0.17 mm spacing for a 2-layer FR4 PCB of 1 mm thickness. That yields a differential impedance of around 89 Ohms which is acceptable.
Connecting thick tracks to small pads is not possible without some modifications. One method is to apply tapering to the track width until it matches the pad to make the connection. Another method is to use a smaller-width track to connect to the wider track. We used the latter. Doing so wouldn’t affect the impedance matching much, as long as the length of the feature is below the critical length.
The PCBs for Mitayi Pico r0.2 were sponsored by PCBWay. We used the following specifications for the manufacturing.
Manual PCB Assembly
For the assembly, we used a 400W PTC-based hot plate. It was the first time we were using a hot plate. We also used a Lead-Free solder with a melting point of 183°C, from Relife (RL-404S). Since it was the first time, we made a few mistakes and the soldering result was not perfect. Most of the small components were dislocated from their footprints and there was too much leftover solder everywhere. But nothing we couldn’t fix with a soldering iron.
We also forgot to stick a piece of Kapton tape over the micro USB footprint without which all the USB lines will be shorted by the metal body of the Type-C connector. We used bare 0402 footprints for most of the solder jumpers. It was not easy to bridge those jumpers. We will change the footprint of the jumpers next time.
We did not realize the crystal footprint error until we completed the soldering and tried testing the board. So to fix it, we had to cut the track connected to pin 2 of Y1 and relocate one of the 27pF capacitors. With that fix, everything was working.
These closeup images were shot with Andonstar ADSM301 digital microscope.
In addition to the Git version control, we will save the complete set of design files to a root folder called Export. Inside that folder, there will be other folders for each version or each day. This is to make it easy to find and open individual design files simultaneously when you need them.
- Download all r0.2 design files – Mitayi-Pico-RP2040 v0.2-beta – PCB Design Files
- RP2040 Datasheet [PDF]
- RP2040 technical documentation
- Raspberry Pi Pico Datasheet [PDF]
- Hardware Design with RP2040 [PDF]
- Getting started with Raspberry Pi Pico [PDF]
- Minimal Design Example [ZIP]
- The VGA, SD card & audio demo boards for Raspberry Pi Pico and Raspberry Pi Pico [ZIP]
- Raspberry Pi Pico – High-Quality Pinout Diagram
- Getting Started with Raspberry Pi Pico : RP2040 Microcontroller Board – Pinout, Schematic and Programming Tutorial
- RP2040 and Pico: All New Microcontroller and Development Board from Raspberry Pi
- Short URL to this page – https://circuitstate.com/mitayipicor02