neotron-compute / neotron-pico Goto Github PK
View Code? Open in Web Editor NEWA Neotron powered by the Raspberry Pi Pico
A Neotron powered by the Raspberry Pi Pico
The pull-down resistor was incorrectly calculated at 3480 Ω. It should be 5490 Ω.
The result will be that maximum RGB voltage (for a value of 0b1111) will be about 530mV instead of 700mV, giving a dim picture.
A fix was made in d869ca1, but the bug affects https://github.com/Neotron-Compute/Neotron-Pico/releases/tag/v0.5.0 (which we ordered from JLCPCB).
The line should be tied high. It is tied low. This means the buffer is driving back into the CS outputs of the MCP23S17.
The workaround is to lift Pin 1 and bridge it across to the Vcc pin on the opposite side.
The slot numbers on the schematic don't match the slot numbers on the silkscreen.
Both should match the 3-bit A[2..0] number.
I think we need a current limiting resistor on the base (pin 2) of Q801. Otherwise infinite current flows from VDC to ground via Q802 emitter, Q802 base, Q801 collector and Q801 emitter.
We need:
See https://support.jlcpcb.com/article/149-how-to-generate-gerber-and-drill-files-in-kicad. The SMT position file also needs modifying as per https://support.jlcpcb.com/article/84-how-to-generate-the-bom-and-centroid-file-from-kicad.
The MAX1615 is hard to get and costs £2.00. The Holtek HT7533-1 is a JLCPCB basic part and costs $0.15. Max input voltage is 30V, max current is 100mA.
I designed the damned board and I still managed to fit the four resistors side by side, perpendicular to the rear of the PS/2 connector.
| | | |
This is wrong. They should be
-- --
-- --
We need better silkscreen, and maybe to spread them out a bit so you can't fit them wrong.
There should be somewhere you can power a hard drive, optical drive, or other big storage device.
We could fit a Molex socket, or SATA power socket or a Berg if we're current limited.
How much current does an HDD use at 12V? We only have a 2A fuse. Maybe HDD power should be unfused, or have a higher rated fuse? How much does a FDD need?
Note 5V PSU takes 15W maximum.
Slot 6 is kind of out by itself. We should just put some 0.1" holes at the board edge with all the slot 6/7 signals.
You could use this to add a side-car to take it up to full ATX if you wanted. Or any other kind of add-on that is best to sit flat, rather than be on an expansion card.
The standard VGA demo board (https://shop.pimoroni.com/products/pimoroni-pico-vga-demo-base) uses:
Signal | Pin | GPIO |
---|---|---|
LRCLK | Pin 34 | GPIO28 |
BCLK | Pin 32 | GPIO27 |
DAT | Pin 31 | GPIO26 |
These docs from Arduino (https://arduino-pico.readthedocs.io/en/stable/i2s.html) note that LRCLK
must always be BCLK + 1
.
Currently we have:
Signal | Pin | GPIO |
---|---|---|
BCLK | Pin 34 | GPIO28 |
LRCLK | Pin 32 | GPIO27 |
ADC_DAT | Pin 31 | GPIO26 |
DAC_DAT | Pin 29 | GPIO22 |
The power light should blink when the unit is in standby, so we can use the status light as the HDD access light (or drive mounted light).
Where parts have both a DIP and SOIC footprint, we should offer both on the PCB (one under the other). This gives flexibility when ordering parts.
We should also add a pull-up pack to allow the use of the open-drain MCP23S18 in place of the MCP23S17, as that has better availability right now.
The TPD7S019 is hard to obtain. If we fit bypass links for HSYNC, VSYNC, DDC_SCL and DDC_SDA, the system will work without it fitted (but with 3.3V sync signals instead of 5V, no ESD protection on the VGA pins, and with 5V DDC signals).
The battery connector has legs which should probably go into holes on the board.
When the buffer is disabled, all the CS pins will float instead of being pulled high.
(Except the SD card CS pin, as that has a pull-up. And the STM32 can enable its internal pull-up. But slots 2 through 7 will float).
The '138 still allows us to disable the CS signals, but only takes 3 pins from the I/O expander. This frees up five pins for GPIO, debug display, or extra interrupt inputs.
For example the 74AC11138.
The PJ-063AH is £1. The PJ-202AH is 54p.
It's 55p. The PJ-063AH is £1.27
Like https://datasheet.lcsc.com/lcsc/1810181745_Hangzhou-Ruimeng-Tech-MS1681_C231920.pdf. LCSC part C231920.
The Keystone 103 is £1.10, and the part number of 103 confuses all the BoM tools.
https://www.digikey.co.uk/en/products/detail/adam-tech/BH-25D-1/13537701 is £0.25.
It says 10nF
?
It's very easy to connect a DC jack in reverse. We should at least fit a 2A Schottky diode to prevent the board being damaged if the polarity is wrong. Ideally we'd have a bridge so that either would work.
That kind of resistor array is hard to find. Just use four 0805s!
Every PR should add one line to the log
By taking 12V-18V in, we give ourselves flexibility, but we require a ~£7 PSU module that's not currently in stock.
If we took 5V DC in, we'd skip that problem completely. That would drive a 3.3V standby LDO for the BMC, the power/standby LEDs (solving #46), and a high-side power switch like the MIC2544 (costs about 75 pence). The power switch then supplies the rest of the board. It also acts as a fuse.
Smooth, not ouchy.
Signal/Power
Ground
Ground
Signal/Power
Fit transfer vias between Ground Layers right next to signal vias between L1 and L4.
Thermal reliefs are no use given we're not soldering anything here.
In I²C mode the CS pin on the codec sets the bottom but of the 7-bit I²C address.
It seems to default high (giving 0x1B) but we should pull it high to avoid problems.
Drop the DAC resistors from 12k / 24k to 1k / 2k. Hopefully a bit more current through the DAC will help reduce the noise.
Check what is available at 1% accuracy from JLCPCB.
You can sniff SPI from an expansion slot, but maybe bring all CS and IRQ lines to a header for sniffing.
Come up at 56pF. Should be C67560 which is 6pF.
Can we get a script to pepper the board with vias? If not, do it by hand.
Can KiBot generate nice JPEG or PNG views of the PCB?
Octopart has a "common parts library", which part numbers for generic items (like resistors, capacitors, etc). In the Octopart BOM tool these will then map to a manufacturer specific equivalent.
https://octopart.com/common-parts-library
We should use parts from the CPL in this repo.
One of the reasons the VGA DACs might be non linear going from 0111 to 1000 is that the digital outputs going into the R-2R networks are not perfect sources either because they do not go fully to 0V and 3.3V and also because they may have output impedance. Can be checked by measuring the voltages on the 12 outputs when set to 0111 0111 0111 and then 1000 1000 1000 and seeing how imperfect they are.
The LED current for the external case LEDs is a little low. On the Checkmate A1500 Plus case, the orange HDD light is OK, but the green power light is a bit dim.
If the LED forward drop is 2V, with a 1 kΩ current limiting resistor, that's 1.3mA. With a 1.7V LED it's 1.6mA. With a green or blue LED at 3.2V, we'll only pass 100 µA!
PCs will typically provide 5V for the case LEDs. Maybe we need to generate 5V stand-by (e.g. TPS7A2450DBVR 5V 200mA LDO), as well as 3.3V. We can switch LEDs powered from 5V by setting the STM32 pins to be open drain (i.e. GND or High-Z).
This also has the advantage that:
a) We can power the keyboard from the 5V SB, for keyboard power-on.
b) It moves the LED current off the 30mA MAX1615 (or we could just make this LDO more powerful...)
c) It makes moving to an ATX power connector easier, because they provide 5VSB.
We would control an ATX PSU with a nPS_ON
signal - pulling that line to ground to start the PSU.
Ensure they meet current handling requirements - more than fuse can handle so fuse blows first! Also check widths for 50 ohm impedance.
We should add pads for SMT or THT push switches for power and reset. Flat, vertical ones, not the horizontal ones the N32 used.
It's confusing having the Pico on the edge of the PCB. If you plug power in, it drives the IO lines and can back power stuff, which is bad.
Maybe move it inboard. Also means you can internally wire the microAB to an internal USB hub on an expansion card.
Digikey have PC99 compliant VGA sockets, which are blue.
Slightly cheaper than the black, and the same pinout.
Existing:
https://cdn.amphenol-icc.com/media/wysiwyg/files/drawing/c-cd-0011.pdf
New:
https://cdn.amphenol-cs.com/media/wysiwyg/files/drawing/l77hde15sd1ch4fvga.pdf
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.