
Experience Design Technology
Connected Device Prototyping
Iterative prototype of orchestrated UX with hardware / software connected experience
- Studio
- frog design
- Client
- Multiple clients in various industries
- Year
- Ongoing
- Responsibility
Often times I led an architecture and technical implementation of the high-fidelity prototype, as well as presentation of the product concept to senior stakeholders on the client side.
Technology
No single connected experience can be prototyped with a "one-fits-for-all" solution, but there are tools that can generally be very helpful and work well as a foundation to begin with. Raspberry Pi (RPi) can function as a compute module for such system, and host a few nodeJS applications. Node-RED is a node based visual programming language that provides a lot of interfaces for RPi, such as GPIO pins, network comms (e.g., TCP, MQTT, etc.), audio I/O + DSP, etc. This way RPi can establish a network connections with child nodes, exchange message I/O and orchestrate behaviors of the ecosystem. RPi can also host a nodeJS application (usually React.js is the most common UI framework). A state machine in React.js application is connected connected through Node-RED comm channels, so UIs of the application are synced with other hardwares in the ecosystem (e.g., displaying sensor readings) or dispatch events to initiate an operation in hardwares (e.g., actuate a motor from UI). For other hardware child nodes, ESP32 + PlatformIO is a powerful tool since a firmware can be written in Arduino syntax and provides Wi-fi or UART as interfaces to connect with other devices, and the dev board module is equipped with commonly used interfaces such as AD converters, PWMs, I2C bus, etc. therefore it can be deployed as input (e.g., sensor reading) and/or output (e.g., actuator, LED control) node. All these modules can function as a modular system, so it can flexibly and scale into a various requirements of the connected experience at speed.




