Yes, I know i’ve neglected my blog for FAR too long again.. well no more. I’ve made a schedule and I will stick to it. new posts on many of the projects I’ve been working on to come. every week there will be at LEAST one.
first coming up in a day or so will be about the FPGA CPU design i’m playing with. this serves no REAL purpose other than to say look what *I* figured out. and has already elicited assistance from a fellow blogger. Alex from http://langster1980.blogspot.ca was a great help in sorting out my Component embedding whoas.
Then there’s the Coleco Video output fix, 2 AVR projects and a Microchip as well as countless 3D printing updates. so stay tuned!
So, I found this neet litle mini NES case for a Raspberry Pi to 3D print on thingiverse by user DaftMike and decided that I needed to print one. the print went well and there was no problems getting it assembled. But even before I opened his website (linked in the thingiverse) I wanted to make my own button control board and have the PI be able to control the LED. So I started this project..
The 3d printed board in the project is this by user Greystone and has been useful many times. I always intended to re-work the model to include a place to seat the AVR Dragon, but never got around to it.
Anyways back on topic. in the image you see the AVR Dragon connected to the Atmega328p (no arduino code here) along with a Power supply via an LM7508. There is also a tiny little interface PCB I made to connect the AVRDragon to the breadboard and apparently I was to lazy to dig out my ribbon cable so made my own. on the far side the small red logic level board from Sparkfun which will be connected between the ATmega328p and the Raspberry Pi to protect the GPIO. More on this project as things come along and there will be a GIT for all code and schematics.
Whats still missing:
- LED for display
- Buttons (Power/Reset)
- Connection to GPIO for Serial Comm and Power
As always I welcome any and all feedback/comments.
TL/DR – see bottom
So I spent several hours trying to figure out why the display acted strange when using the Arduino Libraries. and Ultimately determined it was the ShiftOut function. I will be replacing its use with the pure AVR version. Fully functional and clearly documented.
PIC implementation will be coming at a future date.
I plan to build a simple program (*NIX & win32) to make creating fonts easier. and for anyone who did not read the previous posts, see below the media.
Please feel free to provide feedback.
(also thank you to robert for the kicad model)
8×8 led matrix schematic
I was in a conversation with my uncle David about a usable font engine for led displays. And i thought something easily expandable. I took some inspiration from my old C64 ASM days and made a simple enough vertical raster engine. this is the demonstration code, not the full expandable class which I will post later once I sort out the issues with the Arduino ShiftOut. I’m positive the code could use a TON of optimisation and improvement which will all occur before I call the final class complete, who am I kidding. anyone who knows me knows I’ll never be done with it. there will always be things to improve and ways to make it better. I wouldnt be shocked at all if this ends up as a pure ASM implementation at some point.
So, a bit of work here and there, and I determined I needed to sort some minor efficiency issues which were causing a massive flicker. I changed to a custom NON-blocking delay which resolved the issue, however It’s still not rendering quite right. Debugging tells me that the lookup seem to be right and appear to be returning the proper value for the field, but when rendering it gets garbled somehow. A little more debugging and I think it will be good for release.
So for one of my recent projects I was asked by a fellow hardware developer to make a “raster” font engine for an 8×8 LED display this is only setup for a single colour display and is dependent on a pair of shift registers. this initial upload of Version 1.0.1 compiles and should work, but I’m still waiting on the time to wire it up and do some actual testing.
The code is designed to work with AVR or Arduino and is thoroughly documented, but there will be updates as I test it out and sort out issues. I’ll also be adding a schematic and a font builder to make life a lot easier.
Future plans for this code is to allow multiple fonts and a LOT of optimization. As always feedback, suggestions and such are welcome.
Update: So some massive changes are needed when going from theory to practice on this code. I removed it from this post while I update and correct some of the bigger issues. I will be posting a NEW post with the updated includes/Library as well as AVR & Arduino based examples, pictures, schematics, etc. Please keep watching