How many grams of coffee did I add to my pour-over?

Is the bag of cat food empty?

Did I remember to water the plant? 

What's the weight of these screws in my workshop?

To answer these questions (and more), you're going to build an internet-enabled scale to track weight data over a period of time.

To do this, you'll be performing a bit of hardware hacking - tearing down a DYMO Postage scale and soldering wires to connect it to a PyPortal. Then, you'll add some CircuitPython code to the PyPortal which allows you to read the the scale remotely using Adafruit IO - our easy-to-use internet of things service.

This scale is not just for keeping track of your coffee - you can can monitor anything! Here are some examples:

  • Place a bag of cat food on the scale and enable Adafruit IO Feed Email Notifications for when you run out of cat food.
  • Science experiments - no need to watch and chart a scale's weight - let Adafruit IO do that for you with automatic graph visualizations!
  • Are you a beekeeper? Track the weight of a honeycomb and have Adafruit IO notify you when it exceeds a certain weight.

This is an introduction to hacking and controlling consumer off-the-shelf electronics with CircuitPython. To perform this guide, you'll need some soldering experience and willingness to tear down a consumer product your purchased.

Adafruit IO


Adafruit IO is the easiest way to stream, log, and interact with your data. It's built from the ground up to be easy to use - we do the hard stuff so you can focus on the fun stuff.

Data such as temperature and light levels can be hard to visualize and quantify - Adafruit IO makes it simple. Send IO your data and it can store and display it using charts, graphs, gauges, and more!

CircuitPython Code


CircuitPython is great for building Internet-of-Things projects. Using the Adafruit IO CircuitPython module, you can easily send data to Adafruit IO, receive data from Adafruit IO, and easily manipulate data with the powerful Adafruit IO API.

We've also built a DymoScale module for CircuitPython to make interfacing with these scales incredibly easy. 

You can rapidly update your code without having to compile and store WiFi and API secret keys on the device. This means that there's no editing code and re-uploading whenever you move the PyPortal to another network - just update a file and you're set. 


WARNING: Follow the steps in this guide at your own risk! DYMO Scales are not designed to be taken apart and soldered to. Following this guide WILL void your warranty.

To use this guide, you'll need a DYMO scale. We've tested this guide with DYMO M25 and a DYMO M10.

Note: There are differences between the two scale models we tested (the CircuitPython_DymoScale library handles this for you, you can use either). If you choose to use another DYMO mode with this guide, be warned that we have not tested other DYMO scales with this library and your scale may not work with our library. 

Front view of a Adafruit PyPortal - CircuitPython Powered Internet Display with a pyportal logo image on the display.
PyPortal, our easy-to-use IoT device that allows you to create all the things for the “Internet of Things” in minutes. Make custom touch screen interface...
In Stock


You'll need the following materials to complete this guide. If you do not have them handy, consider picking them up from Adafruit:

1 x Soldering Station
Digital Genuine Hakko FX-888D
1 x Solder Spool
Solder Wire - 60/40 Rosin Core
1 x Wire Strippers
Hakko Professional Quality 20-30 AWG Wire Strippers - CSP-30-1
1 x Spudger
Spudger - Double Sided Prying Tool
1 x Screwdriver
Adafruit Pocket Screwdriver
1 x USB Cable
USB cable - USB A to Micro-B - 3 foot long

This guide was first published on Apr 02, 2019. It was last updated on Jun 11, 2024.

This page (Overview) was last updated on Mar 08, 2024.

Text editor powered by tinymce.