I received and tested the Rev 2 PCB design. The very minor revision was an attempt to improve Wifi performance and make it easier to mount the LED. As shown below Wifi performance is about the same.
I tested Wifi performance with three setups. One with the tCam-Mini acting as an Access Point and my laptop connected to it in the same room. A second with tCam-Mini configured as a client connected to a OpenWrt router in the same room and a third with the camera configured as a client connected to a Netgear router in a different room. I streamed data for three minutes to compute an average fps and I ran each test twice. The average values are shown below, including a board with an external antenna. There is some variability, even with three minute runs, due to Lepton FFCs that occurred while measuring.
Setup | Rev 1 - internal antenna | Rev 2 - internal antenna | Rev 1 - external antenna |
---|---|---|---|
Access Point | 4.36 fps | 4.48 fps | 5.94 fps |
Client - OpenWrt router | 4.68 fps | 4.19 fps | 6.34 fps |
Client - Netgear router | 4.86 fps | 4.89 fps | 6.05 fps |
Clearly an external antenna improves performance. Interestingly the Netgear router in another room performed better than the Openwrt (fairly old mips-based chipset) in the same room.
Firmware Revisions
Rev 1.2 firmware fixes two issues that have come up during testing and board bring-up. The first was a bug where the board would not connect to an AP if its first attempt failed (it would reconnect later with no problems). The second was a hardware issue where I found the Lepton was not being left in a good condition if its external crystal oscillator took too long to startup. I found this testing alternate crystals since currently the crystal I specified is unobtanium.
I have an idea about how to improve the camera's performance in firmware. Right now a single task handles converting the Lepton data into a json string with Base64 packed data and pushing into the ESP32's network stack for transmission. If pushing the data causes the task to block then I may be able to increase performance by splitting the process into two tasks so the next frame can be converted to a json string while the previous frame is loaded for transmission.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.