Instead of using wireless technologies or Bluetooth or anything like that, I would like to only work with wires like the Ethernet and USB cords. This way you can know that the machine has only ever "worked with" the directly linked machines, instead of things over the Internet or wireless networks.

I am not sure how this works though. The question is what are the broad level supplies to do this. From that I can figure out every little detail of parts you would need. But I'm not sure the scope of what it entails.

So far I think you would need:

  • The basic board
  • HDMI cord
  • Ethernet cord
  • USB mouse
  • HDMI display
  • USB keyboard

I am not concerned about the details like battery and power, I can figure that stuff out. I am just wondering what the pieces are to get the machine to work without an operating system of any kind (i.e. bare metal), without letting it be prone to the network.

Just with those supplies, it seems you should be able to start programming your machine without it ever needing to touch a network. I wonder if this is true, and/or what is missing. Also, this machine would never be plugged into a laptop, as that would indirectly mean it is connected to the wireless network.

It sounds like that is what is meant by this serial to USB concept.

  • You will need a USB cable (A to micro) and a 2.5 to 3 amp, 5 volt USB power supply. Depending on the Pi model and its use you a power supply with less amps. Dec 13, 2018 at 23:21
  • If you want to connect high-power USB components to the Pi, using an independently powered USB hub and be a solution. Dec 13, 2018 at 23:24
  • If you want to build your own SD card images, or build your own Linux kernel, you will want a reasonably modern (powerful) PC running Linux. Using build tools like yocto require around 100 GB of available storage (SSD or disk, but SSD is a lot faster), 100 GB may be a worst case. And you'll need a SD card reader on the PC (USB or build-in). Dec 13, 2018 at 23:34
  • Talking about building SD images reminds me. You'll need at least one class 10 micro-SD cards, but probably several so you can keep one working SD card while creating and testing a new one. Dec 13, 2018 at 23:37

2 Answers 2


It's hard to figure out what you want to do and why and knowing those might help give a better answer. If you really just want to learn to program with your pi, then all you need is the things you listed, power, and an OS to boot.

But then you mention wanting to network it with other machines that aren't connected to the internet. That's possible to do by serial to USB, network cable between machines, and I'm positive by other methods as well.

Then you mention wanting to "get the machine to work without an operating system of any kind (i.e. bare metal), without letting it be prone to the network." What is your goal with this? You can connect to a pi with jtag and the appropriate hardware for that, but without an operating system you're not going to be able to do much with the pi.

Oh and if you're really looking for bare metal, without an operating system there are more resources out there for that such as: https://github.com/dwelch67/raspberrypi In the armjtag readme he even has some ideas fore building a cheaper jtag setup. web search 'bare metal raspberry pi' for more bare metal resources.

And lastly for completeness, here's an article on setting up a raspberry pi as a jtag adapter.


T.M.'s answer is good, since the question has several different aspects, I'll offer an alternative answer.

I'll start by addressing "without an operating system of any kind, i.e. bare metal." This is a somewhat misleading phrase. Hardware doesn't do anything without software. So what the phrase really means is that you want to write your own operating system. And you probably hope that you can make the job easier by designing it to only do one thing and only run on one type of hardware (a specific Raspberry Pi model). But don't be fooled, this is much more difficult and technical than using Raspbian and adding some applications for your specific purpose.

And to write "bare metal" software, you will need to download compilers, linkers, and other "build tools" that are graciously available on the Internet from GNU and included in Linux distributions like Raspbian, Debian.

There is no reason that your Pi is required to be connected to the Internet. But you will need to have an SD card with the binary GPU firmware file that initializes the Pi hardware so that it can boot (even to run bare metal software from the SD card).

You say: This way you can know that the machine has only ever "worked with" the directly linked machines, instead of things over the Internet or wireless networks.

There are perfectly valid security reasons to avoid wireless components. But the software you will need in order to use the Raspberry Pi (or any computer) has been produced and distributed using the Internet. That does not mean it is bad. It just means you need to figure out who you can trust. You can verify that files you download have not been changed since they were created. You can have computers connected to the Internet separate from secure computers and carry removable media between them. I suggest you trust a few groups like Raspbian, GNU, kernel.org, Debian, etc. Figure out how to safely use their software.

I'm not a security expert and I apologize in advance for not answering any future security questions...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.