Project done in UPenn ESE 680 graduate course. Entire creation process from PCB design and software design is done.
What it does
The board is featured in an IoT knob device. This device sends angle data to an MQTT topic, with which other devices can access and use to alter a setting. It can be used to change the intensity of LEDs or the speed of a fan.
This board features a variety of ICs handpicked with love. ATSAMW25 module, BQ24075 Li-Ion charger and battery management system, AT25DFX Flash module, IIS2DHTR Accelerometer, HDC1080 Temperature/Humidity sensor, DRV8837 Motor driver, VO14642A Solid state relay
How I built it
PCB design is done in Altium Designer, Software design is done in Atmel Studio 7.0
Challenges I ran into
Layout of board was somewhat challenging. I aimed to have a nice, compact board while not sacrificing any features. Any pins that aren't used by the ICs are in external headers. A. 8 Mbit flash, B. Communication header, C. Accelerometer, D. Temperature/Humidity sensor, E. SWD header, F. Motor driver, G. Solid state relay, H. USB input, I. Battery management system, J. JST header for battery, K. GPIO header, L. SAMW25,
A bootloader was created using the various libraries including the HTTP downloader library supplied by Atmel. This allowed for a convenient Over The Air Firmware Update (OTAFU) instead of using the SWD.
I was able to use the accelerometer to calculate angle of device and publishing the information to the cloud through MQTT.
This was used to make an IoT knob. The device will publish the change in angle, and this will control settings on devices such as fan speed and light brightness.
What I learned
Process of creating IoT device from start to finish.This was a great start of getting into the world of IoT. I learned how to design a board, code a bootloader, and how to use IoT related services such as MQTT and BlueMix.
What's next for Jupiter board
Figuring out what else to make.