Skip to content

Commit 03f8457

Browse files
authored
Merge pull request #182 from Neotron-Compute/release/v1.1.1
Update to v1.1.1
2 parents 06c8279 + 5209e29 commit 03f8457

31 files changed

+117626
-156756
lines changed

.github/FUNDING.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# These are supported funding model platforms
2+
3+
github: Neotron-Compute

.github/workflows/kibot.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,30 +27,30 @@ jobs:
2727
DRC:
2828
runs-on: ubuntu-latest
2929
container:
30-
image: setsoft/kicad_auto:ki6.0.7_Debian
30+
image: setsoft/kicad_auto:ki7
3131
steps:
3232
- uses: actions/checkout@v3
3333
with:
3434
submodules: true
3535
- name: Run KiBot for DRC
3636
run: |
37-
kibot -c Kicad/docs.kibot.yml -e ${{env.schema}} -b ${{env.board}} -d ${{env.dir}} -s run_drc -v -i
37+
kibot -c Kicad/docs.kibot.yml -e ${{env.schema}} -b ${{env.board}} -d ${{env.dir}} -s run_erc -v -i
3838
ERC:
3939
runs-on: ubuntu-latest
4040
container:
41-
image: setsoft/kicad_auto:ki6.0.7_Debian
41+
image: setsoft/kicad_auto:ki7
4242
steps:
4343
- uses: actions/checkout@v3
4444
with:
4545
submodules: true
4646
- name: Run KiBot for ERC
4747
run: |
48-
kibot -c Kicad/docs.kibot.yml -e ${{env.schema}} -b ${{env.board}} -d ${{env.dir}} -s run_erc -v -i
48+
kibot -c Kicad/docs.kibot.yml -e ${{env.schema}} -b ${{env.board}} -d ${{env.dir}} -s run_drc -v -i
4949
build:
5050
runs-on: ubuntu-latest
5151
needs: [ERC, DRC]
5252
container:
53-
image: setsoft/kicad_auto:ki6.0.7_Debian
53+
image: setsoft/kicad_auto:ki7
5454
steps:
5555
- uses: actions/checkout@v3
5656
with:

.gitignore

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
*-bak
2+
~*.lck
23
Kicad/neotron-pico.csv
34
Kicad/neotron-pico.xml
4-
Kicad/docs
5+
Kicad/docs/
56
Kicad/bom.ini
67
Kicad/fp-info-cache
7-
8+
Kicad/neotron-pico-backups/
9+
docs/

ASSEMBLY.md

Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
# Assembly Instructions
2+
3+
This document explains how to assemble a Neotron Pico kit. It is based around the v1.1.1 Kit, but other versions may be similar.
4+
5+
Assembling a Neotron Pico Kit involves the following components:
6+
7+
* A PCB
8+
* Some surface-mount components
9+
* Some through-hole components
10+
* A power supply, for testing
11+
* An Arm Serial Wire Debug (SWD) programmer (a Raspberry Pi Pico can be used)
12+
* A micro-ATX case, some stand-offs or some rubber feet.
13+
14+
You may have received a kit with some (or all) of the surface mount parts fitted in the factory. If so, you can skip any parts that are already on your board.
15+
16+
## Getting to know the board
17+
18+
The main processor on your Neotron Pico is the Raspberry Pi Pico (hence the name). This lives at the 'top' of the board, with the other external connectors - you can clearly see the 43 large golden pads. To the right of the Raspberry Pi Pico is the 12V DC power input jack, and the PS/2 keyboard and mouse ports. To the left is the VGA circuitry and video output connector, SD Card and Audio input/output jacks. To the far left are four expansion slots for adding upgrades to your Neotron Pico. The Board Management Controller is the is just below-right from the Raspberry Pi Pico and the Power Supply runs along the right-hand edge of the board. In the middle is the IO controller chip and below that the Real Time Clock and its CR2023 coin-cell backup battery. Along the bottom edge are the PC case connectors, for the power button, power LED, hard drive LED and so on. Don't worry if you don't have a PC case, we've also included LEDs and buttons on-board which you can use instead.
19+
20+
We recommend your Raspberry Pi Pico has header pins, and if so, you should fit matching 2.54mm header sockets to your Neotron Pico. These are usually not included in the kit and should be ordered with your Raspberry Pi Pico. If you don't want to use header pins and sockets, you can solder the Raspberry Pi Pico straight down to your Neotron Pico, soldering each of the castellated edges.
21+
22+
You board has some pins marked "TPxxx". These are test points, and are connected to *GND*. You can solder a U-shaped bent cut-off capacitor leg here to each of these if you like, to give your oscilloscope ground-lead something handy to connect to if you ever need to probe the board. Or you can leave them empty.
23+
24+
## My board has some parts missing!
25+
26+
There are some "Do Not Fit" components on your Neotron Pico, so if you ordered it with surface-mount parts already assembled, do not be alarmed if some pads look empty. These are:
27+
28+
* R404 next to the VGA connector. You could add a 0 ohm resistor here to tie the VGA cable shield to ground if you have issues with video noise.
29+
* JP401, JP402, JP403 and JP404. These are for bypassing the TPD7S019 ESD protection chip (U402) in case you couldn't get hold of one and don't have it fitted.
30+
* C901/902/903/904/905/906. These are for slew-limiting signals on the SPI bus. If you have EMC issues, you can replace the matching R90x 0-ohm resistor with a higher value, and fit a small capacitor to the C90x pads. Consult an EMC engineer for further details.
31+
32+
If any other pads look empty, maybe the PCB assembler didn't have the relevant component in stock. Have a look in the kit - maybe it's been included for you to fit yourself. And do look carefully, as some are quite small. It's probably been stuck to something with sticky tape so it doesn't get lost. In particular, Serial Numbers JP00011 to JP00040 are missing U401 (the RGB video buffer), and it's been taped to the top of the Triple 3.5mm audio jack.
33+
34+
## How to solder
35+
36+
The Neotron Pico kit does assume you can solder at an intermediate level. If you need guidance on soldering (especially any of the smaller surface-mount parts) there are many excellent guides online or on YouTube.
37+
38+
## The Interactive Bill of Materials
39+
40+
The best way to find where to fit the components to your PCB is to use the Interactive Bill of Materials (also known as the IBOM). This is a web-page with a diagram of the PCB and a list of all the components. As you click a component it is highlighted on the PC. Conversely, if you click on the diagram, the relevant component is highlighted in the table. Do ensure you click the *"Sourced"* checkbox when you have determined you have the part in stock, and that you click the *"Placed"* checkbox when the component has been fitted. If your PCB was supplied with some parts already fitted, tick those off now.
41+
42+
The IBOM file can be found by clicking the Releases shortcut available to the right on the GitHub page, or downloading it directly: [IBOM v1.1.1](https://github.com/Neotron-Compute/Neotron-Pico/releases/download/v1.1.1/neotron-pico-v1.1.1-ibom.html). Open the saved file in a browser.
43+
44+
## But what order should I fit things in?
45+
46+
The general rule is to fit the parts with the lowest Z-height first (i.e. the flat ones, that stick out the least). This means if you flip the PCB over to solder on the underside, you won't have a tall component preventing the board from lying flat and causing the component you are currently trying to solder to fall out of its hole. A suggested order is:
47+
48+
* All surface mount components (including U401, which may not have been presoldered in your kit)
49+
* U401 has a line to the left of the chip which should correspond to the line to the left of the PCB foot print
50+
* Short-circuit JP1201 *or* JP1201
51+
* If you have a DS1307 short JP1201 to give it 5V
52+
* If you have an MCP7940, short JP1202 to give it 3.3V
53+
* The SD Card Socket (J1101)
54+
* The 28-pin DIP socket (U301)
55+
* The DC Input jack (J1301)
56+
* The 22uH Inductor (L1301), PTC fuse (F1301) and electrolytic capacitors (C801, C808, C809, C1301, C1302)
57+
* The PSU module (U1301)
58+
* The Raspberry Pi Pico (if you want to solder it straight to the board) (U201)
59+
* Any 2.54mm pin headers and jumpers
60+
* Don't worry about J906, J907 and J908 - they're just for debugging/testing/probing. It's easier to put an oscilloscope probe directly into a hole.
61+
* Ensure you leave out pin 8 on the J802 PC case audio connector, as most cases have a blank position on the mating connector to make sure you can't put it in backwards. See *Not using a PCB Case* if you don't actually connect this header to your ATX case, as you'll need to fit some jumpers:
62+
63+
```text
64+
+----+----+----+----+----+
65+
| 2 | 3 | 6 | X | 10 |
66+
Case +----+----+----+----+----+
67+
| 1 | 4 | 5 | 7 | 9 |
68+
+----+----+----+----+----+
69+
```
70+
71+
* Any 2.54mm pin sockets (e.g. for the Raspberry Pi Pico, if you didn't solder it down directly earlier)
72+
* The Expansion Connectors (J902, J903, J904, J905)
73+
* The VGA Connector (J401)
74+
* The Triple 3.5mm audio connector (U802)
75+
* The PS/2 connector (J1007)
76+
77+
Don't forget to put the MCP23S17 chip (U301) in its socket.
78+
79+
## Programming the BMC
80+
81+
The Board Management Controller (BMC) is responsible for controlling power and reset signals. If it hasn't been programmed, the power button won't work. Also, the power LED won't light up. If you apply 12V DC power and the power LED blinks, then the BMC has been programmed already and you should be OK (unless you want to update the firmware).
82+
83+
1. Get the firmware from <https://github.com/Neotron-Compute/Neotron-BMC/releases>. You want `neotron-bmc-pico`.
84+
* Or you can clone the source code and build it by following the instructions.
85+
2. Rename the file `neotron-bmc-pico.elf`
86+
3. Ensure you have the Rust Programming Language installed (see <https://www.rust-lang.org>)
87+
4. Install the `probe-run` tool:
88+
89+
```console
90+
$ cargo install probe-run
91+
```
92+
93+
**NOTE**: On Linux you will need to install probe-run's dependencies (libudev and libusb) before probe-run.
94+
For Debian based distros, run `sudo apt install -y libusb-1.0-0-dev libudev-dev`
95+
For Fedora based distros, run `sudo dnf install -y libusbx-devel systemd-devel`
96+
See https://github.com/knurling-rs/probe-run#installation for the latest dependency information
97+
98+
5. Connect your Arm Serial Wire Debug probe to J1001, the BMC programming header.
99+
* If you have 12V DC power to the board, the 3.3V pin will be live and should be treated as an output - connect it to the VTref pin of your programmer if it has one.
100+
* If you do not have 12V DC power to your board (maybe you haven't fitted any of the through-hole parts yet), you can inject 3.3V power here if you are careful. This will reverse-power the 3.3V standby regulator, but it seems to survive (at least for short periods of time).
101+
6. Run `probe-run --chip STM32F030K6Tx ./neotron-bmc-pico` and ensure it completes successfully and prints some log messages from the chip. If there are any errors, investigate.
102+
7. Disconnect the Arm SWD programmer and remove any power from the board.
103+
8. Apply 12V DC power to the board and observe that the Power LED is blinking.
104+
9. Tap the ON/OFF button and observe the Power LED is now on solidly.
105+
10. Check the 5V and 3.3V rails with a multimeter.
106+
11. Hold the ON/OFF button and observe the Power LED returns to blinking.
107+
12. Check the 5V and 3.3V rails - they should fall to 0V.
108+
109+
## Programming the Raspberry Pi Pico
110+
111+
1. Do a `git clone` of the firmware at <https://github.com/Neotron-Compute/Neotron-Pico-BIOS>.
112+
2. Ensure you have the Rust Programming Language installed (see <https://www.rust-lang.org>)
113+
3. Install the `probe-run` tool (if you didn't do it earlier):
114+
115+
```console
116+
$ cargo install probe-run
117+
```
118+
119+
4. Connect 12V DC to your board and press the ON/OFF button (if the BMC isn't programmed, do that first).
120+
5. Connect your Arm Serial Wire Debug probe to the SWD pins of the Raspberry Pi Pico.
121+
6. Add the target architecture to Rust installation with `rustup target add thumbv6m-none-eabi`.
122+
7. Run `cargo run --release` and ensure it completes successfully and prints some log messages from the chip. If there are any errors, investigate.
123+
8. Check you have some output on the VGA connector.
124+
125+
The Neotron Pico BIOS usually includes some version of the Neotron OS, but at the time of writing (November 2022) it's at a very very early stage so it may not do much beyond displaying some text.
126+
127+
Time to learn Rust and get hacking on the BIOS and the OS! That's what the Neotron Pico is all about.
128+
129+
## I don't have an Arm SWD Debug Probe
130+
131+
You can make one out of a Raspberry Pi Pico. See <https://github.com/rp-rs/rp2040-project-template/blob/main/debug_probes.md> for more details.
132+
133+
For Linux Mint (and likely most other modern Linux distributions), you will not have sufficient privileges to access the probe without adding a udev rules file.
134+
135+
The following instructions will set up udev to allow access to your probe:
136+
137+
```system
138+
wget https://probe.rs/files/69-probe-rs.rules
139+
sudo mv 69-probe-rs.rules /etc/udev/rules.d/
140+
sudo udevadm control --reload
141+
sudo udevadm trigger
142+
```
143+
144+
You also need to add your user to the plugdev group for these permissions to apply:
145+
146+
```system
147+
sudo usermod -a -G plugdev replace_this_with_your_username
148+
```
149+
150+
151+
## Connecting up a PC Case
152+
153+
You can connect the power and reset buttons of a standard ATX case to the relevant pin headers (J1002 and J1003). You also connect an 8 ohm speaker to J1006, and the Power and HDD LEDs to J1005 and J1004.
154+
155+
If your case has AC'97 audio jacks, you can connect the header to J802. Hopefully you left out pin 8, as directed above, otherwise the cable from your case may not fit. Don't force it!
156+
157+
## Not using a PCB Case
158+
159+
Either fit brass stand-offs to each mounting hole (using an M3 machine screw, and don't over-tighten), or fit some sticky rubber feet to the underside of your PCB. Otherwise your Neotron Pico may scratch your desk, and may be shorted-circuited if you accidentally place the PCB on top of something conductive.
160+
161+
Also, you should fit two jumpers to the J802 header - one across pins 5 and 6 and another across pins 9 and 10. This will allow audio to reach the rear audio jacks, even though you don't have a PC case fitted.
162+
163+
```text
164+
+-----+-----+-----+-----+-----+
165+
| | |+---+| |+---+|
166+
| 2 | 3 || 6 || X ||10 ||
167+
| | || || || ||
168+
+-----+-----+| |+-----+| |+
169+
| | || || || ||
170+
1 | 4 || 5 || 7 || 9 ||
171+
| | |+---+| |+---+|
172+
+- --+-----+-----+-----+-----+
173+
^^^ ^^^
174+
```
175+
176+
## Something's not working!
177+
178+
If you paid a commercial company some actual money for your Neotron Pico, in which case ask whoever you bought it from. Don't let businesses selling commercial products fob you off with 'community' support from the volunteers - they're making a profit from our open source work, so they can afford to help you themselves in the first instance.
179+
180+
To chat with the developers and other users, jump in the Matrix Chat and ask nicely. Don't forget, we're all volunteers here, but we like to help people out as much as we can. Just visit <https://matrix.to/#/#neotron:matrix.org> - you can use Element in your browser, so there's nothing to install, but you will need to create an account. If you have some Embedded Rust questions, you could try the `#rust-embedded` and/or the `#rp-rs` Matrix chat rooms.
181+
182+
If you think something's wrong with the design, please do open a Github Issue at <https://github.com/Neotron-Compute/Neotron-Pico/issues>.
183+

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,14 @@
22

33
# Unreleased Changes
44

5-
# None
5+
* None
6+
7+
# [Version v1.1.1](https://github.com/Neotron-Compute/Neotron-Pico/releases/tag/v1.1.1)
8+
9+
* Updated Neotron Common Hardware (the library of symbols and footprints we use) to v2.0.0
10+
* Updated to KiCAD 7.0.11
11+
* Replaced MCP23S17 DIP with SOIC (#176)
12+
* Fixed DAC output resistor (#177)
613

714
# [Version v1.1.0](https://github.com/Neotron-Compute/Neotron-Pico/releases/tag/v1.1.0)
815

Kicad/.gitignore

Lines changed: 0 additions & 3 deletions
This file was deleted.

Kicad/Neotron-Common-Hardware

0 commit comments

Comments
 (0)