Skip to the content
2 layers55 × 28 mmRTL8720DN multi function board, the printed circuit board in 3D

RTL8720DN multi function board

mikey60/BW16-RTL8720DN-Module-Arduino61

BW16 (RTL8720DN) Module - Getting Started with Arduino

Size
55 × 28 mm
Copper layers
2
Thickness
1.6 mm
Parts
27
Nets
23
Pads
87
Tracks, vias
316, 53
Pours
5
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
16 Feb 2021
Updated
7 Jul 2021

Overview

RTL8720DN multi function board is an open-source printed circuit board by mikey60, from the mikey60/BW16-RTL8720DN-Module-Arduino repository on GitHub. It is a 2-layer board of 55 × 28 mm with 27 parts on 23 nets, routed with 316 tracks and 53 vias.

It is built around the BW16, 74HC02 and AMS1117-3.3. Its parts include 8 connectors, 7 resistors, 5 capacitors, 3 ICs and 2 switches.

Main components

3

README

README.md

BW16 (RTL8720DN) Module - Getting Started with Arduino

Revisions

  • March 3, 2021 - Implemented the recommendation from @moononournation that changes the variant.cpp file to be compatible with the SPI1 pin definition in the SPI.cpp file. This simplifies the sketches that use SPI so that the creation of another SPIClass is not required. So this is a 'major' change for the sketches that use SPI. A new 'modified variant.cpp can be found in the variant_cpp_mod folder. I also corrected and updated some comments in the sketches.

  • March 17, 2021 - Slightly updated the RTL8720DN multi function board with additional Power and ground connection holes. Added a sketch for rtlduino/BW16 board. The sketch describes the modifications to make the board more useful.

  • March 24, 2021 - Added RTL8720DN/BW16 and rtlduino pinout images supplied by @moononournation.

  • March 28, 2021 - Small corrections, add information on rtlduino modifications and link to @moononournation Instructable to program rtlduino.

  • July 7, 2021 - Include a modified variant.h file in the variant_cpp_mod folder so the AT serial can be used as noted by @flowlow in the issues.

Background

  • I decided to try the BW16 (RTL8720DN) module because it supports 5GHz WiFi and my 2.4 GHz WiFi band is very busy with old electronics, WiFi security cameras, neighbors networks, microwave oven and many IOT 2.4 GHz only (ESP8266 and ESP32) modules connected. My 2.4 GHz channel can quite often spike over to over 40% utilization whereas my 5GHz channel is less than 10%. I also recommend creating a second WLAN with only a 5 GHz channel. It should also use a different SSID than the main WLAN. That way the module can only connect to the 5 GHZ and won't connect to the 2.4 GHz because it has a stronger signal.

  • The module I purchased is from Digikey for $4.25 Part number ‎1597-102110419-ND‎, manufactured by Seeed Technology Co., Ltd. It can be purchased on ebay, AliExpress, and of course the Seed Studio website.

Getting Started with Arduino and BW16 Module

  • To get started with arduino I used the ambd_arduino package found at https://github.com/ambiot/ambd_arduino/tree/master/Arduino_package.
  • I followed the Arduino IDE installation instructions as outlined in step 2 of the webpage at https://www.amebaiot.com/en/amebad-arduino-getting-started/
  • One the package is installed the variant.cpp file needs to be modified to map some of the pins of the BW16 module. This file can be found at "C:\Users\your_user\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.0.7\variants\rtl8721d\variant.cpp" where "your_user" is the user name of the your windows login. Version 3.0.7 was the latest version at this time. The modified file can be found in the variant_cpp_mod folder. The modifications made to the variant.cpp file are shown in the 'variant.cpp changes.png file found in the info folder. The original variant.cpp file will have to be replaced with the modified file every time the package is updated. I am sure that there is a better way to do this probably by creating a RTL8720DN/BW16 variant. Thanks to @moononournation, pinout pictures for the RTL8720DN and the rtlduino devices that include the Arduino pin numbers defined in the modified variant.cpp file are shown below. Larger images of the pinouts can be found in the Info folder.
  • Many of the example sketches of the repository found in the sketches folder have been modified from the original examples in the Realtek Arduino package. In many cases the pin numbers were changed to work with the BW16 module. I also modified code to use the hardware SPI channel 1 of the BW16 module.
  • I could not figure out how to easily get the BW16 module to work with the FastLED library so I opted to use the APA102/sk9822 LED strips that use both data and clock lines and can be driven with the SPI hardware.
  • The Hard way to get started is to attach breadboard interconnect pigtails to all the pins of the BW16 module. See the Hard_way_to_test pictures in the info folder.
  • An easy way to get started is to solder the module to an ESP8266 Serial Wireless WiFi Module Adapter Plate. These are ones I purchased: https://www.amazon.com/gp/product/B07WDBLQ7H/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1 The pulldown resistor on pin 10 should be removed. I did not install the LDO regulator. I just plugged the module adapter into a solder-less breadboard and supplied +3.3 volts to the VCC pin and ground to the GND pin. I connected a SPST switch from pin 3 (CHIP_EN) to ground and a second SPST switch from pin 11 (PA7) to ground through a 2K resistor to put the module in download mode like the ESP modules. I then used a USB to 3.3v TTL adapter to connect to TXD (PA7) and RXD (PA8) pins. See the pdf schematic in the 'RTL8720DN multi function board' folder for reference for the connections. A BW16 product specification can be found in the info folder. A picture of the board with the mounted BW16 module and the labeled pins is shown below.
  • Before downloading you can interact with the BW16 module using pins 15 (PB2/LP_UART_RXD) and pin 16 (PB1/LP_UART_TXD) connected to the USB to 3.3v TTL adapter with AT commands. You can also interact with the Test Command Mode by connecting the USB to 3.3v TTL adapter to the TXD (PA7) and RXD (PA8) pins. See the txt files in the info folder for brief captures of the interactions. Note that once the BW16 module is downloaded with an arduino sketch those interfaces are no longer available unless you somehow reload the original firmware.

  • To put the module in the download mode:

    text
      Press and hold the switch to PA7.
      Press and release the switch to the CHIP_EN pin.
      Release the switch to PA7.  
  • A another way to use the BW16 module is to use an ESP8266 Burning Fixture Development Board but that requires some cuts, jumpers and a resistor to work properly. Then a separate 3.3 volt power supply and USB to 3.3v TTL adapter are not required.

  • The 'RTL8720DN multi function board' folder contains all the files for a 'general purpose' PCB that I created using KiCad for the door switch and MQTT Digital LED projects.

  • rtlduino module modifications - In my opinion the USB port should be connected to the LOG_TX and LOG_RX pins rather than the AT_TX and AT_RX pins. I don’t believe that many people use the AT port. The first thing I did is cut and jumper the board so the USB port was connected to the LOG port so I could do downloads and terminal interaction with the USB using Arduino. Also I replaced the zero ohm resistor in series with the burn switch with 1.8 Kohm to comply with the >1 Kohm of the ‘GPIO Pull Low Restriction’ of the RTL872xD data sheet. See the 'rtlduino_modifications.pdf' file in the Info folder. Another way to program the rtlduino can be found at https://www.instructables.com/RTL8720DN/.

Parts

27
QtyValueFootprintReferences
20.47ufResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderC1, C2
210KResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR5, R6
21MegResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR3, R4
22.1mmMountingHole:MountingHole_2.1mmHole1, Hole2
222ufResistor_SMD:R_1210_3225Metric_Pad1.42x2.65mm_HandSolderC3, C4
10Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR7
10.1ufResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderC5
11KResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR2
12KResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR1
174HC02Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU2
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U3
1BW16RTL8720DN:BW16U1
1DNLOADButton_Switch_SMD:SW_SPST_EVQPE1SW2
1GPIO1Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ5
1GPIO2Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ4
1GPIO3Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ6
1Mag SwitchConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ1
1PowerConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ3
1PwrConnector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ8
1Pwr Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ7
1RESETButton_Switch_SMD:SW_SPST_EVQPE1SW1
1UARTConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ2

Similar boards

  • 2 layers335 × 218.6 mmMSX Goauld, the printed circuit board in 3D

    MSX Goauld

    leomanes/stargate

    Stargate MSX Compatible Computer

    298 parts18GPL-3.0
  • 2 layers91.3 × 91.3 mmWing combo, the printed circuit board in 3D

    Wing combo

    Toolauth/wing-combo

    A large Feather Wing board that can control tools and helps manage authorization in a community workshop

    135 parts1
  • 2 layers99.1 × 99 mmXDuinoRail Debug, the printed circuit board in 3D

    XDuinoRail Debug

    chatelao/xDuinoRail-Decoder

    The friendly decoder development plattform for model railroad tinkers.

    170 partsAGPL-3.0
  • 4 layers54.9 × 75.8 mmAS2650-bring up, the printed circuit board in 3D

    AS2650-bring up

    AvalonSemiconductors/AS2650-bring-up

    Hardware and Software used during bring-up of the GFMPW-0 AS2650.

    65 partsApache-2.0
  • 2 layers245.1 × 160 mm8-Bit CPU 32k, the printed circuit board in 3D

    8-Bit CPU 32k

    slu4coder/Minimal-64x4-Home-Computer

    My DIY TTL home computer with VGA and PS/2 and 4x the processing power of a Commodore C64 or Apple II.

    139 parts326
  • 2 layers191.8 × 121.3 mm8-Bit CPU 32k, the printed circuit board in 3D

    8-Bit CPU 32k

    slu4coder/Minimal-UART-Computer-1-2

    Legacy: Version 1 and 2 of my TTL-only CPU featuring UART I/O, an expansion port, 512KB SSD at up to 10MHz clock speed

    109 parts184
  • 2 layers203.2 × 149.9 mm65C02 Computer, the printed circuit board in 3D

    65C02 Computer

    dbuchwald/6502

    DB6502: 65C02 based computer inspired by BE6502

    68 parts177MIT

Questions

How big is the RTL8720DN multi function board PCB?

It measures 55 × 28 mm and has 2 copper layers, 1.6 mm thick.

What parts does the RTL8720DN multi function board use?

27 parts, built around the BW16, 74HC02 and AMS1117-3.3. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the RTL8720DN multi function board KiCad files?

From the mikey60/BW16-RTL8720DN-Module-Arduino repository on GitHub, at the commit this page was made from: the board is RTL8720DN multi function board/RTL8720DN multi function board.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the RTL8720DN multi function board design in my own project?

Its repository states no licence, so its author keeps all rights: ask mikey60 before reusing the design.