So I ended up buying 30 of these things is there an easy way to chain them together? This is another post I also have that Ian helped me with viewtopic.php?f=4&t=4450&p=44598#p44598
Kinda want to make something neat with a bunch of these displays, but really not sure what... in a week or so I'll have a total of 5 of those 16 char displays. --Aaron
Thank you for that bit of detail.... It's going to take me a while to digest this.. I think more so I need to learn the syntax of the BusPirate itself and the weird setup of these devices..
Thank you very much!
Is there any device's I could poke around with on the buspirate to learn about the different modes, i2c/spi... and others?
It seems like I'm trying to shoot the side of a barn with a shot gun blind folded and not really knowing which direction to point at this time...
... I *Think I know what the mode I need to setup in the bus Pirate Going though the setup modes... Mode 5 1, 30Khz Clock polarity setup: It lists Idle Low Default and Idle High, peeking at the data sheet it looks like when STB/CS is low data gets transmitted when CS is high nothing happens, so this tells me that it idle's when its high.... is this a good assumption on my part... Input Sample Phase = 1 Default 2 /CS *Default Select output type 2 *default
Looking at the code the guy provided that I posted above I would guess that you type something like this on the SPI> Line
SPI> 0x02,0x40,0xc0,0x8f However no dice. Right now I don't see any lit segments... Am I just doing something completely stupid here?
//set to writing mode, auto incrament address after data write digitalWrite(slaveSelectPin,LOW); SPI.transfer(0x40); digitalWrite(slaveSelectPin,HIGH);
//first clear 8 bytes of the display RAM digitalWrite(slaveSelectPin,LOW); SPI.transfer(0xC0); for(int i=0; i<8; i++){ SPI.transfer(0x00); } digitalWrite(slaveSelectPin,HIGH);
//display on, max brightness digitalWrite(slaveSelectPin,LOW); SPI.transfer(0x8F); digitalWrite(slaveSelectPin,HIGH);
Is there any way I can use the logic sniffer software to tell me what actual data is getting sent over the two data/clock pins ? or even the bus pirate?
I can see if it was I2c or SPI from within the logic sniffer software..
The code is set to loop every 100ms, I also did all the captures with the same sample rate.. I hope its enough data to work with. The line "module.setDisplayToString(name, 0b0000000000000000);" sets the decimal point on each of the 16 char's I believe its 8 bits per lit segment so one example I have captured 16 eight's and one of those bits on each segment should be a zero because the decimal point is not lit.
1) 16_1111222233334444.ols 2) 16_1111222233334444.ols 3) 16_8888888888888888.ols 4) 16_just_a_one_far_left_digit.ols <--- The furthest left digit lit with a 1, all 15 other digits are left unlit. 5) 16_underscores.ols <-- All underscores listed on the display, looking at the fonts header file in the source it lists the following map of the pixels.
So the underscore should be 16 repeats of the 3'rd bit. The output should be a repeating pattern of "0b00001000, // (95) _"
I was supplied with some code that uses his current library that uses all 16 7 segment displays and counts from 1 - 9999999999999999 then rolls back over.
I would like to write a new library using this as a reference with a few key differences. Able to use all 16 digits easy without a string Ability to light only individual bits off the display such as a "8 bit * 16" string of binary data.
Why? There really isnt any display available that has this many digits thats inexpensive... or exists.
Below is the code that I was given that uses all digits and counts using some trickery of sorts, I'm not a C++ expert by any means.
TM1640 module(1,0,1,0); // define a module on data pin 3, clock pin 2
const long MAX = 100000000; // upper limit on displaying 8 digits char buffer[16 + 1]; // our display buffer long hi; // counter for left-most 8 digits; higher part of counter long lo; // counter for right-most 8 digits; lower part of counter
void setup() { module.setupDisplay(true, 1); lo = MAX - 1000; // interesting start value hi = MAX - 1; // another interesting start value }
void loop() { lo += 123456; // increment lower part of the counter
if (lo == MAX) { // have we overflowed the lower part of the counter? lo = 0; // reset lower to zero ++hi; // increment high part
if (hi == MAX) { // have we overflowed the higher part of the counter? lo = 0; hi = 0; } }
if (hi == 0) { // if nothing in high part, left pad display with eight spaces sprintf(buffer, " %8ld", lo); } else { sprintf(buffer, "%8ld%08ld", hi, lo); }
module.setDisplayToString(buffer); }
Again this is not code I wrote, it does work though.
Once I enter HiZ mode from initial connection to the BusPirate I select mode 7 I select speed 5Khz -- not sure if this is correct I select /CS *Default I select 2 output type "normal"
I then paste in /-_ 0xc0 0xff _/- hit enter and notta.
I'm guessing the strobepin might mean clock pulse??... It kinda looks that way to me.
So after I get the mode's all set I have tried to paste /-_ 0xc0 0x9 _/- /-_ 0xc0 0x09 _/- /-_ 0xc0 0xff _/-
seeing the examples you posted on how to type in the syntax is very helpful, since I have bought an arguino or 3 recently going from working source code to trying to make it work on the bus pirate is also very helpful how the BP operates.
However... I do not see any lit digits on the screen.
Any more ideas?
I'm all ears.
*I also have a logic sniffer I could try this when I get home from work have some sample code on the arduino that outputs all zero's or something on the first 4 digits capture clock line and data line and post the output if that gives you some insight on to what the arduino is physically outputting.... I'm pretty confident that I have all the tools needed to capture whats making the display output data and with that you could probably figure out the issue in moments... perhaps?
Looking at the source code, it looks like what's technically happening is send 0x44, clock low, send 0xC0, send some data, clock high or did I read that wrong?
Then looking at the photo you posted above and the phone stamped on the back of this display looks like on every data input the clock has to be high, and in the example above it looks like the clock is high then low data is fed into it then clock is high then float to signify the end of the transmission....
Hi everyone I have this 16 character display from dealextreme... I love this place. I have this http://tronixstuff.wordpress.com/2012/0 ... y-modules/ and was trying to poke around with it on the bus pirate and would like to get it to do something.
I already have it working with the supplied source code off that page although...the source code isnt all that polished up.. More on that later if anyone has one of these
I want to connect this to my Buspirate v3b and the way its connected now clk goes to clk, gnd to gnd, +5 to +5 and the data in pin on the device connects to Moso and trying i2c mode and spi mode in various configs I cant get any digits to do anything.. I know it's something really minor but was wondering if someone who is a Buspirate expert to give me some pointers.
I have some eBay Receiver modules for a 8 channel transmitter made by FrSky two of them are D8R-II Plus two of them are D8RSP
Each receiver is an 8 Channel receiver although the D8RSP is the better of the two with the 8th channel being PPM output rather then a normal servo out channel, this is very helpful as you can run 1 wire to your arduino vs 8 to get all the channel data into the micro controller such as a quad copter or robotics for whatever reason.
Boredom got the best of me and I took both of these apart and they are identical in design.
My thinking is , can I dump the code off the better device and put it on the cheaper one so I don't have to buy the better boards?
I'm not very familier with the cortex cpu's although I have used a bus pirate to dump and reprogram code on an atmega chip... is it the same kind of wiring with these? I don't know where to start..
I have a DSO quad I have thats barely used that I want to get rid of. I have some of the MCX - BNC adapters for normal Oscope probes and two included probes.
I'm not sure what its worth although they are 200 new. -- Edit* 166 on ebay!
Feel free to send me a private message and I'll respond.
--- if this topic isn't something that should be here please feel free to send me a private message and remove my post. Thanks, --Aaron