Pumpkin Board Setup Guide
To use a Mediatek Genio 500 Pumpkin single-board computer with Viam:
- Install
viam-server
on your machine. - Create a board definitions file, specifying the mapping between your board’s GPIO pins and connected hardware.
- Configure a
customlinux
board on your machine, specifying the path to the definitions file in the board configuration.
Install viam-server
viam-server
is distributed for Linux as an AppImage.
The AppImage is a single, self-contained binary that runs on 64-bit Linux systems running the aarch64
or x86_64
architectures, with no need to install any dependencies.
To install viam-server
:
Go to the Viam app. Create an account if you haven’t already.
Add a new machine by providing a name in the New machine field and clicking Add machine:
Navigate to the CONFIGURE tab and find your machine’s card. An alert will be present directing you to Set up your machine part:
Click View setup instructions to open the setup instructions.
Select Linux / Aarch64.
Select your installation method:
viam-agent
(recommended): installs viam-agent, which will automatically install (and update) viam-server and provide additional functionality such as provisioning and operating system update configuration.manual
: installs onlyviam-server
on your machine.
Follow the instructions listed.
Once you have followed the steps on the setup instructions, wait for confirmation that your machine has successfully connected.
On your machine’s page on the Viam app, your machine will show that it’s Live.
By default, viam-server
will start automatically when your system boots, but you can change this behavior if desired.
Create a board definitions file
The board definitions file describes the location of each GPIO pin on the board so that viam-server
can access the pins correctly.
On your Pumpkin board, create a JSON file in the "pins"
, whose value is a list of objects that each represent a pin on the board.
{
"pins": [
{
"name": "3",
"device_name": "gpiochip0",
"line_number": 81,
"pwm_id": -1
},
{
"name": "5",
"device_name": "gpiochip0",
"line_number": 84,
"pwm_id": -1
},
{
"name": "7",
"device_name": "gpiochip0",
"line_number": 150,
"pwm_id": -1
},
{
"name": "11",
"device_name": "gpiochip0",
"line_number": 173,
"pwm_id": -1
},
{
"name": "13",
"device_name": "gpiochip0",
"line_number": 152,
"pwm_id": -1
},
{
"name": "15",
"device_name": "gpiochip0",
"line_number": 94,
"pwm_id": -1
},
{
"name": "19",
"device_name": "gpiochip0",
"line_number": 163,
"pwm_id": -1
},
{
"name": "21",
"device_name": "gpiochip0",
"line_number": 161,
"pwm_id": -1
},
{
"name": "23",
"device_name": "gpiochip0",
"line_number": 164,
"pwm_id": -1
},
{
"name": "27",
"device_name": "gpiochip0",
"line_number": 82,
"pwm_id": -1
},
{
"name": "29",
"device_name": "gpiochip0",
"line_number": 98,
"pwm_id": -1
},
{
"name": "31",
"device_name": "gpiochip0",
"line_number": 12,
"pwm_id": -1
},
{
"name": "33",
"device_name": "gpiochip0",
"line_number": 101,
"pwm_id": -1
},
{
"name": "35",
"device_name": "gpiochip0",
"line_number": 171,
"pwm_id": -1
},
{
"name": "37",
"device_name": "gpiochip0",
"line_number": 169,
"pwm_id": -1
},
{
"name": "8",
"device_name": "gpiochip0",
"line_number": 115,
"pwm_id": -1
},
{
"name": "10",
"device_name": "gpiochip0",
"line_number": 121,
"pwm_id": -1
},
{
"name": "12",
"device_name": "gpiochip0",
"line_number": 170,
"pwm_id": -1
},
{
"name": "16",
"device_name": "gpiochip0",
"line_number": 165,
"pwm_id": -1
},
{
"name": "18",
"device_name": "gpiochip0",
"line_number": 1,
"pwm_id": -1
},
{
"name": "22",
"device_name": "gpiochip0",
"line_number": 2,
"pwm_id": -1
},
{
"name": "24",
"device_name": "gpiochip0",
"line_number": 162,
"pwm_id": -1
},
{
"name": "26",
"device_name": "gpiochip0",
"line_number": 0,
"pwm_id": -1
},
{
"name": "28",
"device_name": "gpiochip0",
"line_number": 83,
"pwm_id": -1
},
{
"name": "32",
"device_name": "gpiochip0",
"line_number": 97,
"pwm_id": -1
},
{
"name": "36",
"device_name": "gpiochip0",
"line_number": 151,
"pwm_id": -1
},
{
"name": "38",
"device_name": "gpiochip0",
"line_number": 174,
"pwm_id": -1
},
{
"name": "40",
"device_name": "gpiochip0",
"line_number": 172,
"pwm_id": -1
}
]
}
Configure a customlinux
board
Configure your board as a customlinux
board to use your board definitions file:
Navigate to the CONFIGURE tab of your machine’s page in the Viam app.
Click the + icon next to your machine part in the left-hand menu and select Component.
Select the board
type, then select the customlinux
model.
Enter a name or use the suggested name for your customlinux
board and click Create.
See an example configuration for a pumpkin board using customlinux in the Viam app Config.
Copy and paste the following json object into your board’s attributes field.
{
"board_defs_file_path": "/home/root/board.json"
}
{
"components": [
{
"name": "myCustomBoard",
"model": "customlinux",
"type": "board",
"namespace": "rdk",
"attributes": {
"board_defs_file_path": "/home/root/board.json"
},
"depends_on": []
}
]
}
Next steps
Need assistance?
You can also ask questions in the Community Discord and we will be happy to help.
Was this page helpful?
Glad to hear it! If you have any other feedback please let us know:
We're sorry about that. To help us improve, please tell us what we can do better:
Thank you!