Ittiara, a 65C02 handheld
-
DerTrueForce
- Posts: 483
- Joined: 04 Jun 2016
- Location: Australia
Ittiara, a 65C02 handheld
Hi all.
I've had a project simmering away off and on, and with a bit of encouragement from BigEd, I've finally made a thread about it.
So, to that end, may I present Ittiara, my work-in-progress handheld.
I started out wanting to build a sort of electronic storage typewriter, as I was having distraction issues with word processors on computers.
I ended up just building a bridge and getting over it. Sometime later, I saw Ben Heck's Pocket BASIC computer video. That inspired me to make something sort of similar using the 6502. Ittiara is the development of that idea.
Basically, I'm going for a 65C02-based handheld computer with a bit of a large environment on it for fooling around, and enough GPIO to do things.
I'm not opposed to using microcontrollers as peripherals, as long as it doesn't get ridiculous.
Planned features/goals:
- Self-contained, portable system. No extra equipment needed to use it. Display, keyboard and battery built in.
- Battery-powered. Preferably a LiFePO4(safer than a LiPo), and preferably regulated with a switching regulator.
- Some sort of UI, possibly menu-driven.
- Clock speed of 8MHz or higher. The current EEPROM I'm using will limit me to 4MHz, by the specs, but there are reports of overclocking. If I get a 7ns RAM and battery-back it, I could run it up to 13MHz, by the specs, but I could also use an FeRAM, if I can find a 5V parallel one.
- Graphics capability.
- Sound capability, preferably a SID or similar. My current leaning is a SIDcog running in a Propeller, as I can adapt that with a little extra hardware to sit on a high-speed bus.
- SPI interface using 65SPI and SPI-10. Two each of 3V3 and 5V ports. mainly for storage.
- Assembler, Text editor, HLL, Monitor. I might end up integrating the assembler into the monitor. Currently planning to use VTL-02 as the HLL(due to its small size), although having just heard of Action!, I might try implementing/using that. I could also use EhBASIC or FORTH.
- SPI and serial loaders for HLL, text editor, and binaries.
"Stretch goals":
- Self-hosting, with a means to write to it's own ROM in-place.
- Hot-swappable SPI-10 ports.
The current prototype is constructed with wires soldered to the underside of a pad-per-hole breadboard. Bit of a mess under there.
I'm using sockets for everything I think I might re-use later, including the reset circuit and 7805 regulator. Basically, all the silicon on the board is in a socket.
I also have the display and keyboard. The display is a SparkFun Serial Graphic LCD, and the keyboard is an RC2014 Universal Micro Keyboard, with the serial option and slightly modified firmware(It gives me backspace, and I think that's it...).
I want to move to a PCB, and I'm currently building a hierarchical schematic in KiCAD for that purpose.
My current problem with it is that while it works perfectly when I use an FTDI cable and a terminal emulator, but when I connect the display, sometimes it doesn't start, or hangs. And sometimes the keyboard seems to send shifted characters when the shift key isn't being held. I suspect that might be power distribution triggering the reset IC, but I'm not sure.
EDIT 14/10/2017: Added current circuit diagram and a few photos.
I've had a project simmering away off and on, and with a bit of encouragement from BigEd, I've finally made a thread about it.
So, to that end, may I present Ittiara, my work-in-progress handheld.
I started out wanting to build a sort of electronic storage typewriter, as I was having distraction issues with word processors on computers.
I ended up just building a bridge and getting over it. Sometime later, I saw Ben Heck's Pocket BASIC computer video. That inspired me to make something sort of similar using the 6502. Ittiara is the development of that idea.
Basically, I'm going for a 65C02-based handheld computer with a bit of a large environment on it for fooling around, and enough GPIO to do things.
I'm not opposed to using microcontrollers as peripherals, as long as it doesn't get ridiculous.
Planned features/goals:
- Self-contained, portable system. No extra equipment needed to use it. Display, keyboard and battery built in.
- Battery-powered. Preferably a LiFePO4(safer than a LiPo), and preferably regulated with a switching regulator.
- Some sort of UI, possibly menu-driven.
- Clock speed of 8MHz or higher. The current EEPROM I'm using will limit me to 4MHz, by the specs, but there are reports of overclocking. If I get a 7ns RAM and battery-back it, I could run it up to 13MHz, by the specs, but I could also use an FeRAM, if I can find a 5V parallel one.
- Graphics capability.
- Sound capability, preferably a SID or similar. My current leaning is a SIDcog running in a Propeller, as I can adapt that with a little extra hardware to sit on a high-speed bus.
- SPI interface using 65SPI and SPI-10. Two each of 3V3 and 5V ports. mainly for storage.
- Assembler, Text editor, HLL, Monitor. I might end up integrating the assembler into the monitor. Currently planning to use VTL-02 as the HLL(due to its small size), although having just heard of Action!, I might try implementing/using that. I could also use EhBASIC or FORTH.
- SPI and serial loaders for HLL, text editor, and binaries.
"Stretch goals":
- Self-hosting, with a means to write to it's own ROM in-place.
- Hot-swappable SPI-10 ports.
The current prototype is constructed with wires soldered to the underside of a pad-per-hole breadboard. Bit of a mess under there.
I'm using sockets for everything I think I might re-use later, including the reset circuit and 7805 regulator. Basically, all the silicon on the board is in a socket.
I also have the display and keyboard. The display is a SparkFun Serial Graphic LCD, and the keyboard is an RC2014 Universal Micro Keyboard, with the serial option and slightly modified firmware(It gives me backspace, and I think that's it...).
I want to move to a PCB, and I'm currently building a hierarchical schematic in KiCAD for that purpose.
My current problem with it is that while it works perfectly when I use an FTDI cable and a terminal emulator, but when I connect the display, sometimes it doesn't start, or hangs. And sometimes the keyboard seems to send shifted characters when the shift key isn't being held. I suspect that might be power distribution triggering the reset IC, but I'm not sure.
EDIT 14/10/2017: Added current circuit diagram and a few photos.
Last edited by DerTrueForce on Sat Oct 14, 2017 8:06 am, edited 1 time in total.
Re: Ittiara, a 65C02 handheld
If you're using a 5V supply, consider using NiMH instead of lithium batteries. Although the energy density is not as good, charging is simple and a string of 4 NiMH calls gives 4.8V - This is within 5% of 5V so no regulator is needed at all.
Shift to the left,
Shift to the right,
Mask in, Mask Out,
BYTE! BYTE! BYTE!
Shift to the right,
Mask in, Mask Out,
BYTE! BYTE! BYTE!
Re: Ittiara, a 65C02 handheld
Great new thread! Is it possible to use all-3V components, possibly for an easier build? It might well reduce the available clock speed, of course.
-
DerTrueForce
- Posts: 483
- Joined: 04 Jun 2016
- Location: Australia
Re: Ittiara, a 65C02 handheld
It might be possible to use 3.3V components. According to the graph in the datasheet I have, the maximum clock frequency is 14MHz at 3V3, so I may not have to compromise on the speed goal. I hadn't wanted to go that way, though...
As for using NiMH, that is a thought, but my Dad has a few high-discharge LiFe batteries that he is no longer using(and is OK with me using). I have the idea that it might be good to recycle one of those. The simple charging might be interesting, as I'm not sure what triggers a Lithium charger to stop. I wasn't planning for in-system charging, since the only modules I've found for that were geared towards single-cell LiPos.
As for using NiMH, that is a thought, but my Dad has a few high-discharge LiFe batteries that he is no longer using(and is OK with me using). I have the idea that it might be good to recycle one of those. The simple charging might be interesting, as I'm not sure what triggers a Lithium charger to stop. I wasn't planning for in-system charging, since the only modules I've found for that were geared towards single-cell LiPos.
Re: Ittiara, a 65C02 handheld
Be sure to read up on the charging problem before building anything which might look like it's trying to charge the cells - these things can be fierce.
-
DerTrueForce
- Posts: 483
- Joined: 04 Jun 2016
- Location: Australia
Re: Ittiara, a 65C02 handheld
I was planning to have an XT60 connector on the end of a couple of wires, leading into a switch and then into the regulator.
Re: Ittiara, a 65C02 handheld
Maybe using a switching regulator might be an option:
Traco TSR 1-2433 looks nice.
DC\DC step down switching regulator, pin compatible to the 7805, 3.3V output at max. 1A, input voltage 4.75..36V.
(TSR 1-2450 has a 5V output and 6.5..36V input voltage range.)
;---
BTW: that three pin connector at the /WE input of the ROM...
If you would be pulling the jumper with the computer powered on, /WE of the ROM might be floating, sensing LOW by accident.
Maybe it would be better to have a 10kOhm pullup resistor or such between ROM /WE and VCC and to use a two pin jumper instead.
Traco TSR 1-2433 looks nice.
DC\DC step down switching regulator, pin compatible to the 7805, 3.3V output at max. 1A, input voltage 4.75..36V.
(TSR 1-2450 has a 5V output and 6.5..36V input voltage range.)
;---
BTW: that three pin connector at the /WE input of the ROM...
If you would be pulling the jumper with the computer powered on, /WE of the ROM might be floating, sensing LOW by accident.
Maybe it would be better to have a 10kOhm pullup resistor or such between ROM /WE and VCC and to use a two pin jumper instead.
-
DerTrueForce
- Posts: 483
- Joined: 04 Jun 2016
- Location: Australia
Re: Ittiara, a 65C02 handheld
That DC-DC converter looks like it's exactly what I want. Thank you for pointing it out to me.
I don't remember having ever pulled the write-protect jumper before... Not that that makes your point any less valid. It probably won't be in the final design, at least, not in that form. I might adapt your idea, and have a two-pin jumper controlling an input to some sort of logic that determines whether or not it gets written to. Then you'd pull it out before you write to the ROM, and put it back after.
I don't remember having ever pulled the write-protect jumper before... Not that that makes your point any less valid. It probably won't be in the final design, at least, not in that form. I might adapt your idea, and have a two-pin jumper controlling an input to some sort of logic that determines whether or not it gets written to. Then you'd pull it out before you write to the ROM, and put it back after.
Re: Ittiara, a 65C02 handheld
Looked around a bit for battery charger ICs.
The Microchip MCP73X23 Lithium Iron Phosphate Battery Charger Evaluation Board looks nice.
The eval board seems to cost 17,67 € at Mouser.
Also available from Farnell.
MCP73213\MC73223 datasheet
Evaluation board User's guide
The Microchip MCP73X23 Lithium Iron Phosphate Battery Charger Evaluation Board looks nice.
The eval board seems to cost 17,67 € at Mouser.
Also available from Farnell.
MCP73213\MC73223 datasheet
Evaluation board User's guide
Re: Ittiara, a 65C02 handheld
Adafruit has a number of charger boards which may or may not fit the bill:
https://www.adafruit.com/?q=charger
https://www.adafruit.com/?q=charger
- BitWise
- In Memoriam
- Posts: 996
- Joined: 02 Mar 2004
- Location: Berkshire, UK
- Contact:
Re: Ittiara, a 65C02 handheld
ttlworks wrote:
Looked around a bit for battery charger ICs.
The Microchip MCP73X23 Lithium Iron Phosphate Battery Charger Evaluation Board looks nice.
The Microchip MCP73X23 Lithium Iron Phosphate Battery Charger Evaluation Board looks nice.
http://www.ebay.co.uk/itm/5pcs-TP4056-B ... 0005.m1851
Andrew Jacobs
6502 & PIC Stuff - http://www.obelisk.me.uk/
Cross-Platform 6502/65C02/65816 Macro Assembler - http://www.obelisk.me.uk/dev65/
Open Source Projects - https://github.com/andrew-jacobs
6502 & PIC Stuff - http://www.obelisk.me.uk/
Cross-Platform 6502/65C02/65816 Macro Assembler - http://www.obelisk.me.uk/dev65/
Open Source Projects - https://github.com/andrew-jacobs
-
DerTrueForce
- Posts: 483
- Joined: 04 Jun 2016
- Location: Australia
Re: Ittiara, a 65C02 handheld
I've got a bit of an update on the project. I finally got around to finishing the KiCAD schematic. Since I'm not planning on doing anything unconventional, I ran it through the ERC, and I've gotten large numbers of warnings, all saying that pins on the buses aren't connected to anything, or otherwise aren't being driven. I believe that I may have run into an oddity in KiCAD, as what it's saying appears to mean that the buses are all disconnected from each other.
I haven't looked at the netlist yet, and I'll do so shortly. I might be able to edit it manually.
Has anyone else made this work?
I haven't looked at the netlist yet, and I'll do so shortly. I might be able to edit it manually.
Has anyone else made this work?
-
DerTrueForce
- Posts: 483
- Joined: 04 Jun 2016
- Location: Australia
Re: Ittiara, a 65C02 handheld
I decided that editing the netlist manually would probably cause problems, and I ended up sending the bus signals out individually. That stopped the ERC complaining.
And I should have said that I was using hierarchical sheets in my previous post... Oh, well, I said it now.
Anyway, on to the footprints and the PCB layout!
And I should have said that I was using hierarchical sheets in my previous post... Oh, well, I said it now.
Anyway, on to the footprints and the PCB layout!
-
DerTrueForce
- Posts: 483
- Joined: 04 Jun 2016
- Location: Australia
Re: Ittiara, a 65C02 handheld
I think I've completed most of the PCB layout now, but since this is the first board I've laid out, I'm not sure of my work. I kind of expect what I have to be a bit of a bog's breakfast, and I know that getting PCBs made is not real cheap, so I don't want to mess up.
I hope I'm not asking too much, but could someone more experienced than me take a quick glance at these, and see if I've done a stupid?
I've attached the gerbers of what I have so far. I hope the fact that I zipped them up isn't going to be too inconvenient.
I hope I'm not asking too much, but could someone more experienced than me take a quick glance at these, and see if I've done a stupid?
I've attached the gerbers of what I have so far. I hope the fact that I zipped them up isn't going to be too inconvenient.
- Attachments
-
- board views.zip
- (157.38 KiB) Downloaded 374 times
- GARTHWILSON
- Forum Moderator
- Posts: 8773
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: Ittiara, a 65C02 handheld
I've been meaning to reply to this topic for some time, since the idea excites me.
As far as constructive criticism goes: You have .016" vias and it looks like their pads are about .0235". For reliability, you need a wider ring around the hole. You have way more than enough room (I call it the "moat" [Edit: I found out the industry calls them "antipads"]) around the pads anyway between them and the edge of the holes in the planes, so go ahead and enlarge the via pads a bit. Remember the board house has to drill the hole a little bigger initially to end up with the final size per the spec after adding the plate-thru. I always make the via pad size .020" larger than the finished hole size. With a good board house, you probably don't need that much anymore; but for the low-cost hobbyist board suppliers, the accuracy isn't always as good (I speak from experience), and if the hole is off center, you might end up with no annular ring connected to the trace, and the trace just falls down into the hole, leading to less reliability, like if there's a crack right there at the corner and you lose the connection.
For low-cost boards, check out http://dev.dirtypcbs.com/store/pcbs . As far as I can tell, this is part of one of our favorite hacker/maker sites (I can't remember the name of it [Edit: It's "dangerous prototypes"]) and they use several board houses, and which one they give your job depends on what's in it. If you're concerned about cost though, making it denser, ie, putting the parts closer together so you can make making the board a lot smaller will definitely save money. The smaller size is definitely appropriate for a hand-held unit anyway. For DIP pins, I use a .030" hole and pads .050" wide, which makes it easy to get two traces between pads at .010" trace/space, or even three at .007". You won't have to pay extra for narrow traces until you get below .006" trace/space.
As far as constructive criticism goes: You have .016" vias and it looks like their pads are about .0235". For reliability, you need a wider ring around the hole. You have way more than enough room (I call it the "moat" [Edit: I found out the industry calls them "antipads"]) around the pads anyway between them and the edge of the holes in the planes, so go ahead and enlarge the via pads a bit. Remember the board house has to drill the hole a little bigger initially to end up with the final size per the spec after adding the plate-thru. I always make the via pad size .020" larger than the finished hole size. With a good board house, you probably don't need that much anymore; but for the low-cost hobbyist board suppliers, the accuracy isn't always as good (I speak from experience), and if the hole is off center, you might end up with no annular ring connected to the trace, and the trace just falls down into the hole, leading to less reliability, like if there's a crack right there at the corner and you lose the connection.
For low-cost boards, check out http://dev.dirtypcbs.com/store/pcbs . As far as I can tell, this is part of one of our favorite hacker/maker sites (I can't remember the name of it [Edit: It's "dangerous prototypes"]) and they use several board houses, and which one they give your job depends on what's in it. If you're concerned about cost though, making it denser, ie, putting the parts closer together so you can make making the board a lot smaller will definitely save money. The smaller size is definitely appropriate for a hand-held unit anyway. For DIP pins, I use a .030" hole and pads .050" wide, which makes it easy to get two traces between pads at .010" trace/space, or even three at .007". You won't have to pay extra for narrow traces until you get below .006" trace/space.
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?