MDBT42Q Bluetooth Module
- KEYWORDS: Espruino,Official Board,MDBT42Q,MDBT42,nRF52832,nRF52,Nordic,Pinout,Bluetooth,BLE,Bluetooth LE
- BUYFROM: £12,£5.96,https://shop.espruino.com/mdbt42q,/Order#mdbt42q
- Breakout board with 0.1" pins, voltage regulator, Button and LEDs
- Bare module (0.7mm pin pitch, surface mount)
Just got your MDBT42Q? Take a look here!
Note: We only provide support for MDBT42 modules purchased from us. Other modules don't have a bootloader installed and will need connecting to a programmer tool to have firmware installed.
- Bluetooth Low Energy
- nRF52832 SoC - 64MHz ARM Cortex M4, 64kB RAM, 512kB Flash
- 32 x GPIO (capable of PWM, SPI, I2C, UART) on 0.7mm Pitch, including 8 analog inputs
- 1.7v - 3.6v voltage range (on bare module)
- Built in thermometer
- Dimensions: 16mm x 10mm x 2.2mm thick
Breakout board features
- 2.5 - 16v voltage input (on breakout board), 20uA power draw when advertising
- 0.1" pin header (With 22 GPIO, 7 analog inputs)
- Red and Green LEDs
Check out the section below on Powering - the bare MDBT42Q module and the breakout have slightly different requirements.
Apply power between any
GND pins. Any voltage between 2.5 and 16 volts
will work - just be careful not to get the polarity wrong! Check the pinout below
for more information on the location of pins.
D9/D10 on the bottom edge of the board in the pinout
there are two 2mm-spaced pins. These can be used to fit a JST PHR-2 battery connector
as mentioned on the Battery page - these are very common for LiPo batteries,
which are a good fit for the module.
All you need to get the MDBT42Q working is to apply power between the
GND pins. A 3v non-rechargeable lithium cell is ideal for this (LiPo batteries
have a voltage that is too high and will need the voltage dropping with a diode
or voltage regulator). Check the pinout below for details on where to
It is recommended to connect all the
GND pins together (especially when
designing a PCB) but it is not absolutely required - you can boot the
MDBT42Q module with just two wires.
- No advertising - 5uA
- Advertising - 80uA
- Connected via BLE - 900uA (idle 40uA)
- LED1 on - 10mA
- Using NRF.findDevices to scan for devices - 12mA
While there are no buttons or LEDs on the bare module, the MDBT42Q build assumes the following (which are connected on the breakout board):
- There is a button (
BTN1) between pin
D0and 3.3v. Pulling this high on boot enables the bootloader.
- There is a LED (
LED1) between pin
D1and GND. This is flashes at boot and also indicates bootloader mode.
The breakout board also contains a green LED (LED2) on pin
D2 (Espruino 1v99 and earlier require
global.LED2=D2 to use this). Since
D2 is an analog input it is possible to detect ambient light using
analogRead(LED2) - values range from around 0 (dark) to 0.25 (bright).
Occasionally you may manage to save code to your MDBT42Q that then runs at boot and stops you connecting to it, effectively 'bricking' it.
Recovering it easy:
- Follow the step for a firmware update, but leave
D0pressed/connected for 5 seconds (or until the LED goes out).
- Espruino will now have booted without loading any saved code, however the code will still be there and the next time you reset it the code will be loaded as normal.
- You can now connect normally with the IDE and continue.
- To reset completely, type
reset(true)into the REPL. This will remove any saved code that is present in the MDBT42Q so even after a reset, your code will not be loaded.
First, it's best to check out the Getting Started Guide
Tutorials using MDBT42Q:
- APPEND_USES: MDBT42Q
Tutorials using Bluetooth LE:
- APPEND_USES: Only BLE,-MDBT42Q
Tutorials using Bluetooth LE and functionality that may not be part of the MDBT42Q module:
- APPEND_USES: BLE,-Only BLE,-MDBT42Q
- APPEND_PINOUT: MDBT42Q
Note: The nRF52 port has one available I2C, SPI and USART (and infinite software SPI and I2C). Unlike other Espruino boards, these peripherals can be used on any pin.
The bare MDBT42Q module must be powered with a voltage between 1.7v and 3.6v. You can not connect a LiPo battery to it without a voltage regulator. However the breakout board contains a regulator that will work off of 2.5 to 16 volts.
- Eagle CAD footprint
- Eagle design files for breakout board and simple beacon
- PDF schematic and board layouts for breakout board and simple beacon
- nRF52832 Datasheet
- MDBT42 Datasheet
When power is first applied, the MDBT42Q checks if pin
RX on the breakout board) is at 3.3v (which will be the
case if it is connected to a Serial port's transmit line). If it is, it initialises
the on-chip UART on
D8 (MDBT42Q RX) and
D6 (MDBT42Q TX) and puts the Espruino
console (REPL) on it at 9600 baud.
To use it, connect to a 3.3v output USB to TTL converter as follows:
||3.3v (Optional - to run without a battery)|
You can now use the normal Espruino Web IDE, or a serial terminal application at 9600 baud.
When you connect via Bluetooth, the console will automatically move over. To
stop this, execute
Serial1.setConsole(true) to force the console to stay on
Note: Serial1 is not enabled by default because it requires the high speed oscillator to stay on, which increases power draw a huge amount. If you connect the UART but don't power down and power on the MDBT42Q, you won't get a serial port.
Up to date firmwares are available from the Download page.
Check out the Puck.js firmware update instructions
for full details. All you need to do is apply power to your module with
D0 connected to
BTN held down on the breakout board), then
release it after a second to enter bootloader mode. The module will advertise
DfuTarg, and you can then connect with the
nRF Connect app and
write new firmware.
Note: If you hold
BTN (or leave
D0 connected to
VDD) for too long (> 3 sec),
the MDBT42 will leave bootloader mode and will instead start Espruino without loading
saved code, allowing a hard reset to be performed.
Other Official Espruino Boards
- APPEND_KEYWORD: Official Board