Hi,

here’s an incomplete list of hardware I already own:

  • 3x ESP32-S3-N16R8
  • 1x OV2640 cam
  • 3x ESP32-NodeMCU
  • 4x Raspberry Pico 2W (RP2350)
  • 1x Arduino Uno
  • 2x Raspberry Pi Zero 2W
  • 5x 2-channel optocoupler relay modules
  • 1x 1-channel relay galvanically isolated
  • 5x Logic Level Shifter 3.3V <-> 5V (I2C compatible)
  • 2x LoRa Hats for Raspberry Pico 2W
  • 1x OLED Display Hat for Raspberry Pico 2W
  • 1x eInk Display Hat for Raspberry Pico 2W
  • 1x LCD Display
  • 2x 3,5" Resistive Touch Displays
  • 5x IR-Sensor
  • 5x IR-Transmitter
  • 1x Waveshare Solar Power Manager D
  • 1x Solar Panel 18V10W
  • 3x 3300 mAh batteries
  • 1x RTC-module
  • 2x Temp sensor
  • 1x NFC-Reader + Cards + Tags
  • 1x Dual GPIO extender for the Pico 2W
  • 1x Motor
  • Resistors
  • Capacitors
  • microUSB / USB-C wires
  • Multimeter
  • A solder station
  • Jumper wires
  • Breadboards

Is there anything I’m missing? I usually like to do stuff with encryption, machine learning, transmission of data, controlling devices.

  • carzian@lemmy.ml
    link
    fedilink
    arrow-up
    5
    ·
    14 days ago

    Off the top of my head

    • Logic analyzer (either USB or part of an oscope)
    • USB TTL adapters
    • JTAG or other debuggers
    • USB C breakout boards with setable voltage via USB PW
  • azimir@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    14 days ago

    Have you tried anything with CAN Busses? That has applications in robotics and automobiles.

    I really like working with raw microcontrollers. I’ll just use a ATMega 328p or an At tiny 84/85 to drive something sans breakout or interface boards.

    Someday I’ll find an excuse to use an ATTiny 10, but I just haven’t so far.

    • q1p_@lemmy.zipOP
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      14 days ago

      I haven’t tried yet with CAN busses but I’m interested. Is there anything super cool I could do with CAN that I can’t do with SPI or I2C?

      While I haven’t worked with raw microcontrollers (no-module mc) yet, once I worked with a microchip and wrote a library from ground up to get the chip running. That was amazing :)

      Which programmer can you recommend? (I’m on macOS btw) I think I will buy the ATTiny 10 tiny buddy.

      • azimir@lemmy.ml
        link
        fedilink
        arrow-up
        3
        ·
        13 days ago

        The biggest advantage to CAN bus is that it’s a true multi-master bus. Any node can broadcast at any time. The other nodes will back off (there’s a priority list for the nodes) and allow transmissions through. It’s not a master/slave kind of system where nodes send/receive to addresses. A node broadcasts on the bus and the other nodes can decide whether to receive and act on the message, which opens up a much more distributed system of pub/sub style architecture, but with embedded systems.

        The other biggie is that it uses a differential voltage transmission. Much like the difference between RS232 and RS485. A CAN bus may stretch 10’s to 100’s of meters, depending upon transmission speeds. With that kind of range, you can now wire up larger hardline sensor and controller systems for human-scale environments which I2C and SPI just can’t do. It’s also much more robust to handle noise on the lines, though it takes hardware level support for many of the features.

        I haven’t picked a ATTiny 10 programmer yet. For my ATTtiny 85 chips I have a Arduino shield that I wired up. For ATTiny 84 and ATMega 328p I have USB driven boards with ZIF sockets to make inserting/removing the microcontroller chips easier. Basically really cheap ones I found on Aliexpress years ago and they keep working just fine.

        I use a combination of the ArduinoIDE and the ArduinoCLI to program the chips, depending upon the project and how much effort I want in my build toolchain.

        Among the raw microcontrollers, the ATTiny 84/85 needs the least analog wiring support. The ATMega 328p needs you to provide at least a little external wiring.

        • q1p_@lemmy.zipOP
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          13 days ago

          Impressive knowledge. It would be cool to experiment with it but when I do microcontroller projects I usually wire the MCU board right next to the module I’m controlling. I can imagine though that it’s easier to put the microcontroller right next to a reliable power source and then use CAN to control/read/write the device/module from a further distance. But wait, why wouldn’t I use a wireless protocol instead?

          For my ATTtiny 85 chips I have a Arduino shield that I wired up. For ATTiny 84 and ATMega 328p I have USB driven boards with ZIF sockets to make inserting/removing the microcontroller chips easier. Basically really cheap ones I found on Aliexpress years ago and they keep working just fine.

          I was actually just reading about the different protocols that can be used to flash an unsoldered microprocessor and I came to the conclusion that I can flash most of the MCUs with hardware I already have. I can flash the ATtiny MCUs and ATmega MCUs with the Arduino Uno as an ISP using jumper wires. I can also flash one ESP32 with another ESP32 by, for example, loading an esp-usb-bridge or serial flasher firmware onto an ESP dev board and using it as a programmer. I can flash an MSP430 via JTAG or Spy-Bi-Wire using my Raspberry Pi Pico debug probe. My hardware covers almost all cases, the only thing I’m really missing is a programmer that supports PIC ICSP :/

          I use a combination of the ArduinoIDE and the ArduinoCLI to program the chips, depending upon the project and how much effort I want in my build toolchain.

          Usually, I use vscode + platformio and I can really recommend it.

          the ATTiny 84/85 needs the least analog wiring support

          My purchase list is this:

          • 1x Seeed Studio XIAO ESP32-S3 Sense
          • 2x Seeed Studio XIAO ESP32-C6
          • 1x ATTiny 10+
          • 1x Logic Analyzer
          • 1x PIC ICSP programmer
          • 1x CAN bus breakout