Key goals summary:
- Further improve aesthetics and improve portability
- Plan for further enhancements such as A.I. and chat-bot capability
Despite the successes of the MKI and MKII I didn’t start work on another Arc Raspberry until recently. The main inspiration that sparked development was the release of the Pi Zero; I was lucky enough to get one before they all sold out.
With the new ultra small form factor it seemed like it would be finally possible to create a device that would be comfortable to wear around my neck and not protrude too far out of my chest.
This post will serve as Part 1 of the MKIII build; I initially want to get the hardware up and ready and then have the MKII code running on it. After that I am planning to add some rudimentary A.I. and hopefully get Jasper talking back to me, learning etc.
Components of 3.
- Battery Charger
- Induction Charging Kit
- Raspberry Pi Zero
- GPS Hat
- Micro USB cable
- USB sound card
- Memory Card
- Female Barrel Jack
- 9v Mains Power Supply
- Lid of a Lush product
- The usual other miscellaneous bits
Power of 3.
As well as thinking of aesthetics and portability, I thought about the charging ability of the Arc Raspberry – after a bit of research I found Adafruit’s Induction Charging Kit. Perfect.
Then instead of using micro USB to charge like a phone I could turn on the inductive charging ring and just drop the MKIII on it and leave it to charge. Awesome.
Even better, I could use the charging ring to improve the aesthetics by putting it onto the faceplate.
Working for 3.
For attaching the PiGlow module onto the GPS HAT, I followed the same work as I did with the MKII; this time avoiding any nasty soldering iron accidents.
I opted for a smaller LiPoly battery this time which I could tuck under the PiGlow sitting on the GPS HAT; making things a little tidier. Also the small form factor of the Pi Zero allowed me to put the Powerboost 500 just under the GPS HAT and putting the inductive charger onto the side of the Pi Case itself.
In terms of the faceplate – the fans used in the prior versions always seemed to protrude a little to far, despite looking quite good under shirts, so this time I opted to recycle a bit; using a clear lid from a lush product. The plan was to use Sugru to adhere it to the device and then use Sugru to attach the inductive charger receiver ring.
With a basic assembly of components I thought it was time for a quick aesthetics test:
At this point I began working on getting the software onto it for functional testing before I fully assembled it; I use Win32DiskImager to back up my project build SD Cards and also to re-burn the images to cards so I can get new projects up and running quickly. The idea was to burn the MKII image to a card and plug it straight into the MKIII hardware and have it up and running.
Unfortunately, the older Linux kernel must not be able to work with the Pi Zero’s architecture so I had to start from scratch; using the new Raspbian version Jessie.
Thanks to Knight of Pi for an excellent guide on getting Jasper to work on Raspbian Jessie and also scattershot for a guide on getting GPS to work in Jessie as well. These were both invaluable guides.
A couple of things to note; in the mic.py script under ‘/home/pi/jasper/client/’ I found the audio settings need to be set as follows under the 3 locations they appear on lines 50, 96 and 207:
THRESHOLD_MULTIPLIER = 1.8 RATE = 16384 CHUNK = 1024
The default rate of ‘16000’ caused me to get an “IOError: [Errno Input Overflowed] -9981” error, after much trial and error I found that the rate needs to be a multiple of the chunk, in this case 16384 for 1024 chunk size.
Also instead of AMA0 the Pi Zero with Jessie appears to use serial0 for the GPS data; as such the rc.local code had to be changed to:
sleep 15 sudo killall gpsd sleep 15 sudo gpsd /dev/serial0 -F /var/run/gpsd.sock python /home/pi/arcblue.py &
As a quick side note for those of you with your own Pi projects I suggest purchasing a Black HAT Hack3r, this will allow you to easily debug a HAT using a primary development Raspberry Pi instead of trying to make code on the project itself – which could be fiddly if you’re creating a small project such as mine.
With the software now tested and working and after a quick test of the wireless charging capabilities it was time to Sugru everything up:
A few more finishing touches, as well as adding a strap from an old necklace:
Here’s the inductive charging transmitter:
Of course we need an action shot of it charging:
For some reason when charging off of the inductive charger the small ‘charged’ LED lights up at the same time as the ‘charging’ LED, this doesn’t occur when charging from normal micro USB. But it works and charges it so it seems okay.
I was very happy with how the aesthetics turned out. The third time is indeed a charm it would seem.
Functionality is the same as the MKII for now, so please refer to the earlier blog post for information on that.
No code post this time as it’s currently using the MKII code.
I will, however, be making another post for the MKIII for when I have some development on a basic chat-bot for it alongside some rudimentary A.I.
With thoughts of A.I. comes thoughts of robots, of course…