Hello y’all! I’ve always been interested in computers and programming for as long as i can remember, but recently i’ve decided to try to get into some of the deeper stuff behind that, into the wonderful world of electronics. Where should I start? What courses or books or youtube series should I consume? What are some high-quality forums, communities, blogs, etc. to learn from?

  • Azzy@beehaw.orgOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Holy shit (sorry)! You really know your stuff, or at the very least, I don’t know my stuff! I’ll keep in mind the stuff you said about the ESP32 and the ATMEGA, but I was more so referring to the editions of those dev boards that use the RP2040!

    https://www.sparkfun.com/products/18288 https://www.sparkfun.com/products/17745

    After reading a bit more, it seems that pretty much the only difference is the IO and other supporting hardware besides just the chips. If someone (me) were working on a project where solutions like these particularly-powerful microcontrollers are required, when would it make more sense to use one of these pre-made boards for computing rather than making your own PCB designs including the chip? Is it mostly for projects where extremely compact form factors (and/or other shenanigans) aren’t necessary?

    • Saigonauticon@voltage.vn
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      Glad to help :)

      Besides the I/O and supporting hardware, the clock speed is wildly different between these 3 chips – that's worth considering. By that metric, the ATMEGA based designs are the slowest by far – although somewhat faster than you'd estimate since they usually operate 1 instruction per clock cycle, whereas the other chips are a few clock cycles per instruction (they are still way faster than the ATMEGA line though).

      Regarding pre-made boards vs. your own? I think there are three things to consider:

      1. Pre-made boards are awesome for prototyping. Making sure the damn thing will work (feature-complete) before designing your own board is a good idea. Then, make your first board with all features added in (this is important), but expect to iterate at least once (make revisions and order boards a second time). There's no such thing as premature optimization in hardware design – it's not like software where you can just design the core of an application and then build features as you go. This is why always designing prototypes to be feature-complete is a good workflow, and generic development boards are a good starting point for this.

      2. Designing your own board is really easy for AVRs. I do this all the time, lately with the Attiny10. Honestly there are a ton of AVR chips out there, and not all of them have affordable / popular development boards, so often it's worth making your own for use in item 1 above (…really you just need at minimum power and a header to break out the pins for ISP programming). Then when you want to make your final widget, you just expand your development board design, which lets you make a really miniaturized and streamlined thing! You will need an ISP programmer though, like the AVR-ICE (which has a nasty but minor bug in the design – ping me before buying one and I'll save you 2 days of headaches setting up).

      3. A neat trick is to design your own boards and still use a dev board (so making your own boards and buying premade dev boards are not mutually exclusive options). This is especially useful with the Pi Pico and ESP32 (where making a dev board is less beginner-friendly) – a cheatcode is "castellated mounting holes". These let you solder (for example) a Pi Pico dev board directly to your own design as a surface-mount component. You can do this by just adding a socket and using header pins too, but SMT + castellated mounting holes lets you keep the design small and reliable.

      BTW when designing your own boards, committing to SMT parts (where possible) early on is one of the things I'm really glad I did. You don't need much tooling to do it. Just a solder paste syringe, a toothpick or pin, some tweezers, and a hot air rework station (included in some soldering stations). Even 0402 parts (about the size of two grains of salt) are pretty easy to do by hand. It's amazing the level of miniaturization that you can achieve these days this way, as a private individual with a very modest budget!

      Finally, the Arduino products are generally very good dev boards, whether or not you're using the Arduino IDE (you can still program them ASM or non-Arduino C++). So for any chip that an Arduino exists for, it's an excellent starting point – although you may want to design your own board one day to remove unnecessary stuff if it comes out cheaper and you go through a lot of them, or just for the experience.