Modified QuickStart Demos and QuickStart Projects.
Duane Degn
Posts: 10,588
I've decided to start my own QuickStart thread instead of continuing to hijack other threads.
I received my QuickStart boards on Thursday and I've been playing around with the touch pad demo program. I didn't like the way the original program caused the LEDs to flicker when I touched the pads. I modified the Spin part of the code and posted it here.
Later I found JonnyMac's Spin only version. It didn't work well for me. I'm beginning to think the touch pads can be very sensitive to all sorts of factors like relative humidity and especially the amount of moisture in ones skin. I was able to get Jon's version to work consistently for me only after having his "scan_pads" method run in its own cog. I posted my modified version in the same thread.
As I started thinking about actually using the touch pads in a project, I realized I didn't want to have add my awkward debounce code to each call of the Button.state method. I moved the debounce code into the PASM driver. I also removed the Accumulator algorithm from the Spin portion of the driver.
This is another reason I suspect the touch pads are sensitive to humidity. Parallax must have had a reason for include this algorithm but in my experience, it doesn't do any good. It actually makes the code behave worse than when I remove the algorithm.
I've attached the modified demo with my version of debouncing added to the PASM section of the driver.
JonnyMac's code added output to a terminal. I decided to also add output to my newly modified code.
Another thought I had as I thought about actually using the pads in a project was the awkwardness of checking the bits in the returned value. I made yet another version that stores the pad states in both a variable with bits set to the pad states and also with an array of eight bytes with each byte being either one or zero depending on the corresponding pad's state.
Here's that code:
Now I think I'm ready to use the pads as part of a menu in my next project.
My next project is a data logger to aid in diagnosing our heat-pump. I'll add details as the project progresses.
Duane
Edit(3/11/15): I have deleted the archives Touch Buttons LED Demo110611c - Archive [Date 2011.06.11 Time 12.55].zip
and dwd_TouchDemoByteArray110611i - Archive [Date 2011.06.11 Time 13.21].zip
I plan to upload this program or an improved version to my GitHub account
If there isn't a replacement on GitHub send me a message and I'll make sure to upload the replacement code.
I received my QuickStart boards on Thursday and I've been playing around with the touch pad demo program. I didn't like the way the original program caused the LEDs to flicker when I touched the pads. I modified the Spin part of the code and posted it here.
Later I found JonnyMac's Spin only version. It didn't work well for me. I'm beginning to think the touch pads can be very sensitive to all sorts of factors like relative humidity and especially the amount of moisture in ones skin. I was able to get Jon's version to work consistently for me only after having his "scan_pads" method run in its own cog. I posted my modified version in the same thread.
As I started thinking about actually using the touch pads in a project, I realized I didn't want to have add my awkward debounce code to each call of the Button.state method. I moved the debounce code into the PASM driver. I also removed the Accumulator algorithm from the Spin portion of the driver.
PUB State | Accumulator Accumulator := Results ' Sample multiple times and return true repeat constant(SAMPLES - 1) ' if every sample was highw Accumulator &= Results return Accumulator
This is another reason I suspect the touch pads are sensitive to humidity. Parallax must have had a reason for include this algorithm but in my experience, it doesn't do any good. It actually makes the code behave worse than when I remove the algorithm.
I've attached the modified demo with my version of debouncing added to the PASM section of the driver.
JonnyMac's code added output to a terminal. I decided to also add output to my newly modified code.
Another thought I had as I thought about actually using the pads in a project was the awkwardness of checking the bits in the returned value. I made yet another version that stores the pad states in both a variable with bits set to the pad states and also with an array of eight bytes with each byte being either one or zero depending on the corresponding pad's state.
Here's that code:
Now I think I'm ready to use the pads as part of a menu in my next project.
My next project is a data logger to aid in diagnosing our heat-pump. I'll add details as the project progresses.
Duane
Edit(3/11/15): I have deleted the archives Touch Buttons LED Demo110611c - Archive [Date 2011.06.11 Time 12.55].zip
and dwd_TouchDemoByteArray110611i - Archive [Date 2011.06.11 Time 13.21].zip
I plan to upload this program or an improved version to my GitHub account
If there isn't a replacement on GitHub send me a message and I'll make sure to upload the replacement code.
Comments
If you breath hotly on the pads, you can make the leds light up, then, a narrow stream of air or passage of time will make them go out. Viol
As I mentioned. The version I posted works really well. At least it works well today. I'll be interested to see if the responsiveness changes with the weather.
Duane
Your code seems to work better for me too. Every once in a while a LED will lite up for a little long then the rest, but the LED will eventually turn off.
Thank you,
CameronM
I'm glad your QuickStart seems to behave better running my code.
I'm not sure what all the variables are that affect whether or not the board behaves as desired.
With the code I posted above, the LEDs and pads work the way I want them to.
As Tracy pointed out, "it is not meant as an application-ready touch pad". I still intend to use the QuickStart in an application (doubtfully commercial).
Duane
I had initially planned to wait until I was finished with the board before posting it.
But I thought it might be fun to share the process online.
I started out with a piece of blank proto board.
Here's a picture where you can see how the mezzanine board is a section of the larger blank proto board.
I've already attached a uSD card holder and a Nordic wireless transceiver.
Here's a picture of the bottom of the mezzanine board.
There's socket for a real time clock module and I've started wiring up an EEPROM. It's a 128K EEPROM, I've pulled A1 high so it doesn't conflict with the boot EEPROM.
I plan to use the QuickStart + mezzanine as a data logger. While SD cards are great and are very reliable, I have had occasions where a file has been corrupted. My tentative plan is to also log some essential data to the EEPROM as well.
I'm hoping to come up with some sort of menu system using the LEDs and touch pads.
Here's a picture of the mezzanine on the QuickStart.
The length of the QuickStart is about 1/16" shorter than the width of the blank proto board (and the many other boards the same size Parallax sells).
It does look like the mounting holes line up nicely though. I just checked, the 0.1" spaced holes do not line up with the blank proto boards 0.1" holes when the back mounting holes are aligned. But both the mounting holes on the front of the QuickStart and the 0.1" on both boards do align. This should allow the QuickStart to be stacked on top of a proto board and have both the 0.1" aligned and also have the mounting holes aligned. Very nice.
The QuickStart sure makes it easy to add a Propeller with USB to a project.
I'll post progress on this project here once in a while.
Duane
I printed out a label with my Brother label maker.
I've attached the label file in case any of you what to print a label yourself.
There is also a label for the other side of the header in the file.
The two labels are printed one above the other. Just cut each side from the larger label (I used 1/2" tape).
I had to compress the file in order to attach it.
Duane
Since one of my projects includes thermistors, I'm hoping I could use some of LED pins (P16 - P23) with a RC decay circuit. I know the QuickStart board uses a buffer to drive the LEDs. I was hoping the buffer didn't change the way a RC decay circuit behaved. I asked about this here.
I didn't receive any replies so I tested it myself (I should have just done the testing anyway). So far it looks like the LED pins behave the same as unused pins with regards to RC decay. Ah, I remember now why I didn't just test this before. I thought I'd have to solder a capacitor to my mezzanine board in order to make the RC circuit with my thermistors. I recently had a brilliant (for some it would be common sense) idea to solder the capacitor to the thermistor connector. This way I can use the same pins for other sensors. I think having a capacitor permanently soldered to an IO pin really limits it's usefulness.
I made the thermistor connector by soldering male header pins to a small piece of blank proto board. A 0603 size 0.01uF capacitor fit nicely between the header pins. I think you can make out the capacitor in this picture.
I performed a couple of tests using pins 21 and 23 (LED pins) to measure the time of a RC decay using thermistors. I also tested pins 25 and 27 (nothing else is attached to these) . The results from both sets seemed to be in the same range of values.
As you can see in the photo, I have both leads of the thermistor connected to IO pins. In order to test the thermistor on different pins I plugged it directly into the QuickStart board. I haven't decided which of the pins to bring up to the mezzanine board yet. Once I decide which pins to use with the thermistors I'll connect the appropriate pins on the mezzanine board to some headers up there. The connector on the mezzanine board will have a ground connection as well as the IO pin connection.
Since I didn't have my final connections set up, I set one of the two IO pins the thermistor is connected to as an output and set it low. I figure I could use an IO pin as a temporary ground connection. I didn't think it would hurt the IO pin since these thermistors are in the 10K ohm range and wouldn't let much current through.
These updates seem to always take longer than I anticipate. So do I work on my project, or write about working on my project? It sure makes me appreciate all the effort so many forum members take to document their work.
This project has actually just lost a lot of priority. I thought I'd be in urgent need of the logger I'm making. It turns out not to be needed right now. I'll still work on it. I just don't have to get it done as fast as I had previously thought.
Duane.
Right now there is no plans for additional chips, but who knows? Thought I'd show it off. It doesn't interfere with the keypads or LEDs, and the Reset switch is still reachable. Checked out the mezzanine wiring with the Graphics Demo of Chip's. I find that a simple way to do so; and refresh in my mind what the Prop is capable of.
I can't print the label for the QuickStart pins.
I can't open the "QuickStart110616e.LBX" file. Can you send the file in another format please? (jpg)
My two Quickstarts are stuck in some warehouse due to the Canada Post strike :-( so my qsBridge and other QuickStart products are delayed for a while. I even tried to order two more yesterday for courier shipping, but Parallax was out of stock!
Oh well; I have plenty to do, including preparing for Vancouver Maker Faire on June 25&26
@HShanko, That's great! Thanks for posting a picture.
I like this size of board for a mezzanine. As you mentioned, you can still reach the reset button with the mezzanine board attached.
I think these QuickStart boards have a lot of potential.
Duane
@Nikos, The ".LBX" file is for a Brother brand label maker. I can scan a label to make a jpg if you'd like. How many dots per inch should I make the scan? I guess it should be how many dots per centimeter?
If you'd like, I'll mail you a couple of labels. Just sent me a PM with your address and I'll put some in an envelope and send them to you.
Duane
@Bill, Thanks.
Sorry to hear about your boards. I look forward to seeing what you come up with to use with the
QuickStart boards.
Are you ever not super busy?
Duane
Thanks... you figured me out, I always keep busy!
I hope my package from Canada hasn't been delayed for the same reason. I do have some QuickStarts, though.
Canada Post says: Accepted at Langley post office June 13th
So the question is... did it make it out of Canada before the post office was shut down on the 15th?
The good news is it looks like Canada Post will be legislated back to work by the end of this week.
Sorry for the delay.
I hope to get my QuickStarts ASAP, because it looks like even though they changed the pinout it will still work with one of my nice proto boards
I also need them to finalize the connector placement on qsBridge.
I ordered a Quickstart board at the same time as you also with USPS, and got it a week earlier here in Switzerland (12 days).
We not have to pay duty or VAT if it is under 60$, so I'm really satisfied with this USPS service.
Andy
The only way to convert these labels was to print them and scan them.
They didn't scan very well. I don 't have PhotoShop on this computer. I think the ones with grey backgrounds would look okay if they were adjusted a bit. When I use the "Black and White" setting, the text didn't didn't look very good.
As I mentioned before, I made these labels on a Brother label maker. I think it would be relatively easy to make labels using a word processing program and print them out on normal printer labels.
I posted the "LBX" file so others with a Brother label maker could print these labels for their QuickStart board.
Duane
I didn't want to 'hog into' your thread, but wanted others to know others like this mezzanine board dimensions. If it werent for the Reset switch I'd of made it a bit larger; not much, maybe 0.1" deeper; still want to easily see the LEDs. One can get two boards this size from those Blank Proto Boards; three if one needs mostly the header space plus a a few rows of pads.
At first I wasn't going to get a QuickStart board; I originally got a six-pack of Prop 1 ProtoBoards, and still have a few untouched. But liked the size and the fact the USB is already there; don't even need a Prop Plug, just a USB standard to mini-cable. Of course, plus the lap/desk-top. I wasn't concerned that the EEPROM was 'only' 32KB. Most of my programs haven't yet needed more; usually run out of cogs or pins first. And for such a small board it is just too handy. Well, the touch-pads are a bit close for average male fingers! Can work around that.
I'm a bit late saying this; my DSL Internet access has been off and on. So when ON, need to take care of higher priority needs first. Seems to work better again.
You are of course very welcome to post on this thread. I was very pleased to see you also used a blank proto board to make a mezzanine board for your QuickStart.
I attached my mezzanine board 0.1" forward of its normal position and found I couldn't reach the reset button without forcing the mezzanine board higher than it would naturally sit.
The reset button could be moved to the mezzanine. The reset is on position 37 of the header right next to the ground.
If you do make a mezzanine board the same size as the QuickStart, I'd suggest aligning the mounting holes of the blank proto board with the holes on the front of the QuickStart. This way the pins will also line up. I wrote about some of my observations on the size of the boards in post #6 of this thread.
BTW, I'm changing the title of this thread from Modified QuickStart Demos and My QuickStart Projects to Modified QuickStart Demos and QuickStart Projects. Please feel free to post as much as you'd like to this thread. The more the merrier. I'm very interested to see what you and others do with their QuickStart boards.
I took David C. up on his offer to replace the 32K EEPROM boards with 64K EEPROM boards. I had originally purchased four QuickStart boards. I've given away one so far. One of the reasons I purchased the QuickStarts was to use them as data loggers. While some boards will have SD cards attached I wanted to use the larger EEPROM for essential data that wouldn't be lost even if there were a problem with the SD card. I also wanted to use the EEPROM with boards not needing a lot of storage space (no SD card needed). It's not often I use the extra EEPROM space on 64K Propeller boards but in this case I had planned on using the extra space and was disappointed to find out the EEPROM was smaller than originally thought.
Last week I was visiting family. I was showing off some of my Propeller projects. One of my projects is to control a RC helicopter with a Wii Nunchuck. My niece's husband thought this was pretty cool (as he should) and was very interested in the Propeller. I gave him the first of my 32K QuickStart boards. He seemed very excited about learning to use the Propeller.
I think the QuickStart is a good way to introduce someone to the Propeller.
Duane
Just got my quickstart board today at UPEC and I look forward to trying your demo.
Maybe they should make a contest to see who can make the most reliable button code...
I have some ideas to try myself...
We really need to think of a new name for "mezzanine" though...
I like "mezzanine." I even tried to take credit for inventing the term. It turns out to be the common term for these type of add on boards. I like "mezzanine" better than Peter's "plates" (earlier in the above thread).
I'm not sure if there is going to be one program that uses the touch pads most reliably. I've read about people being able to blow on the pads and have the LEDs light up. Breath will not trigger the pads on my board (at least not where I live).
In the original code the pads had to be triggered multiple times in a row to count as a touch. This leads me to believe the pads are too sensitive at Parallax HQ. I changed the code so just one triggered reading out of a bunch of attempts counted as a touch. My guess is the humidity plays a large factor in the sensitivity of the pads. The code I've posted works great on my boards and at my location.
I would like to see what code you and others come up with. I know JonnyMac posted a Spin only version. I had to change his code to get to work reliably with my boards (and at my location).
Duane
I thought I'd also post it here since it uses the QuickStart LEDs.
Duane
Beau's new demo using a capacitive technique with a 1 pin ADC seems to be very reliable
Kochevnik asked about ways to connect to the QuickStart board.
I told him about the mezzanine boards in this thread.
As part of my panic button project, I've been trying to figure out ways of connecting components to the QuickStart board.
Because of the size limitations inside some of the button enclosures, I didn't think using a mezzanine board for the extra components would work well for my latest project.
I'm still trying to come up with a better solution than what I'm posting here.
I thought this thread was a good place to document my attempts at connection devices to the QuickStart.
I tried using extra long male header pins in order to use female connectors on the devices. I don't think this was a good idea. The connections weren't very solid using the extra long pins.
I soldered female headers to the Vdd and Vss holes. I also added two male headers to aid in connecting a battery pack to Vin and ground.
There are four AA NiMH batteries in the pack. I think this connection strategy will probably work for the battery pack.
I don't think I'll use this type of connection for the Nordic modules.
I think I'll need to have the Nordic modules' power controlled by a relay. As I mentioned in the other thread, I'm having problems with the modules locking up. I haven't found a way to perform a soft reset on the modules so I'll plan to use a relay to cut the power to a module. The modules seem to behave okay once they've had their power cycled.
Below is a quicker way of connecting the Nordic modules with both the QS IO pins and also connecting the power pins to Vdd and Vss.
You can see the male headers used to connect with the battery pack.
I'm presently working on a different way of connecting the needed devices. I'll post pictures of my latest attempt on the panic button thread.
I haven't explained all the pictures I've attached. Let me know if you have questions about them.
Again. Most of these pictures are failed (or less than satisfactory) attempts. I'm still trying to come up with a better way of connecting devices to the QS (other than a mezzanine board).
I'm still a fan of mezzanine boards. I'm just hoping to add to the possible ways of using these QuickStart boards.
Duane
They make professional looking connectors.
Jameco has various .1" connector housings configurations and male/female pins.
A crimp tool is recommended
http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_100803_-1?CID=PDF
http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_145358_-1?CID=PDF
http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_100766_-1?CID=PDF
http://www.rapidonline.com/Tools-Fasteners-Production-Equipment/Hand-Tools/Tacking-Crimping/Crimping-tool-for-PCB-connectors/30535
It's really intended for Molex KK terminals, but works OK with a little care. The official tool is very expensive.