Close
0%
0%

Open Digital Checklist

Digital, portable, open source, and simple checklist for every day carry. Replace apps and paper for good.

Public Chat
Similar projects worth following
A stand-alone device to replace apps I use regularly, such as lists, flashlight, flash drive, and alarm clock. Something to be carried in the pocket every day, and used when needed. Simple use is the goal, which is why I chose to use a 16x2 LCD with an HD47880 controller, with buttons, as the main interface. The goal is to pull it out, wake the screen, then scroll through a list, and mark items done and undone. Support for multiple lists that can be toggled on the LCD. Must be extremely durable and reliable. A simple e-Checklist for people that hate paper and phone apps.

This is a project to help me organize my life a little better, but is primary a learning project that will force me to better document things, and force me to learn new skills that I really want to have. This is my first serious project.

Check the logs often for updates, as that is where nearly all major updates end up. All feedback is welcome, even if you insist on telling me how I can just use a phone app for this. I understand, and do not care. I have my reasons, as stated in the description.

Desired Base Features:

  1. Manage multiple checklists, flipping through them with a single button.
  2. Mark items on a list "done" with another button.
  3. 12 hour battery life.
  4. Small enough to carry in a pocket everyday.
  5. Store important information, such as addresses, phone numbers, etc.

Desired Additional Features:

  1. Built in LED flashlight with physical slider hooked directly to battery.
  2. RGB backlit screen for color coding lists and list items.
  3. Beeper.
  4. Vibrating motor.
  5. Physical silence switch, like the iPhones use.
  6. Port covers to avoid pocket lint clogs.
  7. Simple way to add and edit lists from the LCD. Maybe a scroll wheel that scrolls through the alphabet.

The microcontroller has yet to be decided on, but will likely be either an ESP32 or Raspberry Pi Pico W. The display will likely be a 16x2 character LCD with an RGB backlight to save on cost and complexity. The case will most likely be made from PCB, and epoxy potted for ruggedized version.

The end goal is to have a simple and rugged device that can easily be carried in a pocket, worn on a lanyard or keychain, or mounted to a piece of equipment.


RaspberryPi Shutdown Button.py

Python script to safely shutdown the raspberry pi. http://www.instructables.com/id/Simple-Raspberry-Pi-Shutdown-Button/?ALLSTEPS

py - 1.25 kB - 03/19/2017 at 04:54

Download

  • 1 × Raspberry Pi Zero V1.3 with Camera Connector Small Linux PC that will run the entire device. This version will power the final version: https://www.adafruit.com/products/2885
  • 1 × 16x2 Backlit LCD, with HD44780 Controller and buttons Main interface
  • 1 × SD Card Used to hold the OS, programs, and checklist text files.
  • 1 × Micro HDMI to HDMI Adapter Needed to get a full size HDMI port on Rapsberry Pi Zero:https://www.adafruit.com/products/1358
  • 1 × USB OTG to USB Adapter Needed to get a full size USB port on the Raspberry Pi Zero: https://www.adafruit.com/products/2910

View all 8 components

  • Code Update: Reliable Buttons

    Dustin09/07/2024 at 01:03 0 comments

    I spent most of my day working on getting reliable button presses. Normally I'd just slap the denounce Arduino code in and move on, but it doesn't work with analog readings. I spent some time getting it to work with the realtor array that feeds into analog pin 0. That was absolutely necessary because I couldn't use buttons to toggle variable states as they were completely unpredictable. Even the "right" button, which ties to ground, was not always a consistent resistance value. I ended up checking for a range of values for each button, and then adding a denounce routine to thise readings. I finally have reliable button press detection. Next up is long press button detection, which I'll use to enter menus for adding and editing menu items. After that I still need a way to toggle checklist items and mark them as done or not done. I almost had that working, but the unreliable button presses screwed that up. That took way too long to figure out. I finally used the serial plotter to show the jitter in the analog reading and prove my theory. I should have started there...

    I still have to set up routines to navigate between lists and the items they contain, then apply the check mark toggle to those. After that I need to refine the LCD refresh routines as refreshing the display too quickly causes the display to be very dim. I had some luck clearing and updating the idle screen on every 50th cycle that the routine was called. The buttons were still very responsive and the display looks great.

    I sorted out backlight control the other day, and can add that in when I sort out the sleep routines. That should be easy enough. I eventually want to add a real time clock and use that for display the time as a screensaver, and setting up alarms, timers, and event reminders. Cramming all the info and settings into such a small display is challenging at times, but doable.

    I want this device to have all of the basic time and task management features I need, while remaining simple and reliable. The end goal is to use something like a custom ESP32 board to add all of the hardware features I could need, such as hosting a webserver management page and sending alerts over Bluetooth.

    For now, I'll be happy to get a usable device that I can carry and use every day. Good progress has been made, despite my lack of programming skills and experience. Baby steps.

    For those who insist on comne ting on this project to tell me to just use a smartphone or learn to program them instead: you've missed the point and I have no patience for that. Keep your ignorant comments to yourself.

  • Code Update: Cleaning Up

    Dustin09/04/2024 at 23:19 0 comments

    I spent a little time today to start a new Arduino sketch in order to clean up the code and slowly organize things. I added a commented out To Do list at the very top. Ironic, since I'm using a digital checklist to manage the creation of another digital checklist. I wish this project was done already so I could start using it... I created the custom check mark character for the 16x2 LCD shield and it looks fantastic. I still haven't gotten the function to toggle the check mark working yet, but I have one to work with. I'm using some code for menus that I found online, but I don't really like it. The example provided works, but not very well. I can scroll left and right between lists, and up and down between 2 items within a list, but that's about it. The list items are hard coded into If statements, which is a nightmare to think about with longer lists. I need an array of lists items that are tied to each list, and can be operated through with a button press. Shouldn't be too difficult to set up. I just have to sit down and lay out the entire workflow and then code it. I'm pretty bad at coding, but good enough to slowly piece things together. If I were a proper programmer, which enough experience, I could probably have this done in a single day. I also got the backlight control working, and discovered that many of these LCD keypad shields have a flaw that can draw tons of current from the Arduino pin and burn the processor out. I found code to test for this, but it's usage was none obvious and the documentation seemed to assume you already know how to use it, which I hate. I'm aware of the problem and will deal with it should it arise. For now, I can at least run a timer in the backlight that turns off the backlight after a set delay. It occurs to me now that I'll need a settings menu to adjust the backlight timeout, among other settings.

    Something else that occured to me just now is that I'll have to store persistent data in the EEPROM directly, so changes won't be lost if power is lost. This is fairly easy to do, but I have to remember to do it. My old Arduino water heater co troller has this feature and it was awesome.

    After the coding is done, I'll need a battery for the prototype device so I can take it with me and use it out in the real world. I'm thinking of looking for some sort of small USB battery bank that I could strap to the device and just leave plugged into t it at all times. It will be a very bulky and heavy device, but will work.

    I have much work to do on this project, but I am making progress. I've had a fair bit of interest in this project over the years, and it's a device is use every day if it is done well. So far progress has been very good lately. I hope to have the core navigation features implemented by end of day tomorrow. I'm exhausted tonight and am off to bed early. It's new board game day and today's new game is The Spill, a game about managing the disaster that is a leaking oil drilling rig in the ocean, as it pollutes the water and poisons marine life. Quite a lovely looking game. I am too tired to even play that tonight. A busy but good day.

  • First Working Prototype

    Dustin09/04/2024 at 14:16 0 comments

    Yesterday I finally dug out some hardware and started coding the digital checklist. I have two Arduino Uno boards and two 16x2 LCD boards with buttons. I dug them out of storage and got one working. For initial hardware testing I used the Arduino game The Lonely Cottage from a games collection on GitHub. It's actually quite a pleasant little game. The low refresh rate and terrible buttons make for a not so great experience, but it's quite cool overall. 

    After getting the hardware working, I found some examples LCD menu libraries to start testing with. The goal is to have the name of the current list stay at the top of the screen. With the current menu item below that. Scrolling left and right will switch between lists, and up and down scrolls between list items. The select button simply toggles a check box to the left of the item, or moves it down to a section for completed items. I've not quite decided on that yet. Using a checkbox would use up one of the limited character spaces though. I'm considering upgrading the display to a 20x4 character LCD to allow for multi line checklist items and displaying more info at once, such as a name, phone number, email, and address for contacts. The larger ddisplay would make the device larger, which would allow more room for extra components such as a flashlight, extra buttons, and larger batteries.

    Speaking of batteries, I'm leaning most towards 4 AAA batteries or a lithium ion pouch battery. It must be easily replaced to prevent the device from becoming landfill fodder. AAAs will give the most longevity. Powerex makes excellent rechargeable versions as well. I could eventually integrate charging circuitry into the main board, but that's a feature for a future revision. For a battery door cover I'm considering just having a PCB back panel that screws in place. 4 AAA batteries should last quite a long time of the power savings and deep sleep features of modern microcontrollers are taken advantage of.

    As far as the coding goes, I've gotten 3 lists added with 2 list items each. I can scroll left and right between the lists and up and down between list items. I need a way to toggle the tasks done and undone, as well as add, edit, and remove tasks and lists. I'll most likely start with text entry by having the user scroll up and down between characters and select them, moving the cursor to the right after each selection. I'll have to impose a character limit as well, since the display can only handle 16 characters across. To add a new list I'll have the user scroll to the left from the first list where a "Add New List" option would live. This would create a new list in the array of lists. At the bottom of each list will be "Add List Item" where the user can add new items. Long pressing the select button could be used to delete items. An index of all lists, directly to the left of the first list, could be used to quickly navigate to a desired list, while long pressing select would allow for deletion or re-ordering of lists. The user interface design is nearly complete, with the various features just needing to be coded and tested. An auto off timer would be added as well. An RGB backlight would allow for color coding lists and menu items. This device could be as simple or complicated as I want it to be. I want to be able to add as many truly useful features as I can to make it as useable as possible. All of the obvious features will be implemented right away, with various luxuries added later, if at all. I'd like to at least have a timers and contact storage. This device could become an all in one every day carry if done properly.

    For the hardware, I'm considering using an ESP32 or Raspberry Pi Pico W. I need decent processing power to ensure the device is responsive, and want hardware with wireless functionality to eventually add a web server that allows for managing the device wirelessly. I'm using an Arduino Uno currently, as that's what I have on hand, but it doesn't have enough storage...

    Read more »

  • Resources For Prototyping

    Dustin07/08/2022 at 22:02 0 comments

    I've been doing some research and just making some quick decisions to get things moving quickly. I'll include some useful links here that should help me get the code going for this.

    Programming Language: Micro Python

    Programming IDE: Thonny

    Development PC: Atari VCS

    OS: Ubuntu 20.04

    SD Card protocol: SPI

    LCD protocol: I2C

    SD Card

    SD Card SPI Adapter

    SD Card Guide

    LCD Keypad

    LCD Guide

    Hardware order has been placed. The prototype hardware is officially on the way. The biggest hurdle now is finding the time to build and program it. Once everything is working, I'll design a custom PCB and get a few prototypes made.

  • Raspberry Pi Shortages

    Dustin07/08/2022 at 21:22 0 comments

    In light of short supplies and scalping, I am going to change the hardware from the Raspberry Pi Zero family of boards to the Raspberry Pi Pico family. Preferably the Pico W for it's wireless capability. As I have a few Pico boards on hand and can get more, I will build the first prototype around that. The new end goal is an all in one device built around the RP2040 chip. I haven't touched this project in a few years, but I'm getting my cousin into programming now and need some projects to work on and some way to organize my various tasks. I feel the Pico is a better option as it can still have advanced features, but is far more power efficient and responsive.


    The current goals are as follows:

    - RP2040 based

    - Rechargeable batteries

    - Easy to read display with backlight

    - Physical button navigation

    - Either built in SD flash, or SD card slot

    - USB connectivity

    There are many features that could be added in the future, but the initial prototype simply needs to hold multiple lists of tasks and allow them to be marked "Complete" or "Incomplete." Aircraft pre flight checks come to mind. I'm getting into sailing and will need a checklist system for that as well. The final hardware iteration will be ruggedized for such use cases.

    I have some extra project funding this pay so I'll go order the hardware now and finally get started.

  • Possible Feature: Wireless Sync

    Dustin04/19/2022 at 21:19 0 comments

    Despite my insistance on managing feature creep, I think this particular feature could be incredibly beneficial. The hardware is in place, and it could be implemented in software after the initial prototypes are useable. The idea is to have a unit be able to sync changes to a server over either USB, wifi, or Bluetooth, when a server connection is available. Modifying list items and lists is a core feature on the device itself, but there will be times where a copy and paste from another device would be ideal.

    A secondary function of such a sync system, the one that got me thinking about this in the first place, is to have multiple devices sync lists in real time, enabling cooperative work on large scale projects. One person could complete a task, mark it done, then the change would be synced and duplicated on all other devices. This would help avoid duplicate work and wasted time trying to determine if a task has been completed.

    With so many big projects coming up, as well as the complex nature of the systems I work on at my new job, the Raspberry Checklist project is going to become a priority very soon. More updates soon.

  • Pimoroni Pico System

    Dustin11/08/2021 at 12:54 0 comments

    I'm typing this up on my Pi 400 in the Pidock 400. It's so nice to have a Pi powered laptop. Love this thing. It's gotten me motivated to get these projects going again.

    Recently Pimoroni has released the Picosystem, which really caught my eye. I've really enjoyed the Raspberry Pi Pico since I picked some up when they first released. I actually got 4 from the very first shipment that Microcenter in Ohio got in. I gave one to my cousin to manage the power and safe shutdown, but kept the other 3 to tinker with. They went out of stock very quickly after the release, as all Pi products seem to do. I mention this story because the Pico instantly became my favorite microcontroller, and it reminded me that it's worth picking up certain things I really want as soon as they're available. I ordered a Pi Zero 2 W as soon as I heard of it, and I have one in for this project already. That will still be used at some pint in this project, but I haven't decided on the hardware for that just yet. The battery has been a problem for me. In the mean time, I've decided to order a Picosystem as soon as I can ad start developing for that. I'm weakest in the software side of things, and having a ready made system to program on will speed up development for me significantly. It's a very nice system too. Aluminum case, beautiful PCB front, plenty of buttons, great little screen, speaker, battery, and small form factor. It's nearly perfect for this project, aside from lacking a Pi Zero. It isn't something that I would tinker with for a little bit and put on a shelf either. It appears to be worthy of adding to my every day carry. I'm working on learning PyGame for other projects, so having this to work with helps me there as well. It seems to be a perfect solution to many of my problems. I'll order one of these this Friday if there are any left in stock. 

    I always find myself amazed at the following this project has gained. I feel lie I've been keeping people waiting for a very long time on this one, so it feels good to make some progress, even if only in the research department. Hardware for both the Picosystem and Pi Zero versions will be ordered this Friday.Hope everyone is well and making good progress on their projects. 

  • Pi Zero 2 W Has Arrived

    Dustin11/01/2021 at 22:55 0 comments

    The latest Pi has arrived from Adafruit today. I've not done anything with it yet, and I likely won't for a little while. I haven't gotten my Pi 400 in yet, which will be the system I'll be using for all my development. I don't have the display for this project yet either, but I will order it in just under two weeks on pay day. 

    I'm still trying to decide on the display for this project. Part of me wants to use the super simple character LCDs, another part wants an OLED. I've got time to decide, but I'm more interested in why this decision is so difficult for me. I'll sort that later. 

    I may get the new Pi set up and running so I can start playing around with it soon. Once the Pi 400 is here, I doubt I'll do much with this for a while. 

  • Another Step Closer: Interface Choices Narrowed

    Dustin11/01/2021 at 01:33 0 comments

    The big announcement is that I purchased some new hardware that will make development far easier for me. I picked up a Pidock 400 and a Raspberry Pi 400 kit for my PiCarts project. I got it to consolidate all of my project work onto one system that's more portable than my laptop, which now has a broken screen. I can use the Pi 400 as a USB keyboard, and the display on the Pidock is standard HDMI, so I can use it with the Pi Zero. This will make it easy to take all my project materials with me in a single laptop bag, so I can work anywhere at any time. Setting up my laptop and digging out all the equipment has been a huge obstacle for me, so I just don't do it. 

    I'm amazed that people still keep liking and following this project. I understand why though. There isn't really much else like it out there. I've recently ordered a Pi Zero 2 W, which may end up in this device. It's actually fast enough to be used as a very basic personal computer, unlike the original Pi zero w. I really want this thing to be more than just a checklist. My idea for it is basically a general use pocket computer that can be used as a standalone checklist. I've been working with the Raspberry Pi Pico lately and could use that instead. It's $4, which is nice, and plenty of power. I very well may make both versions in the future. I still need to decide on a screen. I'm leaning towards e-ink displays these days, though they tend to be more expensive. Battery life with a Pico and e-ink display would be fantastic. As the Pico can be used as a USB mass storage device, I might be able to just drop the text file containing the lists onto it and go. No OS, no SD cards, no shutdown procedures. The Pico could easily run the screen, external data storage, an LED for flash light, and much more. I'd love to add temperature, humidity, and atmospheric pressure sensors eventually for keeping an eye on the weather and such. Gotta watch out for feature creep though. 

    I just discovered this setup from a Adafruit that is almost exactly what I want. I don't know how it would handle pocket lint and such, but it would be perfect for a prototype. It's out of stock currently, but I can get the pieces individually instead of the kit. I'm already planning to learn pygame, which is recommended for this display. The other option I'm considering is this e-ink display, also from Adafruit. It's a three color display: black, white, red. They also make black, white, and yellow, as well as a plain black and white version. There are no buttons on these displays, but they could be added later. The OLED option above is actually the better of the two, as it will enable me to actually get this project done. Less obstacles to tackle. 

    While searching through various Pi stuff, I came across a third option that I really enjoy: The Pirate Audio Speaker and Display for Raspberry Pi. It has a nice little screen, buttons, a speaker, and DAC so it can playback audio. It's just a 1 watt speaker, but it would add sound effects to the device. I really do want something with buttons on it and this is a great option.

    I've found another great option here, again from Adafruit. It's actually a LoRa module with a small screen and three buttons. I find this one quite fascinating as it would add long distance wireless communications. A checklist that can be used as a communicator. With only three buttons, that might be hard to use, even as a checklist. I'll still likely pick up a few and tinker with them. I'm putting together a large kit of Pi hardware for testing and to just play around with. This would be a great addition. I could set up the Pi to connect to a smartphone through Bluetooth for text input and such. Basically make a LoRa modem for smartphones. It would be great for communicating in places without cell service, such as underground or the middle of nowhere. Feature creep though...

    Alright, I think I've looked at enough displays and such. The current leader is still the...

    Read more »

  • Found Some Software Guidance

    Dustin05/22/2021 at 15:26 0 comments

    While browsing HaD, I found this Arduino menu code. It's pretty darn similar to what I want to do for the Pi, but in C++. I could switch the hardware out for an Arduino of some sort, or I could learn from this and write my own menu in Python for the Pi. I could still use one of these checklists, and I know other people who would enjoy it. I'm almost good enough at programming to finish this project, but I have other projects to finish first. Like the custom electric water heater controller I've made for the camper. That has taught me much about programming. I'm finally at a point where I could sit down and actually get this working now, just need the time and energy. I may eventually make Arduino and ESP32 based checklists as well. I like the Pi Zero W though, as it gives a full linux computer if needed. You could use you digital organizer for software development or light tasks if needed. Not sure where I will go with this, but I'll explore it later. This is one of the very few non-essential projects I decided to keep alive due to the amount of following it's somehow gathered. People seem interested, and I am too. As my life gets more complicated, this would become more useful.

View all 26 project logs

Enjoy this project?

Share

Discussions

Peabody1929 wrote 09/04/2024 at 18:47 point

Learn to program your phone instead.  That is a marketable skill.

  Are you sure? yes | no

Dustin wrote 09/06/2024 at 01:29 point

Learn to not miss the entire point. That's a marketable skill.

  Are you sure? yes | no

ML wrote 08/01/2016 at 13:15 point

Personally, the GAIN for me would be a list that is NOT permanently connected to network, and therefore it is less likely to become a privacy concern.  A portable device with powerful encryption is very beneficial to me...

My cell phone is sync'ed with Email, and every list I've ever created on my phone then became a permanent record in my Gmail.  Annoying.

  Are you sure? yes | no

Dustin wrote 08/01/2016 at 16:03 point

I completely agree. I have enough privacy concerns to worry about. I don't need anyone seeing my budgets, shopping lists, and reminders either. My phone dies at random as well, and I lose access to important data. Have considered putting step by step directions to important places, as well as phone numbers in it as well. Basically evolving into a backup personal data system. I'm glad someone else sees the value in this project.  Most people say "Just use your phone" and move on. 

  Are you sure? yes | no

Dustin wrote 07/27/2016 at 15:15 point

I don't know if YOU would gain anything from it. I don't like using my phone and draining my battery, and I don't like paper checklists.

  Are you sure? yes | no

Martin wrote 07/27/2016 at 07:52 point

What is the gain in carrying an extra device with me instead of using a phone app?

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

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