Challenger NB RP2040 WiFi Datasheet
The Challenger NB RP2040 WiFi is a small embedded computer equipped with a WiFi module, in a slightly modified version of the popular Adafruit Feather form factor. It is based on an RP2040 micro controller chip from the Raspberry Pi foundation which is a dual core Cortex M0 that can run on a clock up to 133MHz.
For more information about the RP2040 you can look here.
We paired the RP2040 with a 8MByte high speed flash capable of supplying data up to the max speed. The flash memory can be used both to store instructions for the micro controller as well as data in a file system and having a file system available makes it easy to store data in a structured and easy to program approach.
The Challenger NB series boards is a slightly modified version of the regular Challenger boards. We realized that not all applications require the ability to be powered by a battery and to have the on board battery charging circuit. So we developed a version that does not have the battery connector or the charging circuit. Hence the “No Battery” (NB) version. And in place of the battery connector we have added extra GPIO pins. Other than this it is the same popular board as the Challenger RP2040 WiFi.
The WiFi section on this board is based on the Espressif ESP8285 chip which basically is a ESP8266 with 1MByte FLASH memory integrated onto the chip making it a complete WiFi only requiring very few external components.
The ESP8285 is connected to the micro controller using a UART channel and the operation is controlled using a set of standardized AT-commands.
Short introduction to the board
The board is based on a popular form factor called “Feather” which is created and maintained by an American company called Adafruit. The entire specification for the Feather format is available here. The size of the PCB for the module is 50.80mm x 22.86mm but the entire module is a little bit bigger as the Type C USB connector protrudes about 1 mm outside the board. Note that the NB boards differs slightly from the standard by not having the battery connector but GPIO header pins instead.
On the opposite end from the USB connector the WiFi antenna is mounted. When mounting the board into any enclosure you should make sure to keep stuff like cables and/or walls from the enclosure away from the antenna as much as possible. Anything mounted in the vicinity of the antenna will affect its performance.
On boards with the U.FL connector option you need to attach an external antenna to this connector. In this case having cables and other objects in the vicinity of the board does not affect RF performance. Instead, more care needs to be taken when considering the placement of the external antenna. Depending on the antenna you have selected the antenna manufacturer can give you instructions on what to consider when deciding its placement.
On each of the longer sides of the PCB there are holes intended for soldering pin header connectors. If you don’t want to use connectors for some reason you can also solder a wire directly into the hole, making a permanent connection to your external device. If you go this way please make sure that the wires are fixed in place, otherwise vibrations can cause the wire to brake at the soldering point.
On each side of the USB connector there is a small indicator LED placed.
The LED which is marked PWR is a power on indicator, this is a green LED that will shine as long as the board have power applied to it.
On the other side of the USB connector there is a user programmable yellow LED. This LED is connected to pin D15 (LED_BUILTIN) and can easily be controlled by the user program.
Finally there is a neopixel LED on the board. This is an RGB LED with intensity control, run by a single GPIO pin on the board. There are several good example libraries that can be used to drive this LED. Check out the examples section for more detailed information.
The on board micro controller (RP2040) have a number of communication channels that have been routed out to the side (header connector) connectors.
- UART – One UART channel have been routed to the header pins (RX, TX). The micro controller have 2 UARTs, on this board the second UART is used for communicating with the WiFi chip.
- SPI – One SPI channel have been routed to the header pins (SCK, SDO, SDI).
- I2C – One I2C channel have been routed to the header pins (SCL, SDA).
- Analog pins – The micro controller have 4 analog input pins that all are available on the header pins (A0-A3).
- PWM – All pins can be used for PWM.
The pin chart below shows the placement of all pins and their respective functions. When working in an Arduino environment (or Platform IO) use the blue pins when writing your code and when working with CircuitPython use the orange marked pin assignments.
The board can be powered from multiple sources. The most obvious way to run the board is by plugging it in to a USB cable and attach it to your computer. In this mode you can write software and test the board with all its functionality.
You can also supply the board with 5V via the header connectors on the PWR pin.
There is also a third way to supply the board. This way is more invasive and will disable the onboard 3.3V power regulator. When doing this you will have to pull the EN header pin low and then supply your own 3.3V voltage on the 3.3V header pin. Please note that when disabling the onboard power regulator you will have to supply the 3.3V also when running the system on battery power.
Connection between MCU and ESP8285 WiFi controller.
The board uses the second UART (UART 1) of the MCU to connect to the ESP8285 as well as two GPIO pins that allows the RP2040 to reset and put the ESP8285 in flash mode. The pins used are as follows.
- GPIO4 acts as UART1 TXD
- GPIO5 acts as UART1 RXD
- GPIO19 is connected to ESP8285 reset and is active low (PIN_ESP8285_RST in the arduino IDE).
- GPIO13 Is connected to the mode pin of the ESP8285. If it is pulled low at the same time the reset signal is going high the chip will enter flash mode (PIN_ESP8285_MODE in the arduino IDE).
The WiFi chip runs an internal AT interpreter, over the UART lines, to do all the wireless communication. It supports baud rates up to 921600 bits/s allowing the system to have a throughput of up to 500Kbit/s TCP traffic and up to 1MBit/s UDP messaging.
|50,80 mm x 22,86 mm x 3,20 mm
|USB Connector protrudes ~1mm outside PCB
|Main micro controller
|RP2040 from Raspberry Pi
|133MHz dual core Cortex M0
|One SPI channel configured
|One I2C channel configured
|One UART channel configured
|Second UART is for the WiFi chip
|4 analog input channels
|ESP8285 from Espressif
|160MHz single core Tensilica L106
|8MByte 133 MHz
|Divided into 6 banks
|USB 2.0 controller
|Up to 12MBit/s full speed
|Integrated USB 1.1 PHY
|Onboard NEOpixel LED