This project was created as a supplement to my job application to Mirumee.
It's purpose is to deliver fully functional web server in smallest form factor possible.
The battery should provide at least 2 hours of continuous usage.
- ESP8266 WiFi SoC module - ESP-01S
- Winbond 25Q32BVSIG 4MB Flash memory chip
- TP4056 Lithium Battery Charger and Protection Module
- 250mAh 3.7V Lithium Polymer Mini Rechargeable Battery
- Bistable slide switch
Because ESP-01S modules come with 1MB of Flash memory, which was insufficient, the stock memory was desoldered and Winbond chip was soldered in it's place.
The software running the web server was written using Arduino in PlatformIO environment.
In order to build the software run the following command inside the terminal form the esp8266 folder:
platformio run --target upload
After building the frontend (covered later) run the following command to put the data form the "data" folder inside of the chip's filesystem.
platformio run --target uploadfs
The frontend was written using Preact.js - fast React.js alternative with small code footprint. Because the device is battery-driven it was decided to not use any lazy loading. Upon request the user is provided with index.html which in turn requests bundle file. Because ESP SPIFFS (SPI Flash File System) accepts filenames of maximum 36 bytes, the webpack-generated hash names for font files needed to be manually shortened. All the files including bundle, and excluding index.html, were compressed using gzip.
The only files not bundled inline are the PDFs with CVs which are, because of their size, loaded only upon explicit request.
In order to build the frontend, run the following from the terminal inside the root of the document:
npm install
npm run build
The case for the server was designed in Rhino3d software and 3D printed. Because of the details and microscopic model gaps, the logo was printed using DLP technology, whereas the casing was printed with FDM.
- Turn the device on by sliding the switch outwards.
- Connect to “Jan Chodorowski” Access Point using either mobile device or computer.
- Open your web browser of choice.
- Ignore the “no Internet” alerts if any.
- Navigate to 192.168.4.1.
- After using the device turn it off by reversing step 1.
*When navigating to github via link, user will be informed of the need of connecting to the WiFi with the access to the Internet.
- Make sure the power switch is in the OFF position.
- Connect provided microUSB cable to the device.
- Connect the cable to 5V power source.
- Wait until the red light on the bottom of the device turns blue indicating fully charged battery.
- Disconnect the cable form the power source and the device.