Skip to content

MaESP nRF52840


MaESP nRF52840 is a powerful, generic BLE MCU module targeted to Arduino/CircuitPython learners & developers. It is truly “breadboard compatible”, with the very detailed pins explanation, it is easy to learn& use. The nRF52840 is ready to take advantage of the considerable performance improvements for Bluetooth Low Energy (LE) with the arrival of the Bluetooth 5 specification. Of greatest importance is the support for longer range (up to x4 compared to Bluetooth 4.x) and doubling of on-air data rate, up to 2 Mbs from 1 Mbs in Bluetooth 4.x

The MaESP nRF52840 leads out all pins of Nordic nRF52840, which is programmed with CircuitPython by default, users can begin the CircuitPython development by getting them on hand. It is also compatible with the Arduino making it easy to get started if the correct bootloader is downloaded. There are also the Makerfabs MaESP ESP8266, MaESP ESP32 and so on.




  • Bluetooth Protocols: Bluetooth 5, IEEE 802.15.4-2006, 2.4GHz transceiver/Bluetooth mesh/Thread/Zigbee
  • Bluetooth Data rates: Bluetooth 5: 2 Mbps, 1 Mbps, 500 kbps, 125 kbps/IEEE 802.15.4-2006: 250 kbps/Proprietary 2.4 GHz: 2 Mbps, 1 Mbps
  • Bluetooth Current: 4.9mA peak current in TX(0 dBm)/4.8mA peak current in RX/0.4uA at 3V in OFF Mode, no RAM retention/1.3uA at 3V in ON Mode, no RAM retention, wake on RTC
  • Bluetooth Sensitivity: -95dBm(in 1Mbps BLE Mode)/-103dBm(in 125Kbps BLE Mode)
  • Bluetooth Frequency range: 2.405GHz-2.485GHz
  • CPU: ARM Cortex-M4 32-bit processor with FPU
  • CPU clock frequency: 64MHz
  • Module interfaces: USB 2.0 full speed(12MHz), UART, High Speed 32Mhz SPI, 2x I2C(100kbps/250kbps/400kbps), I2S, LED PWM, GPIO, ADC, SWD
  • nRF52840 Supply Voltage: 1.7V~5.5V
  • On-chip Internal RAM: 256 KB
  • Integrated flash: 1 MB
  • Integrated crystal: 32 MHz crystal
  • Integrated clock crystal: 32.768KHz crystal
  • Timer: 5X 32-bit timers with counter mode
  • Board Supply Power: 5V, Integrated 5V-to-3.3V LDO
  • OLED: 1.3inch SSD1306/SSD1315
  • Recommended operating temperature range: –40 °C ~ +85 °C
  • Board size: 72mm length, 32.6mm width
  • Moisture sensitivity level(MSL): Level 3



Circuitpython firmware

MaESP nRF52840 had supported the circuitpython programming by default, you can goto Project_1: Display to begin the CircuitPython programming as getting them on hand.

Those steps show how to download the Circuitpython firmware if you had a nrf52840 board not support Circuitpython. Steps to download firmware:

1.Download J-link (If you had already downloaded, skip this step)

2.Connect J-link to the board of NRF52840:


3.Open J-Flash and select:



4.Select nRF52840_xxAA


5.Set interface default SWD and 4000kHz.


6.Download firmware: makepython_nrf52840_uf2_bootloader_5.2.0-71_s140.hex

Open the file and select the firmware you just downloaded (Powered by MicroUSB port)


7.Follow those steps to download:


8.Press RST on the board, you can see a U disk with three files in it.


  1. Copy circuitpython-for-makepython-nrf52840.uf2 to the USB disk.

CircuitPython Project_Display

1.Click to download the sample file: OLED-SSD1306

2.Unzip the "OLED-SSD1306" to the CIRCUITPY disk., and copy the the the lib where in the "OLED-SSD1306" to CIRCUITPY disk's lib


3.Download and install the "Thonny", click the OLED-SSD1306>>

4.Open the Thonny

  • click the Tools>>options, and choose the interpreter and port as follows.


  • click the "view" and choose "File", to open the File window, then click the stop button, A CircuitPython device will appear in the file window


  • Choose OLED-SSD1306>>, click the green button in the console, you can program in to achieve other functions.




Arduino firmware

MaESP nRF52840 is also compatible with Arduino, if you download the correct bootloader, you can start Arduino development. The previous steps 1 to 6 of downloading firmware are the same as Circuitpython. Replace the file of step 5 with this Arduino firmware: pca10056_bootloader-0.3.0_s140_6.1.1.hex

Arduino Project_1: Display animation

Plug the USB cable into the front MicroUSB port (the side with the screen)

1.Add Arduino board:

NRF52840_Arduino 15.jpg

Additional Board Manager URLs:

2.In Boards Manager, enter the keyword nrf52840 and install Adafruit nRF52 NRF52840_Arduino 16.jpg

3.Nordic nRF52840DK(PCA10056) and the corresponding serial port were selected

NRF52840_Arduino 17.jpg

4.Download and open the example program ssd1306_128x64_i2c:



Arduino Project_2: Bluetooth communication

We use the WS2812B RGB LED Module at: We use the WS2812B RGB LED Module at:


Sensor Connection

  • Connect the simple sensor to NRF52840 boards as follows:
WS2812 Pins MaESP NRF52840 Pins
DI 30

Download and open the sample program Neopixels.ino

Mobile phone download and install a Bluefruit App: Bluefruit

Open the APP and search the bluetooth device (open the bluetooth of the phone and locate)

Select Neopixels after connection

Select a color, click on the bottom right corner

The WS2812 will display the specified color




You can list your question here or contact for technology support. Detailed descriptions of your question will be helped to solve your question.