Skip to content

Commit ded60e8

Browse files
committed
docs: Update documentation for FoBE Quill nRF52840 and ESP32S3 Mesh
- Clarified instructions for firmware installation and programming. - Improved voltage measurement explanations and calculations. - Corrected minor grammatical errors for better readability. Signed-off-by: ChihoSin [email protected]
1 parent d3c63b1 commit ded60e8

File tree

8 files changed

+148
-140
lines changed

8 files changed

+148
-140
lines changed

docs/product/f1101/applications.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Double click the **Reset** button, there should be a `FoBE Boot` drive on your P
4343

4444
<br/><div style={{ textAlign: 'center' }}><img src="/img/screenshot/2025-07-21-14-46-54.png" alt="2025-07-21-14-46-54.png" style={{ width: '20%', height: 'auto' }} /></div><br/>
4545

46-
Drag the `firmware-fobe_quill_nrf52840_mesh-2.7.3.cf574c7.uf2` file to the driver. The download will run automatically, then the driver will log out.
46+
Drag the `firmware-fobe_quill_nrf52840_mesh-2.7.3.cf574c7.uf2` file to the drive. The installation will run automatically, then the drive will disappear.
4747

4848
</TabItem>
4949
<TabItem value="hex">
@@ -64,6 +64,6 @@ adafruit-nrfutil --verbose dfu serial --package firmware-fobe_quill_nrf52840_mes
6464
</TabItem>
6565
</Tabs>
6666

67-
That your can use the FoBE Quill nRF52840 Mesh with the Meshtastic network, you can now use the Meshtastic app to configure your device and start using it.
67+
Now you can use the FoBE Quill nRF52840 Mesh with the Meshtastic network. You can use the Meshtastic app to configure your device and start using it.
6868

6969
More information can be found in the [Meshtastic documentation](https://meshtastic.org/docs/).

docs/product/f1101/index.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ order: 1
2222
</div>
2323
## Introduction
2424

25-
The FoBE Quill nRF52840 Mesh is a compact and versatile development platform for IoT solutions. It combines Nordic's high-end multiprotocol SoC, the nRF52840, with Semtech's ultra-low-power sub-GHz radio transceiver, the SX1262 (packaged using SiP technology). Designed for IoT applications, it offers a comprehensive wireless connectivity solution, supporting protocols such as Bluetooth 5, Thread, Zigbee, IEEE 80.2.15.4, and LoRa®.
25+
The FoBE Quill nRF52840 Mesh is a compact and versatile development platform for IoT solutions. It combines Nordic's high-end multiprotocol SoC, the nRF52840, with Semtech's ultra-low-power sub-GHz radio transceiver, the SX1262. Designed for IoT applications, it offers a comprehensive wireless connectivity solution, supporting protocols such as Bluetooth 5, Thread, Zigbee, IEEE 80.2.15.4, and LoRa®.
2626

2727
This development board is feature-rich, including a battery charger, dedicated power path management, an ultra-low quiescent current DC-DC converter, a 1.14-inch color IPS display, user-programmable LEDs and buttons, an MFP expansion connector, a reversible USB-C connector, and header sockets for easy expansion.
2828

@@ -106,7 +106,7 @@ This development board is feature-rich, including a battery charger, dedicated p
106106
<td>Bluetooth® 5, Thread, Zigbee, IEEE 802.15.4, NFC-A Tag, 2.4 GHz proprietary<br/>Embedded SMD ceramic antenna</td>
107107
</tr>
108108
<tr>
109-
<td>ASR6500 on Board</td>
109+
<td>SX1262 on Board</td>
110110
<td>LoRa® (470 MHz for Model SLT, 868 - 915 MHz for Model SHT)<br/>iPEX-U.FL connector for sub-GHz external antenna</td>
111111
</tr>
112112
<tr>

docs/product/f1101/programming.mdx

Lines changed: 105 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ You can follow the official guide of [PlatformIO](https://platformio.org/platfor
1818

1919
1. Open the **PlatformIO Home** and navigate to **Platforms**.
2020
2. Click "Advanced Installation" button.
21-
3. Input the git repository url ```https://github.com/fobe-projects/fobe-nrf52-platformio.git#develop``` then click "Install" button, and wait for the installation to complete.
21+
3. Input the git repository URL ```https://github.com/fobe-projects/fobe-nrf52-platformio.git#develop``` then click "Install" button, and wait for the installation to complete.
2222

2323
<br/><div style={{ textAlign: 'center' }}><img src="/img/screenshot/2025-07-19-02-24-59.png" alt="2025-07-19-02-24-59.png" style={{ width: '80%', height: 'auto' }} /></div><br/>
2424

@@ -67,20 +67,20 @@ To install the MicroPython firmware, follow these steps:
6767
#### UF2 with USB Storage
6868

6969
1. Download the latest firmware file with the `.uf2` extension.
70-
2. Connect the FoBE Quill nRF52840 Mesh to your computer.
70+
2. Connect the FoBE Quill nRF52840 Mesh to your computer using a USB-C cable.
7171
3. Double-click the reset button on the device to enter bootloader mode.
7272

7373
<br/><div style={{ textAlign: 'center' }}><img src="/img/screenshot/2025-07-21-10-48-27.png" alt="2025-07-21-10-48-27.png" style={{ width: '80%', height: 'auto' }} /></div><br/>
7474

75-
3. Copy the `.uf2` file to the device storage "FoBE Boot".
76-
4. The device will reboot automatically, and the MicroPython firmware will be installed.
75+
4. Copy the `.uf2` file to the device storage "FoBE Boot".
76+
5. The device will reboot automatically, and the MicroPython firmware will be installed.
7777

7878
#### HEX with OpenOCD (CMSIS-DAP)
7979

8080
Hex files are used for programming the device using OpenOCD. Please make sure OpenOCD is installed and configured correctly.
8181

8282
1. Download the latest firmware file with the `.hex` extension.
83-
2. Connect the FoBE Quill nRF52840 Mesh to your computer.
83+
2. Connect the FoBE Quill nRF52840 Mesh to your computer using a USB-C cable.
8484
3. Connect the debug interface (CMSIS-DAP) to the FoBE Quill nRF52840 Mesh.
8585
4. Open a terminal and run the following command:
8686

@@ -139,122 +139,122 @@ Before you start, make sure you have Python installed on your system.
139139
2. Create a virtual environment for the project:
140140

141141
```bash
142-
# Create a new directory for the project
143-
python3 -m venv .venv
142+
# Create a virtual environment
143+
python3 -m venv .venv
144144

145-
# Activate the virtual environment
146-
source .venv/bin/activate
145+
# Activate the virtual environment
146+
source .venv/bin/activate
147147

148-
# Install the required packages
149-
pip install west
148+
# Install the required packages
149+
pip install west
150150
```
151151

152152
3. Create `.west/config` file in the project directory with the following content:
153153

154154
```ini
155-
[manifest]
156-
path = app
157-
file = west.yml
155+
[manifest]
156+
path = app
157+
file = west.yml
158158

159-
[zephyr]
160-
base = zephyr
161-
```
159+
[zephyr]
160+
base = zephyr
161+
```
162162
4. Create app folder and add some files like:
163163

164-
```
165-
.west/
166-
└── config
167-
app/
168-
├── CMakeLists.txt
169-
├── prj.conf
170-
├── west.yml
171-
└── src
172-
└── main.c
173-
```
174-
175-
Add `CMakeLists.txt` file with the following content:
176-
177-
```cmake
178-
cmake_minimum_required(VERSION 3.20.0)
179-
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
180-
project(app)
181-
182-
target_sources(app PRIVATE src/main.c)
183-
```
184-
185-
Add `prj.conf` file with the following content:
186-
187-
```ini
188-
CONFIG_GPIO=y
189-
```
190-
191-
Add `west.yml` file with the following content:
192-
193-
```yaml
194-
manifest:
195-
remotes:
196-
- name: zephyr
197-
url-base: https://github.com/zephyrproject-rtos
198-
- name: fobe
199-
url-base: https://github.com/fobe-projects
200-
projects:
201-
- name: zephyr
202-
remote: zephyr
203-
revision: main
204-
path: zephyr
205-
import: true
206-
- name: fobe-zephyr-sdk
207-
remote: fobe
208-
path: fobe
209-
revision: main
210-
```
211-
212-
Add `src/main.c` file with the following content:
213-
214-
```c
215-
#include <stdio.h>
216-
#include <zephyr/kernel.h>
217-
#include <zephyr/drivers/gpio.h>
218-
219-
/* 1000 msec = 1 sec */
220-
#define SLEEP_TIME_MS 1000
221-
222-
/* The devicetree node identifier for the "led0" alias. */
223-
#define LED0_NODE DT_ALIAS(led0)
224-
225-
/*
226-
* A build error on this line means your board is unsupported.
227-
* See the sample documentation for information on how to fix this.
228-
*/
229-
static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(LED0_NODE, gpios);
230-
231-
int main(void)
232-
{
233-
int ret;
234-
bool led_state = true;
235-
236-
if (!gpio_is_ready_dt(&led)) {
237-
return 0;
238-
}
164+
```
165+
.west/
166+
└── config
167+
app/
168+
├── CMakeLists.txt
169+
├── prj.conf
170+
├── west.yml
171+
└── src
172+
└── main.c
173+
```
174+
175+
Add `CMakeLists.txt` file with the following content:
176+
177+
```cmake
178+
cmake_minimum_required(VERSION 3.20.0)
179+
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
180+
project(app)
181+
182+
target_sources(app PRIVATE src/main.c)
183+
```
184+
185+
Add `prj.conf` file with the following content:
186+
187+
```ini
188+
CONFIG_GPIO=y
189+
```
190+
191+
Add `west.yml` file with the following content:
192+
193+
```yaml
194+
manifest:
195+
remotes:
196+
- name: zephyr
197+
url-base: https://github.com/zephyrproject-rtos
198+
- name: fobe
199+
url-base: https://github.com/fobe-projects
200+
projects:
201+
- name: zephyr
202+
remote: zephyr
203+
revision: main
204+
path: zephyr
205+
import: true
206+
- name: fobe-zephyr-sdk
207+
remote: fobe
208+
path: fobe
209+
revision: main
210+
```
211+
212+
Add `src/main.c` file with the following content:
239213

240-
ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE);
214+
```c
215+
#include <stdio.h>
216+
#include <zephyr/kernel.h>
217+
#include <zephyr/drivers/gpio.h>
218+
219+
/* 1000 msec = 1 sec */
220+
#define SLEEP_TIME_MS 1000
221+
222+
/* The devicetree node identifier for the "led0" alias. */
223+
#define LED0_NODE DT_ALIAS(led0)
224+
225+
/*
226+
* A build error on this line means your board is unsupported.
227+
* See the sample documentation for information on how to fix this.
228+
*/
229+
static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(LED0_NODE, gpios);
230+
231+
int main(void)
232+
{
233+
int ret;
234+
bool led_state = true;
235+
236+
if (!gpio_is_ready_dt(&led)) {
237+
return 0;
238+
}
239+
240+
ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE);
241+
if (ret < 0) {
242+
return 0;
243+
}
244+
245+
while (1) {
246+
ret = gpio_pin_toggle_dt(&led);
241247
if (ret < 0) {
242248
return 0;
243249
}
244250
245-
while (1) {
246-
ret = gpio_pin_toggle_dt(&led);
247-
if (ret < 0) {
248-
return 0;
249-
}
250-
251-
led_state = !led_state;
252-
printf("LED state: %s\n", led_state ? "ON" : "OFF");
253-
k_msleep(SLEEP_TIME_MS);
254-
}
255-
return 0;
251+
led_state = !led_state;
252+
printf("LED state: %s\n", led_state ? "ON" : "OFF");
253+
k_msleep(SLEEP_TIME_MS);
256254
}
257-
```
255+
return 0;
256+
}
257+
```
258258
5. Install and configure the Zephyr SDK:
259259

260260
```bash

docs/product/f1101/quickstart.mdx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,15 @@ Power consumption measurements were performed while powering the board with a si
5959

6060
Battery voltage is measured using a voltage divider with high-precision thick film resistors. The high-side resistor (R1) is 1M Ohm, and the low-side resistor (R2) is 1.5M Ohm. The SoC's **P0.05** GPIO is connected to the measurement point.
6161

62-
For a voltage divider circuit with two resistors, R1 and R2, in series, where Vin is the input voltage and Vout is the voltage across R2:
62+
For a voltage divider circuit with two resistors, R1 and R2, in series, where Vin is the input voltage (battery voltage) and Vout is the voltage across R2 (measured by the ADC):
6363

6464
**Vout = Vin * (R2 / (R1 + R2))**
6565

66-
By reading the voltage at the measurement point with the ADC, the battery voltage can be calculated using this formula.
66+
In this case: **Vout = Vin * (1.5M / (1M + 1.5M)) = Vin * 0.6**
67+
68+
Therefore: **Vin = Vout / 0.6 = Vout * 1.667**
69+
70+
By reading the voltage at the measurement point with the ADC, the battery voltage can be calculated by multiplying the measured voltage by 1.667.
6771

6872
## General purpose I/Os
6973

@@ -245,8 +249,8 @@ void loop()
245249
// Read battery voltage
246250
int raw = analogRead(PIN_VBAT);
247251
float vref = 3.0; // ADC reference voltage
248-
float vmeas = raw * vref / 4095.0;
249-
float voltage = vmeas * 1.72; // Adjusted for the voltage divider, assuming r1 and r2 are not used here
252+
float vmeas = raw * vref / 4095.0; // Measured voltage at ADC pin
253+
float voltage = vmeas * 1.667; // Calculate actual battery voltage using voltage divider ratio
250254
Serial.print("Battery voltage: ");
251255
Serial.print(voltage);
252256
Serial.println(" V");

docs/product/f1102/applications.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ Double click the **Reset** button, there should be a `FoBE Boot` drive on your P
4343

4444
<br/><div style={{ textAlign: 'center' }}><img src="/img/screenshot/2025-07-21-14-46-54.png" alt="2025-07-21-14-46-54.png" style={{ width: '20%', height: 'auto' }} /></div><br/>
4545

46-
Drag the `firmware-fobe_quill_esp32s3_mesh-2.7.3.cf574c7.uf2` file to the driver. The download will run automatically, then the driver will log out.
46+
Drag the `firmware-fobe_quill_esp32s3_mesh-2.7.3.cf574c7.uf2` file to the drive. The installation will run automatically, then the drive will disappear.
4747

4848
</TabItem>
4949
<TabItem value="hex">
5050

51-
This is recommended method, to install latest version:
51+
This is the recommended method to install the latest version:
5252

5353
```shell
5454
pip3 install --user adafruit-nrfutil
@@ -64,6 +64,6 @@ adafruit-nrfutil --verbose dfu serial --package firmware-fobe_quill_nrf52840_mes
6464
</TabItem>
6565
</Tabs>
6666

67-
That your can use the FoBE Quill ESP32S3 Mesh with the Meshtastic network, you can now use the Meshtastic app to configure your device and start using it.
67+
Now you can use the FoBE Quill ESP32S3 Mesh with the Meshtastic network. You can use the Meshtastic app to configure your device and start using it.
6868

6969
More information can be found in the [Meshtastic documentation](https://meshtastic.org/docs/).

docs/product/f1102/index.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ order: 1
2323

2424
## Introduction
2525

26-
The FoBE Quill ESP32S3 Mesh is a compact and feature-rich IoT development platform, integrating Espressif's high-performance multi-protocol SoC ESP32-S3 and Semtech's ultra-low-power sub-GHz radio transceiver SX1262 (SiP package). Designed for IoT applications, it provides a comprehensive wireless connectivity solution supporting IEEE 802.11 b/g/n Wi-Fi, Bluetooth 5, Thread, Zigbee, and LoRa®.
26+
The FoBE Quill ESP32S3 Mesh is a compact and feature-rich IoT development platform, integrating Espressif's high-performance multi-protocol SoC ESP32-S3 and Semtech's ultra-low-power sub-GHz radio transceiver SX1262. Designed for IoT applications, it provides a comprehensive wireless connectivity solution supporting IEEE 802.11 b/g/n Wi-Fi, Bluetooth 5, Thread, Zigbee, and LoRa®.
2727

28-
This development board features efficient battery charging management, discrete power path, ultra-low quiescent current DC-DC converter, a 1.3-inch 16-pin OLED display (SSD1312 driver), user-programmable LED and button, MFP expansion connector, reversible USB-C connector, and easy-to-expand pin headers, making it ideal for rapid prototyping and development.
28+
This development board features efficient battery charging management, discrete power path, ultra-low quiescent current DC-DC converter, a 1.3-inch monochrome OLED display (SSD1306 compatible), user-programmable LED and button, MFP expansion connector, reversible USB-C connector, and easy-to-expand pin headers, making it ideal for rapid prototyping and development.
2929

3030
## Tech specs
3131
<table>
@@ -129,7 +129,7 @@ This development board features efficient battery charging management, discrete
129129
</tr>
130130
<tr>
131131
<td>Driver</td>
132-
<td>SSD1312</td>
132+
<td>SSD1306 compatible</td>
133133
</tr>
134134
<tr>
135135
<td colspan="1" rowspan="2">Buttons</td>

0 commit comments

Comments
 (0)