BusinessCard
PublicLoading…
Overview
This is a simple 4-layer PCB, the size of a credit card (approximately - 85.6 mm x 54 mm with rounded corners) that has the main purpose of being a business card and secondary purposes of not becoming e-waste once the novelty has worn off.
The business card is built around an ESP32-C3 SuperMini develompent board, as such it can be used outside of its base functionality.
Functionality
First impression
When handing out the card, the front side will look like this:
You can see here the contact details (name, email and mobile number) of the owner, a QR code that can show anything the owner wanted (I used it to link to my LinkedIn profile).
All the components (except LEDs) are placed on this side. The ESP32-C3 SuperMini (castellated PCB) is soldered on this side and, if the recepient wishes, it can be used as a standalone development board (on or off the business card). Also on this side, we can find another IC: ST25DV64 - an NFC tag IC with 64 kbit EEPROM which is connected to both the ESP32 and to an NFC antenna and tuning circuit. In the tag memory you can find the link to this GitHub repo by approaching the card to an NFC reader or to an NFC enabled phone.
On the front there is also a button which has multiple functionalities.
Turning the card on the other side, you will find a lot of LEDs (47 of them) in a familiar pattern.
Power up
The business card can be powered from any USB-C 5V supply (PC, laptop, smartphone, powerbank, wall plug adapted etc.) by pluging the USB-C cable in the ESP32-C3 SuperMini's USB-C port. As programmed, it takes less than 200mA at any time, but beware, you can program it to take over 1A in a worst-case situation.
Connecting and configuring
Once the card is powered, an LED in the middle of the board will be lit with an amber-ish white colour.
At this point when you go to your preferred device with WiFi connectivity and a web-browser you can connect to the AutoConnectAP WiFi network (access-point) created by the ES32 device. Once connected a webpage opens (should open) automatically. If it doesn't, navigate to the following IP address in your browser's navigation bar: http://192.168.4.1
AutoConnectAP selection:
WiFi Manager page:
Configuration page:
Configure your preferred internet access-point (SSID and password).
Configure your timezone and daylight savings.
Click save and wait while the ESP32 connects to the WiFi network you configured. The settings will be automatically reloaded when the card is powered up. If there is a problem with saving the timezone and daylight savings configuration, the LED will turn briefly to yellow. This means that, even if it works now, when powered-up again the timezone will default to GMT+2.
Clock functionality
Once connected to the Internet, the ESP32 will query an NTP server to get the current time. Now the clock is shown on the LEDs in 12-hour format with the seconds marked by the blinking hour and minute separator and the LED that was used to show the status now functions as PM-indicator (when ON/OFF, the hour is PM/AM).
The button mentioned earlier now changes the color of the clock. Default is white (which is selected at power-up), but pushing the button once will make it red, pushing it again will change to green, then blue, yellow, cyan, magenta and then start with white again and repeat.
A short mention: the clock doesn't need continuous connectivity to work, as the ESP32-C3 has an internal RTC. Once the time has been queried from the NTP server, while the device has power, the clock will be kept up-to-date by the RTC.
Clearing connections
That button has another function: clearing the saved connections. If you have a saved connection, the card will attempt to connect to it for ~5 minutes. If it fails, it will restart the AutoConnectAP network so you can acess the WiFi manager to configure another connection. If you know the configured connection is not available and don't want to wait, at power-up or reset (use the reset button on the ESP32-C3 SuperMini), hold the button pressed for ~3 seconds to clear the saved connections and restart the WifiManager.
Note that this doesn't clear the timezone and daylight savings configurations, but you can update them when reconfiguring the Internet access.
Future functionality and improvements
Software
- Be able to write to the NFC tag through I2C
- Port code to be used with VisualStudioCode
- Clean code
- Optimize code
Hardware
- Make the clock clearer
- Optimize for thickness
- Create a DYI kit for it
- Add optional battery power
- Fix future issues that appear
Conclusions and build notes
This is a first attempt at something like this, and I want it to be both a showcase of capabilities and useful for the person who receives it.
All the components were soldered manully, please be gentle with the alignment. The PCBs were created at JLCPCB, future projects will also be built in the EU (Eurocircuits, MultiCB or other closer to home).
The design was done in KiCAD, firmware was created using Arduino IDE. The main libraries used that I want to highlight are WiFi Manager by tzapu and Adafruit's NeoPixel that have great explanations and examples.
No comments yet. Be the first to ask about this board.