Quick Media Player (new touchscreen for Quickstart!)
Rayman
Posts: 14,665
Here's brand new product designed for Quickstart, the QMP (Quick Media Player):
http://www.rayslogic.com/Propeller/Products/QMP/QMP.htm
The QMP adds a high quality 2.4" touchscreen (from Newhaven), uSD card, and headphone amp to a Quickstart board (Quickstart not included).
Just plug QMP into Quickstart's 40-pin header and you're all set, no soldering required.
Demo software includes a wav music player, a paint program, and a port of the TV Graphics Demo.
YouTube video of new demo:
[video=youtube_share;oiC8aFp6nWk]
http://www.rayslogic.com/Propeller/Products/QMP/QMP.htm
The QMP adds a high quality 2.4" touchscreen (from Newhaven), uSD card, and headphone amp to a Quickstart board (Quickstart not included).
Just plug QMP into Quickstart's 40-pin header and you're all set, no soldering required.
Demo software includes a wav music player, a paint program, and a port of the TV Graphics Demo.
YouTube video of new demo:
[video=youtube_share;oiC8aFp6nWk]
Comments
http://www.rayslogic.com/Propeller/Products/QMP/QMP.htm
BTW: One cool thing I'm looking forward to doing is using the RamPage2 module with this board.
RamPage2 can plug into the second Quickstart 40-pin connector and lie between Quickstart and QMP.
The 8-bit flash and sram then share the 8-bit bus on P0..P7.
This also gives a second uSD card which will allow video to be on one uSD and audio on another, making video playback easier.
Here's info on RamPage2:
http://www.rayslogic.com/Propeller/Products/FlashPoint/FlashPoint.htm
If it's not too late with my order of the RP2 and QMP, I see in your last post, the RP2 can be used with the 2nd Quickstart 40 pin connector - I'd like that configuration for the pins.
Thanks - Looking forward to the order!
Tim
If you later want to make the QMP sandwich, what I was going to do is push the header pins through the second row of holes and then solder it in place from the backside.
But, just so you know, it would be kinda difficult to remove after doing that...
Even thought these parts were designed with this in mind, I haven't actually got around to testing it this way yet...
Expect an order from this direction soon.
Jeff
This time, I decided to keep it simple...
I received the Quick Media Player and memory cards (RP2 and FPM). I found a way to fit the RP2 in the 2nd slot of 40 pins on the Quick Start. The Quick Media Player sits up a bit higher but works fine with the RP2 plugged in. Can the RP2 work with the Quick Media Player or is there a conflict in pins? I had to put a piece of black tape across the bottom of the RP2 as not to let it touch the Quick Start 5 MHz crystal. The audio jack on the Quick Media Player is the only item that somewhat stands the Quick Media Player up a bit higher as it runs into the top of the RP2.
Do you have software to use with the RP2 (and FPM too)? Can it be used with the Quick Media Player?
Thanks,
Tim
But, they do share the 8-bit bus on P0...P7, so you have to make sure your code shares the bus...
RP2 works with Catalina and PropGCC thanks to Ross Higson and David Betz, but I need to post their instructions on how to do that probably...
FPM driver needs work... I hope to have something this weekend.
I think that it can work with Catallina or PropGCC with just modifying existing drivers though...
Tape over the crystal is a very good idea.
I can make it work if the RP2 is at an angle:
I suppose another approach is to put the RP2 under the Quickstart...
Could also use longer pins on the QMP to give a bit more room...
Or, could use those stackable headers and put both RP2 and QMP on the main header...
I used some of my extended male pins and carefully soldered them to the top of the RP2 so that it fit under the QuickStart. If I would have known to have not had you solder the pins on the bottom of the RP2 then it would not have been so tricky. The QMP is still working so that's good. I just need a way to test out the RP2 next and make sure it is working with the soldered connections to the QuickStart.
Let me know when you post this.
BTW: I had to cut your pins off and in the picture you are seeing the reflection of this also.
Here are some pictures:
Tim
Here's my test program for RP2. I think it's a basic driver, but it needs work:
RP2_test6 - Archive [Date 2013.03.02 Time 05.45].zip
Update: I soldered a RP2 in at an angle, like I showed above. Used a bit of scotch tape on both sides (crystal on one end and uSD socket at other end) to make sure there wouldn't be electrical contact...
Ran the code above and it works...
I also thought a bit about what this might be useful for...
One idea I have is to use the RAM as a 2nd buffer and flash as an image source.
I'll work on a demo that copies a full screen image from flash to RAM, draws a moving object on it, then copies RAM to display. This way, you can show dynamic graphics on top of a photo.
Success! Everything seems to be working. I tried the RP2 code and it works fine. However, I don't really know what you can really do with the flash and SRAM. It would be nice if I could increase the 32K HUB memory or 2K COG memory but I don't believe this is possible. I understand the flash and SRAM to be basically faster micro SD ram for "storing" BMPs right? So SRAM and flash is basically like a hard drive and not really program memory ram. I would like to do more with this but my specific ideas are not coming to me at the moment.
Great job with the hardware and software. You really have some cool products that I'm always excited about!
Tim
That should allow for very fast screen updates, for quickly switching between menus, for example.
Also, I'd like to use it for 24-bit color fonts, or maybe even regular fonts to save HUB space.
BTW: In case you wonder, there is a 6-pin header on the edge of the display that brings out
4 spare ADC inputs to the touchscreen controller chip. These could be used for things like
measuring battery voltage, etc. One interesting use might be for an analog joystick, like the one
Parallax sells. I'm going to try using it to measure the output of a Pulse/Ox sensor...
I had the same problem trying to use WavPlayer2f. I got it to work by changing:
Header[44] to Header[58]
i:=sd.pread(@Header, 44) to i:=sd.pread(@Header, 58)
ChunkSize:=Header[43]<<24+Header[42]<<16+Header[41]<<8+Header[40]
to
ChunkSize:=Header[58]<<24+Header[57]<<16+Header[56]<<8+Header[55]
I use Smart Audio Converter, and it places the number of samples after the "data" in the header.
One thing to be aware of is that a .wav file is really a container for a large number of different types of music. But, the player only plays one type...
So, you have to make sure that the program creating the .wav file is making it with 1 or 2 channels of uncompressed PCM.
If you and pogertt can tell me what software you are using to create your .wav files, maybe I can help pick the right settings...
I've been using Nero WaveEditor recently, but I think there are many other choices...
I should have included "test7.wav" in that zip file, but I think it got left off..
Please try this file and see if it plays:
Test7Wav.zip
If you guys can email me the .wav files that don't work, I'll take a look and see if I can see what's going on...
I've learnt that you can add many tracks to the wavplayer and it plays them one after another in sequence.
Great product you have there Rayman, I'd recommend it to anyone!
That idea of yours to incorporate the joystick sounds a good idea it could for instance be used as a volume and track control for the wavplayer.
Talking of volume I hope you don't mind me pointing out that in the wavplayer.spin program you have the volume setting at max and this may cause discomfort to those not prepared especially when using in ear headphones! I'd recommend a change in the file on your website to something a bit more comfortable say 5000?
I am using Smart Audio Converter
http://www.smartaudioconverter.com/
It seems to format the header a bit different than the sample wav files you provided.
Header.txt
The attachment is how my converter formats the headers.
I can make a quick change that will fix this...
skylight, your audacity files are working? Or not?
One question, When using the quickstart as portable I use a 9v battery on the two pin header of the quickstart pins 39 and 40 which I believe is Vin and ground, would there be any harm done to the touchscreen using 9v on Vin or does it take power from the regulator?
The backlight is powered by VIN, which is normally 5V from USB.
If you connect a 9V battery, then that goes to 9V and the backlight current would go up...
With 5V, the current is (5-3.2)/100= 18 mA, just under the nominal 20 mA.
At 9V, the current would be (9-3.2)/100= 58 mA, which would probably break it!
That said, if you are very brave, you can try using PWM on P21 to reduce the current.
Or, you could replace the four 100 Ohm resistors with larger resistance versions...
It would be much safer to use 4X AAA batteries, if that is an option...
WavPlayer2g - Archive [Date 2013.03.04 Time 20.55].zip
http://www.rayslogic.com/Propeller/Products/QMP/QMP.htm
I hope to provide more examples soon to make it easier for you. Also, I hope to update the display driver soon to add features such
as custom fonts...
If you are interested I'll send you the adapted code?
What is needed now is a board incorporating an AA battery holder and switch that can bolt onto the bottom of the quickstart board to power the QMP for portability.
I noticed from the schematics that the BL has circuitry composing of a transistor circuit presumably to dim the BL? where does the BL terminal come out to on the QMP pcb? and perhaps this could also be incorporated on the above battery holder pcb as a pot?
Controlling the touchscreen is a bit over my head at the moment, not even sure that the touchscreen can be utilised at the same time as the wav player is playing, another cog perhaps?
But a way of incorporating the touchscreen at the same time as the wav player would be a neat addition.
It looks like the paint program is the only example that uses the screen and I've tried to work out how to grab just the touchscreen part but can't see a way to do so.
Question is, is it viable to do so or would it slow or freeze the wav player from working due to pin conflict?
I noticed the spi spin driver mentions turning all pins to input.
Any help is appreciated in steering me to accomplishing the above.
Rayman do you have "clean" code that just reads the touchscreen like a driver or object of sorts that could be adapted and incorporated in end users programs? Is the touchscreen possible with just spin or does it require Pasm?
Meanwhile, the touchscreen chip is the tsc2003, the same one used in our 3.5" and 4.3" solutions.
For example, the PSB paint program uses graphical buttons. We can do something like that here.
So, you could at those demo codes for ideas maybe...
The Prop can play wav files and do other things at the same time, but you do want to devote a cog for playback.
The backlight is controlled by Propeller pin P21. We can do PWM to control the brightness, but haven't shown that yet.
Only thing to be careful with is that the backlight is powered by the VIN power. It is fine with the USB 5.0 V and should be fine with 4 AAA or AA providing power. But, anything more than 6 VDC could damage the display.
BTW: I'm currently working on a new driver for the QMP. The existing driver is a very quick port from my old PSM device.
This new driver is a clone of the the VGA Graphics Shield and may be better in many cases. In particular, it allows use of user defined fonts generated by the RaysFontEditor program and also more graphics primitives.
Also, having the same driver structure for these different displays should make software development easier for me.
Here's the current state of it (almost done):
QMP_GfxDemo - Archive [Date 2013.03.07 Time 20.26].zip
I'm going to have a look at the PSB paint program to get ideas, regarding the touchscreen.
looking forward to the new driver
This driver works the same way as VGA Graphics Shield, make coding for both very simple...
It also makes it easy to add custom fonts.
But, it doesn't support the ROM font, so I'll keep the old driver around just in case...
Here's the new demo:
QMP_GfxDemo - Archive [Date 2013.03.13 Time 21.38].zip
On another front, I think I've got the wav player able to handle more types of wav files now...
I'll post a new QMP version soon...
Here's an HD YouTube video of the demo:
[video=youtube_share;oiC8aFp6nWk]