As the time has come to return back to the HX-20. I discovered that the original charger was no where to be found. So it is time to make a new charger for the HX-20.
In this video I will look at why I picked the power supply and show you how I wired up the 2.1mm DC Jack. We will also look at the basic charger circuit and why the power supply may appear incorrect at first, but why it has been selected.
At the end you will hear the HX-20 start, but we will see that there is no video and we will need to look at this is a later video.
For the past two years I worked on various projects that used the RFM69 module from Hope RF. This self-contained radio module allowed me to establish wireless links between various sensors and gateways for PIC, Arduino and ESP32 based projects.
One consistent problem that I experienced, was that trying to connect the RFM69 module to a prototype board was difficult. This was because the RFM69 module PAD footprints were not at 2.5mm pitch (which is a standard for most prototype boards). I purchased some PCB carriers from https://modtronicsaustralia.com in the past, which did make this task a little easier.
There were two models that I used, and while they worked well for me and many other people, I had a couple of small issues with them. The slim PCB version (seen above) did not have all the PIN’s from the RFM69 available to the user. I did like working with this model as it could plug into one side of the prototype boards or I could connect it via dupont terminals directly to an Arduino or an ESP32.
The full size breakout board that I also used did expose all the connections from the RFM69 module. Unfortunately it had one down side: it took up too much space on the prototype board. I looked elsewhere for various carriers or breakout boards for the RFM69 module, but could not find anything that met my requirements. So I decided it was time to tackle this problem myself and ‘scratch my own itch’, as they say in the industry.
My requirements for the breakout board:
- Must connect into a prototype board on any side.
- Have at least 2 I/O pins from RFM69 available.
- Have the other I/O pins available on a separate header.
- Be able to mount vertically to save space and horizontally to make prototyping easier.
- Support a range of different antenna connections.
So after testing a couple of designs, I settled on the simple layout that met the requirements above. The board was designed in KiCad 5.0, and after a couple of minor tweaks with one of the design files, I was able to place the order for some of these to be manufactured by JCLPCB.
After a couple of weeks a box of boards arrived on my doorstep. A few days later I had several of these PCBs fitted with some RFM69 modules and operating in some of my current projects with no problems.
The board has been designed so that it can be mounted vertically as well as horizontally. It can also be connected to micro-controllers using flying leads and DuPont connectors. It accommodates a wide range of different antenna configurations.
The pin configuration has been set up to keep the important connections in one header, then to allow the connections to be split into two additional headers. This allows the user to decide if they want to use all of the connections or just the ones that are important to them.
I’ve made this PCB available to anyone who wants to purchase one for their projects. This should help other engineers and makers working with the RFM69 in their projects and prototypes. If you have any comments on the PCB or ideas that you would like to see incorporated into possible future revisions, please let me know.
In a future post, I will show you how I use the RFM69 modules with Arduino, ESP32 and PIC16 microcontrollers. I currently use the Platform IO plug-in for Visual Studio Code, and have been very successful in getting these modules operating, after several weeks of frustration with SPI settings, interruptions and a variety of other issues. All of which I will share in a future post.
Soon after I started out in electronics, I quickly began looking for a device that could program my own EPROMS / Memory from a computer. So when I started doing freelance work, I was able to purchase a Chinese HI-LO ALL02 programmer. The down side was that it required a slot in my PC for the ISA card, which then plugged into its external programmer. It wasn’t portable and it required the PC to do all the heavy lifting. I still thought this was amazing and it was used on many many projects, beginning in the late ’80s right up until the early ’00s. It paid for itself several times over but the only problem I have now, is that the ISA card for the programmer has gone missing (a suspected casualty of a spring clean). Still, I have the programmer and I’m actively looking for an ISA card for it.
When I joined Intermec Ireland, in the mid ’90s, we had a programmer in the service department which allowed us to program PROMs and EEPROMs via the serial port on the PC and while it was slow, it did work. It supported various devices and once the code was downloaded into the programmer, you could program multiple EPROMS in minuets. It made me realise the advantages of programmers with their own intelligence and memory.
At the same time, the various magazines that I was reading were advertising an EPROM programmer that I thought was perfect. It was battery powered and you could download firmware into it and use it in the field. It not only supported Memories, but Microcontrollers as well. To me, it was the Holy Grail of programmers. It had a display just like my beloved EPSON HX-20 and it could be connected to your computer, via an RS232 port. The programmer allowed the user to view/edit the contents of the memory before programming a device (this was something I had been doing manually to set serial numbers on new products). At that time, USB didn’t exist in commercial PCs.
It was called the Dataman S4 and I wanted one, but there was one small problem, it was expensive, very expensive. I believe that it cost around £450 (€570), just for the basic model. As time progressed, I kept seeing this device in component catalogues from Radionics, and in Farnell, as well as the some electronic magazines. It was taunting me, saying please buy me, please buy me, but I could never justify the purchase. As more time progressed, and my requirements changed, I ended up getting high speed USB programmers instead, at a much lower costs, which supported more devices than the S4, but deep down, I still wanted an S4 programmer.
Recently when looking on www.adverts.ie, I found someone selling an S4, I couldn’t believe my luck! The price was right, it looked in great condition and it was pulled from a working environment. So I pulled the trigger, a deal was struck, and now it is mine. Am I happy? Yes I am. I now have a piece of equipment to add to my vintage equipment kit, that was on my wish list for many years.
As you can see it is in good condition, it’s clean and has very few marks on it. I did notice that the contrast control was not working and was flapping around inside. When I opened the unit, I discovered that the contrast control knob was broken off the contrast trimmer, so this will need to be fixed. The inside of the unit looks clean and original, which I was happy to see. The batteries look original, so these may need to be changed.
It looks as if no-one has been inside this device, so if it is faulty, I may be the first person trying to fix it. I have been informed that it was working and all it needs is a new 9VAC power supply. The HM628512 RAM Chip, on the bottom of the main PCB, is a 512K x 8 (4MB) RAM. So it looks as if the S4 programmer has the largest memory capacity available – another bonus!
1) Find/purchase a 9VAC power supply for the programmer.
2) Download and setup drivers on the DOS/early Windows PC.
3) Test-program some EEPROM’s and PALs/GALs.
3) Fix the contrast control.
What are my plans for the Dataman S4?
I would like to use this programmer to program the firmware for the retro computer that is being built. I would also like to program the video character ROM and also maybe a GAL, for address decoding.
Following on from the previous project, I have been asked to look at updating this project to drive two 7 seven segment displays instead of one seven segment display. So, instead of taking av4 bit binary input (0000 to 1111) and driving a single 7 Segment LED display with values from 0 to 9 and A to F; the plan is now to read 8 bit of binary data (00000000 to 11111111) and output corresponding hex value (00 to FF).
This is now makes this project and ideal tool that can be used on the retro computer build. As one of these circuits could be used to read the data bus while two could be used to read the address bus.
It does mean that we need to change the way the existing project is wired. The PIC controller only has 16 inputs/output pins. If we are to read the 8 bit binary data this leaves only 8 pins for driving the output and reading the control lines. As the 7 segment LED displays need 7 lines (8 if we include the decimal point) we need to look at an alternative way to drive the LED displays.
If we use a serial to parallel shift register we could drive 8 lines from just a clock and data line, by using a third pin we can enable/disable the shift register. This will let us drive all seven segments plus the decimal point. This solves the first issue of driving more lines from less pins on the PIC micro controller.
The next issue, is how do we drive two 7 segment displays. This can be achieved by multiplexing the display. By this I mean we light up one display with the segments required, then we switch on the other display and light up the segments on that display. By switching on the segments on the two LED alternating, we can give the appearance that both displays are on at the same time.
In the above circuit we can see we added a busy line to the circuit to let external circuits know when the decoder is busy updating the display.
The external circuit only needs to place the 8 bit data on the data bus, bring the enable pin low and then bring the write line low. The resistors on port A provide pull up logic, to ensure the data lines are not floating and are in a known state. The PIC micro controller has internal weak pull up resistors, so the resistor network RN1 may not be required, we will only know when we start testing.
Lets look at how this is going to work…
As this circuit will be used to drive LED displays which tend to be consume power, we don’t need to worry too much about power consumption, but lets not just ignore it, we still want to be as efficient as possible. With this in mind, the PIC micro controller will be using its internal oscillator of 4MHz. We could use an external 20MHz crystal / resonator, to allow for faster speeds. As we want to keep the costs down, there is no need to add parts that are not required. As the LED displays are used to display the result to us humans, we don’t need a fast refresh rate for the HEX display. So if the refresh rate is set to 100Hz it should provide a good display results. When the display is not getting updated the PIC should power down into standby more.
First we need to read the input and the control lines, when both the WR (Write) and EN (Enable) go LOW, the micro controller will set the BUSY pin active (LOW) and then read the 8 bit input. When the controller had saved the value to displayed, it will then set the BUSY pin inactive (HIGH).
A timer interrupt will activate every 10ms, the BUSY pin will go active (LOW) to indicate to any external circuit that the controller is refreshing the displays. Once the controller has finished refreshing the display it will the BUSY pin as inactive (HIGH).
When the PIC has the 8 bit data word, it will be broken into two 4 bit nibbles. Each 4 bit nibble will then be converted to a hex value. As the conversion for each nibble is the same, we can simplify the process by converting the first 4 bits from the right to our HEX value, then we shift right the word by 4 bits and cover the first 4 bits from the right to our HEX value. This means we can keep the routine from the previous project for converting our input to HEX.
Once we have the HEX output we can send it one bit at a time into the serial to parallel shift register. The 74HC164 IC the devices that we are using in this circuit, as it is low cost and simple to use. The A & B inputs will be tied together to ensure that we are sending the same data to the into the shift register.
The active low clear pin will be used to reset the IC while the CLK pin will be used to clock data into the shift register. Once we have clocked the data in, we then switch on the relevant 7 Segment LED display, to show the result.
The above table shows what segments of the LED display should be switch on to display the various values from 0 to F.