What is Tiny FX?
Our Tiny FX and Tiny FX W boards are designed to bring light and sound to your LEGO®-compatible projects. We've packed the mighty RP2040 microcontroller into a tiny package and provided accessories to incorporate light, sound and sensors into your builds without the need to purchase additional boards.
Tiny FX provides:
- 6 x Digital outputs (for mono LEDs)
- 1 x RGB LED
- 1 x Sensor input
- 1 x 3W Audio output
- 5V power input for battery pack
- 1 x Qw/ST connector for use with compatible sensors
Tiny FX W provides the same features, but also comes with Wi-Fi and Bluetooth connectivity.
With Tiny FX you can add light effects using single colour or RGB LEDs, sound effects and infrared to any LEGO®-compatible build. We've got a great example of using all of these features in this project.
If you've not got a Tiny FX or Tiny FX W, then grab one of the starter kits as it comes with:
- Tiny FX / Tiny FX W
- Adhesive Backed Mini Speaker 8Ω (1W)
- 6 x LED dots (cool white)
- 5 x RGB LEDs (plus expansion board and cable)
- 3 x AAA battery holder (Batteries not included)
- USB-A to USB-C cable
- Reusable Pirate-brand Loot Box.
The Tiny FX W starter kit also comes with:
- PIR Stick (Passive Infrared sensor to detect movement)
- 3 pin JST-SH cable (for connecting PIR Stick)
This introduction will show you how to get started with Tiny FX and Tiny FX W. We barely scratch the surface of what this board can achieve, but this is the first guide in a short series that introduces Tiny FX / Tiny FX W's features and provides examples and code to illustrate how you can integrate it into your projects. In the series we will be covering how to use the Tiny FX MicroPython module to do more advanced things, but for part one we'll keep things simple.
What You'll Need
- Tiny FX or Tiny FX W starter kits.
- A computer running Microsoft Windows, macOS or Linux.
- Thonny installed on your computer.
What Benefits Does Tiny FX Have Over A Raspberry Pi Pico?
You've probably heard of the Raspberry Pi, a credit card sized computer that launched in 2012 and went on to become a global success. If not, Raspberry Pi made a £35 computer which runs the Linux operating system and has 40 GPIO (General Purpose Input / Output) pins that can be used with sensors, LEDs, etc. The same company also make a range of low-cost microcontrollers called "Pico" that are not computers, and are programmed via your computer.
Raspberry Pi Pico is a general purpose microcontroller (a compact, self-contained computer on a single integrated circuit / chip) that was designed to be used in a plethora of projects. Big and small! It has lots of GPIO pins which can be used to connect electronics and components, but it requires a little more effort and knowledge to achieve the best results. Tiny FX and Tiny FX W have been designed to address the needs of model makers who want to integrate electronics into a build. It provides dedicated ports for LEDs, sound and sensors, while remaining smaller than a Raspberry Pi Pico, enabling it to fit into even the smallest build.
How Do I Use Tiny FX In A Project?
Tiny FX may be a tiny computer, but instead of an operating system like Windows, macOS or Linux, it runs MicroPython. You may have already heard of Python, a programming language that is used in many different industries, education, and for home computing.
- NASA: Analyse mission data.
- Industrial Light and Magic (ILM): Automate workflows, custom tool development, rendering automation.
- Netflix: Data engineering, recommendation systems, cloud operations.
- Education: Typically the first typed programming language after learners move from block coding.
- Home Computing: Creating apps, controlling robots, AI.
MicroPython is a version of Python that has been made especially for low-power microcontrollers. On Tiny FX we have created our own version of MicroPython which contains modules (pre-written code) to enable anyone to build projects with our boards. Your Tiny FX comes pre-loaded with MicroPython, so you can get making right out of the box. All you need to do is plug it in to your computer, open a Python editor called Thonny and you'll soon be building projects.
You can update the version of MicroPython on Tiny FX by "flashing firmware" to the board. Flashing firmware essentially means writing a new operating system to Tiny FX's onboard storage. Periodically we release new firmware images which provide new features and remove bugs. While not essential, updating the firmware is good practice.
To get the latest firmware image installed on your Tiny FX or Tiny FX W, follow these steps.
- Download the latest firmware image to your computer. The firmware image is supplied as a UF2 file amd there are versions for both boards, and with pre-installed libraries and examples.

- Insert a good quality USB Type C data cable into Tiny FX. We include a cable with our starter kits, and we also stock them in our store.

- Press and hold the BOOT button on Tiny FX and insert the USB lead into a spare USB Type A port on your computer.

- Open the File Manager and look for a drive called RPI-RP2, this is your Tiny FX board.
- Copy the downloaded UF2 file to your RPI-RP2 drive and wait for it to complete. Once the update is complete, the drive will disappear.
Connecting To TinyFX
To use Tiny FX's MicroPython firmware, we need to use a tool on our computer that enables us to talk to the board and to write code on to it. Our tool of choice is Thonny, a Python code editor that can talk directly to MicroPython devices, like Tiny FX and many of our other boards.
- Download and install Thonny for your operating system.
- With Tiny FX connected to your computer, open Thonny. By default, Tiny FX is in FS mode and it is ready to talk to Thonny.
- Click on Tools >> Options >> Interpreter to open the options for connecting to external devices.

- From the Interpreter list, select MicroPython (Raspberry Pi Pico).
- From the Port list, select "Try to detect port automatically" and click OK.
- Check the Python Shell, which is at the bottom of Thonny, and you should see something like this. If you don't see anything, click on the
STOPbutton found in the Thonny toolbar. This will force Tiny FX to reboot and Thonny will try to reconnect. We should now be connected and MicroPython is running on a Tiny FX W. The>>>is where we can type in code if we want to test out an idea or logic. The Python shell is an interactive environment where you type Python code one line (or block) at a time and see the result immediately, instead of writing a whole script and running it all at once.MicroPython v1.27.0, on 2026-04-16; Pimoroni TinyFX W with RP2040 Type "help()" for more information. >>> - In the "untitled" window is where we will write a short test script that will confirm that we can control Tiny FX.
Controlling TinyFX With MicroPython
The goals of this short test are
- Write code to control the LED on port 1.
- Confirm that we can send code to Tiny FX W.
- Understand how the code works, line by line.
The code will run each line, from top to bottom. Each line is an instruction to Tiny FX. Some instructions have no output, importing modules for example, but others will control things that we can see. The LED for example. We're also including print() functions that will output text to the Python Shell that we use to debug our code.
Right now, we should have Tiny FX connected to our computer via a good quality USB C cable. Thonny will be open, and we have confirmed that we can see MicroPython running on the board.
- Import two modules (libraries) of pre-written MicroPython code to enable us to use Tiny FX and to control how long the LED will be on / off for.
from tiny_fx import TinyFX from time import sleep - Create a class called
tiny. We will use this to control the Tiny FX hardware via the MicroPython software.tiny = TinyFX() - Create a loop that will run indefinitely. This loop will only stop if we stop the code, there is an error, or we turn the power off.
while True: - Turn on LED one and print a message to the Python Shell The extra
print()is useful for debug (finding issues or errors in the code). If we can see the text, but the LED doesn't light up, then we know there is an issue. Code inside of the loop is indented by four spaces, or one press of the TAB key. MicroPython / Python is whitespace sensitive, which means that we must be strict in using spaces or TAB.tiny.one.on() print("On") - Pause the code for one second.
sleep(1) - Turn off the LED, print "Off" to the Python Shell and wait for another second.
tiny.one.off() print("Off") sleep(1) Check that your code looks like this.
from tiny_fx import TinyFX from time import sleep tiny = TinyFX() while True: tiny.one.on() print("On") sleep(1) tiny.one.off() print("Off") sleep(1)- Save the code to Tiny FX as
blink.py. Thonny will call the boardRaspberry Pi Picobut it really is our Tiny FX board.
Click on the green
RUNbutton, found in the toolbar, to run the blink code.
Check that the LED on port one is flashing on and off with a one second delay. If so, then you have successfully controlled an LED using MicroPython. You can also connect an LED to port one and as you can see, that will also blink.

What Have We Learnt?
- How to connect Tiny FX to our computer.
- How to check that MicroPython is installed and running.
- How to control Tiny FX using MicroPython.
Going Further With Tiny FX Examples
We've got a plethora of MicroPython examples for Tiny FX and Tiny FX W. Take a look, try the code on your Tiny FX and see what it does.
- Mono Effect Examples For Single Colour LEDs
- Static Brightness
- Show a static brightness on one of Tiny FX's outputs.
- Single Blink
- Play a blinking effect on one of Tiny FX's outputs.
- Single Flashing
- Play a flashing effect on one of Tiny FX's outputs.
- Single Flicker
- Play a flickering effect on one of Tiny FX's outputs.
- Single Pulse
- Play a pulsing effect on one of Tiny FX's outputs.
- Single Random
- Play a randomly changing brightness effect on one of Tiny FX's outputs.
- Blink Wave
- Play a wave of blinks on Tiny FX's outputs.
- Flashing Sequence
- Play a flashing sequence across Tiny FX's outputs.
- Pulse Wave
- Play a wave of pulses on Tiny FX's outputs.
- Binary Counter
- Play an incrementing binary counter on Tiny FX's outputs.
- Traffic Light
- Play a traffic light sequence on Tiny FX's outputs.
- Static Brightness
- Colour Effect Examples For RGB LEDs
- Static RGB
- Show a static colour on Tiny FX's RGB output.
- Static HSV
- Show a static colour on Tiny FX's RGB output, using HSV (Hue Saturation, Value) colour model.
- Blink
- Play a blinking sequence effect on Tiny FX's RGB output. Each blink in the sequence can be a different colour.
- Rainbow
- Play a rainbow effect on Tiny FX's RGB output.
- Random
- Play a randomly changing brightness and colour effect on Tiny FX's RGB output.
- Hue Step
- Play a stepped hue effect on Tiny FX's RGB output.
- Static RGB
- Audio Examples
- Race Start
- Plays a simple boop, boop, boop, beeep countdown sound effect when you press Boot on Tiny Fx. Great for counting down to a race start.
- Encounters
- Play an evocative musical melody with accompanying lights on Tiny FX.
- Photon Sword
- Play sounds that react to motion with a TinyFX. Use an MSA311 triple axis accelerometer to trigger sound effects.
- Race Start
Search above to find more great tutorials and guides.