If you need urgent consulting help click here

Interacting with the sample

The simulation for this sample creates 16 virtual buttons that are connected to the gpio pins. The sample itself registers a callback that is called whenever one of these pins changes state.

If you look in the custom_board.repl file in the sample folder, you’ll see how this is defined:

gpioPortB:
        7 -> gpioExpander@16

A0: Miscellaneous.Button @ gpioExpander
        -> gpioExpander@0

...

B7: Miscellaneous.Button @ gpioExpander
        -> gpioExpander@15

gpioExpander: GPIOPort.MCP23S17 @ spi1
        INTA -> gpioPortB@8
        INTB -> gpioPortB@9

This means you can access these pins and call functions “Press” and “Release” on them through the renode console:

sysbus.spi1.gpioExpander.A0 Press
sysbus.spi1.gpioExpander.A0 Release

Tip: Use tab for completion.

You can see the result of doing this printed into console.

The simulation also exposes the uart as a pseudoterminal so you can connect to it using normal terminal tools:

picocom build/usart2

The sample also includes gpio shell commands which can be used to inspect GPIO state and configure the GPIO pins. You can access these commands by connecting to the USART port.

usart:~$ gpio conf GPIO_E0 1 out
usart:~$ gpio conf GPIO_E0 2 in
usart:~$ gpio get GPIO_E0 1
usart:~$ gpio set GPIO_E0 1 1

You can try a combination of the commands by pressing the virtual buttons and reading the results using gpio commands:

usart:~$ gpio get GPIO_E0 1
(machine-0) sysbus.spi1.gpioExpander.A1 Press
usart:~$ gpio get GPIO_E0 1