Development Board

Dynamixel Interface – Castellated PCB

The Dynamixel Interface is a board that allows easy communication with a MCU or Processor with a simple UART module, the board integrates a voltage level converter and a Tri-state buffer to accomplish good communication between a Dynamixel servomotor and almost any microcontroller in the market. The board is breadboard-friendly and development ready as the connection pins are 0.1″ standard pitch and the castellated holes for SMD mounting and manufactured by PCBWay.

The Dynamixel interface is now easier to connect with a bunch of microcontrollers thanks to its voltage converter IC which makes possible the communication with low-power MCUs or even FPGAs, the interface offers communication indications LED for RX and TX, as well for the flow communication pin.

The connection to the MCU is as simple as providing power to the interface and connecting the 3 pins for the UART ( CTRL, TX, and RX ). I would use the following configuration for all the newest X-Series motors as well as for the old AX and MX Series motors with any 5V to 3.3V MCU like Arduino, PIC, STM, and ESP32.

I have tested the interface with an M5Stack Stamp S3 MCU along with an ST7735 LCD showing the motor position and moving the motor with the 3 push-buttons.

The castellated holes are one of the features that I most like about the PCBWay manufacturing skills, they always come just great even when choosing thinner PCB panels, and this design was not the exception, so I ordered some panels.

If you have intentions to fabricate more than one PCB of your design I really recommend panelizing your PCB in order to obtain the best deal and to have some spares in case the magic smoke decides to take some of those boards, I usually do my panels to fit almost the same PCB space as all my panels but you can also do your panel bigger or just let PCBWay to designed for you.

In this case, I decided to design my own Panel but I am sure that you can specify how would you like your panel to be made as some special silkscreen like identifications numbers, holes, fiducials, PCB batch number, PCB side, and feed direction for your PnP and so much more.

ESP32-S3 Stick Development Board

Sometimes there are projects that need more than one piece of the same PCB or it’s a design that is probably going to be used with other projects, that is the case for my ESP32-S3 Stick controller, as the ESP32-S3 is a very powerful and versatile microcontroller with Wifi and BLE and a lot of memory I am going to be using this PCB with many projects.

If you have been following my projects you will notice that it is pretty much the same development board as the ESP32-S2 Stick but now integrating the ESP32 S2 MCU and changing all the resistors, capacitors, and LEDs from 0603 to 0402 that makes a huge change for the PCB layout process.

The ESP32-S3 is a dual-core XTensa LX7 MCU, capable of running at 240 MHz. Apart from its 512 KB of internal SRAM, it also comes with integrated 2.4 GHz, 802.11 b/g/n Wi-Fi, and Bluetooth 5 (LE) connectivity that provides long-range support. It has 45 programmable GPIOs and supports a rich set of peripherals.

The ESP32-S3 Sticks incorporate some special features that I consider every ESP32 development board must have, such as a USB-Serial converter with RX and TX LEDs, a simple GPIO-LED, and an addressable RGB LED, at a second hand is always useful to have a reset and a general purpose push button.

This board like many ESP32 boards is breadboard friendly for prototyping but it also has castellated pins that allow it to be soldered directly to other PCB like any other SMD component, so that makes it a very versatile board for rapid prototyping or development.

In order to test this new development board I have also designed a 7 Color Paper display driver that interconnects the Stick with a bed of Pogo-Pins that I bought from Aliexpress that are very easy to solder and fit the through-holes quite nicely.

I have really enjoyed working with the ESP32-S3 Stick and the Paper display, but I still have to think about a good final project for it, if you have any ideas you are welcome to leave them in the comments below.

All the files are available on my GitHub if you are interested in making one on your own or also if you want to make some improvements or specific application modifications.

ESP32-S2 Stick

After designing the nRF PRO I decided to continue using the form factor and add a more capable MCU as the ESP32-S2 that has Wifi capability with a lot of Memory for the app and data.

It is a breadboard-compatible development board featuring the ESP32-S2 series of SoC, Xtensa® single-core 32-bit LX7 microprocessor 4 MB flash and optional 2 MB PSRAM in chip package 26 GPIOs, rich set of peripherals such as UART, SPI, I2C, TOUCH, DAC, ADC, and USB, a 2x2mm SK6812 RGB serial LED and a 0603 SMD blue LED. USB-C connector, castellated holes for low-profile integrations, and an onboard PCB antenna.

ESP32-S2 Stick

I have been using this board for all my projects as it’s easier to add to all my current and old projects such as the display-Array, the Cistercian Display, and the Dynamixel Configurator.

3-Digit Cistercian Clock
Single Digit Cistercian Clock
Dynamixel Configurator

This board is very versatile as I have been able to use it easily to test any idea that I have in a protoboard before adding it to a custom PCB, also is easy to add to any new project and not having to place all of those components and having to RF match the antenna every single time. The dimensions are efficient and I love how it looks as it’s a very thin PCB.

ESP32-S2 Stick Dimensions

The board has enough pins with the correct peripheral in hand to accommodate to any project you may have.

ESP32-S2 Stick Pinout

Lately, I have been using the services of PCBWay for my projects as they have awesome customer support and great quality PCBs, I really love how they do the castellated holes for my boards in a couple of days.

ESP32-S2 Stick Panel
ESP32-S2 Stick Development board

Let me know in the comments below how would you use this board or any project idea that you would like me to explore using this board. If you need more detailed info go to my GitHub.

31 Segments Cistercian Display

I have always loved displays, I really like anything that emits light and that is controllable, that is why I have created this new display that consists of the representation of numbers “Cistercian”, this single digit is capable of representing a number from 0 to 9999.

Cistercian Numbers

The easiest way to make a display is with individual LEDs, so the design is based on 7 segments displays that we all know and several reference pictures and representations that I have seen, that is how I import those shapes to a PCB and added some 0805 LEDs. I have made these PCBs with PCBWay as they have always delivered me some awesome look castellated holes and the price is pretty low, even for this panel that has 3 ENIG-finish PCBs with castellated holes.

Cistercian Displays 0805
Lighting a segment

After playing with this new hardware I realized that is inconvenient to use that many GPIOs in order to control the desired number to set in the display and there are a lot of LEDs controllers available in the market, also RGB LED controllers over SPI or I2C, so I have make some changes to the PCB and instead of having a common cathode pin is better and there are more controllers with common anode.

The controller that I have decided to use is a simple serial to parallel converter from LUMISIL and embedded in the same PCB routing fewer pins to the castellated holes and making it easier to use overall, and also has the possibility to set a custom constant current source for the LEDs.

Another alternative that I might implement is to use 3D printing to do the front face of the display as it will result in more customizable in terms of colors and non the standard PCB colors, I have also tried the Flexy-Pins for connection with the castellated holes.

3D printed display and Flexy-Pins connecting with the castellated holes

If you are looking to create your own PCBs I do really recommend using PCBWay and their Online Gerber Viewer as it has saved me from making a lot of mistakes in the past.

PCBWAY Gerber Viewer

SPI Display Array Board – Clock

The main idea of this project was to make a customizable clock, a clock that would have the option to change its appearance very easily, The first option was to make it with RGB LEDs and change the color at will, maybe to have the ability to change the color according to the time of the day or with the ambient temperature, but what is more customizable than a display by itself, nowadays we can find very nice IPS Displays that are very cheap.

Maybe the hardest step of this project was the clock creation, making the graphics for each clock was really challenging as I wanted to look very similar to the real ones, like the Flip Clock, the seven-segment Display clock, the LED matrix clock.

Flip Clock
LED Matrix Clock
7-Segments Display Clock
Blue VFD Clock
Ink Clock
Wood Clock

These are only a few clocks that I have created, but it will be awesome to see other designs and that is why I’m sharing the design files of this project, I think it would be awesome to see how a project can evolve in the maker community.

I have also designed a 3D printed enclosure or in this case a frame. It consists of only 3 parts that glued together to make a single clock piece.

3D Printed clock bracket

The PCB is intended to be compatible with any Microcontroller or SBC like the Raspberry as it only needs some GPIOs and an SPI Port. This makes the PCB compatible with a simple microcontroller as an Arduino to other more advanced microcontrollers. We could say this board is a breakout board for the arrangement of six displays and 4 buttons.

SPI Display Array Board CAD

Testing the clock designs

Before writing the clock firmware I decided to test all the designs that I have already created on the computer, so using the Raspberry Pi Pico I have written a simple program that allows me to set an image for each display in order to simulate how the clock would look like.

The code for this simple task consists of the initialization of the displays and just sensing the raw data of each image to the corresponding display.

#include "pico/stdlib.h"
#include "hardware/gpio.h"
#include "hardware/pio.h"
#include "ST7735.h"

#include "clockDigital.h"
#include "clockFlip.h"
#include "clockMatrix.h"
#include "clockVFD.h"
#include "clockInk.h"
#include "clockWood.h"

#define ONBOARD_LED 25
 
int main(){
    stdio_init_all();

    PIO pio = pio0;
    uint sm = 0;
    uint offset = pio_add_program(pio, &SPILCD_program);
    lcdPIOInit(pio, sm, offset, PIN_SDI, PIN_SCK, SERIAL_CLK_DIV);


    gpio_init(ONBOARD_LED);
    gpio_set_dir(ONBOARD_LED, GPIO_OUT);

    gpio_init(PIN_CS1);
    gpio_init(PIN_CS2);
    gpio_init(PIN_CS3);
    gpio_init(PIN_CS4);
    gpio_init(PIN_CS5);
    gpio_init(PIN_CS6);
    gpio_init(PIN_DC);
    gpio_init(PIN_RST);
    gpio_init(PIN_BLK);
    
    gpio_set_dir(PIN_CS1, GPIO_OUT);
    gpio_set_dir(PIN_CS2, GPIO_OUT);
    gpio_set_dir(PIN_CS3, GPIO_OUT);
    gpio_set_dir(PIN_CS4, GPIO_OUT);
    gpio_set_dir(PIN_CS5, GPIO_OUT);
    gpio_set_dir(PIN_CS6, GPIO_OUT);
    gpio_set_dir(PIN_DC, GPIO_OUT);
    gpio_set_dir(PIN_RST, GPIO_OUT);
    gpio_set_dir(PIN_BLK, GPIO_OUT);

    gpio_put(ONBOARD_LED, 1);
    gpio_put(PIN_CS1, 0);
    gpio_put(PIN_CS2, 0);
    gpio_put(PIN_CS3, 0);
    gpio_put(PIN_CS4, 0);
    gpio_put(PIN_CS5, 0);
    gpio_put(PIN_CS6, 0);
    gpio_put(PIN_RST, 1);
    lcdInit(pio, sm, st7735_initSeq);
    gpio_put(PIN_BLK, 1);

    lcdStartPx(pio,sm);

    for (int i = 0; i < 160*80*2; i++){
       lcdPut(pio, sm, one_Flip[i]);
    }

    gpio_put(PIN_CS1, 1);
    for (int i = 0; i < 160*80*2; i++){
       lcdPut(pio, sm, two_Matrix[i]);
    }

    gpio_put(PIN_CS2, 1);
    for (int i = 0; i < 160*80*2; i++){
       lcdPut(pio, sm, three_Digital[i]);
    }

    gpio_put(PIN_CS3, 1);
    for (int i = 0; i < 160*80*2; i++){
       lcdPut(pio, sm, four_VFD[i]);
    }

    gpio_put(PIN_CS4, 1);
    for (int i = 0; i < 160*80*2; i++){
       lcdPut(pio, sm, five_Ink[i]);
    }

    gpio_put(PIN_CS5, 1);
    for (int i = 0; i < 160*80*2; i++){
       lcdPut(pio, sm, six_Wood[i]);
    }
}

For the SPI Display Array clock Firmware go to the Part2 of this project.


image/svg+xmlOpen Source Licenses HardwareSoftwareDocumentationCERN-OHL-P-2.0GPL-3.0-or-laterCC-BY-4.0


Visit my Tindie Store for the assembled board.

Download


nRF52832 PRO Panel

This is a new project using the nRF52832 BLE MCU as a very versatile development platform that will allow me to do many projects that requires a connection over Bluetooth and also can perform actions to control basic systems, as data acquisition, data display, motor control, graphical interfaces and much more.

This board dimension is 48x18mm with 30 castellated holes on the side, a micro USB connector for power, and programming through a USB to serial converter CP2104, two tactile switches for user interface and firmware programming, 1 user LED.

I have made a small panel for easy fabrication, This panel dimensions are 92x66mm including the tooling rails at the sides. In this panel I want to test several things that a usually do not order in a regular PCB, such as tooling rails with tooling holes, external fiducial, Logo with EING finish at the top tooling rail, solder mask and cooper restrictions for text and logos, and castellated holes in a routing job, v-score at the edges of the board as well on the tooling rails.

I quoted this panel in many PCB Manufacturing houses and order some boards for the best price in the market that includes all the characteristics described above with PCBWay. (Even cheaper than the well-know 2 USD – 5PCS PCB Manufacturing House).

These board are now getting manufactured, the customer service has been awesome so far, as I ask to place the UL Marking on the Top Silkscreen layer in the bottom layer of this panel and received a preview of confirmation of this requirement, and received awesome feedback regarding the Vscore and Solder mask capabilities.

Making this board possible required some knowledge in PCB Manufacturing that I will below describe the research and application.

Castellated Holes: Also know as castellations are plated through-holes or vias at the edge of a board cut in the middle by a router making them pads that can be soldered to another PCB and make subassemblies.

The PCBs have finally arrived, here are some photos.

If you are thinking about ordering some PCBs and start your own prototypes I recommend you to try PCBWay.

https://www.pcbway.com/

MKL26 and MK26F Feather prototyping boards

Most of the Adafruit Feather use microcontrollers from Atmel, Esspresif and Nordic and it’s hard to find them with other brand microcontrollers, There are some feathers with the newest NXP Crossover MCUs, and that is why I have decided to add some MID-Range and Low power consumption ones.

The MKL26 Feather is a board that packs the NXP/Freescale MKL26 which has an ARM Cortex M0+ core at 48Mhz with 256kb of Flash and 32Kb of RAM. The board includes a microSD socket and RGB LED.

The MK26F Feather is a board that packs the NXP/Freescale MK26F which has an ARM Cortex M4F core at 180Mhz with 2Mb of Flash and 256Kb of RAM, it also has an RGB LED and socket for microSD but with an SDHC interface instead of SPI.

Having the Adafruit Feather format it’s very useful in case that you are working with other microcontrollers with different characteristics and this way it is easy to switch for project capabilities expansion.

I will use these boards with other projects to show you what kind of applications we can do with them. If you are interested you can purchase them at my Tindie Store.

MK26F Development Board

I personally like to work with NXP/Freescale microcontrollers, and that is why I have designed a development board with the intention to also expand to other brands of microcontrollers.

I have called this board a Pyramid, stating with the MK26F2M0VMD18 which come in a BGA144 footprint with a pitch between balls of 1mm, This MCU is a very nice microcontroller as its an ARM Cortex M4F with a CPU clock of 180Mhz in the High-Speed mode configuration with 2MB of Flash memory and 256Kb of SRAM. The board that I have designed includes an SDRAM of 16MB and an SDHC socket for SD Cards.

This board also includes a USB2.0 Host connector a couple of notification LEDs and an RGB LED. The board can be programmed through the JTAG/SWD port or by installing a USB Bootloader.

To this development board, I have also designed some boards called Blocks that will be swappable between the other brand MCU Pyramids.

If you are interested in this project please let me know in the comments section below.