PCAs, Psoc hardware design
I received the proto boards a few days ago, I've assembled one as a shield for the pioneer kit (in the process testing out my new IR reflow oven which worked really well). I've populated my 'Plan A' design and so far code-wise it's all looking pretty good.
Over the next few weeks I'll be building up the code base in a more formal fashion, bringing in all the bits and pieces I've already tested and getting stuck in to the behaviour and power management.
There will be 4 top-level operating modes:
- Sleep: hall sensor in-active, or charge complete. This is the lowest power state and the one the light will be in when shipping or most times when not mounted to the bike/helmet
- Idle: hall sensor active, but daylight or not moving. In this mode the light is still off, but more power/time is spent trying to sense when to shift to active mode
- Active: hall sensor active, dark, and moving. The LEDs are on in this mode, there are a bunch of sub-states associated with this (eg. front or rear mount - colour, type of flashing)
- Charging: when plugged into USB with a battery requiring charging. In this mode the battery state will be displayed on the LEDs, when charging is complete the light will revert to sleep mode.
I've also decided to ditch the body touch sensing as a user input in favour of tap gestures instead. I've still not convinced myself entirely that I need a user input, but in either case tap gestures come for free (accelerometer) and I can always leave it out..
This is pretty much where the Psoc hardware sits right now, I'll probably decode the charger status inputs and combine a few sources into a single wake-up just for the sake of it (could all be done in code of course..)