Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


DrWizard last won the day on April 4 2014

DrWizard had the most liked content!

About DrWizard

  • Rank

Contact Methods

  • Website URL
  1. Has anyone hooked up some ws2811 or ws2812 pixels to a connected launchpad (with a 120MHz TMC1294x processor) The closest example I could find for this platform was bit-banging in assembly code for the MSP430 processor. The most common technique on other platforms (Arduino, Pi) is "Fast SPI" where they change the clock rate on the SPI bus to match that of the pixels and send the data out that way. That's kinda pushing the limits of my skills/knowledge though, without an example to look at.
  2. I'm one of the guilty parties here. I posted a message offering a free display to someone who would collaborate with me to port a library/driver from another platform. Igor is the one who took me up on the offer. In our case, I don't believe a fee would be appropriate because: 1) We are sharing our work with the community. The new library is open source and benefits everyone who may want to use that display. It is not a commercial or "for-profit" venture. 2) I am just a retired hobbyist (although I used to be a professional programmer). The overall value of the hardware I offered was only $30. If it wasn't gonna be open to the community and/or there was a commercial interest and/or a lot more money involved, then some sort of fee would probably be appropriate. Perhaps it might be best for now to take it on a case-by-case basis and privately and politely, ask for a donation when you feel it is justified.
  3. I see this group buy is closed. But if you decide to do another, I am interested for sure!
  4. The assembly, as I mentioned, is just a bunch of OUTs. Apparently from the memory buffer to the port, if I am reading it correctly. Yup! precisely. Just a basic fade from Page A to Page B. I'm thinking kinda like a PWM, where first it displays page A for 9 milliseconds and page B for 1, then 8 and 2, 7 and 3, 6 and 4... etc. until page B is being shown 100% of the time. Once the fade is complete, I can redraw the [non-displayed] page A in memory. It keeps displaying the page B until I invoke a command to fade it back to the page A. Displays that until I tell it to go back to page B. Etc. Fade speed should be configurable. Primarily, I want to do cross-fading of the digits for the clock, like this: https://www.youtube.com/watch?v=O-VBEMgtUMw but also, when switching between pages of other information, so it's not so jarring on the eyes and brain. I've already implemented the crossfade on an Arduino clock with a LED 7-segment numeric display and it looks really slick! In fact, I wrote a nifty little algorithm so instead of being like a straight pwm, it more evenly distributes the 2 pages. Its makes a visible difference for slow refresh rates but it needs some optimizing for a microcontroller though, the math eats too many clock cycles on an Arduino (and thus causing a slow refresh rate. Catch-22). The TM4C1294 has floating point support built into hardware, so it should run much better on it, I haven't tried it there yet. static bool crossFade(float pct, uint16_t tick) { bool state = false; if (pct <= 0) { state = false; } else if (pct >= 1) { state = true; } else { float howManyTrue = maxTicks * pct; // How many of the ticks should be true float spacing = (float)maxTicks / howManyTrue; // Percentage of the total each tick is float steps = (float)tick / (float)howManyTrue; // Approx amount of ticks for each true float x1 = (float)tick / spacing; float x2 = x1 - (uint8_t)x1; float dv = 1 / spacing; if (x2 < dv) { state = true; // display 2nd item } else { state = false; // display 1st item } } return state; } So anyway, download the RGB-matrix library if you haven't already and look at it, and the issues, and if you are still interested in tackling it, send me a private message and we will take this conversation offline for now. That goes for anyone else interested as well. And of course, we will post the updated library here and share it for anyone who wants to use one of these panels in the future.
  5. Well, not exactly free, I need your help. But I am willing to buy a 16X32 LED matrix from SparkFun https://www.sparkfun.com/products/12583 or AdaFruit https://www.adafruit.com/products/420 [shipping included] for someone who can help me adapt the Arduino library to my Tiva C Connected Launchpad with the 120 MHz TM4C1294NCPDT processor, and make a couple of enhancements. It's already been adapted to the BeagleBone, Teensy, and Raspberry Pi. I'm not a noob, but I'm not advanced either, somewhere in between. I have already studied the library and identified the issues. 1) It writes directly to the ports. I'm not sure if I can get away with simply changing the names. Lines 45-79. 2) It is pretty timing critical, and the Launchpad is sooooo much faster than the Arduino. On an Arduino it eats most of the clock cycles just to keep a decent refresh rate. I want to keep the refresh rate about the same, maybe a little faster, and keep most of the Tiva processor cycles free for other things. 3) It uses a timer, and I don't understand them quite well enough to adapt it. Lines 179-184. 4) It uses a tiny amount of inline assembler code for the AVR processor in a speed-critical section. Looks really simple, just some OUTs. Lines 534-543. Enhancements I wanna make: 1) Multiple panels can be daisy-chained. I want to use just 2 of the 32x32 (Total display 64X32, 14" x 7"). Just need to clock out more bits serially before toggling the latch pin. I could probably figure this one out myself. With the Tiva's speed and memory, someone else might conceivably want to daisy-chain more than 2. 2) It already supports double-buffering, but I would like to have 2 (or more) sets of buffers (pages) with different things drawn on them, and be able to switch between them. Yes, I realize this will use a lot of memory. This will probably require changes to the Adafruit_GFX library. Ultimately, I would like a fade function between 2 pages instead of just a hard switch. I suspect a good coder could knock this out fairly quickly. Any takers? You can find the library on GitHub here: https://github.com/adafruit/RGB-matrix-Panel FYI, ultimately this will end up on my Astrolabe/Clock/Calendar project.
  6. Is there a way to change the font of the Serial Monitor window in Energia (version 1010E0012)? I want to change it to a fixed size font (like courier or deja vu) so columns line up. Looked in preferences.txt, but couldn't find it there. (not for the Serial Monitor anyway, just the code editor.)
  7. That message shows how to change the EDITOR font, within the preferences.txt file. Already figured that one out. I am hoping to change the font for the SERIAL MONITOR, and I don't see a line in preferences.txt for it. Thanks though.
  8. For those of you who may not have already seen it, there is a graphic floating around that shows all the pin names for the connected launchpad -- from the FRONT (component side). Several people were all kind enough to share it with me on the 43oh forums. I made a new version that shows the names from the back side, in case you want to plug jumpers into the female connectors underneath. It's basically a mirror image with the text in the correct direction.
  9. Pin Map - for the BACK side... http://drwiz.net/images/Tiva_C_Connected_Launchpad_TM4C1294NCPDT_Energia_Pin_Names_Back.jpg I remade the pin map showing the pin names for the back (basically a mirror image). Handy for plugging into the rear female connectors with pins.
  10. Is there a way to change the font of the Serial Monitor in Energia (version 1010E0012)? I want to change it to a fixed size font so columns line up. Looked in preferences.txt, but couldn't find it there. (not for the Serial Monitor anyway, just the code editor.)
  11. The LCD displays from laptops are do not have a standard VGA or DVI type interface, but rather require some external circuitry to vertically and horizontally scan the screen and clock in the pixels. They do not even include a frame buffer. Precisely how this is done though, I do not understand. As I mentioned above, the datasheets are full of acronyms and abbreviations. I suspect however, that someone must make some intermediate interface chips that provide a frame buffer and a simple way to send data to it. That's how the smaller, lower res ones that come on the cheap shields and booster packs work. Example: The Ilitex ili9341 controllers used on the 2.2" Color LCD Booster Pack which drives a 240 X 320 LCD display using a 4-wire SPI interface. Does anyone know of a similar controller for bigger, higher res displays?
  12. I was wondering if it would be possible and feasible to drive a big LCD display using a Tiva C board. Not tooooo big or hi-res, I was thinking of reusing one from an ancient laptop. Say 13" with a resolution of 1024 X 768. Has anyone done this? I have several such old displays just lying around. I found datasheets for each of them, but they are so full of acronyms and abbreviations that it was all greek to me. So I'm not too clear on how the controller interfaces work or how much work it is to drive one. I'm not wanting to do any fancy graphics or fast animation. Mainly just display a fair bit of text, in fonts large enough to see from a distance.
  13. Since this is for a celestial clock, most of the calculations need to be performed only once per day, and I can stagger different ones at different times, and even break them into steps to be performed at separate times. I had to do that with the poor lil' old Arduino, and even then my clock would freeze up for a few seconds when performing some of them. I'm sure single precision floating point shall be enough for my needs. I doubt I can adapt to fixed point for these calculations but I may tinker with that. I'm definitely gonna try a few things and perform some benchmarks and speed comparisons. I'm a stickler for efficiency. I'll report back with my findings!
  14. Hello! I'm an Arduino old timer, been working with it for years, but I am new to this platform. I bought one of the new 'Connected Launchpads' with the ARM Cortex M4 (TM4C1294NCPDTI) microcontroller. Part of what tempted me to try this one is that it is supposed to have floating point support in the processor hardware. (Correct?) I have been working on a celestial clock that calculates sunrise, sunset, moonrise, set, phase, precise angles in the skies, tides, and various other astrological events, and displays it on a small LCD. It uses a cheap GPS module for the user's location and accurate time. And it uses a MP3 module to announce things. This was wayyyyyy to much floating point math and string manipulation for the 16MHz 8-bit Arduino to perform in any timely manner. I've been skimming thru the documentation and these forums and have seen little mention of the floating point support. Do the Energia and Code Composer compilers handle and optimize for this automatically? Or will I have to jump thru a hoop or two? Can someone please aim me in the direction of some more detailed documentation or examples? P.S. Yes, I will be sharing this project and it's code when I get a little further along with it!
  15. Success! Thanks guys! I was using Energia ver 11, which I downloaded about 3 weeks ago when I actually ORDERED my board. Went and got v12, updated the pin names, and viola! Update: I got Code Composer working, sort of. I started over again from scratch with the install, configuration, and setup. I must have flubbed something on the first go round. The "Blinky" project made the LED blink! But with the "Project 0" the buttons don't seem to be working and I get no output to the terminal. I'm still troubleshooting... (Note to TI: install and initial setup (having to import a bunch of projects) is a bit involved. Since the installer asks which board at the beginning, why not have the installer import the proper projects, including the examples that already come with it anyway) I'm looking forward to working with this board. My Arduino projects have been getting bigger and more complex, and I'm starting to overwhelm it. I'm working on a clock which also calculates sunrise, sunset, moonrise/set/phase, tides and a bunch of other astro stuff. Way too much floating point math for the regular Arduino. I moved up to an Uno32 and it's been handling it pretty well, but this TI board is even more powerful and costs less!
  • Create New...