The 20b as a development platform



#34

Lovely calc, the 20b. A shame that the internal solver wasn't made accessible to the user. But, it still is in there somewhere. Maybe even waiting to emerge as a chameleon? Or maybe more like a phoenix, something completely new arising from the ashes of another?

I predict that we're going to see the 20b as a development platform for some home-grown calcs, much akin to the movement behind the Linksys WRT56G routers. Surprisingly, the WRT family also has an accessible JTAG connector plate. Huh! ;-) Or the uWatch, which shows that we can do this if we really want to.

So, who wants to get this ball rolling? I'd love to see a new calc emerge from what is out there, and the price point is right (well, aside from some additional hardware programming requirements). And imagine a calc that can act as a simple data logger, or control some robotics devices? That would be cool.

One question that's out of my depth of experience: how could the key labels be changed without looking like a bad hack job?

I'm game. Who else is?

thanks,
bruce

Edited: 12 June 2008, 11:16 a.m.


#35

I'm in. I plan on grabbing two when they become available. I've used the NXP arm7tdmi micros before, so I have a toolchain and jtag hardware. I'd like to grab the config registers to determine how the I/O is configured, but I can see that that will be tricky since the unit lives in low-power modes much of the time.

I sure hope one of those 6 gold pads can be used as a power input pin...


#36

Quote:
I sure hope one of those 6 gold pads can be used as a power input pin...

It's likely.

JTAG requires 4 pins + 1 optional pin (most often not used) + ground.

So it's possible the 6th pin could be power. That's how I'd design it anyway, as you'd likely want to program and test the unit on the production line before the batteries are inserted.

Dave.


#37

hello,

Quote:
I sure hope one of those 6 gold pads can be used as a power input pin...

these pins are:
- Ground
- Vbat (can work both way, if there is no battery in the calc, you can power it with it, or if you have battery in the calc and a serial cable that require power (for level conversion for example), you can get power from it.
- Reset (resets the CPU)
- Erase (erases the flash rom so that the CPU can be reprogrammed)
- TX and RX (serial 0-3V signal)

regards, cyrille


#38

Quote:
hello,


these pins are:
- Ground
- Vbat (can work both way, if there is no battery in the calc, you can power it with it, or if you have battery in the calc and a serial cable that require power (for level conversion for example), you can get power from it.
- Reset (resets the CPU)
- Erase (erases the flash rom so that the CPU can be reprogrammed)
- TX and RX (serial 0-3V signal)

regards, cyrille


Thanks Cyrille.
Of course, that makes sense, a serial interface so it's easier for the user to upgrade the firmware in their own unit by way of a third party (or HP supplied?) "programming cable"

The uWatch could do the same thing via it's serial port if I had an appropriate bootloader installed.

Dave.

#39

hello,

I forgot to mention the fact that, althrough the connector uses a direct 0-3V signal for the 'serial' port, there is the footprint on the PCB to directly put a Serial to RS232 tranceiver so that you get true RS232 on the 6 pin connector... just for convinience.

cyrille


#40

Quote:
hello,

I forgot to mention the fact that, althrough the connector uses a direct 0-3V signal for the 'serial' port, there is the footprint on the PCB to directly put a Serial to RS232 tranceiver so that you get true RS232 on the 6 pin connector... just for convinience.

cyrille


Very nice, sir.

Unpopulated EEPROM footprint? Empty pads for an SD slot? (I'm thinking that 6kB SRAM on the CPU is going to end up being a limiting factor for the hackers.)


#41

Especially since only 2KiB of that RAM is battery-backed.


#42

Yeah, the 2kb is going to be a bit of a limitation.

I've been thinking about what one could do and it keeps coming back to the 2kb...

A programmable? Unlikely.

Non-programmable? 2kb is too much :-(


- Pauli


#43

Quote:
it keeps coming back to the 2kb... A programmable? Unlikely.

That's more than 3.5 times the total RAM of either the original HP-41C or the HP-15C, both of which are IMNSHO still respectable programmable calculators. Certainly it would be nice to have more, but you can actually do quite a lot in 2 KiB.


#44

You are correct of course 2kb is sufficient to making something useful. However, we've come to expect more haven't we? :-)


- Pauli

#45

Quote:
Yeah, the 2kb is going to be a bit of a limitation.

I've been thinking about what one could do and it keeps coming back to the 2kb...

A programmable? Unlikely.

Non-programmable? 2kb is too much :-(

- Pauli


Cyrille has mentioned that a 10 pin digital I/O header is available internally. It should be pretty easy to install say a small 64KB (or more) EEPROM PCB. Would only cost a few dollars.

I wouldn't bother with the battery backed RAM for any user program.

Dave.


#46

Quote:
Cyrille has mentioned that a 10 pin digital I/O header is available internally. It should be pretty easy to install say a small 64KB (or more) EEPROM PCB. Would only cost a few dollars.


My thought as well. It wouldn't be fast, but maybe it wouldn't need to be.

You know, there's plenty of flash in the micro. Slow to write, but quick to read--might be acceptable for program storage (with a little caching during edits/uploads). Power consumption during flash write might be a problem...how useful would a keystroke programmable calc be if you had to dock it to a PC to enter or edit a program?


#47

hello,

Quote:
You know, there's plenty of flash in the micro. Slow to write, but quick to read--might be acceptable for program storage (with a little caching during edits/uploads). Power consumption during flash write might be a problem...how useful would a keystroke programmable calc be if you had to dock it to a PC to enter or edit a program?

you could use the internal flash, it gets programmed in batch of 256 bytes and 1 page programs in 4 ms... you can hardly call that slow... but you will probably have to do some management to avoid too frequen erase of the flash as there is a 10000 cycle spec.

cyrille

#48

hello,


Quote:
Unpopulated EEPROM footprint? Empty pads for an SD slot? (I'm thinking that 6kB SRAM on the CPU is going to end up being a limiting factor for the hackers.)


sorry, I did not think about that one :-( maybe the next calculator...

cyrille

#49

Quote:


It's likely.

JTAG requires 4 pins + 1 optional pin (most often not used) + ground.

So it's possible the 6th pin could be power. That's how I'd design it anyway, as you'd likely want to program and test the unit on the production line before the batteries are inserted.

Dave.


I have a feeling that the JTAG pads are on the inside, and that the 6 pads are the DBGU port, power, ground, the ERASE pin, and ? for use with the serial SAM-BA bootloader in ROM.

After all, cyrille said: "the 6 holes are to connect a serial cable (either for custom application, or for reprogramming the calculator)". I don't think you can reassign the JTAG lines, but it appears that you could use the DBGU lines either a UART or general purpose I/O lines.

I'm just a bit concerned that they will show up with the security bits set such that we can't read the flash over JTAG. There might be a risk of creating bricks...


#50

Quote:
I'm just a bit concerned that they will show up with the security bits set such that we can't read the flash over JTAG. There might be a risk of creating bricks...

Yes, it would be annoying if the security bit is set. However, I think this can be circumvented :-) It ought to be possible to use the JTAG to load some code into the RAM that then dumps the flash's contents.

- Pauli


#51

Quote:


Yes, it would be annoying if the security bit is set. However, I think this can be circumvented :-) It ought to be possible to use the JTAG to load some code into the RAM that then dumps the flash's contents.

- Pauli


It also appears that there is a bit that will completely disable JTAG. Clearing it requires erasing all the flash.

#52

Missed that bit of the debug unit description :-(
We'd have to find a usable bug ...

- Pauli

#53

Boy that display in the 20b is really limited. If it had been as good as the one in the 17BII+, that platform could probably have been used to produce a "42S+" or any other machine based on the Pioneer layout. One can only hope that as Eric Smith pointed out, if they'd spring for an LCD driver chip and a better screen, they'd have an excuse to charge more bucks and it'd be well worth it in the long run with respect to being able to use this platform as the starting point for growth.

Hope to see you in Corvallis in September,

Jake Schwartz

P.S. check http://holyjoe.net/hhc2008 for info on the HHC2008 calc conference

#54

Quote:
One question that's out of my depth of experience: how could the key labels be changed without looking like a bad hack job?

A keyboard overlay should be possible. Dave showed that with the uWatch. Relabelling the keys would be difficult I think.


Quote:
I'm game. Who else is?

I'm seriously considering picking one or two up for demolition purposes. I do lots of work with ARM cpus as my day job so I'm pretty well tooled up for it. Got to remember to get a rom dump before I start overwriting....


- Pauli

#55

Quote:
One question that's out of my depth of experience: how could the key labels be changed without looking like a bad hack job?

As Pauli mentioned, a keyboard overlay is possible. It can take care of any labels printed on the metal plate and/or the slanted front of each key.

As Jake mentioned, a far better (= more flexible, more versatile, etc.) solution would be to have the LCD of the 17bii+silver built in here. This would allow changing the labels of the top 6 keys the COOL way!

(RANT) Sometimes it really looks like reinventing the wheel here ... (/RANT)


#56

Sadly, I think we'll be stuck with the existing display. As best as I can tell, the CPU is driving the absolute limit in terms of the LCD display:

12 digits each with 9 segment
3 digits each with 7 segments
2 minus signs
11 status labels:
large '=' at left
down arrow, INPUT, small '=', battery low
BEG, STO, RCL
RAD, 360, RPN
dot matrix area is 6 x 43 (I'm not 100% sure here but it seems likely)

12*9+3*7+2+11+6*43 = 400.

- Pauli


#57

Thanks, Pauli, I understand your arguments. But can't the engineers make "accessability mistakes" (like they made in the 20b according to Cyrille) in a calculator featuring a better display?!?

BTW, did anybody of the HW-gurus here have the chance to look into the 17bii+silver?

Edited: 12 June 2008, 6:16 p.m.

#58

You know, I'm kinda okay with the display provided. If it had no dot matrix areas, then yes, I would be bummed. But at least there is that one area, and the 7-segment LCD numbers are super easy and clear to read. For example, I doubt we will hear any complaints about the size of the decimal point or comma, or the shape of the theta symbol. This display is cut and dried clear.

It would have been nice to have the dot matrix area BELOW the 7-segment area (thus allowing for soft menu key labels, ala the 42s), but it is what it is. I think there are still ways to utilize the definable area and make it provide useful and helpful features.

Regarding the keys, is a keyboard overlay really the only VIABLE option? I wouldn't want to scrape keys any more than you would, but I would hate to cover up that beautiful shell with a cheezy overlay. It would, in some ways, detract from the point of re-doing the calc in the first place.

I'd be happy to leave everything as-is below the INPUT key, and leave those key labels as they are. I would want to re-label everything else from the INPUT up, though. Matter of fact, doing a gold shifted label above each key should be fairly doable, right? I mean, some sort of transfer labels? That would allow turning in the down arrow to a gold shift, and then we have another whole pile of space and functions.

Does anyone have any ideas for a programmer or ICE for this guy? Would the AT91SAM7L-EK work ($220)? Or stick with the AT91SAM-ICE ($100)? And what about a connector for the JTAG TAP on the calc? Anyone know where to get one, and/or what it will interface with? Software tools seem to be fine...

thanks,
bruce

Edited: 12 June 2008, 6:12 p.m.


#59

hello,

Quote:
Does anyone have any ideas for a programmer or ICE for this guy? Would the AT91SAM7L-EK work ($220)? Or stick with the AT91SAM-ICE ($100)? And what about a connector for the JTAG TAP on the calc? Anyone know where to get one, and/or what it will interface with? Software tools seem to be fine...

the SAM-ICE is perfectly OK. 100% of the development of the 20B was done with SAM-ICE.

cyrille


#60

Awesome! Mine is on order. I see that it comes with the 20-pin JTAG interface. Is there an adapter or some sort of connector that can be purchased which fits the 6-pin docking port? I'm assuming that's the TAP interface, but I didn't see anything about what kind of cable or adapter connects from the ICE to the 6-pin.

Anyone have any ideas? ;-)

thanks,
bruce


#61

Quote:
Awesome! Mine is on order. I see that it comes with the 20-pin JTAG interface. Is there an adapter or some sort of connector that can be purchased which fits the 6-pin docking port? I'm assuming that's the TAP interface, but I didn't see anything about what kind of cable or adapter connects from the ICE to the 6-pin.

Anyone have any ideas? ;-)

thanks,
bruce


Scroll up. The 6 pin port is not the JTAG connector.
#62

Okay, received the ICE yesterday and have been reviewing the docs. Now I must wait (impatiently) for the calculator itself! :-(

Should be fun!

#63

Quote:
Sadly, I think we'll be stuck with the existing display.

They're obviously not going to change to a "better" display on the 20b, if that's what you're talking about.

Ny point was that if they wanted to make a different, higher-end calculator with a dot matrix display, they could keep the AT91SAM7L128 processor, but add an inexpensive LCD driver or one of the GeneralPlus masked-ROM microcontrollers with dot matrix LCD drive. Doing that will cost more money, so they would only do it on a calculator that could sell at a higher price point.


#64

Eric, I agree on what you say about the sales price (as said here ). Sometimes, a crystal ball would be the thing to have ...

#65

Quote:
As Jake mentioned, a far better (= more flexible, more versatile, etc.) solution would be to have the LCD of the 17bii+silver built in here. This would allow changing the labels of the top 6 keys the COOL way!

Patience :)

I have NO idea what other products HP is preparing, but I am willing to bet that they will be offering more calculators with this kind of open platform. Give them time! This is the very first example we've seen, it hasn't even shipped yet, and it's a very low-end calculator. It's a great looking financial calculator. No reason to fall all over ourselves trying to turn it into something it's not meant to be :)

In a year or two, maybe we'll have our very own HP-42sII. I've waited 20 years, I can wait a little bit more!

#66

Quote:
Lovely calc, the 20b. A shame that the internal solver wasn't made accessible to the user. But, it still is in there somewhere. Maybe even waiting to emerge as a chameleon? Or maybe more like a phoenix, something completely new arising from the ashes of another?

I predict that we're going to see the 20b as a development platform for some home-grown calcs, much akin to the movement behind the Linksys WRT56G routers. Surprisingly, the WRT family also has an accessible JTAG connector plate. Huh! ;-) Or the uWatch, which shows that we can do this if we really want to.

So, who wants to get this ball rolling? I'd love to see a new calc emerge from what is out there, and the price point is right (well, aside from some additional hardware programming requirements). And imagine a calc that can act as a simple data logger, or control some robotics devices? That would be cool.

One question that's out of my depth of experience: how could the key labels be changed without looking like a bad hack job?

I'm game. Who else is?

thanks,
bruce


All it would need is some remoulded blank keys, and that would be pretty easy for someone with the right skills and production access I suspect.

Also, there is the potential for a uWatch style PCB front plate to slip over the keys. A custom black 0.5mm solder mask PCB is easy to do. Not the best looking solution though, but easier than moulding or silkscreening keys I suspect.

Of course, someones gotta do the grunt work and write a low level driver that handles the basics - LCD screen, keypad, power and misc control. From there the software is easy, just like modifying the uWatch code to do whatever you want.

It would be *really* nice if at least the schematic happened to slip out into the wild... ;-)

And of course it would also be *really* nice if HP were willing to release a few "special" calcs with blank keys too... ;-)

Dave.


Possibly Related Threads...
Thread Author Replies Views Last Post
  HP's thinking behind the 20b/30b? John Ioannidis 3 239 09-07-2013, 10:21 AM
Last Post: Tim Wessman
  20b, 30b not in HP's web store Eric Smith 3 234 02-08-2013, 11:52 AM
Last Post: Walter B
  A non 20b/30b 34S Matt Agajanian 22 752 08-20-2012, 01:06 AM
Last Post: Reth
  [WP-34s] IR conversion of 20b Alexander Oestert 3 228 05-18-2012, 05:38 PM
Last Post: Harald
  49/50 PC Development Tools Under Linux John R. Graham 1 108 04-24-2012, 03:06 PM
Last Post: Han
  HP20B Development Kit Andres Capdevila 6 271 03-30-2012, 06:26 PM
Last Post: Andres Capdevila
  WP34s Development under Linux? Nobby K. 28 785 11-27-2011, 08:32 AM
Last Post: pascal_meheut
  Why hp-20b more expensive than 30b? Masaki Adachi 9 368 10-14-2011, 12:08 PM
Last Post: megarat
  missing segments on 20b running 34s db (martinez, ca.) 4 207 10-05-2011, 01:27 AM
Last Post: Walter B
  Flashing HP 20b for WP 34S Steve Brenton 10 391 09-30-2011, 09:03 AM
Last Post: Marcus von Cube, Germany

Forum Jump: