I’ve been working on assembling Borealis PCBs and waiting on components to arrive (thus the long time to assemble). Straight to the point, I have identified several things to work on for the next prototype revision:
- Fix and verify bluetooth LED pin (corrected by connecting a mod wire to the correct pin and cutting the PCB trace – next prototype will use a different bluetooth module however).
- Research a smaller 16mhz oscillator for the AVR (considering the CSTCE16M) as the existing full-size crystal is massive, and a lot of the smaller ones have bypass caps built in.
- Optimize layout of Passives – can they be arranged in a row or decoratively?
Use a smaller 3.3v regulator(the ones I ordered were a bit bigger than the pcb footprint) Post-edit: I’ll be using a larger footprint as the ‘larger’ linear regulator I used is more commonly available.
- Use a smaller fuse footprint (opposite issue of the regulator, the footprint was massive)
- Shave off 0.25mm of the PCB top & bottom respectively to a total of 0.5mm, allowing it to fit in the case better.
- Remove 5v regulator, it’s not needed as the ATMEGA32u4 has a decent voltage tolerance (2.7 V to 5.5 V)
- Implement a footprint for the BK8000L bluetooth module, the prototype 1.0 SPP-C Module does not provide enough future-proofing functionality.
- Add SPI programming pads
Point number 9 is an important error: When ATMEGA* chips come in reel format, they’re not loaded with any bootloader, unlike when they come assembled on an Arduino board. So for final production, some SPI pins for bootloader upload will be required. I made the mistake of misreading supplier instructions and assumed these came pre-programmed or could be burned over USB. Whoops.
I bypassed this by setting up a spare Arduino Nano as a programmer, soldering it to the RESET MOSI MISO and SCLK pins on the ATMEGA32u4, and following this guide. After some messing around, my computer successfully saw the Borealis boards as an Arduino Leonardo (as it shares the same IC).
From there, I loaded up the Arduino IDE, and uploaded the default Borealis animation, as well as some colour variants, to the Borealis PCB, and was amazed that it turned on instantly and accepted bluetooth connections. Now to experiment with sending commands over Bluetooth to play different notification colours and effects (a white aurora for emails, blue for messages, and blinking red for incoming calls… perhaps I could even implement Amber Alerts and Presidential Alerts?)