Conclusion
List of required BOM components:
- 3x MCFRD522 NFC/RFID modules
- 1x Rasperry Pi Pico Zero
- 4x RGB-LEDs
- 1x Arcade button
- 1x LED for button
- Screws!!!!!
- Screw nuts
List of components that have to be produced:
- 4x parametric Corner Outer from W2. Update: Size est.: ; Material:
- 4x parametric Corner Inner. Update: Size est.: Material:
- 1x button Top: Est. size: Material:
- 1x bottom Cover 'Batteries holder'. Est. size: ; Material:
- 3x PCB 'LED and NFC'. Est. size: ; Material:
- 1x PCB 'Brain and Soul od puzzRob'. Est. size: ; Material:
For a more formal description of the process of choosing the required hardware, please open this file:
Finding the requirements for the microcontroller
General requirements from Project Overview
- Algorithm wise
- Distributed communication between robots (asynchronous, event driven) physical connection required? What options are there for asynchronous communications?
- Communication to user interface (depends on microcontroller, in general excessive tutorials online)
- Figure out where each robot is in relation to another
- Spread info of new task to everyone
- If many orders are given: decide one unanimously
- Electronics
- feedback LEDs that change according to chosen game/ remaining battery (opt: sound/ vibration output)
- button for physical input
- enable communication between robots
- plug'n'play charging for robots (best if implemented in storage box)
- turn on automatically when removed from storage box
- Mechanical
- allow for modular design to test different components
- robustness -> product available for children, too!
- User and consumer requirements
- make usage intuitive -> psychological & simple chassis/storage box design. Keep instructions and rules to a minimum
- easily interface intuitive -> maybe instead of website app and even simpler: Cards (collectibles)
- keep it cheap -> mass production is the goal
Based on that, the following rough outline of required components is required:

Requirements of different components -> see their individual cards further below, this is a summary.
- Battery Charging system: precise clock required
- User Interaction and Other Modules: at the vry least 10 I/O Pins
- Communication: as many I2C, SPI, UART compatible pins as possible
Based on this, an advanced microncontroller should suffice (comp: FPGA, Microprocessor.) FPGA not required and too complex functions to simply code in FPGA, high cost (vid: https://www.youtube.com/watch?v=jblpHUCPQYs) Microprossesor not required ->no high rendering required, low enough data rate needed, mobile application, high cost (vid: https://www.youtube.com/watch?v=3gZayMLwGQ4) vid choosing microcontroller: https://www.youtube.com/watch?v=6R6AR2cDXXM
Communication between robots
Requirements technology:
- Capable of unlimited amount of communication pasterns (for scaling) -> No permanent connection + no individual set-up
- Capable of transferring data (rel small amount should suffice) -> Nice to have: bitrate at least 16 bit
- Selective communication to neighbors -> Temporary location based selective connection
- The user has to be able to input the mode wirelessly -> connection can not get confused between technologies. Best: find a protocol that can do both
- Low cost and energy efficient to save battery
Comparison of available communication technologies:
WIFI
Requires set-up. Not qualified.
Super BLE/ BT
Set-up required. Not qualified.
NFC/ RFID Communication
Pros Cons Connection will only be established within a distance of 2-7cm Can only transport a relatively small amount of data The same device can both receive and send data Comparatively slow 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
Information from:
- NFC Developer's guide for Android
- Secure Microcontrollers NFC Overview
- Watch: "How RFID Works? and How to Design RFID Chips?"
- Basics/Differences NFC/RFID
NFC/ RFID is very suitable to the Puzzeling Robot project.
ESP-NOW
Espressif's very own communication system. It replaces the uppermost 5 layers of the OSI and only works with some ESP microcontrollers.
Pros Cons No central broker required Payload data has a maximum of 250 bytes ECDH and AES encryption available Device-pairing required Many-to-many communication is possible, but limited to low numbers of participants Due to this communication protocol not meeting the requirements, the ESP-NOW is not suitable for this project.
- Zigbee
Specialized on long range communication. Set-up required. Not qualified.
Based solely on this criteria, NFC or RCIF seems to be the best option.
Comparison between common modules for NFC/ RFID Communication:
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.
Requirement on electronics: Tristate shift registers for parallel input and output
Note: This module works with 5V. Linear Shifter might be useful.
Charging circuit
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.
- TP4056. There seems to be some debate online on how to use it safely. It required a precise clock. Here are some basic tutorials to get started:
- BQ24092. An alternative who I found considerable less amount of information on online. A precise clock seems to be important here, too.
Conclusion: New requirement to microcontroller: precise clock.
User feedback system
This should be as simple as possible! Some of these games can also be used to train demetia for people with advanced age or simple children games. As such, during the development I will focus on ages 5-16 and 70+ of all genders.
Therefore the following requirements ensue:
- The size of each puzzRob should be big enough that small children can not east and choke on it
- Sharp corners should be avoided to minimize the risk of cuts
- Usage should be as intuitive as possible -> simple instructions and games
Through my personal experience with elderly people, I have gathered that they especially struggeled with the usage of 'the internet'. Phones also seem to be more daunting than helpful. It would therefore be best, if there is no screen required to use the puzzRobs. They tend to accept things better that remind them 'of before', that means the outer design of the puzzRobs should be as friendly and as less intimitading as possible. The games offered should also remind them of 'before'. What exactly those are strongly depends on the culture. In my personal experience across continents I observed that classic card games are prevalent. However, other classic games like 'Memory' or 'Dominos' are wide spread as well. It should further be noted, that the future generation of the 'elderlies', commonly known as the 'boomers' have been vocal with their dislike for electrical appliances. After that, the genrations seem to be growing fonder of technology as a hole.
In contrast, the newest generation grows up with a lot of screens around them. (At least from a stereotypical point of view) From a small age they seem to be getting used to utilizing small computers and roboters predominantely thorugh modible devices. It´s easyiest for them to use an App instead of having to buy additional devices to control their toys.
Based on this (rather general and full of stereotypes) research, I would say that it would be best if the users could have the option between an additional technical ways of controlling and updating the swarm. Luckily, NFC offers the options to do both: have an app on the phone as every modern phones comes equipped with NFC sensors for contactless payment options. Credit cards work in similar ways, they use NFC for contactless payment. These cards are really cheap and writing to them is possible, though the difficulty depends on the memeory layout of the card itself and the selected protocol of the module.
List of child save connections. More information on the one that seems the most suitable.
On buttons
LEDs and Relays
The plan is to build an architecture around an event-based programming model. Hence, the microcontroller should be able to support a language that can use this architecture. Additionally, at the very least 10 I/O Pins are required to control the user feedback system.
Comparison Microcontrollers
The time has come to choose! All requirements to the microcontroller have been gathered. Here a full list of the requirements so far:
- Project architecture: Support of event driven model architecture
- Battery Charging system: precise clock required
- User Interaction and Other Modules: at the vry least 10 I/O Pins
- Communication: as many I2C, SPI, UART compatible pins as possible
Note: Development boards like ESP32, STM32, or Arduino boards were banned from the lab by our instructor. As such they have not been taken into consideration for this comparison.
Microcontroller | Compatible with NFC/ RFID | (Accurate) Clock | # I/O Pins | # UART Pins | # SPI & I2C Pins | Other |
---|---|---|---|---|---|---|
XIAO (RP20240)by Seed Studios | ✔, library | ✔ | 14 | 1 | 2 | Recommended by Neil & Ferdi & Matthias (FAB Node Ilmenau) |
ATTinyby MIT | ✔ *2 | X | depends on model | depends on model | depends on model but in general not enough | Recommended by Neil & Ferdi & Matthias (FAB Node Ilmenau) |
Pico-zero (RP20240) by Rasperry | ✔ *3 | ✔ | 29 | 2 | 4 | Recommended by Neil & Roderich Groß (Supervisor TU Darmstadt) |
Both the Pico and theXIAO are fairly cheap and comparable in both size and cost.
As I will keep developing robots along with Mr. Groß, it is advantageous, if I use I microcontroller he is also familiar with. The Pico also offers more relevant Pins.
Conclusion: I will build the puzzling robots around the RP2040 Pico Zero Board
Simulation options
The Pico Zero and the user feedback system can be simulated using the online simulator Wokwi. Event (or interrupt) driven architecture is supported as well. However, Wokwi does not have a simulation module for RFID connections.
The other simulation program recommended in class is Tinkercircuits. This simulation page is not compatible with the Pico and also does not support RFID modules.
Instead, the ClearStream Simulator seems to offer the option. I have to do further research into this simulation platform. For now, testing the user feedback system using Wokwi will suffice.
Additionally, Circuit JS offers simulation of electronic circuits online. This might be useful when implementing systems that do not require embedded programming.
Due to time constraints, I was unable to complete my the simulation assignment. I will hand it in as soon as I'm done with my exam and am done with that weeks assignment!