ATTiny PCB Schematic Review Request - Page 1
Forum section: electronics / beginners

author: aiden_throw_2
author_rank: Newbie
timestamp: August 19, 2025, 01:06:36 am
content: Hello, I am very new to PCB design, and I just finished designing my first board other than a blinking led. The board is just a little game player powered by an attiny85. When designing it I referenced various similar projects I found online, but I just wanted some reassurance before I ordered the parts and board. Any help would be greatly appreciated, and I will attach the schematic and pcb layout.

author: brucehoult
author_rank: Super Contributor
timestamp: August 19, 2025, 01:36:07 am
content: LGTM.The main thing is that RESET/PB5 is an input. I see you've also got a big resistor there so a programmer can still control it even if the switch is closed and pulling it to GND.The right pins (RESET and SPI) are going to the programming header. I can't say whether they are going to the right pins on the header...

author: hugo
author_rank: Regular Contributor
timestamp: August 19, 2025, 02:41:38 am
content: If J1 is the programming header, then it should be like this:

author: mariush
author_rank: Super Contributor
timestamp: August 19, 2025, 10:52:44 am
content: Are 4 buttons enough?I figure you'd also want some action buttons ex A B buttons, and maybe select , start like on nintendo gamepadsYou could use fewer pins (at least 1) and use adc to read more buttons, see page 14:https://ww1.microchip.com/downloads/en/devicedoc/40040c.pdfIt's not clear what battery you plan to use if you plan to use a cr2032 cell, make sure it can actually provide the current for the display and that the display can run with 3v or less.I'd suggest adding a small step-up regulator to boost the voltage from one AA/AAA cell to 3.3v to power both the microcontroller with a regulated 3.3v.See for example TPS613221 :https://www.digikey.com/en/products/detail/texas-instruments/TPS613221ADBVT/9371269

author: Peabody
author_rank: Super Contributor
timestamp: August 19, 2025, 02:08:32 pm
content: It would make sense to breadboard this first, just to be sure it actually works, and that it can be programmed.

author: squadchannel
author_rank: Frequent Contributor
timestamp: August 19, 2025, 04:12:08 pm
content: think about chattering too.(contact bouncing? Japanese call it "chattering")

author: MLXXXp
author_rank: Frequent Contributor
timestamp: August 19, 2025, 04:19:11 pm
content: Quote from: brucehoult on August 19, 2025, 01:36:07 amThe problem is that SW4 is intended to be used as the "UP" button for game control, with pin PB5 set as an input. Since there are no external pullups, presumably the internal pullup will be enabled to pull the pin high when the button isn't pushed. This internal pullup will be about 30K to 60K. With R1 being 470K, the voltage divider produced when the button is pushed won't provide a voltage low enough to be detected as a LOW on PB5, so the button won't work.I think it would be better to eliminate R1 and just be careful not to press SW4 when programming. Or, use a resistor value low enough to produce a LOW signal but high enough to offer some protection.Also, note that if PB5 is used as a general purpose input, its "external RESET" function will have to be disabled by setting the appropriate fuse. This means that further programming will have to be done using the High-voltage Serial Programming method. And, high-voltage programming requires VCC to be between 4.5V and 5.5V, so the display has to be 5V tolerant (or removable).

author: PGPG
author_rank: Frequent Contributor
timestamp: August 19, 2025, 04:32:08 pm
content: My 3 cents.You are trying to do microcontroller device without using any capacitor. A very ambitious planAbout schematic:I would swap J1 to have VCC at top and GND at bottom - will be looking better.I never left wires ended with just label when reader have to look through all schematic to serach second end, and after finding it he still doesn't know if there may be is third wire ended with the same label (like for example PB0 in your case).I always use bus to drastically reduce the necessary search effort.We moved from Atmega to much better (in our opinion) AtXmega about 15 years ago. You program AtXmega using 2 signal lines. We use no connectors to program it, but just 3 holes little shifted outside so pin header inserted in them get contact with all 3 pads.

author: MLXXXp
author_rank: Frequent Contributor
timestamp: August 19, 2025, 05:08:26 pm
content: Quote from: mariush on August 19, 2025, 10:52:44 amYes, this is a possibility, but note that with this method only one button can be detected being pressed at a time. For example, if UP and RIGHT are on the ladder, you couldn't detect that both UP and RIGHT were being pressed at the same time.Quote from: PGPG on August 19, 2025, 04:32:08 pmIt looks like the display is a module, which will likely include bypass capacitors. This may be sufficient to provide decoupling for the MCU, as well. However, I agree, it would be better to add a bypass capacitor close to the MCU.

author: Peabody
author_rank: Super Contributor
timestamp: August 19, 2025, 05:18:49 pm
content: My understanding is that you can leave the pin in Reset mode, but still use it as an input so long as the voltage does not drop below about 2.5V (assuming VDD is 5V), at which point it will reset. But you can still read the pin with ADC. So the divider could drop the voltage to, say, 3.5V when the button is pressed. It takes longer than a digital read, but still pretty fast in human terms. I don't remember if there is an internal pullup that's enabled in Reset mode. Probably is.

author: MLXXXp
author_rank: Frequent Contributor
timestamp: August 19, 2025, 05:37:54 pm
content: Quote from: Peabody on August 19, 2025, 05:18:49 pmQuote from: Peabody on August 19, 2025, 05:18:49 pmI was going by what I read in the datasheet. In section 10.3.1 it says (emphasis mine):QuoteHowever, it saysdigitalinput, so you may be correct that the ADC input is still available.

author: Peabody
author_rank: Super Contributor
timestamp: August 19, 2025, 05:55:13 pm
content: I don't think you want to change the pin from Reset to GPIO. High-voltage programming is no fun. However, there are two "bootloaders" available for the 85, Sparkfun and Adafruit, and I believe one of them switches the pin to GPIO. But both of those bootloaders program the chip via USB, kinda, so they don't actually need to reset. But by reputation, I don't think either bootloader is all that reliable with modern computers.So really, the way to go is to leave it as Reset, and use ADC to read the slight drop in voltage when the button is pressed. That preserves normal flashing. It looks like your original schematic is doing it that way.