Close

​Wearing, testing, debugging and learning

A project log for Wearable Raspberry Pi personal assistant

Powered by Raspberry Pi, Python, #pyLCI, 18650 cells and tons of peripherals.

aryaArya 09/25/2016 at 11:200 Comments

The hardware is mostly finished. I'm starting to wear it. Now is the time for initial tests. Battery life, hardware quirks, ergonomics and ease of use - everything is to be considered. I'm also starting to enable its functions one by one.

I've solved some issues with the display board - some unshielded contacts were touching each other. Oh, about that...

I'm doing "shake tests". Basically, you shake the thing while it's on your wrist and bang it on all surfaces until it breaks, then fix and strengthen what's broken. Else, you just wear it for a week or so and problems will surface anyway. The issues I've found were:

  1. A bad quality IDC-40 cable which eventually developed a crack in 3.3V wire, causing display to lose power and therefore become blank. Solution: found a reliable cable in my hackerspace (salvaged from some industrial-grade board), should be good for 2 more breakages. IDC is not the way to go though. =(
  2. The protoboard on which I've layed out the display capacitors etc. had some loose wires which'd touch occasionally. Solution - kapton and soldering.
  3. The display board falls off if bracelet is dropped. I consider that a nice feature till the next display module prototype. Maybe some hot glue would be a good temporary fix.
  4. IDC-10 cable which carried power and USB connections to the CPU module was under stress and eventually developed cracks as well (didn't help that it was single-strand because of my oversight). Solution - replace the cable and also get a nice socket from the same industrial-grade board.
  5. If USB hub with the soundcard, flash drive, BT and WiFi is disconnected, device crashes hard. If booting without USB, it doesn't get to the console. Not yet debugged but I have some pointers. ^W^W^W^W^W (flash drive was in /etc/fstab and apparently that blocked the boot process indefinitely). Was fun to debug though, that crappy IDC cable would disable a USB line which'd crash everything without logs or anything
  6. WiFi card turned out to be crap which'd segfault occasionally. Solution: take casing off WiPi dongle and put it inside, replacing that piece of crap.
  7. Power-to-comm module power cable would fall out of socket. Solution: hot glue.


Some more problems:

  1. RTC doesn't work. It's a DS3231 fake from China, configured using DeviceTree and if I try to power cycle it, it loses time, so I'm back in the 70s. Will debug some more when I'll finally implement some logging.
  2. IDC-40 just falls out of display module when adjusting the belt that holds the thing on my wrist. Happens very rarely though.
  3. Pi camera cable for Zero does not like being bent. I've got a replacement alright, but it's still not comfortable knowing that there might be shorts etc. eventually.
  4. It seems to be rainproof so far but I souldn't be too sure.
  5. There's still no battery level monitoring - just a matter of software, given that I can get the battery voltage from SIM80 through UART.

Nice features added:

  1. Added support for MLX96014 sensor. Code is here, pyLCI app is here. Now I can walk around, point my finger with a sensor at something and measure its temperature (when the sensor doesn't glitch - it's pretty picky about the obstacles where it'd work).
  2. Added microUSB socket in power-to-comm module which goes to a USB-UART adapter connected to Pi's UART. Debugging made easy!
  3. Added backlight switching support with a transistor and some pyLCI wrapper code. Now it turns off after 3 seconds of inactivity. Saves energy, makes it less noticeable in the night.
  4. I've put a current sensor in the power module so that I could measure device's consumption, even though the sensor isn't connected to anything yet.

Lessons learned:

  1. It needs more custom PCBs. Soldering boards together with wires is not a good way even for a prototype, given hostile-ish conditions. Very possible that the CPU module PCB is to be first to be made. I plan to make DIY PCBs before ordering anything though - they won't fit in 5*5, and I don't want to pay 25$ for 10 copies of my mistakes.
  2. I need to study more about cables and connectors. I feel like it still needs to be done with IDC-xx if repeatability is important, but for improved versions I might need some tradeoffs (and IDC-40 are just huge).
  3. Software is very, very important. You can develop any kind of hardware but it's likely to be useless without software tailored for it.

Other than all this, it's very nice. I listen to music a lot using it, I've even written a server mimicking savefrom.net which downloads music from YouTube straight to my music collection flash drive. At this point, I take the bracelet off while charging, working and sleeping - it's still big enough to cause discomfort. I'm also thinking about the next version, going through the ideas in my head and waiting for my 2kg of filament so that I can try out some of those.

Connected to big speakers and waking me up in the morning (at our hackerspace)

Discussions