Client Case Study: Stickies Smart Learning

Working with Chris is a great experience! He is an excellent embedded software engineer who has a deep understanding of RP2040 microcontrollers and their capabilities. His work on my project was top-notch and I was impressed with his ability to write efficient and effective code that met all my project requirements. I would highly recommend Chris to anyone looking for an experienced and knowledgeable embedded software engineer.

Chris Rattray, Founder, Stickies Smart Learning

Introduction

Stickies are the brainchild of Founder, Chris Rattray. The idea came when his son was disappointed in some plastic “Numberblocks” and asked him, “Daddy can you make me real life number blocks?”. The result: a tangible, digital tool, designed to create engaging and interactive learning experiences for Key Stage 1 (KS1) students.

When Telmtron were approached by Stickies Smart Learning to help develop the embedded software for their smart learning tool, I jumped at the chance to be involved as I genuinely believe in the product. Stickies is the most startup of startups, which meant we were working with very limited resources; in fact, for most of the project, we were meeting once a month in the back room of a pub — aptly called the “Smoke Room”!

Over the course of around 14 months, working one day per month, we went from an idea to a tangible, working prototype.

The Project

The embedded software was developed in parallel with the hardware design. The blocks are based on an RP2040 microcontroller. I worked closely with Chris Rattray at Stickies, paying attention to keeping the software architecture flexible in order to keep up with hardware changes as he refined his design.

The high level requirements were:

  • The blocks must detect neighbouring blocks
  • The blocks must communicate with neighbouring blocks to understand their value
  • The blocks must react (change a displayed image, play a sound) when certain conditions are met relating to the combination of block values
  • The blocks must support the concept of multiple ‘programs’ that can be loaded onto them to change their behaviour

To support the iterative hardware development, the project was completed in several phases:

Phase one: Test Firmware

The first phase of the project was to develop firmware that tests all of the various hardware interfaces to the microcontroller. This was architected as the beginning of a stickies library, which could be reused for future versions of the software. In the early stages, this test firmware was a simple command line interface over the USB serial port, which allowed the tests to be run on each input (setting vibration speed, turning the screen on and off, etc.). This application evolved to be able to read image files and display them on the screen.

Phase Two: First Demo

As the hardware design became more concrete, we started to look at how we could demonstrate the concept to teachers. We hadn’t yet developed the communications between the blocks, but we could detect that there was a block there. The first demo simply displayed an image on the screen, and switched to a different image if the block detected a neighbour. This empowered the client to start engaging with teachers to gauge interest and gather initial feedback.

Phase Three: Simple Arithmatic Demo

In this phase, we developed the ‘intelligence’ of the blocks, allowing them to communicate with each other and understand not only the values of the neighbours, but the total arrangement of all connected blocks. This meant the blocks could resolve a simple addition or subtraction sum, displaying an image and playing a sound when the sum was correct. A simple user interface was developed allowing the child to change the value of the blocks to get the correct sum. The firmware was written with the final requirement in mind, such that the ‘program’ is contained in a central control structure that would be read from the SD card in future iterations.

Challenges

There were two main challenges with this project. The first was working with a relatively new device, the RP2040, the design ecosystem is relatively new. Working with the C SDK was very straightforward, however problems such as the SD card interface, that have been solved years ago on other platforms, were only just being solved on the RP2040 when we started development. This meant that some hardware support had to be written from scratch where a more established ecosystem would have more example code to leverage.

The second challenge was working in parallel with the hardware development. The boards were going through an iterative development process at the same time as we were developing the software. This meant that sometimes changes were required in the hardware that moved pins, or design errors meant that hardware didn’t behave as expected. The key to working with this was to maintain flexibility and modularity in the software architecture, allowing proven components to be moved through the various development phases, and pin swaps to be made rapidly between hardware iterations.

Conclusion

It’s truly fun to be part of the Stickies project. Telmtron worked with the limited resources available to support the embedded software development — helping the Founder take the initial idea inside his head, to a full-fledged working prototype to be demonstrated to teachers and investors.

I hope to be bringing further updates in the future as the product gets closer to market.

Find out More

About Stickies

Stickies are designed to create engaging and interactive learning experiences for Key Stage 1 (KS1) students.

Are you a KS1 teacher seeking innovative tools to transform your classroom? Stickies could be the answer! We’re passionate about shaping the future of education, and we invite you to be part of our journey.

We’re currently in the design phase for Stickies, and we’d love your input! Join us in shaping this innovative tool for KS1 classrooms. Share your ideas, suggestions, and enthusiasm as we embark on this educational journey.

Follow our progress and be the first to know when Stickies are ready for launch. Together, let’s revolutionize learning for our young explorers:

About Telmtron


Telmtron specialise in building embedded software for Internet of Things (IoT), telematics and other smart or connected products that are in the early stages of development. If this sounds like a product you’re designing, Telmtron can help. Please use the contact form below to get in touch or email create@telmtron.co.uk

Further task scheduling with Arduino / AVR

** EDIT 27/04/2016: This article is now for background information only. I have now created a ‘user-friendly’ library compatible with the Arduino IDE **

Continue reading “Further task scheduling with Arduino / AVR”

Reliable task scheduling with Arduino / AVR

** EDIT 27/04/2016: This article is now for background information only. I have now created a ‘user-friendly’ library compatible with the Arduino IDE **

Continue reading “Reliable task scheduling with Arduino / AVR”