For this board, we took Adafruit’s Feather M0 Express, which also happens to be a personal favourite of iLabs, and added an ESP8285 chip to it to give it extensive WiFi capability. With the experience that iLabs already had with the ESP8266, they knew it was the right way to go!
So the main controller of this board is the trusty SAMD21 with 256KByte of FLASH memory and 32KByte of SRAM. And just like the Feather M0 Express there is also an external 2Mbyte flash memory where you can store files systems or whatever that you need.
iLabs added an ESP8285 chip to this board. For those of you unfamiliar with this device, it is basically an ESP8266 device with an integrated 1MByte of flash memory. This allows us to have an AT command interpreter inside this chip that the main controller can talk to and connect to your local WiFi network. The communications channel between the two devices is an unused UART on the main controller and the standard UART on the ESP8285.
The ESP8285 chip comes pre-flashed with Espressif’s AT command interpreter stored in the internal 1MByte of the ESP8285. This interpreter support all of the operating and sleep modes of the standard ESP8266 framework which makes it easy to work with. Talking to the device is as easy as opening the second serial port (Serial2), resetting the ESP8285 and start listening for events and sending commands. To simplify this process we are also developing a library that is compatible with the standard ESP8266 environment.
The Challenger M0 WiFi board is 100% compatible with the Arduino framework. It has a unique board support package that fully supports all the features of the board. You can also install and run CircuitPython on the board if this is what you want to do.
While it is possible to run CircuitPython or micropython on this board we do not recommend it. The RAM size is just not enough to be able to take advantage of the libraries available to control the WiFi chip on board. We have made available a UF2 image that you can use to try it out but we will not push this to the main CircuitPython repo.
USB Type C
In recent years we have noticed that we are seeing more and more USB Type-C cables laying around the lab due to the fact that most new phones and accessories use them. So iLabs decided to go for a USB Type-C connector for this board. A bonus of this is that they are more durable and you don’t have to fiddle with the cable before plugging it in!
The board comes with loose headers that can be soldered to the board if your application requires it.
- Sturdy USB Type C connector
- ATSAMD21G18 @ 48MHz with 3.3V power
- 256KB FLASH + 32KB RAM
- 2 MByte of NOR FLASH memory
- 32.768 KHz crystal for clock generation & RTC
- 3.3V regulator with 600mA peak current output, most of which is reserved for the board itself
- USB native support, comes with UF2 USB bootloader
- 20 GPIO pins
- Hardware Serial, hardware I2C, hardware SPI support
- PWM outputs on all pins
- 6 x 12-bit analog inputs
- 1 x 10-bit analog ouput (DAC)
- Built-in 250mA lipoly charger with charging status indicator LED
- Pin #13 red LED for general purpose blinking
- Power/enable pin
- 4 mounting holes
- Reset button
- ESP8285 WiFi chip with onboard antenna
- Neopixel-compatible LED that indicates board status but that can be used by the programmer
- SAMD21G18A 3.3V
- 256 KByte FLASH Memory
- 32 KByte SRAM Memory
- 1 Hardware I2C channel
- 1 Hardware SPI channel
- 1 Hardware UART for the user
- 1 Hardware UART connected to the network processor
- 12 Bit ADC
- 32.768 Crystal oscillator for low power operation
- ESP8285 with internal 1MByte FLASH Memory
- WiFi (2.4GHz)
- Espressif AT Interpretor
- 2 MByte external SPI FLASH memory
- Neopixel-compatible LED
- LiPo charger circuit with 250mA charging current
- USB Type C connector
- Arduino board package source files
- Simple AT command library and example to get started using the Challenger with AT commands
- Hardware files
- Espressif AT Command set
- RF Tuning results
Here’s a short step by step instruction on how to install the Arduino board support package that you need to be able to access all the features of the board.
- Start your Arduino IDE (It needs to be 1.8.5 or higher)
- Select menu choice “File” and then “Preferences”. You can also type Ctrl+comma (Ctrl-,) on your keyboard.
- Now add the URL “https://invector.se/files/package_ilabs_index.json” into the “Additional Boards Manager URLs” field.
- Click OK to close the preferences dialog.
- Now open the Boards Manager by selecting it in the “Tools->Board:” menu
- Scroll down until you see “Invector SAMD Boards” or search for Invector.
- Move your mouse to the box and click on install.
That is it, when the process is done you are ready to select the “Invector Labs Challenger M0 WiFi” board in the board menu and start writing software for it.
While it is possible to run CircuitPython or MicroPython on this board we do not recommend it. The RAM size is just not enough to be able to take advantage of the libraries available to control the WiFi chip on board. We have made available a UF2 image that you can use to try it out but we will not push this to the main Circuitpython repo.
- 1x Challenger M0 WiFi board
- 2x Pin headers