Skip to content
/ RPUpi Public

Shield with a serial manager to switch between P2P and P2MP modes from an R-Pi host

Notifications You must be signed in to change notification settings

epccs/RPUpi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RPUpi

From https://github.com/epccs/RPUpi

Overview

Shield used to connect a Raspberry Pi Zero (or W) to serial that can be shared (multidrop). The targets presently available are RPUno, RPUlux, and Irrigate7. The hardware allows the bus to be controlled so the host sees a single target (for bootload) or any number of them.

A RPUadpt shield is also available if the host SBC does not use the Raspberry Pi 40 pin header.

Status

Options

Status

Hardware files include schematic and board images, bill of materials, and my notes on testing, evaluation, and schooling.

Example

Both the SBC and microcontroller(s) can run simple UART serial communication software (e.g. all the RS232 software I have tried seems to work). I prefer textual commands, so my examples generally use a textual command processor which echoes back the command like an interactive terminal, the commands are used by the firmware command processor to run routines or configure state machines on the bare metal microcontrollers. The SBC host the toolchain so it can compile the firmware from the source which can be managed with git (e.g. GitHub, GitLab...) or anyway the user wishes. The toolchains uploader can be used to send the firmware to the targets bootloader. The result is one or more bare metal targets can receive updates that are compiled from source without the need for a bare metal network stack. This is not an IoT system, it is a computer hosting an operating system and toolchain connected with physical wires to bare metal embedded controllers. It is also not dependent on any cloud-based services.

MultiDrop

To bootload the AVR from the Raspberry Pi hardware serial port it needs to be enabled for serial so Linux can use the port, also the RTS and CTS pin functions should be enabled since nRTS is used to start the bootloader (in place of the nDTR trick used by an Arduino Uno).

The Pi Zero also needs a way to halt from a push button. When the RPUpi shield is mounted on a target board (e.g. RPUno) the VIN pin can be powered off with a power management technique. This allows a manual shutdown and for the local target to request a halt using an I2C command. It should help with redundancy techniques, so two or more SBC's with failover can ensure data from the targets keep flowing.

AVR toolchain

The core files for this boards bus manager are in the /lib folder. Each example has its files and a Makefile in its own folder. The toolchain packages that I use are available on Ubuntu and Raspbian.

sudo apt-get install git make gcc-avr binutils-avr gdb-avr avr-libc avrdude
git clone https://github.com/epccs/RPUpi

About

Shield with a serial manager to switch between P2P and P2MP modes from an R-Pi host

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published