Current status

V4 is currently in work. This is what I have so far:

V4 general schematic and footprints puzzling robots and Inscape edit

Note: all schematics are made with KiCad and the postprocessing with Inscape and Carvera Controller.The pcb mill used was the Carvera Desktop.

Microcontroller

Current status:

The XIAO RP2040 will be used for this project.


Storytime:

Oldest to Newest: Top to bottom

  1. Microcontroller Compatible with NFC/ RFID (Accurate) Clock # I/O Pins # UART Pins # SPI & I2C Pins
    XIAO (RP20240)by Seed Studios , library 14 1 2
    ATTinyby MIT ✔ *2 X depends on model depends on model depends on model but in general not enough
    Pico-zero (RP20240) by Rasperry ✔ *3 29 2 4

    Both the Pico and theXIAO are fairly cheap and comparable in both size and cost. However, the Pico has enough pins that are compatible with I2C and SPI. Hence, the Pico was chosen.

  2. So, I made a test board for 2 versions of the Pico:
    Left: test board for the Pico H; Right: preview of the test board for the Pico Zero
  3. When it was my turn to present in the global class, Neil recommended to reduce the complexity for instances by using a XIAO instead of the Pico.

    I was hesitant at first because pins were missing. Then, I read somewhere that as long as all RFID modules can have the same ID, they can be connected to the same pin in parallel. Unfortunately, I can not find that source anymore, but I will keep looking for it and link it when I found it.

    This development means, that the the microprocessor used in the next general schematic will be a XIAO.

RFID modules

Current status:

Will be using the RFID MFRC522 modules for communication. For comparison, testing will be completed with sticker RFID modules based on the same IC that only cost a fraction of the MFRC522 modules.

Storytime:

Oldest to Newest: Top to bottom

  1. Comparison of communication Technology. Wifi, Bluetooth, and Zigbee have been disqualified due to set-up.
    Protocol Pros Cons Sources
    RFID
    • Connection will only be established within a distance of 2-7cm
    • The same device can both receive and send data
    • Is reliable
    • Simple connection possible through phone app
    • Connection can also be established with tags/ cards
    • No device syncing required
    • Cheap modules
    • Vulnerable to eavesdropping if close enough but in general rather save to hacking
    • Compatible with almost all microcontrollers
    • Can only transport a relatively small amount of data
    • Comparatively slow
    • Easily hacked if within range
    ESP-NOW
    • No central broker required
    • ECDH and AES encryption available
    • Payload data has a maximum of 250 bytes
    • Device-pairing required
    • Many-to-many communication is possible, but limited to low numbers of participants
    Digikey Getting started with ESP-NOW
    Due to the fact that the ESP-NOW protocol does not support higher number of participants, the RFID protocol was chosen. Additionally, the RFID protocol has the advantage that it automatically restrict communication to only the immediate neighbors due to its limited range. This simplifies the coding a lot.

  2. RFID Module Compatibility Range Cost Type of I/O Pins required Notifies if tag is removed Individual IDs Datasheet
    PN532 NFC/RFID Arduino, ESP, etc. 4-5cm (1*) 13.48 Euro (Amazon) I2C or SPI or SerialUART ✔ (I2C only has 1, *1) Datasheet
    RDM6300 Arduino, Raspberry, ESP etc. Very close (low frequency) 5.8 Euro (Makershop) UART X X Datasheet
    MFRC522 Arduino (*1, *2), Pico ~4cm, Expandable(*1) 7.99 Euro (Amazon, 3 pieces) SPI, I2C, UART Datasheet

    Sources linked to on name. Other sources:

    Conclusion: MFRC522. Cheap and covers all requirements. It is also the most common one, so there is a huge online community supporting it.

    Requirement of microcontroller: Total of SPI and I2C capable pins is at least 4.

  3. Testing RFID modules:
    Left: Testing on a breadboard with the XIAO; Right: Testing on a pcb from Neil with a ATTiny
  4. Later, I read somewhere that if the RFID modules themselves can all share the same ID number, they can all be connected to the same pins of the microcontroller. This set this choice in stone.

Linear Voltage Regulator to 3.3V

Current status:

Produced pcb to test

Storytime:

Oldest to Newest: Top to bottom

  1. Found this component on the Fab Inventory and pulled up the datasheet. There, it said how to wire it up.

Button

Current status:

Will use the bought buttons.


Mounted button on the V6 chassis

Storytime:

Oldest to Newest: Top to bottom

  1. I wanted a big button, so the small ones won't do. First, I printed this button from Thingyverse
  2. Test setup with RGB Button PCB:
    Left: Printed pieces to assemble button; Right: Soldered pcb with the printed button attached

    The results were not satisfactory, so I decided to buy ready made buttons.

  3. These buttons were the ones I settled on.
  4. If there is enough time, I would like to make my own arcade buttons, as they are quite costly.

    Here are some thingyverse references with ready-to-make files:

LEDs

Current status:

One RGB LED within the bought buttons is sufficient.

Bought LED holder from the button

Storytime:

Oldest to Newest: Top to bottom

  1. Charlieplexing vs Neopixel vs single LED
  2. Several LEDs vs RGB LED
  3. Test setup with RGB Button PCB
  4. Will use the mounting plate that came with the buttons to save resources

Battery and Charging Circuit

Current status:

Will use these Li-Ion batteries


Storytime:

Oldest to Newest: Top to bottom

  1. This is going to be a swarm, hence there is going to be a lot or robots active at all times during usage. To minimize overlay lay time and patience while changing the batteries, a self-charging circuit is required.

    The ideal battery for this project should be cheap, light, rechargeable, and durable. With this limitations only button batteries, AA, AAA, and LIPO batteries will be taken into consideration. However, the final choice for the batteries will be decided by safety and speed of their respective charging circuits.

    There seems to be predominantly 2 chips on the market that is recommended for charging LIPO batteries.

  2. Then I had decided to use a coin battery ....
  3. Finally, I settled on this Li-Ion batteries.

Project Progress and Status

  1. Started by comparing communication technologies and available microcontrollers, RFID modules, LED constellations, charging circuits, and voltage regulator systems. For more information please go to the submodules section.
  2. Started by doing a general schematic to get an overview:
    V1 general schematic
  3. I was told to reduce the complexity of the project, so I decided to test the different submodules separately first. For more information please go to the submodules section. Neil recommended using the XIAO and simulate the SPI connection in code to require less pins.
  4. After finishing working on the individual submodules, it was time to make a V2 on the general schematic:
    V2 of general schematic puzzling Robots and footprint. Made with KiCad

    Download files:

  5. V3 Updated design:
    • The previous footprint would have not fit in the chassis. So I redesigned it to be build in layers.
    • Dimensioned the PCB in accordance to the chassis design
    V3 general schematic and footprints puzzling robots and Inscape edit

    Download files:

    Testing:

    Error: The interfaces between the layers where not stacked cleanly

    Additionally, even tough I dimensioned it with the measurements of the chassis, I neglected to take into account that the RFID modules at the side do take up space and block some space at the sides. The measurements have to be redone.

  6. V4:
    V4 general schematic and footprints puzzling robots and Inscape edit

    Download files:

    Difficulties during production:

    Production process. Left: freeCAD measuring based on bottom plate; Right: Fitting the traces into the freeCAD SVG
    Left: The imported lines are not straight. I just hope it will work itself out in the production process; Right: There was no fill from the imported FreeCAD svg, making it really hard to invert the colors. Fixed it by creating a new rectangle as a background.