___________________________________________
title: CHIP Serial Console
tags: chip openbsd 100daystooffload hack raspberrypi
date: 2021-03-03
___________________________________________

Intro

Since getting a Pocket C.H.I.P, I’m looking for more ways to use it
outside the original configuration, and came across a Hackernoon post
on using a CHIP as a serial console.

  [getting a Pocket C.H.I.P]: https://www.ecliptik.com/Pocket-CHIP/
  [CHIP as a serial console]: https://medium.com/hackernoon/turn-your-pocketchip-into-a-badass-on-the-go-hardware-hackers-terminal-84b1edc939f

I also wanted to install OpenBSD onto a RaspberryPi 3 - unlike most
RaspberryPi installs where a sdcard image is flashed and boots up -
OpenBSD requires following the full installation procedure on the
console. Sure you could hook up it up to HDMI and a USB keyboard, but
what’s the fun in that? So I took the oppurtunity to do both.

  [install OpenBSD onto a RaspberryPi 3]: https://brainsnapped.com/2020/10/22/openbsd-on-the-raspberry-pi-3-model-b/
  [full installation procedure]: https://www.openbsd.org/faq/faq4.html

Hardware

Following the Hackernoon post, and using the RPI GPIO documentation, I
soldered some lead pins onto the CHIPs 5V, GND, TXD and RXD breakout
at the top, made some basic GPIO wires and hooked it all up. Using the
5V has the added benefit of powering the RaspberryPi from the CHIP
battery, which in makes both of them portable.

  [RPI GPIO documentation]: https://www.raspberrypi.org/documentation/usage/gpio/

[C.H.I.P. Serial Console]

  [C.H.I.P. Serial Console]: /assets/images/posts/pocket-chip-serial.png

C.H.I.P. Serial Console
Software

To connect via serial console, first release /dev/ttyS0 from systemd,

    sudo systemctl stop serial-getty@ttyS0

Many articles suggest using minicom as a serial console, but I prefer
screen, and used it for years when working in datacenters.

  [minicom]: https://salsa.debian.org/minicom-team/minicom
  [screen]: https://www.gnu.org/software/screen/

The OpenBSD console uses a baud rate of 115100 and transmission of
eight bits per byte cs8. Connecting requires sudo, even if your chip
user is in the tty group due to some udev/systemd permissions
wonkiness.

    sudo screen /dev/ttyS0 115200,cs8

The serial console works well, although occasionally there is missing
data, but after remembering how to use the OpenBSD disk partitioner -
OpenBSD 6.8 was running on a RaspberryPi 3. Once the installation is
complete, if DHCP was setup during install, connecting to it over ssh
is trivial and no longer requires the serial console.

Conclusion

While as much fun as this is, it’s not nearly as useful as it could
have been years ago when troubleshooting misbehaving Sun Netra or Sun
Fire systems. For now though it’s a good hack, useful in the right
circumstances, and just looks cool.

  [Sun Netra]: https://shrubbery.net/~heas/sun-feh-2_1/Systems/Netra_t1_105/spec.html
  [Sun Fire]: https://shrubbery.net/~heas/sun-feh-2_1/Systems/SunFire280R/SunFire280R.html