Bento Board
Vendor: Blue Clover Devices
Bento Board (PLT demo board v3)
Program Target: Raspberry Pi RP2350B (Cortex-M33)
The Bento Board is a demo harware target for Blue Clover’s “postcard demo”: a small, self-contained example that exercises the Blue Clover hardware end-to-end:
PLT-106 runs the test plan and powers the DUT
PER-101 Test Agent facilitates the use of programming, fixture control, and software tools.
A debug probe (Flashr PER-401, or a SEGGER J-Link) programs the RP2350B over SWD
The Bento Board is the Device Under Test (DUT)
Peripherals
Bento 2 peripherals: RP2350B MCU, ESP32-C3 RF SoC, addressable RGB LEDs (WS2812), buzzer, 5 V relay, environmental sensor (BME280), Qwiic, mikroBUS, and USB Type-C.
Repositories
Repository |
Contents |
|---|---|
Zephyr firmware: |
|
Example YAML test plans, including |
|
Hardware design files, per-board test plans, and prebuilt images in
|
To build locally (see the repository README.md for toolchain setup):
make app BOARD=bento2 # or BOARD=bento for Bento 1
make blinky BOARD=bento2
make docker # containerized build, output in dist/
Images are written to build.<board>/rp2350b/m33/{app,blinky}/zephyr/zephyr.hex.
Verifying the image
The app image exposes a Zephyr shell over USB CDC-ACM
(prompt bento:~$). Query the version with:
bento:~$ app version
bento:~$ app build-version
blinky has no shell; it logs its version once at startup
(Bento blinky 0.1.0 (build <hash>)).
Program Bento Board with J-Link
Test Station
SKU |
Model No. |
Model Name |
|---|---|---|
SKU-20 |
PLT-300A |
Production Line Tool |
SKU-7 |
PER-101 |
Test Agent |
— |
J-Link Base Compact |
J-Link Programmer |
SUB-3 |
Bento Board 1 |
Device Under Test |
Connection
Device A |
Connector |
Cable P/N |
Connector |
Device B |
|---|---|---|---|---|
SKU-20 |
USB-A (Port 6) |
TBD |
USB-C (PLT port) |
SKU-7 |
SKU-7 |
USB-A (Port 2) |
TBD |
USB-B |
J-Link Base Compact |
J-Link Base Compact |
20-pin Header |
TBD |
Debug Header |
SUB-3 |
YAML test plan
Program the RP2350B with blinky.hex. Add blinky.hex to the PLTcloud
project alongside the test plan.
title: "Bento Flashing Demo"
description: "Flash RP2350B via PER-101 Test Agent and J-Link Commander"
suite:
- title: "Defines"
steps:
- command: define FIRMWARE "blinky.hex"
- command: define SBC.uart "UART2"
- title: "Setup Programming Session"
steps:
- command: agentCfg PROGSBC %SBC.uart%
with:
- "%FIRMWARE%"
- title: "Power DUT"
steps:
- command: power 3V3 on
- command: sleepms 1500
- title: "Program RP2350B via JLink"
steps:
- command: uart %SBC.uart%
send: |
/opt/SEGGER/JLink/JLinkExe -device RP2350_M33_0 -if SWD -speed 4000 -autoconnect 1
r
h
exec SetCompareMode = 0
loadfile /run/pltagent/mnt/%FIRMWARE%
r
g
q
extract: "Program speed: (\\d+)"
extractKey: JLINK_RETVAL
timeout: 5s
- command: eval "JLINK_RETVAL != ''"
fail: "J-Link programming failed; check UART2 logs"
teardown:
steps:
- command: power 3V3 off
Note
J-Link exits with 0 even when programming fails, so the
plan extracts the Program speed line as the success signal instead of
checking the exit code. exec SetCompareMode = 0 forces a re-flash
rather than skipping unchanged sectors.
Tip
J-Link interaction can be inspected in the UART2 logs in the Test Report.
Program Bento Board with Flashr
Test Station
SKU |
Model No. |
Model Name |
|---|---|---|
SKU-6 |
PLT-106 |
Production Line Tool |
SKU-7 |
PER-101 |
Test Agent |
— |
PER-401 |
Flashr |
SUB-67 |
Bento Board 2 |
Device Under Test |
Connection
Device A |
Connector |
Cable P/N |
Connector |
Device B |
|---|---|---|---|---|
SKU-6 |
USB-A (Port 1) |
TBD |
USB-C (PLT port) |
SKU-7 |
SKU-7 |
USB-A (Port 2) |
TBD |
USB |
PER-401 |
PER-401 |
20-pin Header |
TBD |
J1 Tag-Connect |
SUB-67 |
SKU-6 |
USB-A (Port 2) |
TBD |
USB-C |
SUB-67 |
YAML test plan
Program the RP2350B with bento_blinky.hex. Add bento_blinky.hex to the
PLTcloud project alongside the test plan.
title: "Bento Flashing Demo"
description: "Flash RP2350B via PER-101 Test Agent and Flashr"
suite:
- title: "Defines"
steps:
- command: define FIRMWARE.filename "bento_blinky.hex"
- command: define AGENT.vidpid "6666:8001"
- command: define FIRMWARE.target "rp2350"
- command: define DUT.vidpid "2fe3:0004"
- title: "Setup Programming Session"
steps:
- command: usb detect
id: "%AGENT.vidpid%"
timeout: 30s
- command: agentCfg PROGSBC UART2
id: "%AGENT.vidpid%"
retry: 3
with:
- "%FIRMWARE.filename%"
- title: "Program RP2350B via Flashr"
steps:
- command: agentExec PROGSBC "flashr-flash %FIRMWARE.target% /run/pltagent/mnt/%FIRMWARE.filename%"
timeout: 30s