The BRB of doom


#21

Progress Report

I started work on this today, having done some research on all this.

[x] Received the Adafruit Huzzah ESP8266 breakout board and an FTDI serial cable to program it
[x] Downloaded CoolTerm, Arduino, the related board description, the ArduinoJson library and the SPIFFS download plugin
[x] Soldered the headers on the ESP and the wiring for both the Velleman VMA321 USB charging board and the 3.7V LI-PO battery
[x] Figured out out to program/flash in the native NodeMCU Lua that was originally on there
[x] Figured out how to replace that with Arduino code, to pack a SPIFFS folderset and to get that on there, too
[x] Forked a repository which is almost like this, modifying it for my own needs
[x] Booted it up in configuration mode, connected to the hotspot it spun up, connected to the configuration page and modified the settings
[x] Booted it up in standard mode and it successfully did a GET request to the http://octopi.local/api/version page, throwing the apikey in doing so and registering the response in the serial console I used for debugging
[ ] Do an end-to-end test before assembling inside the BRB
[ ] Write a new endpoint for the pause feature into OctoPrint or edit the existing Arduino code to POST a body instead of GET'ing a page

Features:

  • 3.7V Li-PO battery for mobility
  • Mini-USB connector for charging, (will probably work for wireless charging with my Duracell charging pad)
  • Everything will likely fit inside the BRB as printed/assembled earlier
  • Configuration pin for spinning up a hotspot, serving a webpage for editing the configuration
  • Goes into "deep sleep" mode to conserve power
  • Upon connecting the contacts, it should wake up, connect to wi-fi, make the api call and then go back to sleep, having indicated success with the onboard LED

Oddities

  • Although an older iPad could see the hotspot spun up, the new MacBook could not
  • Still trying to wrap my head around working with Arduino single-board computers

#22

Status

[x] Soldered on two additional header pins
[x] Crimped some connectors and wiring for the BRB itself
[x] Tested everything end-to-end
[x] Completely overhauled the code, comments, error messages and serial debugging communications
[x] Much testing
[x] Converted config page to jQuery Mobile 4.5 styling

Notes

  • Looks like the Velleman VMA123 isn't doing its job right. It appears to be working as a method of charging the battery from the USB connection. It appears to pass power from the USB connection to the load. What it doesn't do is to allow the battery's power to go to the load, for whatever reason.

#23

Adafruit Feather HUZZAH with ESP8266 built in battery charging.


#24

Brilliant... only it won't fit inside the BRB itself. :frowning:


#25

Update

I managed the first end-to-end test of the BRB today and I'm pleased to say that it works as expected.

  • octo-pause service as a simple GET endpoint on the Raspberry
  • IFTTT-Dash-Button Arduino project with SPIFFS folder, web service for configuring the button and for running the code in a low-power way (run & sleep)
  • still working on the hardware, the Velleman battery charge board doesn't work the way I would have imagined so I'll need a DPDT switch for this
  • I'm looking into ways of charging this wirelessly using the Duracell Powermat (for 3 devices). That should be easy enough to do.