.. leading zeros are required for `frontmatter` to treat them as dates
rather than strings, apparently per the YAML specification.
This was done by script:
```py
import re
import datetime
import pathlib
import sys
import frontmatter
rx = re.compile(r'^(\s*)date_added:.*$', re.M)
for path_str in sys.argv[1:]:
print(path_str)
path = pathlib.Path(path_str)
post = frontmatter.load(path)
date_added = post.get("date_added", "")
if isinstance(date_added, datetime.date):
continue
if isinstance(date_added, str):
try:
date_added = datetime.datetime.strptime(date_added, "%Y-%m-%d")
except ValueError as exc:
print(f"Failed to parse date {date_added} in {path_str}: {exc}")
continue
date_added = date_added.date()
content = path.read_text("utf-8")
new_content = rx.sub(lambda m: f"{m.group(1)}date_added: {date_added}", content)
assert content != new_content
path.write_text(new_content, "utf-8")
```
2.6 KiB
| layout | board_id | title | name | manufacturer | board_url | board_image | date_added | family | features | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| download | challenger_840 | Challenger 840 BLE Download | Challenger 840 BLE | Invector Labs |
|
challenger_840.jpg | 2022-04-01 | nrf52840 |
|
The Challenger 840 BLE board is an Arduino/Circuitpython compatible Adafruit Feather format micro controller board packed with loads of functionality for your projects that require low power consumption and a BLE connection.
The main controller of this board is the Nordic Semiconductor nRF52840 with 1MByte of FLASH memory and 256KByte of SRAM. The nRF52840 SoC is the most advanced member of the nRF52 Series. It meets the challenges of sophisticated applications that need protocol concurrency and a rich and varied set of peripherals and features. It offers generous memory availability for both Flash and RAM, which are prerequisites for such demanding applications.
The nRF52840 is fully multiprotocol capable with full protocol concurrency. It has protocol support for Bluetooth LE, Bluetooth mesh, Thread, Zigbee, 802.15.4, ANT and 2.4 GHz proprietary stacks.
In the recent years we have noticed that we are seeing more and more USB Type C cable laying around the lab due to the fact that all new phones and accessories use them. As of yet we haven’t seen any shortage of micro USB cables but we are not getting any new ones any more and old ones do break occasionally. So we decided to go for a USB Type C connector for this board. A bonus of this is that they are quite bit more durable and you don’t have to fiddle with the cable before plugging it in.
The board is packed with hardware features, here’s a short list of its most prominent ones.
– Sturdy USB Type C connector – nRF52840 @ 64MHz – 1MB FLASH + 256KB 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 – 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 – Neopixel LED that indicates board status but that can be used by the programmer