Light the right shelf. Wait for the pick. Keep the demo moving.
Demonstrated to customersNode.js · SOLUM AIMS · Electronic shelf labels
Problem
Turn an API request into a physical pick-and-confirm sequence.
My part
Node.js integration, device-state handling and multi-pick demonstration.
Outcome
Working hardware demonstration shown to customers.
Electronic shelf labels display pick quantities and signal where to pick in the customer demonstration. Customer branding and QR codes have been redacted.
Context and scope
A pick-by-light demonstration turns a software instruction into a physical action: show the quantity, illuminate the appropriate label, receive confirmation and continue. The application must distinguish asking a device to act from observing that the action has happened.
I developed the Node.js integration with SOLUM AIMS and electronic shelf labels. The work progressed from command/confirmation timing to a looping customer demonstration with multiple active picks and product-data updates. Customer demonstration is the supported outcome; production deployment is not claimed.
What I built
I developed a Node.js demonstration integrating SOLUM electronic shelf labels with a picking sequence. The application requests a light, waits for pick confirmation and advances through the products.
The work began with checking command and confirmation timing, then developed into a looping customer demo with multiple active picks and product-data updates.
Sent is not the same as done
An accepted request does not mean a physical label has lit up. And a lit label does not mean someone has pressed its button. I worked through those states instead of treating the API response as the end of the task.
The demo logs track processing, success and pick confirmation. That made it possible to see where the sequence was waiting, rather than guessing from a motionless console.
Under the hood: timing without wishful thinking
Early timing output showed impossible one- and two-hour delays. I questioned the results and investigated timestamp interpretation rather than presenting them as device latency.
Later iterations used multiple active picks. Variable flash delays and intermittent socket disconnections exposed further reliability work. Individual timing samples are not a guaranteed response time, and proposed recovery changes are not the same as a completed endurance test.
What you can see
The photograph shows the working hardware setup; the development record includes actual pick-confirmation logs. Renovotec has demonstrated the system to customers.
This is a practical example of my JavaScript work beyond websites: integrating an external API with physical devices, observing their state and turning that into a usable demonstration.
Engineering decisions and trade-offs
The following decisions connect the implementation to its practical constraints. Each separates what I changed from what still needs verification.
Model progress beyond the API response
Constraint
A request being accepted did not mean that a label had lit or a pick had been confirmed.
My approach
I worked through processing, success and confirmation states and logged their progress.
Implication
This made waiting points visible and prevented a software acknowledgement from being mistaken for a completed physical task.
Question implausible timing results
Constraint
Early logs appeared to show one- and two-hour delays.
My approach
I investigated timestamp interpretation rather than reporting those values as device latency.
Implication
Measurements need a consistent time basis before they support conclusions. An impressive-looking number is not evidence if its interpretation is wrong.
Extend the sequence to multiple active picks
Constraint
The demonstration needed more than a single command followed by a single response.
My approach
I developed multiple-active-pick and looping demonstration behaviour.
Implication
This exposed variable flash delays and socket disconnections. Those observations identify further reliability work; they do not establish completed recovery or endurance testing.
Evidence and limits
Different evidence answers different questions. This record distinguishes a visible demonstration, implementation history and validated operational outcomes.
Hardware photograph
What it supports: Shows active label lighting and pick-quantity displays in the demonstration setup.
What it does not establish: Customer branding and QR codes are redacted. The image does not establish production use.
Development logs
What it supports: Record command progress and physical pick confirmations, supporting the event-sequencing account.
What it does not establish: Individual observations are not guaranteed latency figures; raw internal logs are not published.
Customer demonstrations
What it supports: The system has been demonstrated to customers, as confirmed in the project account.
What it does not establish: No claim is made about signed customers, adoption, throughput or error reduction.
Lessons and next acceptance checks
This was JavaScript integration work with a physical feedback loop. Useful diagnostics had to explain where a task was waiting, not simply whether an HTTP call had returned successfully.
A further acceptance programme should cover disconnections, delayed confirmations and sustained multi-pick operation. Proposed recovery behaviour must be tested before it is described as an operational guarantee.