Moving Along

A project log for Ricmohte

Ricohote? Ricmote? It's a remote for a Ricoh GR II camera.

morganmorgan 09/24/2019 at 03:070 Comments

My last post may have seemed a bit doom and gloom but thankfully it hasn't stopped progress. Aside the soft power switch not working everything else on the board looks good. Power, battery charging, the button and the APA102 LED are all working as expected. With that I decided to press on with firmware and some usage testing before moving onto a rev2 hardware. I was able to bypass the power switch by tying the VIN net to PWN_EN and use the ESP32 deep-sleep. I've yet to get around to checking any sort of power consumption, but on 500mAh it seems to at least 3-5 days, it's a bit hard to tell where the dead battery starts and the firmware bugs begin.

Happy Little Bodge

This is the first board I went through and convinced myself I had shorted and fried the ESP32. Turns out I'd connected TP_EN, which is the ESP32 EN pin instead of TP_PWR_EN, the AP2112 EN pin. Ah, labels. Works fine. Once I've progressed the firmware a bit more I'll give one of them to a friend with the same camera.


Currently the firmware is pretty basic and mostly based on what I came up with while sick in bed earlier this year. The original purpose of the firmware was photogrammetry, it turned a 360 servo and snapped a picture. I never got around to making the model but did realize this would make a handy shutter. But the HTTP client part was a nice starting point.

I knocked together a small demo showing it's present state.

The button press wakes the ESP32 from deep sleep. First thing it configs the WiFi and starts scanning. For now the AP info is provided by Kconfig but later will be setup via Bluetooth. If the AP isn't found, subsequent presses of the button will initiate a scan again. After a minute it goes back into deep sleep.

Once a connection is made pressing the button will send a shoot command to an HTTP endpoint on the camera. So far I haven't been able to find a complete documentation of the API end points but the web app was fairly easy to pick apart. At some point I'll probably write some script to pick out all the important strings.

Next steps

I'm mulling over several ideas for the next hardware revision. I'll probably use a single specialty component for the power switch but not sure yet. I still want to see what my deep sleep power consumption really looks like. I'll probably add a P-Chan MOSFET on the LED power pin to ensure it's not consuming any additional current. Otherwise I'm pretty happy with the rest of the board.

In the meantime I plan to keep plugging away at the firmware. First up will likely be multiple button press and long press for different functions. I'm unsure what long press will do yet but my first though it toggling between the pre-defined custom modes. The longer term plan once enough of the API is covered I'll start working on the BLE interface. With that in place the button functions will be able to be changed on the fly. Another alternative functions I have in mind is time-lapse triggering. Something the camera doesn't provide. A long press could bring the remote into time-lapse mode, then a single press would start and stop it triggering.

Welp, that's it for now. Next update will probably be on the rev2 progress.