Cheap inventory solution

Similar projects worth following
I have too much stuff to keep track of. Need a system.

There has already been 2-3 iterations of this idea before this post.

It all started 3-4 years ago when I started looking for cheap boxes to sort my components. The best boxes I found with the highest segments/$ where fast food plastic boxes. So I brought a good 20 boxes and put things in boxes. It stayed that way for a few years.

Then I started accumulating more components and overfilled the 20 odd boxes. So I went online and found a new type boxes that was a much better shape and size, and then went about buying 3000 of these boxes. I do not have a box storage count issue anymore :)

Now that the box count issue was resolved, keeping track of all the boxes became the main issue. First the boxes where found to fit snuggly into some packing boxes and created convenient segmentation of the small boxes. This lead to a small program that took a set of photos of the boxes and their locations in the big boxes.

This worked for a bit but as boxes moved around, that was the end of the system... Here then starts the rabbit hole below.


Template for printing on the DYMO pnp Labelmaker. The width of the canvas can be increased to print longer labels.

svg+xml - 2.13 kB - 12/13/2018 at 05:20


  • Fading labels

    JLAM12/13/2018 at 05:19 0 comments

    So the main issue with laser printed labels is that the table paper is fairly thing and I suspect that prevents the toner from fusing properly. This leads to the pixels essentially falling off the label.

    This just wont do for an inventory system. Luckily I can across a nice cheap label printer, the Dymo LabelManager® PnP ($35 on amazon at time of writing). Next step was to make it print usable labels.

    The printer seems to have two modes, and for it to work with the Linux driver I had to follow a really useful set of instructions here:

    After that, it was just a matter of getting pixel accurate prints from this printer. I printed a set of test prints generated in inkscape to count measure the performance and settings of the printer:

    The steps I followed where (from bottom up:

    1. generate a diagonal and count the steps
    2. use shallower angles to get a better count
    3. once I have a good guess create test print with 1-3 pixel and 1-3 pixel gaps as well as diagonals
    4. realise  that the vector printing worked awful and the bitmap with high DPI worked better
    5. tune in the DPI and the exact pixel counts by seeing how much of the test pattern was cut off
    6. print extreme stress with a pixel size checkerboard
    7. print a new test pattern with the wrong settings
    8. print it again with the right settings and realise there where still missing pixels
    9. the printer has 64 pixels and the lead to a DPI of 540
    10. print the test print with DPI of 540 and we have a perfect print :)

    I will have the template inkscape file uploaded somewhere with the pixel boundary marked by the grid. The fiel should be printed with a bitmap rendering at 540 DPI.

    for i in $(seq -f "%05g" 0 20)
      qrencode -s 3 -m 0 -t PNG  $i -o $i.png
      convert $i.png -gravity East -splice 129x0 -font Helvetica-Narrow -pointsize 52 -annotate +0+0 $i $i.png 
      echo $i
    montage *.png -tile 1x -geometry '+0+24>' page.pdf
    convert page.pdf -units PixelsPerInch -density 540 page.pdf
    #to print
    lpr page.pdf

     The above script generates the QR codes and then sends them straight to the label printer with the help of CUPS.

    And here we have durable new labels :D

  • Labels

    JLAM12/13/2018 at 04:49 0 comments

    So the first order of business is to label every box. The start of a proper inventory. The first idea I had where the stick sheets of A4 labels. You put these through a printer, slice it up and BAM, custom stickers. So a quick shell scripts later we have:

    for i in $(seq -f "%05g" 0 703)
      qrencode $i -o $i.png
      convert $i.png -gravity East -splice 100x0 -pointsize 20 -annotate +20+0 $i $i.png
      echo $i
    montage *.png -tile 16x -geometry '+3+3>' page.pdf
    convert page.pdf -units PixelsPerInch -density 400 page.pdf

    This was printed out and a scalpel + patience resulted in:

    These boxes along with a small jig was able to read the QR codes and take photos of the box contents.

View all 2 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates