Recently, I discovered the ever-increasing scope of this project that I have been tackling solo.
Until now, there seemed to be two directions that I had to choose to run with: the technical back-end portion (communicating between devices) and the artistic front-end part (the drawing interface). This is a decision I have still been struggling with, as I have gotten conflicting yet equally valid recommendations for either side, something Kevin calls “Mentor Whiplash.”
The argument against starting with the front-end is that I may spend copious amounts of time developing and perfecting an interface that I love before finding out that the hardware doesn’t have any memory left to send information this large. Developing the back-end first would let me know what limits to work within so that this isn’t an issue. Of course, the counter-argument would be that putting those constraints on my project would limit my creativity and keep me from making the product’s interface one that is unique and mine. I can always find people to give me advice on the technical side, and work to find solutions to fit my design. I just may not end up with the full bracelet device for a while.
Unfortunately, I encountered more limits even within the drawing interface. After a lot of research and trial-and-error regarding an “Undo” feature, I asked Kevin for his advice. We ultimately discovered that the Arduino Uno doesn’t have nearly enough memory to store what has been drawn on the screen. For example, the display is 320 x 240 pixels and uses RGB. So to take a screenshot of the display it would need 230,400 bytes (320 x 240 x 3) of memory, while the Arduino Uno only has 2048 bytes in RAM (1000 of which I am already using) and 32,256 bytes of Flash memory (which I am using 25,182 bytes of).
I discussed potential solutions with Daniel and Kevin, and came up with a few. I could incorporate an external RAM, which Kevin has. I could switch from the Arduino to a Raspberry Pi. Or (hopefully) I could store information on to the MicroSD card which is already inserted into the display. This is the route I’ll be taking, but it’s disappointing that I’m already hitting new roadblocks in the artistic side. I just want to create an awesome drawing interface!
Until now, there seemed to be two directions that I had to choose to run with: the technical back-end portion (communicating between devices) and the artistic front-end part (the drawing interface). This is a decision I have still been struggling with, as I have gotten conflicting yet equally valid recommendations for either side, something Kevin calls “Mentor Whiplash.”
The argument against starting with the front-end is that I may spend copious amounts of time developing and perfecting an interface that I love before finding out that the hardware doesn’t have any memory left to send information this large. Developing the back-end first would let me know what limits to work within so that this isn’t an issue. Of course, the counter-argument would be that putting those constraints on my project would limit my creativity and keep me from making the product’s interface one that is unique and mine. I can always find people to give me advice on the technical side, and work to find solutions to fit my design. I just may not end up with the full bracelet device for a while.
Unfortunately, I encountered more limits even within the drawing interface. After a lot of research and trial-and-error regarding an “Undo” feature, I asked Kevin for his advice. We ultimately discovered that the Arduino Uno doesn’t have nearly enough memory to store what has been drawn on the screen. For example, the display is 320 x 240 pixels and uses RGB. So to take a screenshot of the display it would need 230,400 bytes (320 x 240 x 3) of memory, while the Arduino Uno only has 2048 bytes in RAM (1000 of which I am already using) and 32,256 bytes of Flash memory (which I am using 25,182 bytes of).
I discussed potential solutions with Daniel and Kevin, and came up with a few. I could incorporate an external RAM, which Kevin has. I could switch from the Arduino to a Raspberry Pi. Or (hopefully) I could store information on to the MicroSD card which is already inserted into the display. This is the route I’ll be taking, but it’s disappointing that I’m already hitting new roadblocks in the artistic side. I just want to create an awesome drawing interface!