-
The NGT30 (And what color should it be?)
02/13/2018 at 03:48 • 5 commentsI finally decided how I want to make the NGT30. After some first experiences with reflow soldering SMD, I have learned my limits.
Unfortunately, using FPGAs is unrealistic. It will take too long to come up with the VHDL, the chips are too expensive, and I will end up breaking half my boards due to soldering issues.
Fortunately, I have the propeller chip in SMD form, which I can solder!
I already have made a prototype board design in KiCad:
I know I can both build and program this.
The new design has numerous improvements over the NGT20. Now, RX/TX pins can be selected between a few different Arduino pins, thus increasing compatibility. There is now a reset button for the arduino too, to make it easier to reach the Arduino reset. I also added a PS/2 keyboard port, so now I don't have to keep cutting up keyboard cables :P. The board is also smaller and cheaper as a bonus.
I will be ordering this board *soon*. I plan to add I2C support to speed up the connection, but I have reason to believe that the MCUs are the bottleneck for the NGT20, so we will see how much that helps. Alternatively, the arduino would be able to use the hardware serial for the NGT20, parhaps allowing 1 Mbit/s connection to the NGT30.
We will see how this goes in maybe a month XD
Oh yea, what color should the board be?
-
The NGT30 - What will it be?
08/15/2017 at 00:54 • 4 commentsI would like to make an NGT30. A few features I plan to add are follows:
- Faster serial interface
- Mostly SMD components
- on-board arduino reset button for mega and similar boards
- More commands
- A way to add mods to firmware/GPU if I use an FPGA
I may even remove the Parallax Propeller and replace it with an FPGA. FPGA, not CPLD, because I would do some really killer stuff with it that may require an FPGA.
I would like to make it backwards-compatible with my NGT20, so the serial interface must consider this. I am mostly thinking about SPI, maybe I2C. I would probably have some command to enable the new serial interface. I would probably forget backwards compatibility if I used an FPGA however. That would solve every problem :P
I want to use SMD so that the board size is smaller, the BOM is less, and the parts cost less for the same quality. This way the overall production price is reduced.
I want to add the arduino reset button simply because it is really hard to reset my arduino mega with so many shields.
Finally, I would like any suggestions. If you're considering getting some kind of video shield or nice display output (or already have one), what would make things better?
-
Parallel Interface - with an upgrade
07/04/2017 at 14:47 • 0 commentsThe propeller is a great chip, it is simple once you get used to it and works very well for simple applications, but its video output could be better:
- Only 4 colors per area (exactly like NES graphics), only 6 bit color selections
- VGA resolution capped at NTSC resolution because of memory limitations
- Hard to get parallel interface
The solution? An FPGA.
This isn't the first time I have tried to make graphics devices using FPGAs and a parallel interface. Earlier on my #Z80 overpowered compute (possibly before I discovered HaD) I was trying to make... well a Z80 computer, but I overlooked some things and learned some hard lessons. So I had to literally start over. Well anyways I made a semi-nice graphics card designed to interface with the Z80 that also has a VGA connector and 8-bit DAC. It features a Mercury Board that stacks into a makeshift DIP64 socket.
Here is this old board:
I will improve it next time, promise!
And some weird test program I was trying to write for it I found:
Here is the bit configuration of the DAC:
0 red 0
1 red 1
2 grn 0
3 grn 1
4 blu 0
5 blu 1
6 brightness 0
7 brightness 1
This will be a better design than before.
-
Parallel interface
06/28/2017 at 03:23 • 0 commentsRight now, the Open Source Graphics Card project supports only uart-capable devices. What about easy parallel interface for processors? Wouldn't it be nice to connect it to a Z80, 6502, or 8080? I think that will happen. The only thing I need is a circuit. Here is my current idea:
My idea for a name is 'NGP10', as it is the first version and the middle P for parallel.
I still am yet to get ESP support on my NGT20 design. I have an FTDI cable on the way for my ESP, don't worry. Keep you posted!
-
Yippie! Intel Curie (Semi) compatibility
06/23/2017 at 04:47 • 0 commentsUsing a kinda lame hack I got it working. At first I used a hardware serial and put wires from pin 0 to pin 9 and pin 1 to pin 6. This unfortunately wastes 2 pins, but works as a shield. Next I tried using 4 wires to connect to the pins on the side, which also works and doesn't waste a pin, but then its not an arduino shield. Here is a pic of the first option:
Sorry for bad pic - my phone has a terrible camera. Well I basically used some macros in the library to allow only AVRs and the Arduino DUE to use pins 6 and 9 for a softwareserial, and the others use Serial1. If they don't have Serial1... Well that's what I will have to figure out also.
This probably works great for ESPs, but I can't test it on them! My ESP can't be programmed without a special FTDI cable that I don't have! Great win though, very encouraging. Oh yea, here is the first set of beefy macros I ever made, the ones for the NMT_GFX arduino library:
-
"Is it IoT Compatible?" - Someone
06/22/2017 at 05:05 • 0 commentsWell.... I never thought about that! It should be, after all it is 3.3v compatible, and what IoT MCU hasn't a UART? Of course the NGT20 is compatible! But what about the library? That's... Different. The Library for the NGT20 was built for and tested on AVR, however many IoT platforms use non-AVR MCUs, like the ESP8266 and Intel Curie. It is crucial for the library to have compatibility with these other MCUs so that nobody runs into trouble if they buy an NGT20 and realize there are software problems. I actually finally sold an NGT20 today (Yipee!), actually the only 2 I had in stock, and so now that I am selling them it is ever more important. This possible compatibility issue was brought to my attention when I was asked about NGT20/ESP compatibility.
I put in an order from @SparkFun Electronics that arrived today including an ESP8266 and Arduino 101, which is Intel Curie based. I will be developing my library with my new test hardware (I never used an ESP or Intel Curie before!). I know that those ESPs are a learning curve, and can be SUPER difficult to use.
So far I cannot program my ESP Thing because I got one that needs an EXTERNAL FTDI Serial bridge (Dang it!), and my first test on my Intel Curie is unsuccessful. Will keep things posted.
-
Non-AVR library compatibility?
06/18/2017 at 20:34 • 0 commentsThe NGT20 works for almost any device if you have the right software. The library, however, was not originally designed to work on non-AVR MCUs. This is one thing in the design process back in spring I never thought about because I don't use the Arduino IDE for anything else. Well, recently I was asked a question regarding the library's support of ESPs. I don't actually own an ESP, so I borrowed one from my friend. The ESP itself has so many problems and keeps rebooting, I can't even test my library! I thought I might as well get my own ESP, but what about other MCUs that are programmed from the Arduino IDE, but aren't AVRs? To begin testing that I ordered two dev boards from @SparkFun Electronics, their ESP8266 Thing and an Arduino 101. Since I really need the library compatible sooner rather than later I got 2 day shipping, so I should hopefully have an updated library by the end of the week.
-
Integration into my computer building obsession
04/09/2017 at 05:44 • 1 commentIf you've read my profile much you will see that I really, really like to make computers. For no apparent reason. I have done (or at least attempted) in many ways, like building a z80 computer, or trying to make CPUs out of CMOS ICs, or using an arduino yun + a screen + a keyboard. Well, a wile back I made this really cool system with an arduino. It even did some multitasking. Two things really sucked about it: its display output and the user input. For user input it had 2 buttons and a potentiometer. It used a 2x16 character LCD screen. It was really cool, but I found the code recently and decided "Why not add a keyboard and an NGT20?" I needed some videos showing my NGT20 anyways, so I have been porting most of it to the new design. I added a GUI and a nicer shell program. No file system yet, but the beginnings of the OS and all the programs are emerging. Here is the video.
This is how far I've gotten. I want to make a Terraria like game on the arduino using my NGT20. It probably wouldn't be as complex as Terarria itself, but similar idea. So cool because I always want to play Terraria but I never want to actually pay for the game.
-
Arduino library fixes, finished datasheet, and TINDIE!
04/05/2017 at 00:30 • 0 commentsI've been wanting to post this project on Tindie for a while so I've been working hard on the documentation and Arduino library. Now that that stuff's done, I can focus on selling. I'm working on the description and more pictures and such. So yea, tomorrow you'll be able to order one for yourself! Im really excited because I always want to grow my money, I want to be an entrepreneur, and I never want to spend anything on a project. Maybe this will be the avanue to extra cash for everything I love to make. Anyways, I'll be posting a link to my Tindie store soon. In the meantime, I have these much better photos that are fit for an online store:
Hope this works!
-
VGA and NyanCat
04/02/2017 at 21:15 • 0 commentsFinally messed around with VGA output. Had some color issues at first but I find that I like the VGA color code system better. Although it's only 6-bit color, it is easy to make a color because the bits all align in a way that makes sense. blue is lower 2 bits, then 2 bits for green, then 2 for red. Easy.
Got an OK picture of the new NGT20 board. Too bad, my phone camera isn't great.
Its stacked on an arduino.
I worked on displaying NyanCat on the monitor. Added a keyboard to the arduino and now he moves! Came out good:
The NyanCat is a sprite uploaded to the shield from the arduino, then easily displayed many times very quickly.
Also, I got an arduino library underway. I plan on making it so the library can generate a sprite on demand, while the arduino is running. Would make coding SO much easier. The NyanCat in a c hex array is not nice for a programmer.
Will add the arduino library's GitHub to the project.