linux-works
DIY: Arduino xbee remote control, now stays in sync
The two units now stay in touch with each other, so that if one has a change from a local user-interface 'knob turn' (etc), it will inform the others and they can update their locally stored values. Similarly, if you go to a different 'box' and use its controls, the value is pushed to the device and any other listeners can 'steal' this value-update message and sync themselves to the current value, as well (for free).
I've built the code on the remote so that screen updates (which are relatively slow) happen on a timed basis, and the incoming serial commands (that report value changes) are always processed and the serial buffer quickly cleared. By detaching the update routines like that, its much harder to turn the knob faster than the screen can redraw; the end result is that things feel and look snappy and responsive.
Background: This is an arduino DIY project that uses a white OLED graphic display, an xbee zigbee packet radio, adafruit li-poly battery and Qi charging coil and my C++ code. It controls lots of things (and lots more planned, but here its controlling an analog preamp (with the big led red display on the black panel). The knob on that panel is a rotary encoder and it acts as the volume control if you are right at the unit; but if you are away (sitting elsewhere, perhaps) you will want to have remote control over the volume, and for that, I designed and built a very fancy and flexible 'IoT influenced' unit ;)
Parts notes: the plastic transistor-looking thing hanging out on the left is a temperature sensor, ds18b20 (used to get local temperature, to feed that info into a central thermostat). Switch on top/right is a hard on/off power switch (battery optimization is not done yet so I actually do turn the unit on/off as I need.) Top usb port is for powering and charging the remote (no data thru this port). There is a li-poly battery pack on the very bottom layer and a Qi recharger coil between the battery and the final plastic case layer. The Qi wireless recharging works well and I'm happy with it, so far. Display is OLED 128x64 i2c and is very trendy in the arduino community, right now. The buttons are mouser-sourced angle and flat tactile switches; very nice and not expensive. Xbee module is on a sparkfun (red) breakout board since the xbee uses non-standard (not .1) pin spacing; this is actually an extra cost to using xbee and can raise cost by $12 if you use this actual header. A custom pcb would solve this, putting all things shown here on one pcb.
DIY: Arduino xbee remote control, now stays in sync
The two units now stay in touch with each other, so that if one has a change from a local user-interface 'knob turn' (etc), it will inform the others and they can update their locally stored values. Similarly, if you go to a different 'box' and use its controls, the value is pushed to the device and any other listeners can 'steal' this value-update message and sync themselves to the current value, as well (for free).
I've built the code on the remote so that screen updates (which are relatively slow) happen on a timed basis, and the incoming serial commands (that report value changes) are always processed and the serial buffer quickly cleared. By detaching the update routines like that, its much harder to turn the knob faster than the screen can redraw; the end result is that things feel and look snappy and responsive.
Background: This is an arduino DIY project that uses a white OLED graphic display, an xbee zigbee packet radio, adafruit li-poly battery and Qi charging coil and my C++ code. It controls lots of things (and lots more planned, but here its controlling an analog preamp (with the big led red display on the black panel). The knob on that panel is a rotary encoder and it acts as the volume control if you are right at the unit; but if you are away (sitting elsewhere, perhaps) you will want to have remote control over the volume, and for that, I designed and built a very fancy and flexible 'IoT influenced' unit ;)
Parts notes: the plastic transistor-looking thing hanging out on the left is a temperature sensor, ds18b20 (used to get local temperature, to feed that info into a central thermostat). Switch on top/right is a hard on/off power switch (battery optimization is not done yet so I actually do turn the unit on/off as I need.) Top usb port is for powering and charging the remote (no data thru this port). There is a li-poly battery pack on the very bottom layer and a Qi recharger coil between the battery and the final plastic case layer. The Qi wireless recharging works well and I'm happy with it, so far. Display is OLED 128x64 i2c and is very trendy in the arduino community, right now. The buttons are mouser-sourced angle and flat tactile switches; very nice and not expensive. Xbee module is on a sparkfun (red) breakout board since the xbee uses non-standard (not .1) pin spacing; this is actually an extra cost to using xbee and can raise cost by $12 if you use this actual header. A custom pcb would solve this, putting all things shown here on one pcb.