# 8-bit Computer Project
A small experimental repository for building and running an 8-bit-style computer using Arduino and standalone ATmega microcontrollers. This repo contains sketches, notes, and wiring experiments used while prototyping on breadboards.
## Quick overview
- Use the included Main.ino sketch to run basic experiments on an Arduino board.
- You can also program a standalone ATmega (e.g., ATmega328P) using an Arduino as an ISP programmer.
- This README gives clear, step-by-step setup instructions, parts list, wiring tips, and troubleshooting notes.
## Parts & tools (suggested)
- 1x Arduino Uno (or compatible) — used as the development board and/or ISP programmer
- 1x ATmega328P (or similar AVR) — if running standalone
- Breadboards (several recommended for prototyping)
- Jumper wires
- 16 MHz crystal (or resonator) + 22pF caps (if using an external clock)
- 10kΩ pull-up resistor (RESET)
- 0.1 µF decoupling capacitors for Vcc/GND
- External power supply (if powering breadboards separately)
- Optional: LEDs, resistors, switches, and other components for I/O experiments
## File layout
- Main.ino — primary sketch to load to an Arduino (copy/paste into Arduino IDE or open the file).
- /examples or other folders — any example sketches or helper code (check repo tree).
## Uploading Main.ino to an Arduino (fastest method)
1. Open Arduino IDE.
2. Create a new sketch or open Main.ino from this repo.
3. Select the correct board under Tools > Board and the correct COM/serial port.
4. Click Upload (or Sketch > Upload). The sketch will be compiled and sent to the Arduino.
## Programming a standalone ATmega with "Arduino as ISP"
These steps assume you're using an Arduino Uno as the programmer and an ATmega328P on a breadboard.
1. In Arduino IDE, open the example sketch: File > Examples > 11.ArduinoISP > ArduinoISP and upload it to the Arduino you’ll use as the programmer.
2. Wire the Arduino to the target ATmega:
- MISO -> MISO
- MOSI -> MOSI
- SCK -> SCK
- RESET (target) -> pin 10 (on programmer Arduino) to use as programmer RESET (or follow wiring for your chosen board)
- Vcc -> Vcc (5V) and GND -> GND
- Add crystal and caps if using an external clock; add decoupling capacitors on Vcc/GND
- Add 10k pull-up resistor on RESET of target
3. In the IDE, set:
- Tools > Board to the target chip/board (e.g., "ATmega328 on breadboard (8 MHz internal)" if you have a custom cores package, or "Arduino Uno" if the fuse/clock is set accordingly)
- Tools > Programmer > "Arduino as ISP"
4. Optional but recommended: Burn bootloader first (Tools > Burn Bootloader) — this sets fuses and clock configuration.
5. To upload your sketch to the target chip via the programmer, use: Sketch > Upload Using Programmer (or hold Shift when clicking Upload, depending on IDE version).
Note: If using an Arduino Uno as the programmer, place a 10 µF electrolytic capacitor between RESET and GND on the programmer board to disable auto-reset (negative to RESET, positive to GND). This prevents the Uno from resetting when the IDE opens the serial port.
## Wiring & power notes
- Power the target circuit reliably. If powering both the Arduino programmer and the breadboard from USB, ensure common ground.
- Check Vcc pins and decoupling capacitors (0.1 µF) close to the AVR power pins.
- If using an external crystal, the correct caps (typically 22pF) are required.
- If you see "avrdude: stk500_recv(): programmer is not responding" or sync errors, re-check wiring and ensure the ArduinoISP sketch is running on the programmer.
## Troubleshooting tips
- No serial output: confirm correct baud in sketch and Serial Monitor.
- "Programmer is not responding": confirm MOSI/MISO/SCK/RESET wiring and that the ArduinoISP sketch is uploaded to the programmer board.
- Fuse/clock mismatch: if the target's fuses expect an external clock and it's not present, provide a clock or use a chip with the correct fuse settings.
- Use a multimeter to check for 5V at Vcc and proper GND connections.
## Contributing
If you have improvements, wiring diagrams, corrected code, or new experiments, please open an issue or submit a pull request. Add clear notes about hardware used, wiring, and the exact sketch tested.
## License
No license file included. Add a LICENSE if you want to set reuse permissions (MIT, Apache-2.0, etc.).
## Contact / Next steps
.-
Notifications
You must be signed in to change notification settings - Fork 1
Using this repo to experiment with Arduino
License
Barbatos6669/8bit_ComputerProject
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
About
Using this repo to experiment with Arduino
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published