TinyGo Blockly Tester Program
The TinyGo Blockly generator covers a large and growing surface: dozens of sensors, displays, motors, and communication modules - each with its own blocks and generated code paths. Testing all of it thoroughly is more than a small team can do alone, and we need your help.
If you enjoy poking at things until they break, this is the perfect way to contribute to the project.
What we are looking for
Open the playground, pick a category, build a small program, and check whether the generated Go code looks correct. You are looking for things like:
- A block produces no output or generates empty code
- The generated code is syntactically wrong (would not compile)
- The generated code is logically wrong - imports the wrong package, calls the wrong function, uses the wrong pin or parameter
- A block crashes the playground or behaves unexpectedly in the UI
- Two blocks that should work together produce incompatible code
You do not need to own the hardware. If the code looks wrong to you compared to what the TinyGo drivers documentation says, that is already a useful report.
How to report a bug
1. Open the playground
Go to /blockly-playground/ and pick the category you want to test.
2. Reproduce the problem
Build the simplest possible arrangement of blocks that triggers the issue. Fewer blocks = easier to fix.
3. Take a screenshot
Capture both the block workspace and the generated Go code panel (click “To Go” first). A picture is worth a thousand words.
4. Save your workspace
Click the save icon to download your workspace as an XML file. Attach it to the issue so maintainers can load it instantly and see exactly what you built.
5. Open an issue
Go to code.madriguera.me/GoEducation/blockly-tinygo and open a new issue. Use the following structure:
Title: [Block name] short description of the problem
**Category:** e.g. Sensors - Temp/Hum/Gases
**Block(s):** e.g. BME280 read temperature
**Expected:** what the code should look like
**Got:** what the code actually generates
Steps to reproduce:
1. Open the playground
2. Drag block X from category Y
3. Connect it to block Z
4. Click "To Go"
5. Observe: ...
[Attach screenshot and workspace XML]
6. Done - thank you!
Even a single well-described issue is a genuine contribution. The more detail you include, the faster it gets fixed.
Rewards
We are a small open source project, so our rewards are modest but real:
- Your name in the contributors list of the repository
- A shout-out on our social channels when the fix ships
- The satisfaction of knowing your report helped someone flash working code to their hardware at a workshop
If you find and report five or more distinct bugs, reach out to us - we would love to send you a small hardware thank-you from the Go Education project.
Tips for good testing
- Start with a category you know something about - your own sensor, your own board
- Test the edge cases: what happens with the minimum value? The maximum? An empty string?
- Check that the generated
importstatements match the blocks you used - Compare the generated code against the official TinyGo drivers source when in doubt
- If you are not sure whether something is a bug, open the issue anyway and ask - the worst that happens is it gets closed as “by design”