HP Forums

Full Version: Alternative WP34S flashing using Arduino
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Hi folks,

I'm new here and have just registered to share this method of flashing the WP34S firmware to a stock HP30B.
It utilizes the onboard FTDI serial chip of the Arduino platform as a communication interface between a PC and the calculator hardware. The Atmel microcontroller on the Arduino is disabled by hanging in RESET state to get out of the way of communication. You still need your Windows PC running MySamba software for the flashing.

Although there is no need for a special serial cable, you have to have a few wires, alligator clips and some dexterity to keep them in place during flashing.

Arduino's 3.3V line will be used to power the calculator and to provide common ground for serial communication. The HP30B handles 3.3V well but if you are overly cautious just use batteries. In that case don't forget to provide GND for serial communication.

Here is the link to the how-to (pdf version): http://goo.gl/ZPCUW0
HTML version can be found below in this thread.

In this tutorial I used a cheap clone of the Arduino Nano V3 which works just fine but it is recommended to buy the real thing.


DISCLAIMER: I don't claim the invention of this method. I just wanted to share it in a step-by-step easy to follow manner.

Update: edited to clarify the role of Arduino
Hi Adam,

(02-19-2014 05:55 PM)adamkov Wrote: [ -> ]I'm new here and have just registered to share my method of flashing the WP34S firmware to a stock HP30B. No need for any special cable, just a Windows PC, a bunch of wires with alligator clips and Arduino Nano V3.0 (or clone). I used a cheap $10 variant from DX. I had success flashing multiple calculators.

Here is the link (pdf version):

I also have a html version I'm happy to share just need a place to upload it.

Quite interesting. If you agree and/or contact Pauli, we or you may upload your file(s) to the WP 34S project page at SourceForge.

Walter, with pleasure. I can send you or Pauli the html version.
No need for the HTML version, the PDF is fine. I've put it in the doc section of the project pages.

- Pauli
It is an honour.

Thank you for your great work guys. I love my WP34S.
Flashing WP34S using Arduino Nano V3.0 as a programmer
Written by Adam Kovesdi
18th of February 2014


In this document I will show you how to use your $10 Arduino Nano clone to flash a HP30B to a WP 34S scientific calculator. There is no need for a special cable or physical serial port. Just the Arduino a cheap breadboard two small alligator clips and a few wires. You will also need a computer with a free USB port running Windows.

  • Windows PC with a free USB port
  • Arduino Nano V3.0 or compatible clone with USB cable
  • Breadboard
  • Wires for the breadboard
  • Alligator clips soldered to wires. This is for powering the calculator and providing a common GND for serial communication
  • Paper clip (to operate RESET button on the back of the calculator)
  • WP34S firmware
  • WP34S manual
  • MySAMBA program


Arduino http://dx.com/p/nano-v3-0-avr-atmega328-...ino-118037
WP34S firmware http://sourceforge.net/projects/wp34s under Files
WP34S manual http://sourceforge.net/projects/wp34s under Files/doc
MySAMBA program for flashing http://sourceforge.net/projects/wp34s under Files/FlashTool

Connecting to the calculator

The following diagram shows how to wire the arduino to the calculator

  • Red wire with alligator clips on one end connects from Arduino pin 3V3 (PIN17) to calculator Battery terminal +
  • Black wire with alligator clips on one end connects from Arduino pin GND (PIN29) to calculator Battery terminal -
  • Blue wire connects from Arduino pin D1/TX (PIN1) to calculator J33 - see drawing above
  • Green wire connects from Arduino pin D0/RX (PIN2) to calculator J35 - see drawing above
  • Purple wire connects from Arduino pin RESET (PIN3) to Arduino pin GND (PIN4) - if you forget this the Arduino’s Atmel microcontroller will intercept serial communication and flashing won’t work
See the following picture I took during flashing. Note you have to hold the RX and TX wire in place when clicking send in MySamba software (see later).

Step-by-step flashing instructions

  1. Run MySAMBA program and select the proper COM port for the Arduino serial adapter. Usually COM3 on my machines.
  2. Select calc_full.bin (or your desired flash image) in MySAMBA, Do not click Send File button yet!
  3. Turn the calculator on by pressing and releasing ON/CE. Make sure it is on.
  4. Short ERASE pins on the back of the calculator with a piece of wire and keep it shorted until step 7 (see picture)
  5. Press and release the RESET button on the back of the calculator with a paperclip
  6. Press and release ON/CE on the calculator to turn it on again.
  7. Remove short to ERASE pins
  8. Press and release the RESET button on the back of the calculator with a paperclip
  9. Press and release ON/CE on the calculator. It will not appear to turn on.
  10. Push RX, and TX wires in place and keep them there (see picture)
  11. Click “Send File” in MySamBa and wait for it to finish (approximately 20 seconds). Arduino TX LED will blink. If this step fails, return to step 3 and follow the instructions again - for me it never worked for the first time. Be persistent and keep on trying. Make sure RX and TX wires are making contact.
  12. You can release RX and TX wires
  13. Press and release the RESET button on the back of the calculator with a paperclip
  14. Press and release ON/CE on the calculator.

You should now have a WP34S

Useful documents, resources
This isn't a new technique for flashing WP 34S's but just another USB-serial adapter. The micro on the Arduino is being disabled and the FTDI chip is being used as an adapter. A "special cable" has been made out of a microcontroller board.
(02-19-2014 05:55 PM)adamkov Wrote: [ -> ]No need for any special cable
Isn't that being a bit hypocritical?

As far as not using a plug, that's not new. See WP34s Programming Cable.

The Arduino you mention using from DX (Deal Extreme) is a Chinese company, and there have been problems with FTDI chips from China. See dewster's post #55 in the above link.

In addition, I thought the team was endorsing Harald Pott's serial adapters. Wouldn't this take business away from him?

In general, it's a clever technique for utilizing the serial adapter on a microcontroller board. Now if you could find a way to use a Raspberry Pi to flash a WP 34S I'd be impressed.

(02-20-2014 03:57 PM)Dave Frederickson Wrote: [ -> ]In addition, I thought the team was endorsing Harald Pott's serial adapters. Wouldn't this take business away from him?

We mentioned FTDI and Harald's boards in the manual as possible ways to exchange data between a modern computer and a WP 34S. The Arduino way as presented by the OP looked like another alternative. I can't see anything wrong by informing about that method on the project site as well.

BTW: WP 34S is free software. Thus, we - the developers of WP 34S - may add business to somebody, we simply can't "take business away from" anybody IMHO. d:-?

That said, Harald's boards are the nicest and most useful HW addition to a WP 34S I know.

Let me get this straightened out. I never stated this is a new or revolutionary method of flashing. When I found out about the WP34S project I just wanted to have a physical WP34S calculator. Realizing only the two well known ways to flash the WP34S firmware to my HP30B almost deterred me entirely from getting engaged.

As far as I understand picking up an official HP programming cable from forum members is virtually out of question nowadays. You may not know but in this part of the world obtaining pogo pins is not easy. Investing half a days work to create a single use cable from expensive materials was even less to my liking.

On the other hand I'm a electronics tinkerer having a lot of components at my disposal. Including Atmel microcontrollers and Arduino modules. In my humble opinion there might be similar DIY savvy people in the target audience of WP34S.

An Arduino is a very multipurpose device and can be reused many times in many ways. This is just a method of utilizing the onboard serial chip as a USB-serial converter to interface the calculator as you pointed out correctly. After flashing the calculator one can still use the Arduino in any other project - not a single cent wasted. Although you are right about sourcing the Arduino - I should have suggested to purchase it from a more reputable vendor.

By no means I had the intention to harm anyone's business. Everyone has the right to buy whatever they want. I'm just sharing knowledge here for free. I created the document to help out fellow wannabe WP34S owners finding alternative ways to flash their HP30Bs.

Regarding Harald Pott's USB boards: I might have overlooked but couldn't find an apparent way to buy one opposed to Eric's overlay which I have ordered and using happily. (Thanks Eric)

Bottom line: I just wanted to share a relatively easy not too labor intensive salvageable way of flashing the firmware to the calculator using cheap parts. In case this offends anyone's business feel free to delete my posts/thread.
Hi Adam,

I don't have any issues with your motives and I think its a rather clever method of using a microcontroller board for an alterior purpose. Its just that you billed your method as using the Arduino, which it doesn't.
Even Walter thought this was a new method because of the "Arduino" buzzword, but in fact your technique, Harald's, and dewster's all just use an FTDI USB-Serial converter chip. StephenR0's cable uses a fake Prolific chip from China and it works, too.
Basically, any microcontroller board with a USB-Serial converter on it could probably be used as a programming adapter. The Arduino was simply an "example". I could probably make one from the TI MSP430 LaunchPad ($4.30) sitting on my desk.

I last heard from Harald a couple of weeks ago. You should be able to reach him from this forum or his email address in the manual and various other documents.

Adam; Yours has to be the most complex and expensive way yet to flash a WP34S.

That being said; another method is good, knowledge is great, and something that interests Pauli and Walter might come out as an improvement in the eagerly awaited 43s.

Your post is exactly what this forum is for. Welcome aboard.
Thanks for the warm welcome Den.

(02-21-2014 12:23 AM)Den Belillo (Martinez Ca.) Wrote: [ -> ]Adam; Yours has to be the most complex and expensive way yet to flash a WP34S.

I have to admit it is a bit awkward. Smile

On the price objection: nowadays everyone and their mother has an Arduino in the drawer. Also after flashing it can be reused for different projects. But I agree buying a new Arduino only for this purpose is unreasonable.

This is really not about deception or inventing the "coolest" method of flashing as seemingly mistaken by some. Just sharing a method with those happen to have an Arduino and in need of a WP34S.

Edit: grammar
I'm not really sure what's going on with some of the posters here putting words into the OP's mouth and making borderline derisive and dismissive comments.

I'm trying to hop on the WP34S bandwagon as well and if this kind of behavior is what stands for acceptable I may have to count myself out.

This is a perfectly suitable technique, aptly documented, and one of the cheaper solutions (easier as well) out there.

Far cheaper than buying a $25 cable (that you need an official HP programming cable to use in the first place). Also far easier than buying some cheap cable that oh by the way has problems of its own.

Easy and cheap, per my definition, is using parts I already own in conjunction with an outstanding guide. BTW just because the atmel chip is disabled does not mean that one is magically no longer using the arduino to perform the required task.

I also own a few msp430's as well. So what would be impressive to me is if someone that perhaps has one laying around on their desk could contribute to the hobby by showing us how to use them in the same fashion. If one is not to busy making other "contributions" that is.

Of course this means that the msp430 method would not be a new method by definition because of reasons that don't really seem reasonable.

Edited for reasons.
*Parachute post*

A Bus Pirate should work in place of an Arduino or an FTDI adapter as well.
And has the advantage of squeezing many more useful features to have in one's toolbox into about $30.
(04-08-2014 10:29 AM)Exophase Wrote: [ -> ]This is a perfectly suitable technique, aptly documented, and one of the cheaper solutions (easier as well) out there.

The technique of using the FTDI chip on a microcontroller board, and in this case also an Arduino variant, to flash a 30b was posted a year and a half ago. See this thread. I think some credit should go to the originator.
What would be impressive is if computers came with a USB to serial adapter built-in! one could call it something like "serial port". It would come in handy for all sorts of useful things...
Actually, RS-232 wouldn't really help you, as it's not TTL.
On top of that, on an average computer (with a serial port), the voltages in question are usually in the [-13,13] V range, which would do a very quick job of frying your TTL device.

(In other words, you'd need a logic level shifter. And then you're back to square one - might as well use a USB-to-serial adapter if you're putting extra electronics in the signal path either way.)
Even better: http://www.seeedstudio.com/depot/Seeedui...p-669.html

You can get a clone with a switch 3.3v-5v to be absolutely safe Big Grin

Just wanted to thank you for the very readable and practical instructions. I got my hands on an Arduino and managed to flash a handful of 20B's in practically no time.

I was a bit irritated by the critical tone of some of the messages in this thread.

Obviously the platform uses a documented and standardized interface but a horrible connector. As no HP cables are available anymore, any practical method should be made available to the public.

And it is always very helpful when someone invests the time to document a method so transparently and thoroughly that even laymen can implement it successfully (I have also now used the instructions for installing the quartz and the IR LED and have succeeded in installing these hardware modifications).

So once again thank you for the very instructive document. And thanks go to the WP 34S team for collecting such documents on sourceforge.

Already looking forward to the finalized documentation of jebems USB to Serial cable...

(04-13-2014 05:19 PM)anetzer Wrote: [ -> ]... but a horrible connector.

Several aspects of post-HP cables were combined in coming up with this connector.

[Image: i_HQXmXi4LK3RAa4X8icCUH5_eVDfVcNX3eltzTx...-h162-p-no]

I'd like to hear your suggestions on how it could be made better.

Pages: 1 2
Reference URL's