Skip to content

Instantly share code, notes, and snippets.

@dag7dev
Forked from billyargh/billys_chips.md
Created June 28, 2023 14:16
Show Gist options
  • Save dag7dev/dac7b81a2cd6dbc484de94e184c7fa2b to your computer and use it in GitHub Desktop.
Save dag7dev/dac7b81a2cd6dbc484de94e184c7fa2b to your computer and use it in GitHub Desktop.

Resurrecting NTC C.H.I.P. computers

Introduction

I bought four of the Next Thing Co. (defunct since 2018) C.H.I.P. (CHIP hereafter) computers shortly after their successful Kickstarter campaign of 2015. The CHIP computer is an interesting beast. It was positioned as a competitor the orginal Raspberry Pi and only cost US$8.00 before shipping. The Raspberry Pi cost US$25 at the time. The CHIP had some features that the Pi did not at the time including built-in wi-fi and battery charging. It was also considerably smaller the original Pi.

The CHIP was shipped with Debian 8 (Jessie) and was a capable Linux computer. I had big plans for all of them, but the main use I put them to was as an ad-blocking Pi-Hole. They worked well for that.

They have been sitting idle for a few years and I thought it would be fun to put them back to use. I've started thinking about doing more IoT stuff, and these little guys are going to help me do it.

One of the four CHIPs is in a PocketCHIP shell which makes it a pretty cool handheld computer if you can get used to its keyboard. I think that this will be nice for remote control and monitoring of IoT gadgets. I have an HDMI "dip" that will allow me to connect one of them to a monitor as a desktop computer. The other two will be put to some sort of IoT "stuff".

Because it's been so long since I used them, I decided to flash them to their initial states and start again. The goal for the PocketCHIP is to bring it up to the latest version of Jessie, because I didn't want to break the Pocket Desktop interface, the goal for the HDMI CHIP is the same because I don't want to break the destop (at least for now), and the goal for the other to machines is to make them headless servers running Debian 11 (bullseye). I will also be adding software that I frequently use to all of them.

Flashing

Unlike the Raspberry Pi which uses an SD Card to carry its operating system, the CHIP carries its operating system on onboard NAND memory, which requires the OS to be flashed. Of course nothing is available officially from NTC, but fortunately JF Possiblities created mirrors of the the information (including flashable system images) from NTC's long dead web site. Thank you to the person/people at JF Possibilities for doing this.

There are a number of web pages that try to explain how to flash the CHIP with a fresh system. I believe I tried all of the options and failed, until I installed Ubuntu 18.04 on an old laptop. Once I did this, the script on Thore Krug's github worked flawlessly (almost). I needed to install the pocketCHIP image to one of the CHIPs, the desktop image to another, and the headless server image to the two remaining CHIPs. I say "flawlessly (almost)" because I discovered one needs patience and perserverance to succeed. Sometimes flashing would fail, and I would diconnect the CHIP from USB, make sure that the connection between FEL and GND was correct, and try again. For one of the CHIPs, it took six attempts to succeed.

To save the readers a click, the instructions from Thore Krug are duplicated here.

  1. Remove the C.H.I.P from its case (in case you have a Pocket C.H.I.P).
  2. Connect the FEL and a GROUND pin of the C.H.I.P (for example, with a paperclip).
  3. Connect the C.H.I.P its micro USB port to a USB port of your Linux machine.
  4. In the Linux machine:
    • run git clone https://github.com/thore-krug/Flash-CHIP.git to clone this repository.
    • cd into the location where you stored this repository.
    • run sudo chmod +x Flash.sh
    • run ./Flash.sh
    • Select the version you want to install.
    • Wait until the installation finishes.
    • Enjoy!

At the end of all of this, the CHIP is a bootable Debian 8 (jessie) machine. The next step is to set up the CHIPs as ssh servers.

Set up openssh-server

For headless server and desktop

  1. Remove the FEL-GND jumper and unplug the CHIP to shut it down. Reconnect the CHIP to the Ubuntu 18.04 machine (a real one, not virtual!) through USB.
    Your CHIP should reboot, and should be ready after a minute or two.
    If the LEDs are not flashing, the CHIP is not yet ready for the next step.
    If they are flashing, wait another minute :). It takes a fairly long time for the CHIP to boot.
  2. Open a terminal on the Ubuntu machine and type screen /dev/ttyACM0 at the prompt. This creates a serial connection between the terminal and CHIP.
  3. If you see a login prompt, great. Login with user chip and password chip. Remember to change the password later. If you don't get a password prompt right away, try pressing some keys a few times. I suspect there are keys that should be pressed. I tried Ctl-A, Ctl-B, return, I didn't notice which of them worked :) If this fails, unplug the CHIP, plug it back in, and retry.
  4. Connect the CHIP to wi-fi. I did this using sudo nmtui and selecting the appropriate access point using the correct password. After you've connected to wi-fi and exited nmtui, you can sudo nmtui again to change the hostname of your CHIP from chip, if you want. It's a really good idea to do this if you're working with multiple CHIPs. Exit nmtui.
  5. Note the IP address for your CHIP with ip addr. We will use this to log in the to CHIP with ssh later. Mine was 10.0.0.128. Yours will probably be different and will likely start with 192.168.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment